bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/17699] incorrect R_386_TLS_DTPMOD32 relocation


From: bugdal at aerifal dot cx
Subject: [Bug gold/17699] incorrect R_386_TLS_DTPMOD32 relocation
Date: Thu, 11 Dec 2014 17:31:00 +0000

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

Rich Felker <bugdal at aerifal dot cx> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugdal at aerifal dot cx

--- Comment #1 from Rich Felker <bugdal at aerifal dot cx> ---
Some follow-up regarding my (Rich Felker) reasoning for why the reloc gold is
producing is wrong:

1. The existing convention for producing a DTPMOD reloc for "this DSO itself"
is to omit the symbol reference. This is what gold does on other archs and what
BFD ld has always done.

2. Semantically, a symbol pointing to a section does not even make sense as the
target for a TLS relocation. The targeted symbol for such a reloc must be TLS
type (STT_TLS). Simply the fact that the targeted section happens to be a
TLS-related section does not make it a TLS symbol. If anything, by a principle
of least surprise, such a symbol should resolve to the TLS image (but for BSS
that doesn't even exist) rather than the resulting thread-local storage.

3. In my opinion, STT_SECTION symbols are not valid in the dynamic symbol table
at all. Sections are not meaningful at load/execution time, and it's arguably
even valid to strip the section headers if you really want to.

I'm not clear on why glibc's dynamic linker accepts this relocation; probably
it's simply a consequence of an implementation detail of the order in which
operations are performed. But musl's dynamic linker is not accepting it, and I
don't see any logically consistent way to accept it short of hacks to just
ignore the referenced symbol and treat it as a null symbol reference, so I'd
much rather see this fixed in gold than work on hacks to work around it.

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]