This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: are link errors caused by mixing of versions?
- From: James E Wilson <wilson at specifixinc dot com>
- To: Michael Cieslinski <micis at gmx dot de>
- Cc: gcc at gcc dot gnu dot org
- Date: Sat, 12 Mar 2005 16:18:31 -0800
- Subject: Re: are link errors caused by mixing of versions?
- References: <7091.1110280085@www4.gmx.net>
Michael Cieslinski wrote:
/usr/bin/ld: Warning: size of symbol
`ACE_At_Thread_Exit::~ACE_At_Thread_Exit()' changed from 46 in
.shobj/POSIX_Proactor.o to 48 in .shobj/Proactor.o
This looks like a destructor function name, which means two different
versions of gcc generated different code for the same function, which is
a common occurrence, and not anything to worry about.
`typeinfo name for ACE_Sbrk_Memory_Pool' referenced in section
`.gnu.linkonce.d._ZTI20ACE_Sbrk_Memory_Pool[typeinfo for
ACE_Sbrk_Memory_Pool]' of .shobj/Local_Name_Space.o: defined in discarded
section `.gnu.linkonce.r._ZTS20ACE_Sbrk_Memory_Pool[typeinfo name for
ACE_Sbrk_Memory_Pool]' of .shobj/Priority_Reactor.o
This means we have a link-once data section that has a reference to a
link-once read-only data section, and the read-only data section was
deleted by the linker as unused. This is not good, but it isn't clear
if the mixing of compiler versions had anything to do with this. It is
possible that some ABI change got implemented after the code-freeze was
lifted, thus causing the incompatibility. Or this could be a bug in the
application. Or this could be a lot of other things. We would need
more info.
`vtable for ACE_Sig_Adapter' referenced in section
`.gnu.linkonce.t._ZN15ACE_Sig_AdapterD0Ev[ACE_Sig_Adapter::~ACE_Sig_Adapter()]'
of .shobj/Local_Name_Space.o: defined in discarded section
`.gnu.linkonce.d._ZTV15ACE_Sig_Adapter[vtable for ACE_Sig_Adapter]' of
.shobj/POSIX_Proactor.o
This is a similar case, except that we have a link-once text section
referencing a symbol in a link-once data section, and the data section
was deleted as unused.
/usr/bin/ld: BFD 2.15.91.0.2 20040727 internal error, aborting at
../../bfd/elf64-x86-64.c line 1873 in elf64_x86_64_relocate_section
This is a binutils bug. The linker shouldn't die like this, even if the
compiler created bogus output.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com