aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2005-03-21 21:59:34 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2005-03-21 21:59:34 +0000
commit704803a97ea271327b8d390c2024affababd2143 (patch)
tree430db36cb2a5798aba67574f4a8da73bfb3a415b
parentd3ea68091c7b557fa76c915778273f6b9a743938 (diff)
downloadgdb-704803a97ea271327b8d390c2024affababd2143.zip
gdb-704803a97ea271327b8d390c2024affababd2143.tar.gz
gdb-704803a97ea271327b8d390c2024affababd2143.tar.bz2
* config/tc-mips.c (mips_frob_file): Sort BFD_RELOC_MIPS16_LO16
relocations correctly as well. (mips_fix_adjustable): Don't make BFD_RELOC_MIPS16_LO16 relocations in mergeable sections section-relative either.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-mips.c7
2 files changed, 12 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 27af97c..ec121e1 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2005-03-21 Maciej W. Rozycki <macro@mips.com>
+
+ * config/tc-mips.c (mips_frob_file): Sort BFD_RELOC_MIPS16_LO16
+ relocations correctly as well.
+ (mips_fix_adjustable): Don't make BFD_RELOC_MIPS16_LO16
+ relocations in mergeable sections section-relative either.
+
2005-03-21 Bob Wilson <bob.wilson@acm.org>
* config/tc-xtensa.c (md_apply_fix3): Recognize XTENSA_PLT relocations.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 84f58e3..73eab2a 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -10748,7 +10748,8 @@ mips_frob_file (void)
if (*pos == l->fixp)
hi_pos = pos;
- if ((*pos)->fx_r_type == BFD_RELOC_LO16
+ if (((*pos)->fx_r_type == BFD_RELOC_LO16
+ || (*pos)->fx_r_type == BFD_RELOC_MIPS16_LO16)
&& (*pos)->fx_addsy == l->fixp->fx_addsy
&& (*pos)->fx_offset >= l->fixp->fx_offset
&& (lo_pos == NULL
@@ -12689,7 +12690,9 @@ mips_fix_adjustable (fixS *fixp)
placed anywhere. Rather than break backwards compatibility by changing
this, it seems better not to force the issue, and instead keep the
original symbol. This will work with either linker behavior. */
- if ((fixp->fx_r_type == BFD_RELOC_LO16 || reloc_needs_lo_p (fixp->fx_r_type))
+ if ((fixp->fx_r_type == BFD_RELOC_LO16
+ || fixp->fx_r_type == BFD_RELOC_MIPS16_LO16
+ || reloc_needs_lo_p (fixp->fx_r_type))
&& HAVE_IN_PLACE_ADDENDS
&& (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_MERGE) != 0)
return 0;