* 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