| From 87a5ace658f2294b025e0420ef03ade1f45d926c Mon Sep 17 00:00:00 2001 |
| From: "H.J. Lu" <hjl.tools@gmail.com> |
| Date: Fri, 8 May 2020 06:11:05 -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. |
| |
| Upstream-Status: Submitted [https://patchwork.ozlabs.org/project/gcc/patch/20200508131105.170077-1-hjl.tools@gmail.com/] |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| --- |
| config/cet.m4 | 18 ++++++++++++------ |
| libiberty/configure | 12 +++++++++--- |
| lto-plugin/configure | 16 +++++++++++----- |
| 3 files changed, 32 insertions(+), 14 deletions(-) |
| |
| diff --git a/config/cet.m4 b/config/cet.m4 |
| index ea616b728a9..d9608699cd5 100644 |
| --- 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" |
| diff --git a/libiberty/configure b/libiberty/configure |
| index bb76cf1b823..3f82c5bb865 100755 |
| --- 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" |
| diff --git a/lto-plugin/configure b/lto-plugin/configure |
| index 1baf6cc70b8..36c6ecc5875 100755 |
| --- 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 |