stdio-common: Use clang with bugfix for bug28

The issue that was the cause of hang was fixed in upstream.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
This commit is contained in:
Dmitry Chestnykh 2024-12-24 11:52:35 +03:00 committed by Sam James
parent 0c36c983ec
commit 5a96da210c
No known key found for this signature in database
GPG Key ID: 738409F520DF9190
3 changed files with 61 additions and 4 deletions

42
configure vendored
View File

@ -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; }

View 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,

View 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