This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: /usr/bin/ld: bfd assertion fail elf32-i386.c:1816
- To: José Mª Pérez Cáncer <jose dot perez at upcnet dot es>
- Subject: Re: /usr/bin/ld: bfd assertion fail elf32-i386.c:1816
- From: Alan Modra <amodra at bigpond dot net dot au>
- Date: Wed, 1 Aug 2001 23:02:10 +0930
- Cc: binutils at sourceware dot cygnus dot com
- References: <3B67E3A7.64308F6A@upcnet.es>
On Wed, Aug 01, 2001 at 01:10:31PM +0200, José Mª Pérez Cáncer wrote:
> /usr/bin/ld: bfd assertion fail elf32-i386.c:1816
>
> and then it continues. The resulting shared object crashes ld.so.
>
> Can anyone explain what is that assert detecting.
Without looking at the object files and libraries involved in your link,
I can't say much for sure, but I suspect you have hit a bug in the
handling of symbols that have non-default visibility. The assert in
elf_i386_finish_dynamic_symbol is triggered by h->dynindx == -1, which
implies that (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0,
otherwise the finish_dynamic_symbol function wouldn't have been called.
Can you make all the object files and libraries involved in the link
available to me, other than by posting to the list? (Add -Wl,-t to the
gcc command line, and ld will tell you each of the files.) I'd like to
track this bug down.
You may like to try H.J. Lu's latest binutils too.
ftp://ftp.kernel.org/pub/linux/devel/binutils/
Alan