undefined reference when mixing a.out and ELF object files ?
Vincent Rivière
vincent.riviere@freesbee.fr
Fri May 2 09:17:00 GMT 2008
Nick Clifton wrote:
> Hmm, well the linker fix I mentioned would not help you in this case,
> since the linker would just emit an error message and refuse to link in
> the old libraries.
If is just a test to add somewhere, it would be better than a silent
failure.
> I assume that you do not have the option of recompiling these libraries
> with the new assembler in place, so that they are transformed into ELF
> format ?
When the ELF support will be OK, of course it will be the solution. But
there is quite a lot libraries, and few people. The intermediate
solution of mixing object types would be perfect for making the
transition smoothly. However, for test purposes, it is probably easy to
write a shell script for converting all the libraries in /usr/lib into
the ELF format using objcopy.
> Given that this aout-zero-big format is unsupported I think that
> recompiling the libraries may be the only answer. Sorry.
The a.out-zero-big format is supported by the binutils, moreover it is
the default a.out object file format for m68k (see gas/config/tc-m68k.h).
The problem seems to be present when the undefined symbols are in ELF
object files, when the symbols are defined in a.out files, and when the
output is something other ELF (a.out or "binary").
It is actually an unlucky mix of supported things.
But because it involves a.out, I think I'm on my own :-( :-(
Thanks for your explanations.
--
Vincent Rivière
More information about the Binutils
mailing list