aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elflink.c2
-rw-r--r--ld/testsuite/ChangeLog6
-rw-r--r--ld/testsuite/ld-discard/extern.d2
-rw-r--r--ld/testsuite/ld-discard/start.d2
-rw-r--r--ld/testsuite/ld-discard/static.d2
6 files changed, 17 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 5e9f707..9d8e077 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2005-04-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR 858
+ * elflink.c (elf_link_input_bfd): Make non-debugging reference
+ to discarded section an error.
+
2005-04-21 Jerome Guitton <guitton@gnat.com>
* configure.in: Replace BFD_NEED_DECLARATION checks by the
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 017ebe4..cd9131e 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -7048,6 +7048,8 @@ elf_link_input_bfd (struct elf_final_link_info *finfo, bfd *input_bfd)
(_("`%s' referenced in section `%A' of %B: "
"defined in discarded section `%A' of %B"),
o, input_bfd, sec, sec->owner, sym_name);
+ bfd_set_error (bfd_error_bad_value);
+ return FALSE;
}
/* Try to do the best we can to support buggy old
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index f1fbcb9..355d97f 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2005-04-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * ld-discard/extern.d: Expect error.
+ * ld-discard/start.d: Likewise.
+ * ld-discard/static.d: Likewise.
+
2005-04-19 Alan Modra <amodra@bigpond.net.au>
* ld-powerpc/reloc.d: Update to suit removal of non-alloc relocs.
diff --git a/ld/testsuite/ld-discard/extern.d b/ld/testsuite/ld-discard/extern.d
index e5143cb..9033792 100644
--- a/ld/testsuite/ld-discard/extern.d
+++ b/ld/testsuite/ld-discard/extern.d
@@ -1,6 +1,6 @@
#source: extern.s
#ld: -T discard.ld
-#warning: .*data.* referenced in section `\.text' of tmpdir/dump0.o: defined in discarded section `\.data\.exit' of tmpdir/dump0.o
+#error: .*data.* referenced in section `\.text' of tmpdir/dump0.o: defined in discarded section `\.data\.exit' of tmpdir/dump0.o
#objdump: -p
#pass
# The expected warning used to start with "`data' referenced..." but
diff --git a/ld/testsuite/ld-discard/start.d b/ld/testsuite/ld-discard/start.d
index 2ad6e9f..5c685e8 100644
--- a/ld/testsuite/ld-discard/start.d
+++ b/ld/testsuite/ld-discard/start.d
@@ -1,6 +1,6 @@
#source: start.s
#source: exit.s
#ld: -T discard.ld
-#warning: `data' referenced in section `\.text' of tmpdir/dump0.o: defined in discarded section `\.data\.exit' of tmpdir/dump1.o
+#error: `data' referenced in section `\.text' of tmpdir/dump0.o: defined in discarded section `\.data\.exit' of tmpdir/dump1.o
#objdump: -p
#pass
diff --git a/ld/testsuite/ld-discard/static.d b/ld/testsuite/ld-discard/static.d
index eefeeea..3b5255b 100644
--- a/ld/testsuite/ld-discard/static.d
+++ b/ld/testsuite/ld-discard/static.d
@@ -1,5 +1,5 @@
#source: static.s
#ld: -T discard.ld
-#warning: `(\.data\.exit|data)' referenced in section `\.text' of tmpdir/dump0.o: defined in discarded section `\.data\.exit' of tmpdir/dump0.o
+#error: `(\.data\.exit|data)' referenced in section `\.text' of tmpdir/dump0.o: defined in discarded section `\.data\.exit' of tmpdir/dump0.o
#objdump: -p
#pass