[hjl@gnu-mic-1 warn]$ cat foo.c extern void bar (); void foo () { bar (); } [hjl@gnu-mic-1 warn]$ cat bar.c #define linker_warning(x, msg) \ asm(".section .gnu.warning." #x "\n\t.previous"); \ static const char __warn_##x[] \ __attribute__((used, section(".gnu.warning." #x "\n\t#"))) \ = msg void bar (void) {} linker_warning(bar, "Bad bar"); [hjl@gnu-mic-1 warn]$ make /export/build/gnu/gcc-4.6/release/usr/gcc-4.6.1/bin/gcc -O2 -fuse-linker-plugin -flto=jobserver -c -o foo.o foo.c /export/build/gnu/gcc-4.6/release/usr/gcc-4.6.1/bin/gcc -O2 -fuse-linker-plugin -flto=jobserver -c -o bar.o bar.c ar rv libbar.a bar.o ar: creating libbar.a a - bar.o /export/build/gnu/gcc-4.6/release/usr/gcc-4.6.1/bin/gcc -Wl,-e,foo -nostdlib -o x1 foo.o -Wl,--start-group libbar.a -Wl,--end-group foo.o: In function `foo': foo.c:(.text+0x3): warning: Bad bar /export/build/gnu/gcc-4.6/release/usr/gcc-4.6.1/bin/gcc -Wl,-e,foo -nostdlib -O2 -fuse-linker-plugin -flto=jobserver -o x2 foo.o -Wl,--start-group libbar.a -Wl,--end-group collect2: ld terminated with signal 11 [Segmentation fault] make: *** [x2] Error 1 rm bar.o [hjl@gnu-mic-1 warn]$ Program received signal SIGSEGV, Segmentation fault. 0x000000000045011d in bfd_generic_link_read_symbols (abfd=0x80a588) at /export/gnu/import/git/binutils-lto/bfd/linker.c:755 755 symsize = bfd_get_symtab_upper_bound (abfd); Missing separate debuginfos, use: debuginfo-install glibc-2.13.90-11.1.f14.x86_64 zlib-1.2.5-2.fc14.x86_64 (gdb) bt #0 0x000000000045011d in bfd_generic_link_read_symbols (abfd=0x80a588) at /export/gnu/import/git/binutils-lto/bfd/linker.c:755 #1 0x000000000041e058 in warning_callback (info=0x7c5a40, warning=0x817b40 "Bad bar", symbol=0x7f6c65 "bar", abfd=0x80a588, section=0x0, address=0) at /export/gnu/import/git/binutils-lto/ld/ldmain.c:1197 #2 0x0000000000451a43 in _bfd_generic_link_add_one_symbol (info=0x7c5a40, abfd=0x7fa4c0, name=0x815241 "bar", flags=4096, section=0x816788, value=0, string=0x817b40 "Bad bar", copy=0, collect=0, hashp=0x0) at /export/gnu/import/git/binutils-lto/bfd/linker.c:1920 #3 0x000000000048affd in elf_link_add_object_symbols (abfd=0x7fa4c0, info=0x7c5a40) at /export/gnu/import/git/binutils-lto/bfd/elflink.c:3481 #4 0x000000000048eefa in bfd_elf_link_add_symbols (abfd=0x7fa4c0, info=0x7c5a40) at /export/gnu/import/git/binutils-lto/bfd/elflink.c:5150 #5 0x0000000000410260 in load_symbols (entry=0x7da0c0, place=0x7fffffffdb70) at /export/gnu/import/git/binutils-lto/ld/ldlang.c:2822 #6 0x0000000000410e19 in open_input_bfds (s=0x7da0c0, mode=OPEN_BFD_NORMAL) at /export/gnu/import/git/binutils-lto/ld/ldlang.c:3269 #7 0x0000000000416c2c in lang_process () at /export/gnu/import/git/binutils-lto/ld/ldlang.c:6566 #8 0x000000000041c791 in main (argc=25, argv=0x7fffffffddb8) at /export/gnu/import/git/binutils-lto/ld/ldmain.c:438 (gdb) p *h $1 = {root = {next = 0x0, string = 0x7f6c65 "bar", hash = 43167049}, type = bfd_link_hash_undefweak, non_ir_ref = 0, u = {undef = {next = 0x0, abfd = 0x80a588, weak = 0x0}, def = {next = 0x0, section = 0x80a588, value = 0}, i = {next = 0x0, link = 0x80a588, warning = 0x0}, c = { next = 0x0, p = 0x80a588, size = 0}}} (gdb) p h->u.undef.abfd->filename $2 = 0x34 <Address 0x34 out of bounds> (gdb) p h->u.def.section->owner->filename $3 = 0x7fa150 "bar.o (symbol from plugin)" (gdb)
This seems to work: diff --git a/ld/plugin.c b/ld/plugin.c index 8425fa3..2cf1fc2 100644 --- a/ld/plugin.c +++ b/ld/plugin.c @@ -940,12 +940,19 @@ plugin_notice (struct bfd_link_info *info, definition, and strong symbols will normally cause multiple definition errors. Avoid this by making the symbol appear to be undefined. */ - else if (((h->type == bfd_link_hash_defweak + else if ((h->type == bfd_link_hash_defweak || h->type == bfd_link_hash_defined) && is_ir_dummy_bfd (h->u.def.section->owner)) - || (h->type == bfd_link_hash_common - && is_ir_dummy_bfd (h->u.c.p->section->owner))) - h->type = bfd_link_hash_undefweak; + { + h->u.undef.abfd = h->u.def.section->owner; + h->type = bfd_link_hash_undefweak; + } + else if (h->type == bfd_link_hash_common + && is_ir_dummy_bfd (h->u.c.p->section->owner)) + { + h->u.undef.abfd = h->u.c.p->section->owner; + h->type = bfd_link_hash_undefweak; + } } /* Continue with cref/nocrossref/trace-sym processing. */
To get proper linker warnings, plugin dummy should include those .gnu.warning sections.
CVSROOT: /cvs/src Module name: src Branch: binutils-2_21-branch Changes by: amodra@sourceware.org 2011-05-16 00:54:45 Modified files: ld : ChangeLog plugin.c Log message: PR ld/12760 * plugin.c (plugin_notice): Set u.undef.abfd for symbols made undefweak. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.2222.2.22&r2=1.2222.2.23 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/plugin.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.7.2.4&r2=1.7.2.5
CVSROOT: /cvs/src Module name: src Changes by: amodra@sourceware.org 2011-05-16 00:58:11 Modified files: ld : ChangeLog plugin.c Log message: PR ld/12760 * plugin.c (plugin_notice): Set u.undef.abfd for symbols made undefweak. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ChangeLog.diff?cvsroot=src&r1=1.2332&r2=1.2333 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/plugin.c.diff?cvsroot=src&r1=1.33&r2=1.34
The patch I've committed isn't a full fix, since it results in a warning being emitted when the real object file defines the warning symbol. This is too early. The symbol may not even be referenced in the real object file.
(In reply to comment #5) > The patch I've committed isn't a full fix, since it results in a warning being > emitted when the real object file defines the warning symbol. This is too > early. The symbol may not even be referenced in the real object file. I am using: diff --git a/ld/ldmain.c b/ld/ldmain.c index 8647e36..84ac2ae 100644 (file) --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -1187,7 +1187,7 @@ warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED, einfo ("%P: %s%s\n", _("warning: "), warning); else if (symbol == NULL) einfo ("%B: %s%s\n", abfd, _("warning: "), warning); - else + else if ((abfd->flags & BFD_PLUGIN) == 0) { struct warning_callback_info cinfo; It doesn't make any senses to issue warning against plugin dummy.
modified bar.c testing other warning sym cases #define linker_warning(x, msg) \ asm(".section .gnu.warning." #x "\n\t.previous"); \ static const char __warn_##x[] \ __attribute__((used, section(".gnu.warning." #x "\n\t#"))) \ = msg volatile int x; void bar (void) { x++; } linker_warning(bar, "should warn about bar"); void notcalled (void) { x--; } linker_warning(notcalled, "linker bug, should not warn about notcalled"); linker_warning(notdef, "linker bug, should not warn about notdef");
(In reply to comment #7) > modified bar.c testing other warning sym cases > > #define linker_warning(x, msg) \ > asm(".section .gnu.warning." #x "\n\t.previous"); \ > static const char __warn_##x[] \ > __attribute__((used, section(".gnu.warning." #x "\n\t#"))) \ > = msg There is a typo in linker_warning. Please change it to #define linker_warning(x, msg) \ static const char __warn_##x[] \ __attribute__((used, section(".gnu.warning." #x))) \ = msg
CVSROOT: /cvs/src Module name: src Changes by: amodra@sourceware.org 2011-05-17 13:02:18 Modified files: include : ChangeLog bfdlink.h bfd : ChangeLog coff-aux.c elflink.c linker.c ld : ChangeLog ldmain.c plugin.c Log message: PR ld/12760 include/ * bfdlink.h (struct bfd_link_callbacks <notice>): Add "flags" and "string" param. bfd/ * coff-aux.c (coff_m68k_aux_link_add_one_symbol): Adjust "notice" call. * elflink.c (elf_link_add_object_symbols): Likewise. * linker.c (_bfd_generic_link_add_one_symbol): Likewise. ld/ * ldmain.c (notice): Add "flags" and "string" param. * plugin.c (plugin_notice): Likewise. Handle indirect, warning and constructor syms. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/include/ChangeLog.diff?cvsroot=src&r1=1.532&r2=1.533 http://sourceware.org/cgi-bin/cvsweb.cgi/src/include/bfdlink.h.diff?cvsroot=src&r1=1.86&r2=1.87 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.5344&r2=1.5345 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/coff-aux.c.diff?cvsroot=src&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elflink.c.diff?cvsroot=src&r1=1.403&r2=1.404 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/linker.c.diff?cvsroot=src&r1=1.82&r2=1.83 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ChangeLog.diff?cvsroot=src&r1=1.2334&r2=1.2335 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ldmain.c.diff?cvsroot=src&r1=1.154&r2=1.155 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/plugin.c.diff?cvsroot=src&r1=1.34&r2=1.35
CVSROOT: /cvs/src Module name: src Branch: binutils-2_21-branch Changes by: amodra@sourceware.org 2011-05-29 04:51:53 Modified files: bfd : ChangeLog aoutx.h archive.c bfd-in2.h bfdio.c coff-aux.c coffcode.h coffgen.c cofflink.c config.in configure configure.in dwarf2.c elf-bfd.h elf-m10300.c elf.c elf32-ppc.c elf32-rx.c elf64-ppc.c elflink.c elfxx-ia64.c libbfd.c linker.c peXXigen.c vms-alpha.c bfd/hosts : x86-64linux.h binutils : ChangeLog nm.c objcopy.c binutils/doc : binutils.texi binutils/testsuite: ChangeLog binutils/testsuite/binutils-all: nm.exp binutils/testsuite/lib: utils-lib.exp gas : ChangeLog dwarf2dbg.c input-scrub.c messages.c read.c gas/config : obj-elf.h tc-arc.c tc-d10v.h tc-d30v.h tc-m32r.h gas/testsuite : ChangeLog gas/testsuite/gas/i386: inval-equ-2.l gas/testsuite/gas/symver: symver2.l include : ChangeLog ansidecl.h bfdlink.h ld : ChangeLog ldexp.c ldlang.c ldlex.l ldmain.c plugin.c ld/emultempl : elf32.em pe.em pep.em ld/scripttempl : pe.sc pep.sc ld/testsuite : ChangeLog ld/testsuite/ld-cris: tls-e-tpoffcomm1.d ld/testsuite/ld-plugin: plugin-7.d plugin-8.d Log message: PR 12365 PR 12613 PR 12632 PR 12739 PR 12753 PR 12760 PR 12763 Apply fix from mainline along with assorted other small fixes. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.5180.2.34&r2=1.5180.2.35 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/aoutx.h.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.84.2.1&r2=1.84.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/archive.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.69.2.3&r2=1.69.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/bfd-in2.h.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.522.2.2&r2=1.522.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/bfdio.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.27&r2=1.27.4.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/coff-aux.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.10.10.1&r2=1.10.10.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/coffcode.h.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.171&r2=1.171.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/coffgen.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.78&r2=1.78.4.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/cofflink.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.74.2.1&r2=1.74.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/config.in.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.48&r2=1.48.4.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/configure.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.339.2.4&r2=1.339.2.5 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/configure.in.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.287.2.4&r2=1.287.2.5 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/dwarf2.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.138&r2=1.138.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf-bfd.h.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.313.2.2&r2=1.313.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf-m10300.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.106&r2=1.106.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.524.2.2&r2=1.524.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf32-ppc.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.290.2.3&r2=1.290.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf32-rx.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.5.2.1&r2=1.5.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf64-ppc.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.339.2.10&r2=1.339.2.11 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elflink.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.388.2.2&r2=1.388.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elfxx-ia64.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.228.2.1&r2=1.228.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/libbfd.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.53.2.1&r2=1.53.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/linker.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.77.2.2&r2=1.77.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/peXXigen.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.67&r2=1.67.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/vms-alpha.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.37.2.1&r2=1.37.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/hosts/x86-64linux.h.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.2&r2=1.2.4.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.1708.2.9&r2=1.1708.2.10 http://sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/nm.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.65&r2=1.65.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/objcopy.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.147.2.1&r2=1.147.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/doc/binutils.texi.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.173.2.1&r2=1.173.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/testsuite/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.216.2.2&r2=1.216.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/testsuite/binutils-all/nm.exp.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.5&r2=1.5.4.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/binutils/testsuite/lib/utils-lib.exp.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.20.2.1&r2=1.20.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.4320.2.29&r2=1.4320.2.30 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/dwarf2dbg.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.107&r2=1.107.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/input-scrub.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.23&r2=1.23.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/messages.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.23&r2=1.23.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/read.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.167.2.2&r2=1.167.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/obj-elf.h.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.38&r2=1.38.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-arc.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.47&r2=1.47.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-d10v.h.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.20&r2=1.20.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-d30v.h.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.15&r2=1.15.4.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-m32r.h.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.23&r2=1.23.4.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.1802.2.11&r2=1.1802.2.12 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/i386/inval-equ-2.l.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.1&r2=1.1.12.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/symver/symver2.l.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.1&r2=1.1.38.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/include/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.510.2.2&r2=1.510.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/include/ansidecl.h.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.28&r2=1.28.6.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/include/bfdlink.h.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.82.2.1&r2=1.82.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.2222.2.23&r2=1.2222.2.24 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ldexp.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.87.2.2&r2=1.87.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ldlang.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.347.2.5&r2=1.347.2.6 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ldlex.l.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.47.2.2&r2=1.47.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/ldmain.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.145.2.3&r2=1.145.2.4 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/plugin.c.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.7.2.5&r2=1.7.2.6 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/emultempl/elf32.em.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.214.2.1&r2=1.214.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/emultempl/pe.em.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.162.2.2&r2=1.162.2.3 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/emultempl/pep.em.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.38.2.1&r2=1.38.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/scripttempl/pe.sc.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.24&r2=1.24.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/scripttempl/pep.sc.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.13&r2=1.13.2.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ChangeLog.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.1322.2.12&r2=1.1322.2.13 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-cris/tls-e-tpoffcomm1.d.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.1&r2=1.1.6.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-plugin/plugin-7.d.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.1.2.1&r2=1.1.2.2 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-plugin/plugin-8.d.diff?cvsroot=src&only_with_tag=binutils-2_21-branch&r1=1.1.2.1&r2=1.1.2.2
Fixed as well as can be, I think
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "gdb and binutils". The branch, master has been updated via 4c6d802e592b3762a149c343bc5722e065e57841 (commit) from 6a631e86cfc2ddd979f9dc4b4da01133d9d3610f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=4c6d802e592b3762a149c343bc5722e065e57841 commit 4c6d802e592b3762a149c343bc5722e065e57841 Author: H.J. Lu <hjl.tools@gmail.com> Date: Wed Mar 26 12:18:59 2014 -0700 Scan all input files for symbol reference warning This patch scans all input files for symbol reference warning if the symbol reference doesn't exist in the current input file. ld/ PR ld/16756 * ldmain.c (symbol_warning): New function. (warning_callback): Use it. Scan all input files for a reference to SYMBOL. ld/testsuite/ PR ld/16756 * ld-plugin/lto.exp: Expect filename and line number for PR ld/12760 test. ----------------------------------------------------------------------- Summary of changes: ld/ChangeLog | 7 ++++ ld/ldmain.c | 43 ++++++++++++++++---------- ld/testsuite/ChangeLog | 64 ++++++++++++++++++++++------------------ ld/testsuite/ld-plugin/lto.exp | 4 +- 4 files changed, 70 insertions(+), 48 deletions(-)