aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2021-03-19 08:01:22 +0000
committerSergei Trofimovich <slyfox@gentoo.org>2021-03-19 08:01:22 +0000
commit5600e4343f36e2a4925b09388d3ffe7400143b9f (patch)
tree115cd88427aaba10b8a8d6a99dab715ecfb189ed
parent10.2.0: fix vtv build on slibtool (diff)
downloadgcc-patches-5600e4343f36e2a4925b09388d3ffe7400143b9f.tar.gz
gcc-patches-5600e4343f36e2a4925b09388d3ffe7400143b9f.tar.bz2
gcc-patches-5600e4343f36e2a4925b09388d3ffe7400143b9f.zip
10.2.0: port binutils fix for CET detection on i486
Reported-by: Worx Bug: https://bugs.gentoo.org/777117 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
-rw-r--r--10.2.0/gentoo/44_all_cet-i486.patch109
-rw-r--r--10.2.0/gentoo/README.history1
2 files changed, 110 insertions, 0 deletions
diff --git a/10.2.0/gentoo/44_all_cet-i486.patch b/10.2.0/gentoo/44_all_cet-i486.patch
new file mode 100644
index 0000000..956e439
--- /dev/null
+++ b/10.2.0/gentoo/44_all_cet-i486.patch
@@ -0,0 +1,109 @@
+https://bugs.gentoo.org/777117
+
+From 267a609477624ade477994b24809a72eeb522ff1 Mon Sep 17 00:00:00 2001
+From: "H.J. Lu via Gcc-patches" <gcc-patches@gcc.gnu.org>
+Date: Sun, 14 Feb 2021 09:26:40 -0800
+Subject: [PATCH 2/2] GCC_CET_HOST_FLAGS: Check if host supports multi-byte
+ NOPs
+
+Check if host supports multi-byte NOPs before enabling CET on host.
+
+config/
+
+ PR binutils/27397
+ * cet.m4 (GCC_CET_HOST_FLAGS): Check if host supports multi-byte
+ NOPs.
+
+libiberty/
+
+ PR binutils/27397
+ * configure: Regenerated.
+
+---
+ config/cet.m4 | 19 ++++++++++++++++---
+ libiberty/configure | 29 +++++++++++++++++++++++++++++
+ 2 files changed, 45 insertions(+), 3 deletions(-)
+
+--- a/config/cet.m4
++++ b/config/cet.m4
+@@ -130,6 +130,18 @@ fi
+ if test x$may_have_cet = xyes; then
+ if test x$cross_compiling = xno; then
+ AC_TRY_RUN([
++int
++main ()
++{
++ asm ("endbr32");
++ return 0;
++}
++ ],
++ [have_multi_byte_nop=yes],
++ [have_multi_byte_nop=no])
++ have_cet=no
++ if test x$have_multi_byte_nop = xyes; then
++ AC_TRY_RUN([
+ static void
+ foo (void)
+ {
+@@ -155,9 +167,10 @@ main ()
+ bar ();
+ return 0;
+ }
+- ],
+- [have_cet=no],
+- [have_cet=yes])
++ ],
++ [have_cet=no],
++ [have_cet=yes])
++ fi
+ 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
+--- a/libiberty/configure
++++ b/libiberty/configure
+@@ -5396,6 +5396,34 @@ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
++int
++main ()
++{
++ asm ("endbr32");
++ return 0;
++}
++
++_ACEOF
++if ac_fn_c_try_run "$LINENO"; then :
++ have_multi_byte_nop=yes
++else
++ have_multi_byte_nop=no
++fi
++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
++ conftest.$ac_objext conftest.beam conftest.$ac_ext
++fi
++
++ have_cet=no
++ if test x$have_multi_byte_nop = xyes; 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
++See \`config.log' for more details" "$LINENO" 5; }
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
+ static void
+ foo (void)
+ {
+@@ -5432,6 +5460,7 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+ fi
+
++ 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
+ fi
+--
+2.31.0
+
diff --git a/10.2.0/gentoo/README.history b/10.2.0/gentoo/README.history
index f195ae9..f47a108 100644
--- a/10.2.0/gentoo/README.history
+++ b/10.2.0/gentoo/README.history
@@ -1,6 +1,7 @@
7 TODO
+ 42_all_vmat-PR97236.patch
+ 43_all_vtv-slibtool.patch
+ + 44_all_cet-i486.patch
6 29 Dec 2020
- 34_all_fundecl-ICE-PR95820.patch