https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116642
--- Comment #18 from Joshua <joshudson at gmail dot com> --- I stand corrected. I removed -pie. The resulting output binary is still relocatable in memory. I don't think the Kernel is willing to load an ELF binary at address 0, and that's the only other option with this header. (I ran hexdump on the binary to verify) Hmmm that's really weird. The way you describe it that shouldn't change the compiler pass.