* 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.

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.

(This is not a review of the patch. 8-)

Thanks,
Florian

Reply via email to