[gold RFC] Do not generate dynamic reloc for unresolved TLS symbol
Cary Coutant
ccoutant@google.com
Thu Dec 18 23:40:00 GMT 2014
More information about the Binutils mailing list
Thu Dec 18 23:40:00 GMT 2014
- Previous message (by thread): [gold RFC] Do not generate dynamic reloc for unresolved TLS symbol
- Next message (by thread): [PATCH] PR gold/17729: [gold] gold failed to build x32 libgo
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
> As the comment says it "could reasonably be the case for a weak > undefined symbol". If the reference to a weak symbol is in PIC, then > you can emit dynamic relocs and have an executable do something > reasonable based on whether the symbol is defined at runtime. With my patch, I get an internal error for the unresolved TLS symbol when trying to apply a (PIC) R_X86_64_TLSGD relocation. For PIC code, Gnu ld will generate dynamic relocations for a non-TLS symbol or function symbol, but not for a TLS symbol. Is that a bug, or behavior that gold should match? So, yeah, it looks like the expected behavior depends on the relocation, so patching it in target-independent code isn't going to work (unless I pass an is_pic_relocation flag to final_value_is_known()). Making the symbols weak vs. using --warn-unresolved-symbols doesn't seem to make a difference -- Either way, Gnu ld will statically resolve non-PIC references to 0, and will make dynamic relocs for PIC non-TLS references. -cary
- Previous message (by thread): [gold RFC] Do not generate dynamic reloc for unresolved TLS symbol
- Next message (by thread): [PATCH] PR gold/17729: [gold] gold failed to build x32 libgo
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list