This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Unsupported relocs on Alpha, Was: BFD 2.16.1 "assertion failure"and "internal error"




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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]