aboutsummaryrefslogtreecommitdiff
path: root/ld/emultempl
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2001-08-13 10:56:21 +0000
committerAlan Modra <amodra@gmail.com>2001-08-13 10:56:21 +0000
commit0f33d40bfcd0478feec2b9bd32bd9c0a957bbf83 (patch)
treefd5375e34ddc4023ceb8019a5ca8f2f96705c44d /ld/emultempl
parentfbad9a25dbf090074a4efa848f7ca097b0382ef9 (diff)
downloadgdb-0f33d40bfcd0478feec2b9bd32bd9c0a957bbf83.zip
gdb-0f33d40bfcd0478feec2b9bd32bd9c0a957bbf83.tar.gz
gdb-0f33d40bfcd0478feec2b9bd32bd9c0a957bbf83.tar.bz2
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Return
`true' for SEC_EXCLUDE sections so that the generic code doesn't needlessly create an output_section_statement. Treat a correctly named output_section_statement with NULL bfd_section as compatible.
Diffstat (limited to 'ld/emultempl')
-rw-r--r--ld/emultempl/elf32.em11
1 files changed, 6 insertions, 5 deletions
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
index fff17f6..d6d4729 100644
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -1079,11 +1079,12 @@ gld${EMULATION_NAME}_place_orphan (file, s)
os = lang_output_section_find (secname);
if (os != NULL
- && os->bfd_section != NULL
- && ((s->flags ^ os->bfd_section->flags)
- & (SEC_LOAD | SEC_ALLOC)) == 0)
+ && (os->bfd_section == NULL
+ || ((s->flags ^ os->bfd_section->flags)
+ & (SEC_LOAD | SEC_ALLOC)) == 0))
{
- /* We have already placed a section with this name. */
+ /* We already have an output section statement with this
+ name, and its bfd section has compatible flags. */
wild_doit (&os->children, s, os, file);
return true;
}
@@ -1112,7 +1113,7 @@ gld${EMULATION_NAME}_place_orphan (file, s)
(hold.os != NULL || (hold.os = lang_output_section_find (name)) != NULL)
if (s->flags & SEC_EXCLUDE)
- return false;
+ return true;
place = NULL;
if ((s->flags & SEC_ALLOC) == 0)