> -----Original Message-----
> From: Florian Weimer <fwei...@redhat.com>
> Sent: 06 May 2020 11:28
> To: Kyrylo Tkachov <kyrylo.tkac...@arm.com>
> Cc: Joseph Myers <jos...@codesourcery.com>; Szabolcs Nagy
> <szabolcs.n...@arm.com>; gcc-patches@gcc.gnu.org; Jakub Jelinek
> <ja...@redhat.com>; Richard Biener <richard.guent...@gmail.com>
> Subject: Re: [PATCH][AArch64] Use __getauxval instead of getauxval in LSE
> detection code in libgcc
> 
> * Kyrylo Tkachov:
> 
> > diff --git a/libgcc/config/aarch64/lse-init.c 
> > b/libgcc/config/aarch64/lse-init.c
> > index 74acef25cce..57236610468 100644
> > --- a/libgcc/config/aarch64/lse-init.c
> > +++ b/libgcc/config/aarch64/lse-init.c
> > @@ -29,19 +29,20 @@ see the files COPYING3 and COPYING.RUNTIME
> respectively.  If not, see
> >  _Bool __aarch64_have_lse_atomics
> >    __attribute__((visibility("hidden"), nocommon));
> >
> > -/* Disable initialization of __aarch64_have_lse_atomics during bootstrap.
> */
> > -#if !defined(inhibit_libc) && defined(HAVE_SYS_AUXV_H)
> > -# include <sys/auxv.h>
> > +/* Gate availability of __getauxval on glibc.  All AArch64-supporting glibc
> > +   versions support it.  */
> > +#ifdef __gnu_linux__
> >
> > -/* Disable initialization if the system headers are too old.  */
> > -# if defined(AT_HWCAP) && defined(HWCAP_ATOMICS)
> > +# define AT_HWCAP  16
> > +# define HWCAP_ATOMICS     (1 << 8)
> > +
> > +unsigned long __getauxval (unsigned long);
> >
> >  static void __attribute__((constructor))
> >  init_have_lse_atomics (void)
> >  {
> > -  unsigned long hwcap = getauxval (AT_HWCAP);
> > +  unsigned long hwcap = __getauxval (AT_HWCAP);
> >    __aarch64_have_lse_atomics = (hwcap & HWCAP_ATOMICS) != 0;
> >  }
> >
> > -# endif /* HWCAP */
> > -#endif /* inhibit_libc */
> > +#endif /* __gnu_linux__  */
> 
> GNU style is unsigned long int.

Thanks, I'll fix that.

> 
> Is __gnu_linux__ defined with musl?  It's not really GNU/Linux, after
> all.  musl doesn't have __getauxval IIRC, so it would break the build
> there.

I don't think it does (at least not with a git grep for it in the musl code).
GCC doesn't define it for musl targets either. I see it defined for uclinux for 
arm, not aarch64 though.

Thanks,
Kyrill

> 
> (This is not a review of the patch. 8-)
> 
> Thanks,
> Florian

Reply via email to