[RFC] [gold] Simplify relocation strategy logic
Richard Sandiford
richard.sandiford@linaro.org
Mon Mar 14 10:47:00 GMT 2011
More information about the Binutils mailing list
Mon Mar 14 10:47:00 GMT 2011
- Previous message (by thread): [RFC] [gold] Simplify relocation strategy logic
- Next message (by thread): [RFC] [gold] Simplify relocation strategy logic
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Cary Coutant <ccoutant@google.com> writes: > case elfcpp::R_X86_64_GOT64: > case elfcpp::R_X86_64_GOT32: > + // Absolute in GOT. > + return Symbol::ABSOLUTE_REF | Symbol::GOT_REF; > case elfcpp::R_X86_64_GOTPCREL64: > case elfcpp::R_X86_64_GOTPCREL: > + // PC-Relative in GOT. > + return Symbol::RELATIVE_REF | Symbol::GOT_REF; > + > case elfcpp::R_X86_64_GOTPLT64: > - // Absolute in GOT. > - return Symbol::ABSOLUTE_REF; > + return Symbol::ABSOLUTE_REF | Symbol::GOT_REF; I don't believe this is correct. ABSOLUTE_REF is defined as: // A reference to the symbol's absolute address. This includes // references that cause an absolute address to be stored in the GOT. ABSOLUTE_REF = 1, and the final symbol reference (by the GOT entry) is absolute in all these cases. ("Absolute in GOT" was supposed to mean "an absolute reference _in_ the global offset table", not "to".) Whether the reference to the GOT entry itself is absolute, relative to the GP, or relative to the PC, isn't modelled by these flags. Does the patch rely on this, or was it just something you noticed by inspection? Richard
- Previous message (by thread): [RFC] [gold] Simplify relocation strategy logic
- Next message (by thread): [RFC] [gold] Simplify relocation strategy logic
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list