* emultempl/mmix-elfnmmo.em (mmix_after_allocation): Also check

for presence of .MMIX.reg_contents.linker_allocated before early
	exit.
This commit is contained in:
Hans-Peter Nilsson 2002-02-15 06:50:19 +00:00
parent 49fda6c8d0
commit 83c2d653c3
2 changed files with 18 additions and 1 deletions

View File

@ -1,5 +1,9 @@
2002-02-15 Hans-Peter Nilsson <hp@bitrange.com>
* emultempl/mmix-elfnmmo.em (mmix_after_allocation): Also check
for presence of .MMIX.reg_contents.linker_allocated before early
exit.
* NEWS: Mention support for MMIX.
2002-02-15 Alan Modra <amodra@bigpond.net.au>

View File

@ -61,7 +61,20 @@ mmix_after_allocation ()
= bfd_get_section_by_name (output_bfd, MMIX_REG_CONTENTS_SECTION_NAME);
bfd_signed_vma regvma;
/* If there's no register section, we don't need to do anything. */
/* If there's no register section, we don't need to do anything. On the
other hand, if a non-standard linker-script without a mapping from
MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME is present, as in the ld
test "NOCROSSREFS 2", that section (1) will be orphaned; not inserted
in MMIX_REG_CONTENTS_SECTION_NAME and (2) we will not do the
necessary preparations for those relocations that caused it to be
created. We'll SEGV from the latter error. The former error in
separation will result in a non-working binary, but that's expected
when you play tricks with linker scripts. The "NOCROSSREFS 2" test
does not run the output so it does not matter there. */
if (sec == NULL)
sec
= bfd_get_section_by_name (output_bfd,
MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME);
if (sec == NULL)
return;