On Tue, Jun 7, 2011 at 2:08 AM, Alan Modra <amo...@gmail.com> wrote: > On Mon, Jun 06, 2011 at 03:41:14PM -0700, Roland McGrath wrote: >> Consider: >> >> % head ref.s def.s >> ==> ref.s <== >> .data >> ptrsym: >> .long badsym >> >> .section .gnu.warning.badsym,"",@progbits >> .string "badsym warning" >> >> ==> def.s <== >> .comm badsym,4 >> % as --32 -o ref.o ref.s >> % as --32 -o def.o def.s >> % ar cqs def.a def.o >> % ./ld/ld-new -m elf_i386 -o foo ref.o def.a >> ref.o: In function `ptrsym': >> (.data+0x0): warning: badsym warning >> ./ld/ld-new: warning: cannot find entry symbol _start; defaulting to >> 0000000008048054 >> ref.o: In function `ptrsym': >> (.data+0x0): undefined reference to `badsym' >> [Exit 1] >> % > > I think you've managed to hit two bugs. I'll commit the following > after some testing. > > bfd/ > * elflink.c (_bfd_elf_archive_symbol_lookup): Follow warning and > indirect links here. > ld/ > * ldlang.c (lang_one_common): Handle warning symbols. > I checked in this testcase.
Thanks. -- H.J. --- diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 5ee6f44..31d542d 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2011-06-07 H.J. Lu <hongjiu...@intel.com> + + * ld-elf/elf.exp: Build symbol3.a and symbol3w.a. + + * ld-elf/symbol3.s: New. + * ld-elf/symbol3w.s: Likewise. + * ld-elf/warn3.d: Likewise. + 2011-06-02 Nathan Sidwell <nat...@codesourcery.com> Adjust tests for zero offset formatting. diff --git a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp index b9ff0bd..e991f83 100644 --- a/ld/testsuite/ld-elf/elf.exp +++ b/ld/testsuite/ld-elf/elf.exp @@ -40,6 +40,15 @@ if { [is_remote host] } then { remote_download host merge.ld } +run_ld_link_tests { + {"Build symbol3.a" + "" "" + {symbol3.s} {} "symbol3.a"} + {"Build symbol3w.a" + "" "" + {symbol3w.s} {} "symbol3w.a"} +} + set test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]] foreach t $test_list { # We need to strip the ".d", but can leave the dirname. diff --git a/ld/testsuite/ld-elf/symbol3.s b/ld/testsuite/ld-elf/symbol3.s new file mode 100644 index 0000000..4fd76d5 --- /dev/null +++ b/ld/testsuite/ld-elf/symbol3.s @@ -0,0 +1 @@ + .comm badsym,4 diff --git a/ld/testsuite/ld-elf/symbol3w.s b/ld/testsuite/ld-elf/symbol3w.s new file mode 100644 index 0000000..33262a6 --- /dev/null +++ b/ld/testsuite/ld-elf/symbol3w.s @@ -0,0 +1,4 @@ + .data + .dc.a badsym + .section .gnu.warning.badsym,"",%progbits + .string "badsym warning" diff --git a/ld/testsuite/ld-elf/warn3.d b/ld/testsuite/ld-elf/warn3.d new file mode 100644 index 0000000..c99618d --- /dev/null +++ b/ld/testsuite/ld-elf/warn3.d @@ -0,0 +1,15 @@ +#source: start.s +#ld: tmpdir/symbol3w.o tmpdir/symbol3.a +#warning: .*: warning: badsym warning$ +#readelf: -s +#notarget: "sparc64-*-solaris2*" "sparcv9-*-solaris2*" +#xfail: arc-*-* d30v-*-* dlx-*-* fr30-*-* frv-*-elf i860-*-* i960-*-* +#xfail: iq*-*-* mn10200-*-* moxie-*-* msp*-*-* mt-*-* or32-*-* pj*-*-* +# if not using elf32.em, you don't get fancy section handling + +# Check that warnings are generated for the symbols in .gnu.warning +# construct and that the symbol still appears as expected. + +#... + +[0-9]+: +[0-9a-f]+ +4 +OBJECT +GLOBAL +DEFAULT +[1-9] badsym +#pass _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils