diff options
author | David S. Miller <davem@redhat.com> | 2010-02-09 06:34:44 +0000 |
---|---|---|
committer | David S. Miller <davem@redhat.com> | 2010-02-09 06:34:44 +0000 |
commit | 024c4466738f9e18a8a3e15592e1250a61f288b9 (patch) | |
tree | 8be8d807e2f1c25669da5c356052318464e74140 /gold | |
parent | 705b5121210f15c53f33635ce27798024eb2ac3b (diff) | |
download | gdb-024c4466738f9e18a8a3e15592e1250a61f288b9.zip gdb-024c4466738f9e18a8a3e15592e1250a61f288b9.tar.gz gdb-024c4466738f9e18a8a3e15592e1250a61f288b9.tar.bz2 |
* 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')
-rw-r--r-- | gold/ChangeLog | 5 | ||||
-rw-r--r-- | gold/sparc.cc | 14 |
2 files changed, 19 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index b65da03..98d5d6a 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -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 diff --git a/gold/sparc.cc b/gold/sparc.cc index 4cef8d86..9bca176 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; |