Bug 2419758

Summary: binutils: GLIBC_ABI_GNU_TLS produced for i386 binaries that do not need it
Product: [Fedora] Fedora Reporter: Florian Weimer <fweimer>
Component: binutilsAssignee: Nick Clifton <nickc>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 43CC: dvlasenk, fweimer, hjl.tools, jakub, josmyers, nickc, sipoyare, suraj.ghimire7
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Florian Weimer 2025-12-07 13:51:00 UTC
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.

Comment 1 H.J. Lu 2025-12-08 01:23:01 UTC
I opened:

https://sourceware.org/bugzilla/show_bug.cgi?id=33702