Linker Support pie support is already in binutils 2.15 ld scripts adjusted to include i386 W^X 512mb gap cc -pie prog.o foo.o ... -o prog What's different? objdump comparison: non-pie vs pie File flags s/EXEC_P/DYNAMIC/ Link address now 0x0 prog: file format elf32-i386 prog architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x1c000498 Program Header: PHDR vaddr 0x1c000034 INTERP vaddr 0x1c000194 LOAD vaddr 0x1c000000 ... prog: file format elf32-i386 prog architecture: i386, flags 0x00000150: HAS_SYMS, DYNAMIC, D_PAGED start address 0x00000698 Program Header: PHDR vaddr 0x00000034 INTERP vaddr 0x00000194 LOAD vaddr 0x00000000 ...