A GLIBC_ABI_GNU_TLS symbol version requirement is supposed to be created only if the binary uses global-dynamic TLS. It is created for 32-bit executables that use no TLS at all. (In executables, TLS sequences should be relaxed to local-exec, that's another reason why there shouldn't be a GLIBC_ABI_GNU_TLS symbol requirement.) Reproducible: Always Steps to Reproduce: echo 'int main() {}' > t.c gcc -m32 t.c readelf -aW a.out | grep GLIBC_ABI_GNU_TLS Actual Results: 0x0010: Name: GLIBC_ABI_GNU_TLS Flags: none Version: 3 Expected Results: No output because there is no TLS usage in the binary and GLIBC_ABI_GNU_TLS should not be generated.
I opened: https://sourceware.org/bugzilla/show_bug.cgi?id=33702