mobile-shell/mosh

Investigate -pie vs -Wl,-pie on OS X

Open

#273 ouverte le 15 mai 2012

Voir sur GitHub
 (0 commentaires) (0 réactions) (0 assignés)C++ (737 forks)batch import
OS Xbuggood first issuesecurity

Métriques du dépôt

Stars
 (12 063 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

[from a blog comment]

I believe for Mac OS X you need to use -Wl,-pie even with gcc. If you use gcc -v when linking on Mac OS X you won't see -pie being passed to the linker. Here's the output of otool -h on an executable built with -pie in LDFLAGS on Mac OS X 10.6:

Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
0xfeedfacf 16777223 3 0x80 2 11 1776 0x00000085

Compare that to one built with -Wl,-pie

Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
0xfeedfacf 16777223 3 0x80 2 11 1776 0x00200085

In /usr/include/mach-o/loader.h we find this:

#define MH_PIE 0x200000 /* When this bit is set, the OS will
load the main executable at a
random address. Only used in
MH_EXECUTE filetypes. */

Guide contributeur