diff options
author | Alan Modra <amodra@gmail.com> | 2002-07-20 13:41:11 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2002-07-20 13:41:11 +0000 |
commit | 25844aaec2671c9975e2cbad8637bec980d9ecee (patch) | |
tree | 8a2a57b59c3229f4c219a4f5fd01306a06f7bdc8 | |
parent | c0647bfc65ff9823ce5a75489a64027cb429caa4 (diff) | |
download | binutils-25844aaec2671c9975e2cbad8637bec980d9ecee.tar.gz binutils-25844aaec2671c9975e2cbad8637bec980d9ecee.tar.bz2 binutils-25844aaec2671c9975e2cbad8637bec980d9ecee.zip |
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
bomb on /DISCARD/ input section.
* emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
* emultempl/mmo.em (mmo_place_orphan): Likewise.
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/emultempl/elf32.em | 2 | ||||
-rw-r--r-- | ld/emultempl/mmo.em | 6 | ||||
-rw-r--r-- | ld/emultempl/pe.em | 2 |
4 files changed, 14 insertions, 3 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 1443cc62f0f..01ee8c576da 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2002-07-20 Alan Modra <amodra@bigpond.net.au> + + * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't + bomb on /DISCARD/ input section. + * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Likewise. + * emultempl/mmo.em (mmo_place_orphan): Likewise. + 2002-07-19 Hans-Peter Nilsson <hp@bitrange.com> * emultempl/mmo.em (mmo_place_orphan): Handle case of no .text diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index 58a1ccc0bcb..26e4c46297f 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -1249,7 +1249,7 @@ gld${EMULATION_NAME}_place_orphan (file, s) /* Restore the global list pointer. */ stat_ptr = old; - if (place != NULL) + if (place != NULL && os->bfd_section != NULL) { asection *snew, **pps; diff --git a/ld/emultempl/mmo.em b/ld/emultempl/mmo.em index 23bab165376..8b17dcc2ac7 100644 --- a/ld/emultempl/mmo.em +++ b/ld/emultempl/mmo.em @@ -152,6 +152,11 @@ mmo_place_orphan (file, s) /* Restore the global list pointer. */ stat_ptr = old; + snew = os->bfd_section; + if (snew == NULL) + /* /DISCARD/ section. */ + return true; + /* We need an output section for .text as a root, so if there was none (might happen with a peculiar linker script such as in "map addresses", map-address.exp), we grab the output section created @@ -163,7 +168,6 @@ mmo_place_orphan (file, s) hold_text.os = os; } - snew = os->bfd_section; bfd_section = place->os->bfd_section; if (place->section == NULL && bfd_section == NULL) bfd_section = output_prev_sec_find (place->os); diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em index a6dfe463737..37146ab59f8 100644 --- a/ld/emultempl/pe.em +++ b/ld/emultempl/pe.em @@ -1668,7 +1668,7 @@ gld_${EMULATION_NAME}_place_orphan (file, s) stat_ptr = old; - if (place != NULL) + if (place != NULL && os->bfd_section != NULL) { asection *snew, **pps; |