R_386_TLS_DESC = 41, // TLS descriptor containing pointer to code and
// to argument, returning TLS offset for symbol
R_386_IRELATIVE = 42, // Adjust indirectly by program base
+ R_386_GOT32X = 43, // 32 bit GOT entry, relaxable
// Used by Intel.
R_386_USED_BY_INTEL_200 = 200,
// GNU vtable garbage collection extensions.
+2015-10-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * i386.cc (Target_i386::Scan::get_reference_flags(): Treat
+ R_386_GOT32X the same as R_386_GOT32.
+ (Target_i386::Scan::local): Likewise.
+ (Target_i386::Scan::possible_function_pointer_reloc): Likewise.
+ (Target_i386::Scan::global): Likewise.
+ (Target_i386::Relocate::relocate): Likewise.
+ (Target_i386::Relocatable_size_for_reloc::get_size_for_reloc):
+ Likewise.
+
2015-10-20 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/Makefile.am (x86_64_mov_to_lea11): Replace
return Symbol::FUNCTION_CALL | Symbol::RELATIVE_REF;
case elfcpp::R_386_GOT32:
+ case elfcpp::R_386_GOT32X:
// Absolute in GOT.
return Symbol::ABSOLUTE_REF;
break;
case elfcpp::R_386_GOT32:
+ case elfcpp::R_386_GOT32X:
{
// We need GOT section.
Output_data_got<32, false>* got = target->got_section(symtab, layout);
case elfcpp::R_386_8:
case elfcpp::R_386_GOTOFF:
case elfcpp::R_386_GOT32:
+ case elfcpp::R_386_GOT32X:
{
return true;
}
break;
case elfcpp::R_386_GOT32:
+ case elfcpp::R_386_GOT32X:
{
// The symbol requires a GOT section.
Output_data_got<32, false>* got = target->got_section(symtab, layout);
break;
case elfcpp::R_386_GOT32:
+ case elfcpp::R_386_GOT32X:
// Convert
// mov foo@GOT(%reg), %reg
// to
case elfcpp::R_386_32:
case elfcpp::R_386_PC32:
case elfcpp::R_386_GOT32:
+ case elfcpp::R_386_GOT32X:
case elfcpp::R_386_PLT32:
case elfcpp::R_386_GOTOFF:
case elfcpp::R_386_GOTPC: