Ada and x86_64
Robert Dewar
dewar@gnat.com
Wed Aug 28 04:49:00 GMT 2002
> > David Edelsohn <dje@watson.ibm.com> writes:
> >
> >> While knowing nothing about Ada,
> >>
> >> private
> >> type sigset_t is array (0 .. 31) of unsigned_long;
> >> pragma Convention (C, sigset_t);
> >> for sigset_t'Size use 1024;
> >
> > unsigned_long is is 64 bit on x86-64, I think , so the minimum size
> > for the array is indeed 2048 bits. You could change unsigned_long to
> > unsigned_int; this should in 1024 bits on x86-64, too. However, I'm
> > not sure if sigset_t really has this size on x86-64.
>
> The solution we come up with is to use array (0..15) to get 1024
> bytes,
This is only the correct solution if that matches the definition of sigset_t
in C. There is nothing sacred out the size in the size clause. it must be
modified to meet the requirement of matching the C definition.
More information about the Gcc
mailing list