Add bootstrap-cet.mk to bootstrap GCC with Intel CET
authorH.J. Lu <hongjiu.lu@intel.com>
Tue, 24 Oct 2017 12:50:03 +0000 (12:50 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Tue, 24 Oct 2017 12:50:03 +0000 (05:50 -0700)
Bootstrap GCC with Intel CET by configuring GCC with

--with-build-config="bootstrap-cet bootstrap-debug"

Tested on Linux/i686 and Linux/x86-64.

config/

* bootstrap-cet.mk: New file.

gcc/

* doc/install.texi: Document bootstrap-cet.

From-SVN: r254043

config/ChangeLog
config/bootstrap-cet.mk [new file with mode: 0644]
gcc/ChangeLog
gcc/doc/install.texi

index 6732bf4..2e3ead0 100644 (file)
@@ -1,3 +1,7 @@
+2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * bootstrap-cet.mk: New file.
+
 2017-06-19  Martin Liska  <mliska@suse.cz>
 
        * bootstrap-lto-noplugin.mk: Enable -flto in all PGO stages.
diff --git a/config/bootstrap-cet.mk b/config/bootstrap-cet.mk
new file mode 100644 (file)
index 0000000..f09193a
--- /dev/null
@@ -0,0 +1,4 @@
+# This option enables -fcf-protection -mcet for stage2 and stage3.
+
+STAGE2_CFLAGS += -fcf-protection -mcet
+STAGE3_CFLAGS += -fcf-protection -mcet
index 5a43ff8..ce02caa 100644 (file)
@@ -1,5 +1,9 @@
 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
 
+       * doc/install.texi: Document bootstrap-cet.
+
+2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
+
        PR target/82659
        * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
        ENDBR instruction at function entrance if function is only
index da360da..82a6360 100644 (file)
@@ -2492,6 +2492,13 @@ useful to verify the full @option{-fcompare-debug} testing coverage.  It
 must be used along with @code{bootstrap-debug-lean} and
 @code{bootstrap-debug-lib}.
 
+@item @samp{bootstrap-cet}
+This option enables Intel CET for host tools during bootstrapping.
+@samp{BUILD_CONFIG=bootstrap-cet} is equivalent to adding
+@option{-fcf-protection -mcet} to @samp{BOOT_CFLAGS}.  This option
+assumes that the host supports Intel CET (e.g. GNU assembler version
+2.30 or later).
+
 @item @samp{bootstrap-time}
 Arranges for the run time of each program started by the GCC driver,
 built in any stage, to be logged to @file{time.log}, in the top level of