[PATCH 03/59] Disable __USE_EXTERN_INLINES for clang

Sam James sam@gentoo.org
Mon Oct 20 19:37:00 GMT 2025


Adhemerval Zanella <adhemerval.zanella@linaro.org> writes:

> clang does not allow to redefine attributes after function declaration.
> Although it work for external usage, its breaks the build for internal

it breaks

> symbol that glibc provides as optimization (for instance bsearch
> with stdlib-bsearch.h or __cmsg_nxthdr).

Reviewed-by: Sam James <sam@gentoo.org>

>
> Disable such optimization for clang while building glibc.
> ---
>  include/features.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/features.h b/include/features.h
> index 03b83cd34c..673c4036cd 100644
> --- a/include/features.h
> +++ b/include/features.h
> @@ -536,7 +536,7 @@
>  /* Decide whether we can define 'extern inline' functions in headers.  */
>  #if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
>      && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__ \
> -    && defined __extern_inline
> +    && defined __extern_inline && !(defined __clang__ && defined _LIBC)
>  # define __USE_EXTERN_INLINES	1
>  #endif


More information about the Libc-alpha mailing list