about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-10-07 18:16:04 -0700
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-04-17 16:12:09 -0300
commitd2765f0fa2c6292ad25cfc6a74b91aa7ec0ea01a (patch)
treeeab2e373187ecd279bd32ff73fad4f98b2c52d1d
parente182dc08d71c8268495acc1a980a7fb57fa84103 (diff)
downloadglibc-d2765f0fa2c6292ad25cfc6a74b91aa7ec0ea01a.tar.gz
glibc-d2765f0fa2c6292ad25cfc6a74b91aa7ec0ea01a.tar.xz
glibc-d2765f0fa2c6292ad25cfc6a74b91aa7ec0ea01a.zip
Disable __USE_EXTERN_INLINES for clang
clang does not allow to redefine attributes after function declaration.
Although it work for external usage, its breaks the build for internal
symbol that glibc provides as optimization (for instance bsearch
with stdlib-bsearch.h or __cmsg_nxthdr).

Disable such optimization for clang while building glibc.
-rw-r--r--include/features.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/features.h b/include/features.h
index d92503dfed..23e29b9f4d 100644
--- a/include/features.h
+++ b/include/features.h
@@ -523,7 +523,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