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