From 08ccf96b08ce2ef122d880c1531f77cf54fdd09d Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 22 Jul 2004 14:19:04 +0000 Subject: [PATCH] bfd/ 2004-07-22 H.J. Lu * elflink.c (elf_fixup_link_order): Issue a warning and flag an error if failed. ld/ 2004-07-22 H.J. Lu * ld-scripts/crossref.exp: XFAIL ia64-*-* on the first test. --- bfd/ChangeLog | 5 +++++ bfd/elflink.c | 7 ++++++- ld/testsuite/ChangeLog | 4 ++++ ld/testsuite/ld-scripts/crossref.exp | 3 +++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fce9926e97..d0eb8ee084 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2004-07-22 H.J. Lu + + * elflink.c (elf_fixup_link_order): Issue a warning and flag + an error if failed. + 2004-07-21 H.J. Lu * aout-adobe.c (aout_32_section_already_linked): Defined. diff --git a/bfd/elflink.c b/bfd/elflink.c index f75dbaca8d..e3f5e4af82 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -7252,7 +7252,12 @@ elf_fixup_link_order (bfd *abfd, asection *o) return TRUE; if (seen_other && seen_linkorder) - return FALSE; + { + (*_bfd_error_handler) ("%s: has both ordered and unordered sections", + o->name); + bfd_set_error (bfd_error_bad_value); + return FALSE; + } sections = (struct bfd_link_order **) xmalloc (seen_linkorder * sizeof (struct bfd_link_order *)); diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index ec18521904..74732d4f89 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2004-07-22 H.J. Lu + + * ld-scripts/crossref.exp: XFAIL ia64-*-* on the first test. + 2004-07-13 Nitin Yewale * ld-h8300/h8300.exp: Addition of gcsection test case. diff --git a/ld/testsuite/ld-scripts/crossref.exp b/ld/testsuite/ld-scripts/crossref.exp index 4fd81b3de8..e6761ef48a 100644 --- a/ld/testsuite/ld-scripts/crossref.exp +++ b/ld/testsuite/ld-scripts/crossref.exp @@ -54,6 +54,9 @@ if [istarget sh64*-*-elf] { set flags "-mshelf32" } +# IA64 has both ordered and unordered sections in an input file. +setup_xfail ia64-*-* + verbose -log "$ld $flags -o tmpdir/cross1 -T $srcdir/$subdir/cross1.t tmpdir/cross1.o tmpdir/cross2.o" catch "exec $ld $flags -o tmpdir/cross1 -T $srcdir/$subdir/cross1.t tmpdir/cross1.o tmpdir/cross2.o" exec_output