https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63542
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-10-15 CC| |evstupac at gmail dot com, | |jakub at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Not just UNSPEC_GOT (0), but also UNSPEC_GOTOFF (1): grep UNSPEC_ LOG | sed 's/^.*: note:/note:/' | sort | uniq -c 9140 note: non-delegitimized UNSPEC UNSPEC_GOT (0) found in variable location 4179 note: non-delegitimized UNSPEC UNSPEC_GOTOFF (1) found in variable location in i686-linux bootstrap. This has been discussed, and I think I've suggested what to do in those cases: https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02513.html - if you don't have a known PIC register to subtract, subtract _GLOBAL_OFFSET_TABLE_ symbol instead. Relocations in .debug_* sections are resolved at link time, thus even if on some i?86/x86_64 target _GLOBAL_OFFSET_TABLE_ doesn't have hidden visibility, it would still resolve to the local copy.