[patch] Add Ada tasking support for hppa-unknown-linux-gnu (take 2)

Arnaud Charlet charlet@adacore.com
Mon May 2 09:54:00 GMT 2005


> > > 3) sigset_t changed to array of unsigned_long.
> > 
> > Could you explain why you changed sigset_t definition ?
> 
> >From bits/sigset.h:
> 
> # define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
> typedef struct
>   {
>       unsigned long int __val[_SIGSET_NWORDS];
>   } __sigset_t;

I understand that, but the previous code used an array of bytes explicitely
to share code between 32 and 64 bit platforms where typically Long_Integer'Size
is different. So unless the underlying structure/alignment is different,
I would stick to the previous definition.

You can check the size and alignment used by compiling the file with -gnatR3

> > Also, the alignment for atomic_lock_t seems wrong to me: you are using
> > 8 * 16, but the alignment is specified in *bytes*, not bits (a usual
> > confusion), so this value seems very high to me. Didn't you mean 16
> > instead ?
> 
> The required alignment is 16 bytes.

So the alignment in the file is indeed wrong and should be 16 rather than
8 * 16

Arno



More information about the Gcc-patches mailing list