From 0fc1417eb87f9feb0ed8e421bd07431664a8d61c Mon Sep 17 00:00:00 2001 From: macro Date: Mon, 21 Mar 2005 21:59:32 +0000 Subject: [PATCH] * 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. --- gas/ChangeLog | 7 +++++++ gas/config/tc-mips.c | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 27af97c40a..ec121e1d8d 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 Bob Wilson * 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 84f58e3e9d..73eab2a885 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; -- 2.11.0