diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2020-06-23 07:33:30 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2020-06-23 07:33:30 +0100 |
commit | a0cceb035aac865eec1676a80ce04812cb83d4a2 (patch) | |
tree | 935d0c2a92e7dc00f91f6409ada3d5ed06b5cbe1 /10.1.0 | |
parent | 10.1.0: backport avx512 fix for PR95528 (diff) | |
download | gcc-patches-a0cceb035aac865eec1676a80ce04812cb83d4a2.tar.gz gcc-patches-a0cceb035aac865eec1676a80ce04812cb83d4a2.tar.bz2 gcc-patches-a0cceb035aac865eec1676a80ce04812cb83d4a2.zip |
10.1.0: backport CET cross-compiler detection, PR95811
Reported-by: Aisha Tammy
Bug: https://bugs.gentoo.org/729074
Bug: https://gcc.gnu.org/94998
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to '10.1.0')
-rw-r--r-- | 10.1.0/gentoo/34_all_cet-cross-x86.patch | 149 | ||||
-rw-r--r-- | 10.1.0/gentoo/README.history | 1 |
2 files changed, 150 insertions, 0 deletions
diff --git a/10.1.0/gentoo/34_all_cet-cross-x86.patch b/10.1.0/gentoo/34_all_cet-cross-x86.patch new file mode 100644 index 0000000..89916d9 --- /dev/null +++ b/10.1.0/gentoo/34_all_cet-cross-x86.patch @@ -0,0 +1,149 @@ +https://gcc.gnu.org/94998 +https://bugs.gentoo.org/729074 + +From 2c7ae01349f779f1d4e66d8831052ee59f9c948b Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" <hjl.tools@gmail.com> +Date: Tue, 12 May 2020 10:39:42 -0700 +Subject: [PATCH] Enable CET in cross compiler if possible + +Don't perform CET run-time check for host when cross compiling. Instead, +enable CET in cross compiler if possible so that it will run on both CET +and non-CET hosts. + +config/ + + PR bootstrap/94998 + * cet.m4 (GCC_CET_HOST_FLAGS): Enable CET in cross compiler if + possible. + +libiberty/ + + PR bootstrap/94998 + * configure: Regenerated. + +lto-plugin/ + + PR bootstrap/94998 + * configure: Regenerated. + +(cherry picked from commit d17cdc17c90ce77cb90c569322c1f241d3530cec) +--- + config/cet.m4 | 18 ++++++++++++------ + libiberty/configure | 12 +++++++++--- + lto-plugin/configure | 16 +++++++++++----- + 3 files changed, 32 insertions(+), 14 deletions(-) + +--- a/config/cet.m4 ++++ b/config/cet.m4 +@@ -111,7 +111,8 @@ if test x$may_have_cet = xyes; then + fi + + if test x$may_have_cet = xyes; then +- AC_TRY_RUN([ ++ if test x$cross_compiling = xno; then ++ AC_TRY_RUN([ + static void + foo (void) + { +@@ -137,12 +138,17 @@ main () + bar (); + return 0; + } +- ], +- [have_cet=no], +- [have_cet=yes]) +- if test x$enable_cet = xno -a x$have_cet = xyes; then +- AC_MSG_ERROR([Intel CET must be enabled on Intel CET enabled host]) ++ ], ++ [have_cet=no], ++ [have_cet=yes]) ++ if test x$enable_cet = xno -a x$have_cet = xyes; then ++ AC_MSG_ERROR([Intel CET must be enabled on Intel CET enabled host]) ++ 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 + $1="-fcf-protection" +--- a/libiberty/configure ++++ b/libiberty/configure +@@ -5375,7 +5375,8 @@ rm -f core conftest.err conftest.$ac_objext \ + fi + + if test x$may_have_cet = xyes; then +- if test "$cross_compiling" = yes; 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 +@@ -5420,9 +5421,14 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + +- 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" +--- a/lto-plugin/configure ++++ b/lto-plugin/configure +@@ -5768,7 +5768,8 @@ rm -f core conftest.err conftest.$ac_objext \ + fi + + if test x$may_have_cet = xyes; then +- if test "$cross_compiling" = yes; 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 +@@ -5813,9 +5814,14 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + +- 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" +@@ -11941,7 +11947,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 11944 "configure" ++#line 11950 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -12047,7 +12053,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 12050 "configure" ++#line 12056 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +-- +2.27.0 + diff --git a/10.1.0/gentoo/README.history b/10.1.0/gentoo/README.history index a69b102..480a54e 100644 --- a/10.1.0/gentoo/README.history +++ b/10.1.0/gentoo/README.history @@ -1,5 +1,6 @@ 3 TODO 33_all_avx512-scalar-PR95528.patch + 34_all_cet-cross-x86.patch 2 11 June 2020 + 29_all_fix-float-hang-PR95118.patch |