This is the mail archive of the
binutils@sourceware.cygnus.com
mailing list for the binutils project.
internal error in ld
- To: binutils at sourceware dot cygnus dot com
- Subject: internal error in ld
- From: Marat Boshernitsan <maratb at CS dot Berkeley dot EDU>
- Date: 14 Mar 2000 16:05:01 -0800
- Cc: abegel at cs dot Berkeley dot EDU
I am hitting an internal error in ld when I try to build a shared
library with --whole-archive option:
/usr/misc/bin/g++ -shared -fPIC -ldl -L/usr/misc/lib -lgc -Wl,-export-dynamic -Wl,--whole-archive -Wl,-soname,liblk.so -o OBJ.x86-unknown-linux/liblk.so util/OBJ.x86-unknown-linux/libutil.a version/OBJ.x86-unknown-linux/libversion.a node/OBJ.x86-unknown-linux/libnode.a language/OBJ.x86-unknown-linux/liblanguage.a grammar/OBJ.x86-unknown-linux/libgrammar.a ilexer/OBJ.x86-unknown-linux/libilexer.a iparser/OBJ.x86-unknown-linux/libiparser.a tv/OBJ.x86-unknown-linux/libtv.a ../common/OBJ.x86-unknown-linux/libcommon.a
/usr/bin/ld: internal error ldlang.c 3757
This error appeared when I changed my compilation to use .a files and
added --whole-archive option to the linker. I first discovered this
using binutils 2.9.1, but since upgraded to 2.9.5.0.29 (from
ftp://ftp.valinux.com/pub/support/hjl/binutils) and the problem is
still there. (I am on RH Linux 6.0, btw).
Looking at the source code (ldlang.c), I discovered that apparently the
assertion "ASSERT (entry->the_bfd->link_next == (bfd *) NULL);" in
ldlang_add_fle() fails, but that's as far as I got.
Any ideas? Thanks,
Marat.