diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2020-05-14 08:25:39 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2020-05-14 09:05:02 -0700 |
commit | 8d286dd118a5bd16f7ae0fb9dfcdcfd020bea803 (patch) | |
tree | ab2ce2b5fbec75efcf5ac324b2499c81cb95210c /libcpp | |
parent | 4036327e4cab5c9a0235bb784b02d5a06a614065 (diff) | |
download | gcc-8d286dd118a5bd16f7ae0fb9dfcdcfd020bea803.zip gcc-8d286dd118a5bd16f7ae0fb9dfcdcfd020bea803.tar.gz gcc-8d286dd118a5bd16f7ae0fb9dfcdcfd020bea803.tar.bz2 |
x86: Default CET run-time support to auto
CET has been added since GCC 8. This patch defaults CET run-time support
to auto. It enables CET run-time support if asssembler supports CET
instructions and multi-byte NOPs are enabled via SSE2.
config/
* cet.m4 (GCC_CET_FLAGS): Change default to auto.
gcc/
* configure: Regenerated.
libatomic/
* configure: Regenerated.
libbacktrace/
* configure: Regenerated.
libcc1/
* configure: Regenerated.
libcpp/
* configure: Regenerated.
libdecnumber/
* configure: Regenerated.
libgcc/
* configure: Regenerated.
libgfortran/
* configure: Regenerated.
libgomp/
* configure: Regenerated.
libitm/
* configure: Regenerated.
libobjc/
* configure: Regenerated.
libquadmath/
* configure: Regenerated.
libsanitizer/
* configure: Regenerated.
libssp/
* configure: Regenerated.
libstdc++-v3/
* configure: Regenerated.
libvtv/
* configure: Regenerated.
zlib/
* configure: Regenerated.
Diffstat (limited to 'libcpp')
-rw-r--r-- | libcpp/ChangeLog | 4 | ||||
-rwxr-xr-x | libcpp/configure | 43 |
2 files changed, 41 insertions, 6 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index f425bac..a802408 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,7 @@ +2020-05-14 H.J. Lu <hongjiu.lu@intel.com> + + * configure: Regenerated. + 2020-05-13 Jason Merrill <jason@redhat.com> * include/cpplib.h (enum c_lang): Change CXX2A to CXX20. diff --git a/libcpp/configure b/libcpp/configure index 64bbf54..7f02d6b 100755 --- a/libcpp/configure +++ b/libcpp/configure @@ -7525,10 +7525,35 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; esac +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -fcf-protection=none" +save_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS -Wl,-z,ibt,-z,shstk" if test x$may_have_cet = xyes; then - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,-z,ibt,-z,shstk" - if test "$cross_compiling" = yes; then : + # Check whether -fcf-protection=none -Wl,-z,ibt,-z,shstk work. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + may_have_cet=yes +else + may_have_cet=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + +if test x$may_have_cet = xyes; then + if test x$cross_compiling = xno; then + if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling @@ -7573,10 +7598,14 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi - LDFLAGS="$save_LDFLAGS" - if test x$enable_cet = xno -a x$have_cet = xyes; then - as_fn_error $? "Intel CET must be enabled on Intel CET enabled host" "$LINENO" 5 + if test x$enable_cet = xno -a x$have_cet = xyes; then + as_fn_error $? "Intel CET must be enabled on Intel CET enabled host" "$LINENO" 5 + fi fi +else + # Enable CET in cross compiler if possible so that it will run on both + # CET and non-CET hosts. + have_cet=yes fi if test x$enable_cet = xyes; then CET_HOST_FLAGS="-fcf-protection" @@ -7586,6 +7615,8 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi +CFLAGS="$save_CFLAGS" +LDFLAGS="$save_LDFLAGS" case x$enable_languages in *jit*) |