aboutsummaryrefslogtreecommitdiff
path: root/ld
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
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')
-rw-r--r--ld/ChangeLog17
-rw-r--r--ld/emultempl/elf32.em7
2 files changed, 22 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 5e74c3e..8195e5a 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,20 @@
+Thu Dec 5 13:45:58 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * 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.
+
+Tue Dec 3 11:29:20 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * ldlang.c (section_already_linked): Set the output_offset as well
+ as the output_section when only reading symbols from a file.
+
+Mon Dec 2 11:43:50 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * emulparams/*.sh: Make sure that each set of parameters which
+ uses the elf.sc script sets MACHINE.
+
Wed Nov 27 03:22:05 1996 Jason Merrill <jason@yorick.cygnus.com>
* scripttempl/elf.sc: Add the remaining DWARF sections.
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;
}