summaryrefslogtreecommitdiff
path: root/gold/sparc.cc
diff options
context:
space:
mode:
authorDavid S. Miller <davem@redhat.com>2010-02-09 06:34:44 +0000
committerDavid S. Miller <davem@redhat.com>2010-02-09 06:34:44 +0000
commit024c4466738f9e18a8a3e15592e1250a61f288b9 (patch)
tree8be8d807e2f1c25669da5c356052318464e74140 /gold/sparc.cc
parent705b5121210f15c53f33635ce27798024eb2ac3b (diff)
* 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.
Diffstat (limited to 'gold/sparc.cc')
-rw-r--r--gold/sparc.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/gold/sparc.cc b/gold/sparc.cc
index 4cef8d86c9..9bca176ce7 100644
--- a/gold/sparc.cc
+++ b/gold/sparc.cc
@@ -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;