The ia64 linker problems.

Jim Wilson wilson@cygnus.com
Wed Feb 7 16:06:00 GMT 2001


>Err.. there must be a bug elsewhere.  There _must_ be a 
>relocation type.

This looks like an ABI problem to me.

The 0 reloc is coming from tc-ia64.c operand_match() for case IA64_OPND_TAG13
and IA64_OPND_TAG13b.  Looking at the ABI, I can't see any reloc for these
13-bit tag fields.  Perhaps the ABI assumption is that these must always be
resolved at assembly time, and hence do not require external relocs.  However,
bfd isn't going to resolve a symbol reference here unless I have an internal
reloc.  Should I try to create an internal reloc with no corresponding external
reloc?  Or should I report this as a bug to the ABI committee?

At the moment, we are effectively creating R_IA_64_NONE relocs, which "works",
but does not give the result that the programmer intended, because the tag
field is always set to zero.

Jim


More information about the Binutils mailing list