ARM bfd Error: cannot represent BFD_RELOC_ARM_MOVW relocation in this object file format
Nick Clifton
nickc@redhat.com
Fri Jul 16 14:22:00 GMT 2010
Hi Pavel,
> I'm using cegcc (compiler for windows mobile) and if I compile for armv7 then I'll get everywhere tons off errors from assembler that
> Error: cannot represent BFD_RELOC_ARM_MOVW relocation in this object file format
> Error: cannot represent BFD_RELOC_ARM_MOVT relocation in this object file format
>
> This is because gcc generates movw/movt sequence instead of using a constant pool.
Which suggests that gcc could also be at fault for generating these
instructions for a target which does not support them in this particular
usage. But anyway...
> Windows loader supports IMAGE_REL_BASED_HIGH and be IMAGE_REL_BASED_LOW which seems to be perfect match for BFD_RELOC_ARM_MOVW/BFD_RELOC_ARM_MOVT.
>
> So, my question is: how can I teach bfd/binutils to generate that kind of relocs for wince/arm-pe?
First you need to pick two numbers for these relocations. Using the
same numbers as IMAGE_REL_BASED_HIGH and IMAGE_REL_BASED_LOW would seem
to be ideal. Then you need to edit bfd/coff-arm.c and add support for
these two new relocs. (Note - you are working with COFF based support
files here not ELF based ones. That is probably why you did not find
the code yourself).
Cheers
Nick
More information about the Binutils
mailing list