[GOLD] PowerPC TOC16 and GOT16 relocs are relative

Alan Modra amodra@gmail.com
Thu Nov 19 06:38:00 GMT 2015

A pasto from x86_64, probably.  BTW, looks to me like RELATIVE_REF
is write-only.

	* powerpc.cc (Target_powerpc::Scan::get_reference_flags): Correct
	GOT16 and TOC16 relocs to RELATIVE_REF.

diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index 3a013ef..5441c52 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -5326,8 +5326,7 @@ Target_powerpc<size, big_endian>::Scan::get_reference_flags(
     case elfcpp::R_PPC64_TOC16_HA:
     case elfcpp::R_PPC64_TOC16_DS:
     case elfcpp::R_PPC64_TOC16_LO_DS:
-      // Absolute in GOT.
-      ref = Symbol::ABSOLUTE_REF;
+      ref = Symbol::RELATIVE_REF;
     case elfcpp::R_POWERPC_GOT_TPREL16:

Alan Modra
Australia Development Lab, IBM

More information about the Binutils mailing list