Misleading linker message

Geoff Keating geoffk@geoffk.org
Fri Nov 16 05:10:00 GMT 2001
> Date: Fri, 30 Nov 2001 13:20:43 -0800
> From: "H . J . Lu" <hjl@lucon.org>

> # cat foo.c
> extern void bar ();
> 
> void (*func) () = bar;
> 
> _start ()
> {
> }
> # gcc -g foo.c -c
> # ld -o static foo.o
> foo.o: In function `_start':
> /home/hjl/bugs/gas/discard3/foo.c:6: undefined reference to `bar'
> 
> The line number is totally wrong. In the case of the Linux kernel, ld
> reports the undefined reference in a totally unrelated source file.

Try it with DWARF2; there are long-standing bugs with stabs and
changing sections.  I think GCC already has a testcase, perhaps
g++.law/instantiate2.C?

-- 
- Geoffrey Keating <geoffk@geoffk.org> <geoffk@redhat.com>



More information about the Binutils mailing list