(In reply to Richard Biener from comment #3) > Confirmed. The issue is combining -pie -fPIE and -static. On x86_64 you > instead get > > > gcc -o ct -fPIE -pie -static t.c > /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: > /usr/lib64/gcc/x86_64-suse-linux/4.8/crtbeginT.o: relocation R_X86_64_32 > against `__TMC_END__' can not be used when making a shared object; recompile > with -fPIC > /usr/lib64/gcc/x86_64-suse-linux/4.8/crtbeginT.o: error adding symbols: Bad > value > collect2: error: ld returned 1 exit status > > that's because there isn't a PIE static crtbegin.o. On i?86 you are just > lucky. Combining PIE and -static is simply not supported. Tha fact that it is not supported is just fine. The problem is that configure hangs and do not complete on 32-bit. That's because ld does not terminate with an error but it hangs. You need to kill the ld process in order to let configure continue. > New linker from Factory seems to handle this fine (in some sense - it > produces > a shared object with no dependencies). > > What is the configure test testing? checking if gcc -std=gnu99 static flag -static works. The answer should be no, but on 32-bit it never gets there.