diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2002-02-17 21:38:03 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2002-02-17 21:38:03 +0000 |
commit | 1c5e64470287c5496a45bc0698b99ce9fd7c60cf (patch) | |
tree | 206f26a2edbc6120f32fcd87715ec43c462f8a9b /ld/emultempl/mmo.em | |
parent | fe108482d45e340488712b85ed64507b8e01cfa6 (diff) | |
download | gdb-1c5e64470287c5496a45bc0698b99ce9fd7c60cf.zip gdb-1c5e64470287c5496a45bc0698b99ce9fd7c60cf.tar.gz gdb-1c5e64470287c5496a45bc0698b99ce9fd7c60cf.tar.bz2 |
* emultempl/mmo.em (mmo_after_open): Don't call
_bfd_mmix_check_all_relocs when producing ELF output.
Diffstat (limited to 'ld/emultempl/mmo.em')
-rw-r--r-- | ld/emultempl/mmo.em | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/ld/emultempl/mmo.em b/ld/emultempl/mmo.em index 1a3941d..32be230 100644 --- a/ld/emultempl/mmo.em +++ b/ld/emultempl/mmo.em @@ -238,12 +238,20 @@ mmo_finish () static void mmo_after_open () { - LANG_FOR_EACH_INPUT_STATEMENT (is) + /* When there's a mismatch between the output format and the emulation + (using weird combinations like "-m mmo --oformat elf64-mmix" for + example), we'd count relocs twice because they'd also be counted + along the usual route for ELF-only linking, which would lead to an + internal accounting error. */ + if (bfd_get_flavour (output_bfd) != bfd_target_elf_flavour) { - if (bfd_get_flavour (is->the_bfd) == bfd_target_elf_flavour - && !_bfd_mmix_check_all_relocs (is->the_bfd, &link_info)) - einfo ("%X%P: Internal problems scanning %B after opening it", - is->the_bfd); + LANG_FOR_EACH_INPUT_STATEMENT (is) + { + if (bfd_get_flavour (is->the_bfd) == bfd_target_elf_flavour + && !_bfd_mmix_check_all_relocs (is->the_bfd, &link_info)) + einfo ("%X%P: Internal problems scanning %B after opening it", + is->the_bfd); + } } } EOF |