Unsupported relocs on Alpha, Was: BFD 2.16.1 "assertion failure" and "internal error"
Daniel Marques
marques@cs.cornell.edu
Tue Jul 19 19:52:00 GMT 2005
>>
>> BFD: BFD 2.16.1 internal error, aborting at
>> ../../binutils-2.16.1/bfd/coff-alpha.c line 635 in alpha_adjust_reloc_in
>
>
> OK - I was able to reproduce this error and I am checking in the
> attached patch to stop the abort. The problem is that the object files
> contain relocs that are not (currently) supported by the linker.
Nick,
If you recall, the two unsupported Alpha relocs were:
> + case ALPHA_R_GPRELHIGH:
> + case ALPHA_R_GPRELLOW:
Unfortunately, both g++ and DEC C++ will generate those reloc types
(though I don't think I've ever seen a C compiler do so), therefore
using objcopy on a .o generated by one of those compilers will cause
that object to link incorrectly -- the application will still link, but
the runtime behavior will be incorrect.
I don't know how much effort it would be to add support for those
relocation types to BFD.
I have found a link to the Compaq Object File, Symbol Table Format
description:
http://161.114.87.216/docs/base_doc/DOCUMENTATION/V50_PDF/SUPP_PDF/OBJSPEC.PDF
The discussion of these two relocation types is on pages 122 - 124 of
that document.
Thanks for all your help.
Dan
More information about the Binutils
mailing list