[parisc-linux-cvs] lock alignment problem in glibc
Matthew Wilcox
matthew@wil.cx
Sat, 17 Mar 2001 01:43:23 +0000
On Sat, Mar 17, 2001 at 12:18:07PM +1100, Alan Modra wrote:
> On Fri, 16 Mar 2001, Richard Hirst wrote:
>
> > --- dl-fptr.c 2000/10/06 15:20:54 1.6
> > +++ dl-fptr.c 2001/03/16 18:53:06
> > @@ -30,7 +30,7 @@
> > # include <pt-machine.h>
> >
> > /* Remember, we use 0 to mean that a lock is taken on PA-RISC. */
> > -static int __hppa_fptr_lock = 1;
> > +static int __attribute__((aligned(16))) __hppa_fptr_lock = 1;
> > #endif
> >
> > /* Because ld.so is now versioned, these functions can be in their own
>
> Hmm, does that work? All other uses of __attribute__ I've seen apply to
> the variable in question, not the type. Even if it does work, the
> following might be better, simply because it's the usual way to do things.
> Please check before committing though!!! I haven't even compiled this...
Why don't we have...
typedef int lock __attribute__ ((aligned (16)));
and then use
static lock __hppa_fptr_lock = 1;
otherwise this mistake is going to happen over and over again.
--
Revolutions do not require corporate support.