On May 15, 2020 3:16:38 PM GMT+02:00, "H.J. Lu" <hjl.to...@gmail.com> wrote:
>When defaulting CET run-time support to auto, check if -fcf-protection
>works.  Even if the stage1 GCC doesn't support -fcf-protection, since
>the final GCC does, CET run-time support will be enabled by default if
>binutils support CET.

OK. 

Richard. 

>config/
>
>       PR bootstrap/95147
>       * cet.m4 (GCC_CET_FLAGS): Also check if -fcf-protection works
>       when defaulting to auto.
>
>libatomic/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>libbacktrace/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>libgcc/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>libgfortran/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>libgomp/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>libitm/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>libobjc/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>libphobos/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>libquadmath/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>libsanitizer/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>libssp/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>libstdc++-v3/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>libvtv/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>
>zlib/
>
>       PR bootstrap/95147
>       * configure: Regenerated.
>---
> config/cet.m4          |  3 +++
> libatomic/configure    |  3 +++
> libbacktrace/configure |  3 +++
> libgcc/configure       |  3 +++
> libgfortran/configure  |  7 +++++--
> libgomp/configure      |  3 +++
> libitm/configure       |  3 +++
> libobjc/configure      |  7 +++++--
> libphobos/configure    | 11 +++++++----
> libquadmath/configure  |  3 +++
> libsanitizer/configure |  3 +++
> libssp/configure       |  7 +++++--
> libstdc++-v3/configure |  3 +++
> libvtv/configure       |  3 +++
> zlib/configure         |  7 +++++--
> 15 files changed, 57 insertions(+), 12 deletions(-)
>
>diff --git a/config/cet.m4 b/config/cet.m4
>index 63c6ea9ee02..2bb2c8a95ac 100644
>--- a/config/cet.m4
>+++ b/config/cet.m4
>@@ -13,6 +13,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       AC_COMPILE_IFELSE(
>        [AC_LANG_PROGRAM(
>         [],
>@@ -25,6 +27,7 @@ asm ("setssbsy");
>         ])],
>        [enable_cet=yes],
>        [enable_cet=no])
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>diff --git a/libatomic/configure b/libatomic/configure
>index c4b4714abc0..478670a6fe7 100755
>--- a/libatomic/configure
>+++ b/libatomic/configure
>@@ -15595,6 +15595,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -15618,6 +15620,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>diff --git a/libbacktrace/configure b/libbacktrace/configure
>index 95d06c60be1..d851e807d2d 100755
>--- a/libbacktrace/configure
>+++ b/libbacktrace/configure
>@@ -12169,6 +12169,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -12192,6 +12194,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>diff --git a/libgcc/configure b/libgcc/configure
>index a5d5ab84607..5d0c79bcd75 100755
>--- a/libgcc/configure
>+++ b/libgcc/configure
>@@ -4913,6 +4913,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -4936,6 +4938,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>diff --git a/libgfortran/configure b/libgfortran/configure
>index 3c8be061ede..97d9616e425 100755
>--- a/libgfortran/configure
>+++ b/libgfortran/configure
>@@ -6014,6 +6014,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -6037,6 +6039,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>@@ -12719,7 +12722,7 @@ else
>   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>   lt_status=$lt_dlunknown
>   cat > conftest.$ac_ext <<_LT_EOF
>-#line 12722 "configure"
>+#line 12725 "configure"
> #include "confdefs.h"
> 
> #if HAVE_DLFCN_H
>@@ -12825,7 +12828,7 @@ else
>   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>   lt_status=$lt_dlunknown
>   cat > conftest.$ac_ext <<_LT_EOF
>-#line 12828 "configure"
>+#line 12831 "configure"
> #include "confdefs.h"
> 
> #if HAVE_DLFCN_H
>diff --git a/libgomp/configure b/libgomp/configure
>index 4a0e1498415..e5710b26749 100755
>--- a/libgomp/configure
>+++ b/libgomp/configure
>@@ -16753,6 +16753,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -16776,6 +16778,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>diff --git a/libitm/configure b/libitm/configure
>index 2c451fb0a98..be70ea6f76f 100755
>--- a/libitm/configure
>+++ b/libitm/configure
>@@ -17890,6 +17890,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -17913,6 +17915,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>diff --git a/libobjc/configure b/libobjc/configure
>index 018c9db76e8..6975a727d5e 100755
>--- a/libobjc/configure
>+++ b/libobjc/configure
>@@ -3466,6 +3466,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -3489,6 +3491,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>@@ -10775,7 +10778,7 @@ else
>   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>   lt_status=$lt_dlunknown
>   cat > conftest.$ac_ext <<_LT_EOF
>-#line 10778 "configure"
>+#line 10781 "configure"
> #include "confdefs.h"
> 
> #if HAVE_DLFCN_H
>@@ -10881,7 +10884,7 @@ else
>   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>   lt_status=$lt_dlunknown
>   cat > conftest.$ac_ext <<_LT_EOF
>-#line 10884 "configure"
>+#line 10887 "configure"
> #include "confdefs.h"
> 
> #if HAVE_DLFCN_H
>diff --git a/libphobos/configure b/libphobos/configure
>index c8137d4d572..4551e9fddef 100755
>--- a/libphobos/configure
>+++ b/libphobos/configure
>@@ -1478,7 +1478,7 @@ Optional Features:
>   --enable-maintainer-mode
>                     enable make rules and dependencies not useful (and
>                           sometimes confusing) to the casual installer
>-  --enable-cet            enable Intel CET in target libraries
>[default=no]
>+  --enable-cet            enable Intel CET in target libraries
>[default=auto]
>   --enable-shared[=PKGS]  build shared libraries [default=yes]
>   --enable-static[=PKGS]  build static libraries [default=yes]
>   --enable-fast-install[=PKGS]
>@@ -5573,7 +5573,7 @@ if test "${enable_cet+set}" = set; then :
>                           esac
> 
> else
>-  enable_cet=no
>+  enable_cet=auto
> fi
> 
> 
>@@ -5586,6 +5586,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -5609,6 +5611,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>@@ -11734,7 +11737,7 @@ else
>   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>   lt_status=$lt_dlunknown
>   cat > conftest.$ac_ext <<_LT_EOF
>-#line 11737 "configure"
>+#line 11740 "configure"
> #include "confdefs.h"
> 
> #if HAVE_DLFCN_H
>@@ -11840,7 +11843,7 @@ else
>   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>   lt_status=$lt_dlunknown
>   cat > conftest.$ac_ext <<_LT_EOF
>-#line 11843 "configure"
>+#line 11846 "configure"
> #include "confdefs.h"
> 
> #if HAVE_DLFCN_H
>diff --git a/libquadmath/configure b/libquadmath/configure
>index d995a2cfd25..dee79cf99a0 100755
>--- a/libquadmath/configure
>+++ b/libquadmath/configure
>@@ -13039,6 +13039,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -13062,6 +13064,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>diff --git a/libsanitizer/configure b/libsanitizer/configure
>index 8d1aa6db492..7ec074491c1 100755
>--- a/libsanitizer/configure
>+++ b/libsanitizer/configure
>@@ -16862,6 +16862,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -16885,6 +16887,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>diff --git a/libssp/configure b/libssp/configure
>index 7e54b16bfaf..2eb4c7998d5 100755
>--- a/libssp/configure
>+++ b/libssp/configure
>@@ -4338,6 +4338,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -4361,6 +4363,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>@@ -10996,7 +10999,7 @@ else
>   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>   lt_status=$lt_dlunknown
>   cat > conftest.$ac_ext <<_LT_EOF
>-#line 10999 "configure"
>+#line 11002 "configure"
> #include "confdefs.h"
> 
> #if HAVE_DLFCN_H
>@@ -11102,7 +11105,7 @@ else
>   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>   lt_status=$lt_dlunknown
>   cat > conftest.$ac_ext <<_LT_EOF
>-#line 11105 "configure"
>+#line 11108 "configure"
> #include "confdefs.h"
> 
> #if HAVE_DLFCN_H
>diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
>index 24cc51c8bef..502f6602001 100755
>--- a/libstdc++-v3/configure
>+++ b/libstdc++-v3/configure
>@@ -77488,6 +77488,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -77511,6 +77513,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>diff --git a/libvtv/configure b/libvtv/configure
>index 9d42cb88fb2..eced2b23ce0 100755
>--- a/libvtv/configure
>+++ b/libvtv/configure
>@@ -15680,6 +15680,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -15703,6 +15705,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>diff --git a/zlib/configure b/zlib/configure
>index 65005f131dc..ae1f1934911 100755
>--- a/zlib/configure
>+++ b/zlib/configure
>@@ -4169,6 +4169,8 @@ case "$host" in
>       auto)
>       # Check if target supports multi-byte NOPs
>       # and if assembler supports CET insn.
>+      save_CFLAGS="$CFLAGS"
>+      CFLAGS="$CFLAGS -fcf-protection"
>       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> /* end confdefs.h.  */
> 
>@@ -4192,6 +4194,7 @@ else
>   enable_cet=no
> fi
> rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
>+      CFLAGS="$save_CFLAGS"
>       ;;
>       yes)
>       # Check if assembler supports CET.
>@@ -10739,7 +10742,7 @@ else
>   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>   lt_status=$lt_dlunknown
>   cat > conftest.$ac_ext <<_LT_EOF
>-#line 10742 "configure"
>+#line 10745 "configure"
> #include "confdefs.h"
> 
> #if HAVE_DLFCN_H
>@@ -10845,7 +10848,7 @@ else
>   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>   lt_status=$lt_dlunknown
>   cat > conftest.$ac_ext <<_LT_EOF
>-#line 10848 "configure"
>+#line 10851 "configure"
> #include "confdefs.h"
> 
> #if HAVE_DLFCN_H

Reply via email to