0xffffffff when BFD64
Alan Modra
alan@linuxcare.com.au
Thu Apr 6 21:18:00 GMT 2000
On Fri, 7 Apr 2000, I wrote:
> Alexandre, to get this result your sun compiler apparently is sign
> extending 0xffffffff.
A quick grep over the binutils sources shows many instances of 0xffffffff
being stored in a bfd_vma or bfd_signed_vma. Some of them even have a
FIXME regarding the high bits. How about I move the N_ONES macro from
reloc.c to bfd-in.h, and replace 0xffffffff with N_ONES(32) in all these
cases? N_ONES(32) should give the right result for BFD64 even with
compilers that sign extend 0xffffffff.
I guess we should check all hex constants in the range 0x80000000 to
0xffffffff, replacing them with const & N_ONES(32). Blechh.
Has anyone a better idea?
--
Linuxcare. Support for the Revolution.
More information about the Binutils
mailing list