* sparc.cc (Target_sparc::Scan::local): Handle R_SPARC_GOTDATA_OP*
authorDavid S. Miller <davem@redhat.com>
Tue, 9 Feb 2010 06:34:44 +0000 (06:34 +0000)
committerDavid S. Miller <davem@redhat.com>
Tue, 9 Feb 2010 06:34:44 +0000 (06:34 +0000)
just like R_SPARC_GOT{10,13,22}.
(Target_sparc::Scan::local): Likewise.
(Target_sparc::Relocate:relocate): Likewise.

gold/ChangeLog
gold/sparc.cc

index b65da03d9af9a0ab38275a20f171e67bc213fe9d..98d5d6af17eb5823a263971d839be7d4daa370d9 100644 (file)
@@ -4,6 +4,11 @@
        unaligned for R_SPARC_16, R_SPARC_32, or R_SPARC_64, use the unaligned
        relocation helper function.
 
+       * sparc.cc (Target_sparc::Scan::local): Handle R_SPARC_GOTDATA_OP*
+       just like R_SPARC_GOT{10,13,22}.
+       (Target_sparc::Scan::local): Likewise.
+       (Target_sparc::Relocate:relocate): Likewise.
+
 2010-02-06  Ian Lance Taylor  <iant@google.com>
 
        * configure.ac: Rewrite targetobjs duplicate removal code to use
index 4cef8d86c94ecf7a351ea6be3d411778f963f2d2..9bca176ce7e0976508433e771431ec7952db1da9 100644 (file)
@@ -1703,6 +1703,9 @@ Target_sparc<size, big_endian>::Scan::local(
     case elfcpp::R_SPARC_PC22:
       break;
 
+    case elfcpp::R_SPARC_GOTDATA_OP:
+    case elfcpp::R_SPARC_GOTDATA_OP_HIX22:
+    case elfcpp::R_SPARC_GOTDATA_OP_LOX10:
     case elfcpp::R_SPARC_GOT10:
     case elfcpp::R_SPARC_GOT13:
     case elfcpp::R_SPARC_GOT22:
@@ -2070,6 +2073,9 @@ Target_sparc<size, big_endian>::Scan::global(
       }
       break;
 
+    case elfcpp::R_SPARC_GOTDATA_OP:
+    case elfcpp::R_SPARC_GOTDATA_OP_HIX22:
+    case elfcpp::R_SPARC_GOTDATA_OP_LOX10:
     case elfcpp::R_SPARC_GOT10:
     case elfcpp::R_SPARC_GOT13:
     case elfcpp::R_SPARC_GOT22:
@@ -2412,6 +2418,9 @@ Target_sparc<size, big_endian>::Relocate::relocate(
   unsigned int got_offset = 0;
   switch (r_type)
     {
+    case elfcpp::R_SPARC_GOTDATA_OP:
+    case elfcpp::R_SPARC_GOTDATA_OP_HIX22:
+    case elfcpp::R_SPARC_GOTDATA_OP_LOX10:
     case elfcpp::R_SPARC_GOT10:
     case elfcpp::R_SPARC_GOT13:
     case elfcpp::R_SPARC_GOT22:
@@ -2526,10 +2535,15 @@ Target_sparc<size, big_endian>::Relocate::relocate(
       Reloc::lo10(view, got_offset, addend);
       break;
 
+    case elfcpp::R_SPARC_GOTDATA_OP:
+      break;
+
+    case elfcpp::R_SPARC_GOTDATA_OP_LOX10:
     case elfcpp::R_SPARC_GOT13:
       Reloc::rela32_13(view, got_offset, addend);
       break;
 
+    case elfcpp::R_SPARC_GOTDATA_OP_HIX22:
     case elfcpp::R_SPARC_GOT22:
       Reloc::hi22(view, got_offset, addend);
       break;