* config/tc-mn10300.c (mn10300_force_relocation): Don't

optimize differences between symbols in code sections to
constants.
(mn10300_fix_adjustable): Don't adjust to section+offset
relocations pointing at symbols in code sections.
This commit is contained in:
Alexandre Oliva 2001-05-16 01:48:51 +00:00
parent 2a0fa9433c
commit 7e8f410030
2 changed files with 24 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2001-05-15 Alexandre Oliva <aoliva@redhat.com>
* config/tc-mn10300.c (mn10300_force_relocation): Don't
optimize differences between symbols in code sections to
constants.
(mn10300_fix_adjustable): Don't adjust to section+offset
relocations pointing at symbols in code sections.
2001-05-16 Alan Modra <amodra@one.net.au> 2001-05-16 Alan Modra <amodra@one.net.au>
* config/tc-arc.c (md_assemble): Correct dwarf2_emit_insn param * config/tc-arc.c (md_assemble): Correct dwarf2_emit_insn param

View File

@ -1993,6 +1993,15 @@ mn10300_force_relocation (fixp)
|| fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
return 1; return 1;
/* Do not adjust relocations involving symbols in code sections,
because it breaks linker relaxations. This could be fixed in the
linker, but this fix is simpler, and it pretty much only affects
object size a little bit. */
if ((S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_CODE)
&& fixp->fx_subsy
&& S_GET_SEGMENT (fixp->fx_addsy) == S_GET_SEGMENT (fixp->fx_subsy))
return 1;
return 0; return 0;
} }
@ -2011,6 +2020,13 @@ mn10300_fix_adjustable (fixp)
|| fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
return 0; return 0;
/* Do not adjust relocations involving symbols in code sections,
because it breaks linker relaxations. This could be fixed in the
linker, but this fix is simpler, and it pretty much only affects
object size a little bit. */
if (S_GET_SEGMENT (fixp->fx_addsy)->flags & SEC_CODE)
return 0;
return 1; return 1;
} }