https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116642
--- Comment #16 from Joshua <joshudson at gmail dot com> --- I took out -fpie and the output assembly was different and the binary started working. That is contrary to the documentation which says you need -fpie for position independent executables. I suppose it would be according to the documentation if I compiled with -fpic -fno-pie and linked with -fpie but it doesn't make sense to me why the difference *matters*. Still feels very weird; like it's a different version of arbitrary changes that randomly caused it to not generate the relocation; like so many hundreds of changes trying to produce the minimal case that generated it. If I *knew* it was sse that's generating relocations behind my back I'd just turn it off and be done with it, but I don't. I only know it's one of many CPU features.