Skip to content

Commit a0704d9

Browse files
committed
Use -finput-charset=ascii only if supported
Check if -finput-charset=ascii is supported before using it in check-installed-headers.sh. Signed-off-by: H.J. Lu <[email protected]> Reviewed-by: Sam James <[email protected]>
1 parent fe925cb commit a0704d9

File tree

6 files changed

+126
-6
lines changed

6 files changed

+126
-6
lines changed

Makefile

+4-2
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,8 @@ libof-check-installed-headers-c := testsuite
546546
$(objpfx)check-installed-headers-c.out: \
547547
scripts/check-installed-headers.sh $(headers)
548548
$(SHELL) $(..)scripts/check-installed-headers.sh c $(supported-fortify) \
549-
"$(CC) $(filter-out -std=%,$(CFLAGS)) -D_ISOMAC $(+includes)" \
549+
"$(CC) $(test-config-cflags-finput-charset-ascii) \
550+
$(filter-out -std=%,$(CFLAGS)) -D_ISOMAC $(+includes)" \
550551
$(headers) > $@; \
551552
$(evaluate-test)
552553

@@ -556,7 +557,8 @@ libof-check-installed-headers-cxx := testsuite
556557
$(objpfx)check-installed-headers-cxx.out: \
557558
scripts/check-installed-headers.sh $(headers)
558559
$(SHELL) $(..)scripts/check-installed-headers.sh c++ $(supported-fortify) \
559-
"$(CXX) $(filter-out -std=%,$(CXXFLAGS)) -D_ISOMAC $(+includes)" \
560+
"$(CXX) $(test-config-cxxflags-finput-charset-ascii) \
561+
$(filter-out -std=%,$(CXXFLAGS)) -D_ISOMAC $(+includes)" \
560562
$(headers) > $@; \
561563
$(evaluate-test)
562564
endif # $(CXX)

Rules

+4-2
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ libof-check-installed-headers-c := testsuite
8686
$(objpfx)check-installed-headers-c.out: \
8787
$(..)scripts/check-installed-headers.sh $(headers)
8888
$(SHELL) $(..)scripts/check-installed-headers.sh c $(supported-fortify) \
89-
"$(CC) $(filter-out -std=%,$(CFLAGS)) -D_ISOMAC $(+includes)" \
89+
"$(CC) $(test-config-cflags-finput-charset-ascii) \
90+
$(filter-out -std=%,$(CFLAGS)) -D_ISOMAC $(+includes)" \
9091
$(headers) > $@; \
9192
$(evaluate-test)
9293

@@ -98,7 +99,8 @@ libof-check-installed-headers-cxx := testsuite
9899
$(objpfx)check-installed-headers-cxx.out: \
99100
$(..)scripts/check-installed-headers.sh $(headers)
100101
$(SHELL) $(..)scripts/check-installed-headers.sh c++ $(supported-fortify) \
101-
"$(CXX) $(filter-out -std=%,$(CXXFLAGS)) -D_ISOMAC $(+includes)" \
102+
"$(CXX) $(test-config-cxxflags-finput-charset-ascii) \
103+
$(filter-out -std=%,$(CXXFLAGS)) -D_ISOMAC $(+includes)" \
102104
$(headers) > $@; \
103105
$(evaluate-test)
104106
endif # $(CXX)

aclocal.m4

+29
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,12 @@ AC_DEFUN([LIBC_TRY_CC_OPTION],
167167
[AS_IF([AC_TRY_COMMAND([${CC-cc} $1 -xc /dev/null -S -o /dev/null])],
168168
[$2], [$3])])
169169

170+
dnl Test a C++ compiler option or options with an empty input file.
171+
dnl LIBC_TRY_CXX_OPTION([options], [action-if-true], [action-if-false])
172+
AC_DEFUN([LIBC_TRY_CXX_OPTION],
173+
[AS_IF([AC_TRY_COMMAND([${CXX-c++} $1 -xc++ /dev/null -S -o /dev/null])],
174+
[$2], [$3])])
175+
170176
dnl Find and source sysdeps/*/preconfigure.
171177
dnl LIBC_PRECONFIGURE([$srcdir], [for])
172178
AC_DEFUN([LIBC_PRECONFIGURE], [dnl
@@ -447,3 +453,26 @@ LIBC_CHECK_TEST_CXX(
447453
fi])
448454
)
449455
rm -f conftest*])
456+
457+
dnl Test a TEST_CC compiler option or options with an empty input file.
458+
dnl LIBC_TRY_TEST_CC_OPTION([message], [options],
459+
dnl [TEST_CC-cache-id], [TEST_CC-action-if-true], [TEST_CC-action-if-false])
460+
AC_DEFUN([LIBC_TRY_TEST_CC_OPTION],
461+
[
462+
LIBC_CHECK_TEST_CC(
463+
AC_CACHE_CHECK([$1 in testing], $3,
464+
[LIBC_TRY_CC_OPTION([$2], [$4], [$5])])
465+
)
466+
])
467+
468+
dnl Test a TEST_CXX compiler option or options with an empty input file.
469+
dnl LIBC_TRY_TEST_CXX_OPTION([message], [options],
470+
dnl [TEST_CXX-cache-id], [TEST_CXX-action-if-true],
471+
dnl [TEST_CXX-action-if-false])
472+
AC_DEFUN([LIBC_TRY_TEST_CXX_OPTION],
473+
[
474+
LIBC_CHECK_TEST_CXX(
475+
AC_CACHE_CHECK([$1 in testing], $3,
476+
[LIBC_TRY_CXX_OPTION([$2], [$4], [$5])])
477+
)
478+
])

configure

+68
Original file line numberDiff line numberDiff line change
@@ -7774,6 +7774,74 @@ config_vars="$config_vars
77747774
cc-option-wimplicit-fallthrough = $libc_cv_cc_wimplicit_fallthrough"
77757775

77767776

7777+
7778+
7779+
saved_CC="$CC"
7780+
CC="$TEST_CC"
7781+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking -finput-charset=ascii in testing" >&5
7782+
printf %s "checking -finput-charset=ascii in testing... " >&6; }
7783+
if test ${libc_cv_test_cflags_finput_charset_ascii+y}
7784+
then :
7785+
printf %s "(cached) " >&6
7786+
else case e in #(
7787+
e) if { ac_try='${CC-cc} -c -Werror -finput-charset=ascii -xc /dev/null -S -o /dev/null'
7788+
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
7789+
(eval $ac_try) 2>&5
7790+
ac_status=$?
7791+
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
7792+
test $ac_status = 0; }; }
7793+
then :
7794+
libc_cv_test_cflags_finput_charset_ascii="-finput-charset=ascii"
7795+
else case e in #(
7796+
e) libc_cv_test_cflags_finput_charset_ascii=
7797+
;;
7798+
esac
7799+
fi ;;
7800+
esac
7801+
fi
7802+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_cflags_finput_charset_ascii" >&5
7803+
printf "%s\n" "$libc_cv_test_cflags_finput_charset_ascii" >&6; }
7804+
7805+
CC="$saved_CC"
7806+
7807+
7808+
config_vars="$config_vars
7809+
test-config-cflags-finput-charset-ascii = $libc_cv_test_cflags_finput_charset_ascii"
7810+
7811+
7812+
7813+
saved_CXX="$CXX"
7814+
CXX="$TEST_CXX"
7815+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking -finput-charset=ascii in testing" >&5
7816+
printf %s "checking -finput-charset=ascii in testing... " >&6; }
7817+
if test ${libc_cv_test_cxxflags_finput_charset_ascii+y}
7818+
then :
7819+
printf %s "(cached) " >&6
7820+
else case e in #(
7821+
e) if { ac_try='${CXX-c++} -c -Werror -finput-charset=ascii -xc++ /dev/null -S -o /dev/null'
7822+
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
7823+
(eval $ac_try) 2>&5
7824+
ac_status=$?
7825+
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
7826+
test $ac_status = 0; }; }
7827+
then :
7828+
libc_cv_test_cxxflags_finput_charset_ascii="-finput-charset=ascii"
7829+
else case e in #(
7830+
e) libc_cv_test_cxxflags_finput_charset_ascii=
7831+
;;
7832+
esac
7833+
fi ;;
7834+
esac
7835+
fi
7836+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_cxxflags_finput_charset_ascii" >&5
7837+
printf "%s\n" "$libc_cv_test_cxxflags_finput_charset_ascii" >&6; }
7838+
7839+
CXX="$saved_CXX"
7840+
7841+
7842+
config_vars="$config_vars
7843+
test-config-cxxflags-finput-charset-ascii = $libc_cv_test_cxxflags_finput_charset_ascii"
7844+
77777845
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libgd" >&5
77787846
printf %s "checking for libgd... " >&6; }
77797847
if test "$with_gd" != "no"; then

configure.ac

+20
Original file line numberDiff line numberDiff line change
@@ -1527,6 +1527,26 @@ LIBC_CONFIG_VAR([cc-option-wimplicit-fallthrough],
15271527
[$libc_cv_cc_wimplicit_fallthrough])
15281528
AC_SUBST(libc_cv_test_cc_wimplicit_fallthrough)
15291529

1530+
dnl Check if TEST_CC supports -finput-charset=ascii.
1531+
LIBC_TRY_TEST_CC_OPTION([-finput-charset=ascii],
1532+
[-c -Werror -finput-charset=ascii],
1533+
libc_cv_test_cflags_finput_charset_ascii,
1534+
[libc_cv_test_cflags_finput_charset_ascii="-finput-charset=ascii"],
1535+
[libc_cv_test_cflags_finput_charset_ascii=]
1536+
)
1537+
LIBC_CONFIG_VAR(test-config-cflags-finput-charset-ascii,
1538+
$libc_cv_test_cflags_finput_charset_ascii)
1539+
1540+
dnl Check if TEST_CXX supports -finput-charset=ascii.
1541+
LIBC_TRY_TEST_CXX_OPTION([-finput-charset=ascii],
1542+
[-c -Werror -finput-charset=ascii],
1543+
libc_cv_test_cxxflags_finput_charset_ascii,
1544+
[libc_cv_test_cxxflags_finput_charset_ascii="-finput-charset=ascii"],
1545+
[libc_cv_test_cxxflags_finput_charset_ascii=]
1546+
)
1547+
LIBC_CONFIG_VAR(test-config-cxxflags-finput-charset-ascii,
1548+
$libc_cv_test_cxxflags_finput_charset_ascii)
1549+
15301550
dnl Check whether we have the gd library available.
15311551
AC_MSG_CHECKING(for libgd)
15321552
if test "$with_gd" != "no"; then

scripts/check-installed-headers.sh

+1-2
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,7 @@ $expanded_lib_mode
130130
#include <$header>
131131
int avoid_empty_translation_unit;
132132
EOF
133-
if $cc_cmd -finput-charset=ascii -fsyntax-only $lang_mode \
134-
"$cih_test_c" 2>&1
133+
if $cc_cmd -fsyntax-only $lang_mode "$cih_test_c" 2>&1
135134
then :
136135
else failed=1
137136
fi

0 commit comments

Comments
 (0)