This is the mail archive of the
binutils@sourceware.cygnus.com
mailing list for the binutils project.
Re: bfd_find_nearest_line() breakage on Linux
Ian Lance Taylor <ian@zembu.com> writes:
> From: Owen Taylor <otaylor@redhat.com>
> Date: 08 May 2000 20:41:13 -0400
>
> It appears that bfd_find_nearest_line() is currently non-functional on
> Linux - the problem is that the address is no longer written with
> function symbols in the stabs section, and
> _bfd_stab_section_find_nearest_line() can't deal with this.
>
> This is easily reproduced with 'objdump -l' on a shared library.
>
> I'm not quite sure when the breakage occured. It was, I think,
> somewhere between binutils-2.9.1.0.23, contained in Red Hat 6.1, and
> binutils-2.9.5.0.22 contained in Red Hat 6.2.
>
> Is the problem fixed by this patch?
>
> 2000-04-20 H.J. Lu <hjl@gnu.org>
>
> * elf32-i386.c (elf_i386_relocate_section): Restrict 1998-12-10
> patch to symbols defined by a shared object.
> * elf32-ppc.c (ppc_elf_relocate_section): Similarly.
Hmmm, yes, if I recompile one of the so's with the latest binutils
it does seem to fix things.
Unfortunately, it is fixed on the "wrong end" - that is, objdump -dl
and memprof still don't work correctly on anything compiled with
intermediate versions of binutils.
It probably doesn't really matter for objdump, and, if necessary, I
can copy the find_nearest_line() code into memprof and hack it around
there. (Without having to worry about portability, etc.)
Thanks for the response,
Owen