size of bfd_vma

Ian Lance Taylor ian@airs.com
Fri Jul 15 17:30:00 GMT 2005


Nick Clifton <nickc@redhat.com> writes:

> Hi Mohamed,
> 
> > I have already dad a look to bfd/bfd-in.h and what I understood that
> > the bfd_vma type is defined as an "unsigned long" on 32 bits machine
> > and as an "unsigned long long" on 64 ones;
> > Am I correct?
> 
> Not quite.  A bfd_vma is defined as a BFD_HOST_U_64_BIT type which is
> computed by the configure script as whatever C type can hold an
> unsigned 64-bit value.  Thus on a 32-bit host it will be a "unsigned
> long long" and on a 64-bit host it will be an "unsigned long".  Either
> way a bfd_vma is a 64-bit unsigned value.

Not always.  bfd_vma will be a 32-bit unsigned value if:

1) unsigned long on the host is 32 bits;
2) none of the targets require 64 bits, as set by either:
   a) want64=true in config.bfd;
   b) target_size=64 in configure.in
3) the user did not configure with --enable-64-bit-bfd

Ian



More information about the Binutils mailing list