This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Misleading linker message
- From: Geoff Keating <geoffk at geoffk dot org>
- To: hjl at lucon dot org
- Cc: binutils at sourceware dot cygnus dot com
- Date: Fri, 30 Nov 2001 13:52:28 -0800
- Subject: Re: Misleading linker message
- References: <20011130132043.A4575@lucon.org>
- Reply-to: Geoff Keating <geoffk at redhat dot com>
> 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>