relaxation always; don't exclude relocatable linking. Adjust for
_bfd_mmix_prepare_linker_allocated_gregs renamed to
_bfd_mmix_before_linker_allocation.
(mmix_after_allocation): Adjust for
_bfd_mmix_finalize_linker_allocated_gregs renamed to
_bfd_mmix_after_linker_allocation.
* scripttempl/mmo.sc: Use ADDR (.text), not . - SIZEOF (.text).
2003-10-18 Hans-Peter Nilsson <hp@bitrange.com>
2003-10-18 Hans-Peter Nilsson <hp@bitrange.com>
+ * emultempl/mmix-elfnmmo.em (mmix_before_allocation): Force linker
+ relaxation always; don't exclude relocatable linking. Adjust for
+ _bfd_mmix_prepare_linker_allocated_gregs renamed to
+ _bfd_mmix_before_linker_allocation.
+ (mmix_after_allocation): Adjust for
+ _bfd_mmix_finalize_linker_allocated_gregs renamed to
+ _bfd_mmix_after_linker_allocation.
+ * scripttempl/mmo.sc: Use ADDR (.text), not . - SIZEOF (.text).
+
* ldlang.c (lang_size_sections): Last, set _cooked_size for output
sections.
* ldlang.c (lang_size_sections): Last, set _cooked_size for output
sections.
maintenance burden to keep them in sync. (Of course we lose the
maintenance burden of checking that it still does what we need.) */
maintenance burden to keep them in sync. (Of course we lose the
maintenance burden of checking that it still does what we need.) */
- /* Force -relax on if not doing a relocatable link. */
- if (! link_info.relocatable)
- command_line.relax = TRUE;
+ /* Force -relax on (regardless of whether we're doing a relocatable
+ link). */
+ command_line.relax = TRUE;
- if (!_bfd_mmix_prepare_linker_allocated_gregs (output_bfd, &link_info))
+ if (!_bfd_mmix_before_linker_allocation (output_bfd, &link_info))
einfo ("%X%P: Internal problems setting up section %s",
MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME);
}
einfo ("%X%P: Internal problems setting up section %s",
MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME);
}
if (sec != NULL)
bfd_set_section_vma (abfd, sec, 0);
if (sec != NULL)
bfd_set_section_vma (abfd, sec, 0);
- if (!_bfd_mmix_finalize_linker_allocated_gregs (output_bfd, &link_info))
+ if (!_bfd_mmix_after_linker_allocation (output_bfd, &link_info))
{
/* This is a fatal error; make einfo call not return. */
einfo ("%F%P: Can't finalize linker-allocated global registers\n");
{
/* This is a fatal error; make einfo call not return. */
einfo ("%F%P: Can't finalize linker-allocated global registers\n");
${RELOCATING+ PROVIDE(_etext = .);}
${RELOCATING+ PROVIDE(__etext = .);}
}
${RELOCATING+ PROVIDE(_etext = .);}
${RELOCATING+ PROVIDE(__etext = .);}
}
- ${RELOCATING+Main = DEFINED (Main) ? Main : (DEFINED (_start) ? _start : . - SIZEOF (.text));}
+ ${RELOCATING+Main = DEFINED (Main) ? Main : (DEFINED (_start) ? _start : ADDR (.text));}
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }