* config/tc-mn10300.h (tc_fix_adjustable): Define.
* config/tc-mn10300.c (mn10300_fix_adjustable): Don't adjust debug or non-merged symbols.
This commit is contained in:
parent
5dd23ec18b
commit
53cb0362bf
3 changed files with 17 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2004-05-28 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* config/tc-mn10300.h (tc_fix_adjustable): Define.
|
||||
* config/tc-mn10300.c (mn10300_fix_adjustable): Don't adjust debug
|
||||
or non-merged symbols.
|
||||
|
||||
2004-05-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* config/tc-ia64.c (remove_marked_resource): Save, clear and
|
||||
|
|
|
@ -2542,6 +2542,15 @@ mn10300_fix_adjustable (fixp)
|
|||
if (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_CODE)
|
||||
return 0;
|
||||
|
||||
/* Likewise, do not adjust symbols that won't be merged, or debug
|
||||
symbols, because they too break relaxation. We do want to adjust
|
||||
other mergable symbols, like .rodata, because code relaxations
|
||||
need section-relative symbols to properly relax them. */
|
||||
if (! (S_GET_SEGMENT(fixp->fx_addsy)->flags & SEC_MERGE))
|
||||
return 0;
|
||||
if (strncmp (S_GET_SEGMENT (fixp->fx_addsy)->name, ".debug", 6) == 0)
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -102,8 +102,8 @@ void mn10300_cons_fix_new PARAMS ((fragS *, int, int, expressionS *));
|
|||
#define md_number_to_chars number_to_chars_littleendian
|
||||
|
||||
/* Don't bother to adjust relocs. */
|
||||
#define tc_fix_adjustable(FIX) 0
|
||||
/* #define tc_fix_adjustable(FIX) mn10300_fix_adjustable (FIX) */
|
||||
/* #define tc_fix_adjustable(FIX) 0 */
|
||||
#define tc_fix_adjustable(FIX) mn10300_fix_adjustable (FIX)
|
||||
extern bfd_boolean mn10300_fix_adjustable PARAMS ((struct fix *));
|
||||
|
||||
/* We do relaxing in the assembler as well as the linker. */
|
||||
|
|
Loading…
Reference in a new issue