summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-devtools/gcc/gcc-10.1/0036-Enable-CET-in-cross-compiler-if-possible.patch
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/recipes-devtools/gcc/gcc-10.1/0036-Enable-CET-in-cross-compiler-if-possible.patch')
-rw-r--r--poky/meta/recipes-devtools/gcc/gcc-10.1/0036-Enable-CET-in-cross-compiler-if-possible.patch150
1 files changed, 150 insertions, 0 deletions
diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0036-Enable-CET-in-cross-compiler-if-possible.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0036-Enable-CET-in-cross-compiler-if-possible.patch
new file mode 100644
index 000000000..af8064282
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc-10.1/0036-Enable-CET-in-cross-compiler-if-possible.patch
@@ -0,0 +1,150 @@
+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