Require CET support only for the final GCC build

With --enable-cet, require CET support only for the final GCC build.
Don't enable CET without CET support for non-bootstrap build, in stage1
nor for build support.

config/

	PR bootstrap/96202
	* cet.m4 (GCC_CET_HOST_FLAGS): Don't enable CET without CET
	support in stage1 nor for build support.

gcc/

	PR bootstrap/96202
	* configure: Regenerated.

libbacktrace/

	PR bootstrap/96202
	* configure: Regenerated.

libcc1/

	PR bootstrap/96202
	* configure: Regenerated.

libcpp/

	PR bootstrap/96202
	* configure: Regenerated.

libdecnumber/

	PR bootstrap/96202
	* configure: Regenerated.

libiberty/

	PR bootstrap/96202
	* configure: Regenerated.

lto-plugin/

	PR bootstrap/96202
	* configure: Regenerated.
This commit is contained in:
H.J. Lu 2020-07-15 06:16:01 -07:00
parent 9e67b4356e
commit 4712bde3ca
8 changed files with 146 additions and 40 deletions

View file

@ -13,7 +13,7 @@ case "$host" in
case "$enable_cet" in
auto)
# Check if target supports multi-byte NOPs
# and if assembler supports CET insn.
# and if compiler and assembler support CET insn.
cet_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -fcf-protection"
AC_COMPILE_IFELSE(
@ -70,7 +70,7 @@ case "$host" in
case "$enable_cet" in
auto)
# Check if target supports multi-byte NOPs
# and if assembler supports CET insn.
# and if compiler and assembler support CET.
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[],
@ -85,13 +85,26 @@ asm ("setssbsy");
[enable_cet=no])
;;
yes)
# Check if assembler supports CET.
# Check if compiler and assembler support CET.
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[],
[asm ("setssbsy");])],
[],
[AC_MSG_ERROR([assembler with CET support is required for --enable-cet])])
[support_cet=yes],
[support_cet=no])
if test $support_cet = "no"; then
if test x$enable_bootstrap != xno \
&& test -z "${with_build_subdir}" \
&& (test ! -f ../stage_current \
|| test `cat ../stage_current` != "stage1"); then
# Require CET support only for the final GCC build.
AC_MSG_ERROR([compiler and assembler with CET support are required for --enable-cet])
else
# Don't enable CET without CET support for non-bootstrap
# build, in stage1 nor for build support.
enable_cet=no
fi
fi
;;
esac
CFLAGS="$cet_save_CFLAGS"

31
gcc/configure vendored
View file

@ -785,10 +785,10 @@ manext
LIBICONV_DEP
LTLIBICONV
LIBICONV
ZSTD_LIB
ZSTD_INCLUDE
ZSTD_LDFLAGS
ZSTD_CPPFLAGS
ZSTD_LIB
ZSTD_INCLUDE
DL_LIB
LDEXP_LIB
EXTRA_GCC_LIBS
@ -9978,6 +9978,8 @@ ZSTD_LIB=
ZSTD_CPPFLAGS=
ZSTD_LDFLAGS=
# Check whether --with-zstd was given.
if test "${with_zstd+set}" = set; then :
withval=$with_zstd;
@ -19021,7 +19023,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 19022 "configure"
#line 19026 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -19127,7 +19129,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 19128 "configure"
#line 19132 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -30786,7 +30788,7 @@ case "$host" in
case "$enable_cet" in
auto)
# Check if target supports multi-byte NOPs
# and if assembler supports CET insn.
# and if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -30812,7 +30814,7 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
yes)
# Check if assembler supports CET.
# Check if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -30825,11 +30827,24 @@ asm ("setssbsy");
}
_ACEOF
if ac_fn_cxx_try_compile "$LINENO"; then :
support_cet=yes
else
as_fn_error $? "assembler with CET support is required for --enable-cet" "$LINENO" 5
support_cet=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test $support_cet = "no"; then
if test x$enable_bootstrap != xno \
&& test -z "${with_build_subdir}" \
&& (test ! -f ../stage_current \
|| test `cat ../stage_current` != "stage1"); then
# Require CET support only for the final GCC build.
as_fn_error $? "compiler and assembler with CET support are required for --enable-cet" "$LINENO" 5
else
# Don't enable CET without CET support for non-bootstrap
# build, in stage1 nor for build support.
enable_cet=no
fi
fi
;;
esac
CFLAGS="$cet_save_CFLAGS"

View file

@ -12169,7 +12169,7 @@ case "$host" in
case "$enable_cet" in
auto)
# Check if target supports multi-byte NOPs
# and if assembler supports CET insn.
# and if compiler and assembler support CET insn.
cet_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -fcf-protection"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@ -12409,7 +12409,7 @@ case "$host" in
case "$enable_cet" in
auto)
# Check if target supports multi-byte NOPs
# and if assembler supports CET insn.
# and if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -12435,7 +12435,7 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
yes)
# Check if assembler supports CET.
# Check if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -12448,11 +12448,24 @@ asm ("setssbsy");
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
support_cet=yes
else
as_fn_error $? "assembler with CET support is required for --enable-cet" "$LINENO" 5
support_cet=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test $support_cet = "no"; then
if test x$enable_bootstrap != xno \
&& test -z "${with_build_subdir}" \
&& (test ! -f ../stage_current \
|| test `cat ../stage_current` != "stage1"); then
# Require CET support only for the final GCC build.
as_fn_error $? "compiler and assembler with CET support are required for --enable-cet" "$LINENO" 5
else
# Don't enable CET without CET support for non-bootstrap
# build, in stage1 nor for build support.
enable_cet=no
fi
fi
;;
esac
CFLAGS="$cet_save_CFLAGS"

21
libcc1/configure vendored
View file

@ -14565,7 +14565,7 @@ case "$host" in
case "$enable_cet" in
auto)
# Check if target supports multi-byte NOPs
# and if assembler supports CET insn.
# and if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -14591,7 +14591,7 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
yes)
# Check if assembler supports CET.
# Check if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -14604,11 +14604,24 @@ asm ("setssbsy");
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
support_cet=yes
else
as_fn_error $? "assembler with CET support is required for --enable-cet" "$LINENO" 5
support_cet=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test $support_cet = "no"; then
if test x$enable_bootstrap != xno \
&& test -z "${with_build_subdir}" \
&& (test ! -f ../stage_current \
|| test `cat ../stage_current` != "stage1"); then
# Require CET support only for the final GCC build.
as_fn_error $? "compiler and assembler with CET support are required for --enable-cet" "$LINENO" 5
else
# Don't enable CET without CET support for non-bootstrap
# build, in stage1 nor for build support.
enable_cet=no
fi
fi
;;
esac
CFLAGS="$cet_save_CFLAGS"

21
libcpp/configure vendored
View file

@ -7564,7 +7564,7 @@ case "$host" in
case "$enable_cet" in
auto)
# Check if target supports multi-byte NOPs
# and if assembler supports CET insn.
# and if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -7590,7 +7590,7 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
yes)
# Check if assembler supports CET.
# Check if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -7603,11 +7603,24 @@ asm ("setssbsy");
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
support_cet=yes
else
as_fn_error $? "assembler with CET support is required for --enable-cet" "$LINENO" 5
support_cet=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test $support_cet = "no"; then
if test x$enable_bootstrap != xno \
&& test -z "${with_build_subdir}" \
&& (test ! -f ../stage_current \
|| test `cat ../stage_current` != "stage1"); then
# Require CET support only for the final GCC build.
as_fn_error $? "compiler and assembler with CET support are required for --enable-cet" "$LINENO" 5
else
# Don't enable CET without CET support for non-bootstrap
# build, in stage1 nor for build support.
enable_cet=no
fi
fi
;;
esac
CFLAGS="$cet_save_CFLAGS"

View file

@ -5217,7 +5217,7 @@ case "$host" in
case "$enable_cet" in
auto)
# Check if target supports multi-byte NOPs
# and if assembler supports CET insn.
# and if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -5243,7 +5243,7 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
yes)
# Check if assembler supports CET.
# Check if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -5256,11 +5256,24 @@ asm ("setssbsy");
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
support_cet=yes
else
as_fn_error $? "assembler with CET support is required for --enable-cet" "$LINENO" 5
support_cet=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test $support_cet = "no"; then
if test x$enable_bootstrap != xno \
&& test -z "${with_build_subdir}" \
&& (test ! -f ../stage_current \
|| test `cat ../stage_current` != "stage1"); then
# Require CET support only for the final GCC build.
as_fn_error $? "compiler and assembler with CET support are required for --enable-cet" "$LINENO" 5
else
# Don't enable CET without CET support for non-bootstrap
# build, in stage1 nor for build support.
enable_cet=no
fi
fi
;;
esac
CFLAGS="$cet_save_CFLAGS"

21
libiberty/configure vendored
View file

@ -5291,7 +5291,7 @@ case "$host" in
case "$enable_cet" in
auto)
# Check if target supports multi-byte NOPs
# and if assembler supports CET insn.
# and if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -5317,7 +5317,7 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
yes)
# Check if assembler supports CET.
# Check if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -5330,11 +5330,24 @@ asm ("setssbsy");
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
support_cet=yes
else
as_fn_error $? "assembler with CET support is required for --enable-cet" "$LINENO" 5
support_cet=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test $support_cet = "no"; then
if test x$enable_bootstrap != xno \
&& test -z "${with_build_subdir}" \
&& (test ! -f ../stage_current \
|| test `cat ../stage_current` != "stage1"); then
# Require CET support only for the final GCC build.
as_fn_error $? "compiler and assembler with CET support are required for --enable-cet" "$LINENO" 5
else
# Don't enable CET without CET support for non-bootstrap
# build, in stage1 nor for build support.
enable_cet=no
fi
fi
;;
esac
CFLAGS="$cet_save_CFLAGS"

25
lto-plugin/configure vendored
View file

@ -5687,7 +5687,7 @@ case "$host" in
case "$enable_cet" in
auto)
# Check if target supports multi-byte NOPs
# and if assembler supports CET insn.
# and if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -5713,7 +5713,7 @@ fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
yes)
# Check if assembler supports CET.
# Check if compiler and assembler support CET.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -5726,11 +5726,24 @@ asm ("setssbsy");
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
support_cet=yes
else
as_fn_error $? "assembler with CET support is required for --enable-cet" "$LINENO" 5
support_cet=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test $support_cet = "no"; then
if test x$enable_bootstrap != xno \
&& test -z "${with_build_subdir}" \
&& (test ! -f ../stage_current \
|| test `cat ../stage_current` != "stage1"); then
# Require CET support only for the final GCC build.
as_fn_error $? "compiler and assembler with CET support are required for --enable-cet" "$LINENO" 5
else
# Don't enable CET without CET support for non-bootstrap
# build, in stage1 nor for build support.
enable_cet=no
fi
fi
;;
esac
CFLAGS="$cet_save_CFLAGS"
@ -11947,7 +11960,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11950 "configure"
#line 11963 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -12053,7 +12066,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 12056 "configure"
#line 12069 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H