aboutsummaryrefslogtreecommitdiff
path: root/ld/emultempl
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1996-12-05 18:47:22 +0000
committerIan Lance Taylor <ian@airs.com>1996-12-05 18:47:22 +0000
commit12436407d164b1a24bc6e059ff0e94e7202e566e (patch)
treecadec371dfb3fdb3b362356518f8b570645ff593 /ld/emultempl
parent80be821d2e1e9b79c44d53b08e25b43c29a236b9 (diff)
downloadgdb-12436407d164b1a24bc6e059ff0e94e7202e566e.zip
gdb-12436407d164b1a24bc6e059ff0e94e7202e566e.tar.gz
gdb-12436407d164b1a24bc6e059ff0e94e7202e566e.tar.bz2
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
use hold_rel unless SEC_ALLOC is set for the reloc section. (gld${EMULATION_NAME}_place_section): Only set hold_rel if SEC_ALLOC is set. PR 11174.
Diffstat (limited to 'ld/emultempl')
-rw-r--r--ld/emultempl/elf32.em7
1 files changed, 5 insertions, 2 deletions
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
index fe0b1b9..0ff33bd 100644
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -327,7 +327,7 @@ EOF
fi
cat >>e${EMULATION_NAME}.c <<EOF
- einfo ("%P: warning: %s, needed by %B, not found\n",
+ einfo ("%P: warning: %s, needed by %B, not found (try using --rpath)\n",
l->name, l->by);
}
}
@@ -777,6 +777,7 @@ gld${EMULATION_NAME}_place_orphan (file, s)
&& hold_data != NULL)
place = hold_data;
else if (strncmp (secname, ".rel", 4) == 0
+ && (s->flags & SEC_ALLOC) != 0
&& hold_rel != NULL)
place = hold_rel;
else if ((s->flags & SEC_CODE) == 0
@@ -840,7 +841,8 @@ gld${EMULATION_NAME}_place_orphan (file, s)
os = lang_output_section_statement_lookup (secname);
wild_doit (&os->children, s, os, file);
- lang_leave_output_section_statement ((bfd_vma) 0, "*default*");
+ lang_leave_output_section_statement
+ ((bfd_vma) 0, "*default*", (struct lang_output_section_phdr_list *) NULL);
stat_ptr = &add;
if (*ps == '\0' && config.build_constructors)
@@ -886,6 +888,7 @@ gld${EMULATION_NAME}_place_section (s)
hold_bss = os;
else if (hold_rel == NULL
&& os->bfd_section != NULL
+ && (os->flags & SEC_ALLOC) != 0
&& strncmp (os->name, ".rel", 4) == 0)
hold_rel = os;
}