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