Gold: Don't fail on R_386_GOT32X relocation

This patch updates gold to treat the R_386_GOT32X relocation proposed in

https://groups.google.com/forum/#!topic/ia32-abi/GbJJskkid4I

the same as R_386_GOT32.  FIXME: Gold should perform the transformations
as suggested.

elfcpp/

	* i386.h (R_386_GOT32X): New.

gold/

	* 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.
This commit is contained in:
H.J. Lu
2015-10-22 04:54:42 -07:00
parent caa65211bb
commit 493d4b48de
4 changed files with 22 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2015-10-22 H.J. Lu <hongjiu.lu@intel.com>
* i386.h (R_386_GOT32X): New.
2015-10-13 H.J. Lu <hongjiu.lu@intel.com>
PR gold/19118

View File

@ -86,6 +86,7 @@ enum
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.