]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
stdio-common: Use clang with bugfix for bug28
authorDmitry Chestnykh <dm.chestnykh@gmail.com>
Tue, 24 Dec 2024 08:52:35 +0000 (11:52 +0300)
committerSam James <sam@gentoo.org>
Tue, 24 Dec 2024 11:33:33 +0000 (11:33 +0000)
The issue that was the cause of hang was fixed in upstream.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
configure
configure.ac
stdio-common/Makefile

index 052113bceadb023fa07868a0d42c95befbd74421..4f77900818b5cc869e53e588833e373e0621ec93 100755 (executable)
--- a/configure
+++ b/configure
@@ -6069,6 +6069,48 @@ rm -f conftest*
 config_vars="$config_vars
 have-test-clangxx = $libc_cv_test_clangxx"
 
+if test "$libc_cv_test_clang" = "yes"; then
+  conftest_code="
+  #if __clang_major__ > 19
+  #error clang version > 19
+  #endif
+  "
+
+cat > conftest.c <<EOF
+$conftest_code
+EOF
+
+saved_CC="$CC"
+CC="$TEST_CC"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for clang in testing" >&5
+printf %s "checking for clang in testing... " >&6; }
+if test ${libc_cv_test_clang_19_or_less+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)     if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c -o conftest 1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+    then
+      libc_cv_test_clang_19_or_less=yes
+    else
+      libc_cv_test_clang_19_or_less=no
+    fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_clang_19_or_less" >&5
+printf "%s\n" "$libc_cv_test_clang_19_or_less" >&6; }
+
+CC="$saved_CC"
+
+rm -f conftest*
+fi
+config_vars="$config_vars
+have-test-clang-19-or-less = $libc_cv_test_clang_19_or_less"
+
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -fstack-protector" >&5
 printf %s "checking for -fstack-protector... " >&6; }
index fc5ddb8561ab44e3db8b8854e26c8aa9eb80e9cc..5f60b523bb2c9eb594bd5db5a1a2dd3672de3a9d 100644 (file)
@@ -665,6 +665,21 @@ LIBC_TRY_TEST_CXX_COMMAND([for clang++],
 )
 LIBC_CONFIG_VAR([have-test-clangxx], [$libc_cv_test_clangxx])
 
+if test "$libc_cv_test_clang" = "yes"; then
+  conftest_code="
+  #if __clang_major__ > 19
+  #error clang version > 19
+  #endif
+  "
+  LIBC_TRY_TEST_CC_COMMAND([for clang],
+    [$conftest_code],
+    [-c],
+    libc_cv_test_clang_19_or_less,
+    [libc_cv_test_clang_19_or_less=yes], [libc_cv_test_clang_19_or_less=no],
+  )
+fi
+LIBC_CONFIG_VAR([have-test-clang-19-or-less], [$libc_cv_test_clang_19_or_less])
+
 LIBC_TRY_CC_AND_TEST_CC_OPTION([for -fstack-protector],
   [-Werror -fstack-protector],
   libc_cv_ssp,
index 3f84de3e36a00390725a8e9d9a212c149d3491fa..289ea9dc204883f049e731aacc66640a69d4cbe4 100644 (file)
@@ -317,10 +317,10 @@ tests := \
   # tests
 
 # Clang 19 takes a very long time, it ran more than 27 minutes on Intel
-# Core i7-1195G7 before the process was killed, to compile bug28.c:
-# https://github.com/llvm/llvm-project/issues/120462
-# Exclude it when Clang is used for testing.
-ifneq ($(have-test-clang),yes)
+# Core i7-1195G7 before the process was killed, to compile bug28.c
+# The issue was fixed in upstream but check if clang has the version that has the fix
+# https://github.com/llvm/llvm-project/commit/99dddef340e566e9d303010f1219f7d7d6d37a11 .
+ifneq ($(have-test-clang-19-or-less),yes)
 tests += \
   bug28 \
   # tests