From: Maciej W. Rozycki Date: Mon, 21 Mar 2005 16:22:55 +0000 (+0000) Subject: * config/tc-mips.c (mips_frob_file): Sort BFD_RELOC_MIPS16_LO16 X-Git-Tag: binutils-csl-arm-2005q1-branchpoint~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=460d93cc31143c3fadf056f707876b3bf8e18fb1;p=thirdparty%2Fbinutils-gdb.git * 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. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 4b7f4ed27df..4ffd00627b6 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2005-03-21 Maciej W. Rozycki + + * 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 Alan Modra PR gas/780 diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 84f58e3e9d9..73eab2a8850 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;