ld: BFD 2.15.92.0.2 20040927 internal error, aborting at ../../bfd/elf32-i386.c line 2262 in elf_i386_relocate_section

David Lawless lawless@spamcop.net
Fri Jul 15 19:53:00 GMT 2005


I've just encountered the above error.  Before I spend a lot of 
time creating a test case (which I'll happily do), I want to ask 
if what I'm doing is sane or stupid.

I want to create a '.so' shared library that exposes a limited
set of C++ interface symbols and hides all the magic that makes
it work.  The way I'm approaching it is to have abstract
base classes (sometimes with a little implementation code)
in separate object files from the derived class implementation
code.  Then I use the

   objcopy -w -L '[ -~]*' file.o

command on the implementation objects to convert all the symbols 
into LOCAL symbols in the hope that 'ld' will omit them from the 
final '.so' image.  When I attempt to link the '.so', I get the 
error in the subject of this messages.  I'm running Centos 4.1 
yummed to the latest as of about a week ago.  'binutils' are 
from Centos, and the compiler is vanilla gcc/g++ 4.0.1.

Is this the correct approach?  Or am I missing some important
detail, such as not making certain symbols LOCAL?  Or am I
on entirely the wrong path for obtain my objective?

I'm not on the mailing lists, so please CC me on any replies.

Thanks,

David



More information about the Binutils mailing list