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