public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Enable CET in cross compiler if possible
@ 2020-05-08 13:11 H.J. Lu
  2020-05-12 13:32 ` PING: " H.J. Lu
  2020-05-12 17:28 ` Jeff Law
  0 siblings, 2 replies; 5+ messages in thread
From: H.J. Lu @ 2020-05-08 13:11 UTC (permalink / raw)
  To: gcc-patches

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.
---
 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
-- 
2.26.2


^ permalink raw reply	[flat|nested] 5+ messages in thread

* PING: [PATCH] Enable CET in cross compiler if possible
  2020-05-08 13:11 [PATCH] Enable CET in cross compiler if possible H.J. Lu
@ 2020-05-12 13:32 ` H.J. Lu
  2020-05-12 17:28 ` Jeff Law
  1 sibling, 0 replies; 5+ messages in thread
From: H.J. Lu @ 2020-05-12 13:32 UTC (permalink / raw)
  To: GCC Patches, Jakub Jelinek, Jeffrey Law, Richard Biener, Alexandre Oliva

On Fri, May 8, 2020 at 6:11 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> 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.
> ---
>  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
> --
> 2.26.2
>

PING.

This fixes a regression on master and GCC 10 branch.

-- 
H.J.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Enable CET in cross compiler if possible
  2020-05-08 13:11 [PATCH] Enable CET in cross compiler if possible H.J. Lu
  2020-05-12 13:32 ` PING: " H.J. Lu
@ 2020-05-12 17:28 ` Jeff Law
  2020-06-05 15:18   ` H.J. Lu
  1 sibling, 1 reply; 5+ messages in thread
From: Jeff Law @ 2020-05-12 17:28 UTC (permalink / raw)
  To: H.J. Lu, gcc-patches

On Fri, 2020-05-08 at 06:11 -0700, H.J. Lu via Gcc-patches wrote:
> 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.
OK
jeff
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Enable CET in cross compiler if possible
  2020-05-12 17:28 ` Jeff Law
@ 2020-06-05 15:18   ` H.J. Lu
  2020-06-09 19:43     ` Jeff Law
  0 siblings, 1 reply; 5+ messages in thread
From: H.J. Lu @ 2020-06-05 15:18 UTC (permalink / raw)
  To: Jeffrey Law; +Cc: GCC Patches

On Tue, May 12, 2020 at 10:28 AM Jeff Law <law@redhat.com> wrote:
>
> On Fri, 2020-05-08 at 06:11 -0700, H.J. Lu via Gcc-patches wrote:
> > 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.
> OK
> jeff

OK for backport to GCC 10?

Thanks.

-- 
H.J.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Enable CET in cross compiler if possible
  2020-06-05 15:18   ` H.J. Lu
@ 2020-06-09 19:43     ` Jeff Law
  0 siblings, 0 replies; 5+ messages in thread
From: Jeff Law @ 2020-06-09 19:43 UTC (permalink / raw)
  To: H.J. Lu; +Cc: GCC Patches

On Fri, 2020-06-05 at 08:18 -0700, H.J. Lu wrote:
> On Tue, May 12, 2020 at 10:28 AM Jeff Law <law@redhat.com> wrote:
> > On Fri, 2020-05-08 at 06:11 -0700, H.J. Lu via Gcc-patches wrote:
> > > 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.
> > OK
> > jeff
> 
> OK for backport to GCC 10?
ISTM it doesn't meet the general criteria for backports, specifically it doesn't
fix a regression.  ISTM that the release managers would need to ACK for a
backport.

jeff


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-06-09 19:43 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-08 13:11 [PATCH] Enable CET in cross compiler if possible H.J. Lu
2020-05-12 13:32 ` PING: " H.J. Lu
2020-05-12 17:28 ` Jeff Law
2020-06-05 15:18   ` H.J. Lu
2020-06-09 19:43     ` Jeff Law

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).