about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2018-07-18 09:52:40 -0700
committerH.J. Lu <hjl.tools@gmail.com>2018-07-18 09:52:53 -0700
commite6c695099b7894bce72de04009c889c8f6e674ae (patch)
tree13f0ff6ccee563fc3dba6e37581241c9cede0894
parente2d40a8822be27ddbd512599ea1955e52f90bf87 (diff)
downloadglibc-e6c695099b7894bce72de04009c889c8f6e674ae.tar.gz
glibc-e6c695099b7894bce72de04009c889c8f6e674ae.tar.xz
glibc-e6c695099b7894bce72de04009c889c8f6e674ae.zip
Intel CET: Document --enable-cet
	* NEWS: Mention --enable-cet.
	* manual/install.texi: Document --enable-cet.
	* INSTALL: Regenerated.
-rw-r--r--ChangeLog6
-rw-r--r--INSTALL11
-rw-r--r--NEWS10
-rw-r--r--manual/install.texi11
4 files changed, 38 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d1c5235849..6d1229ca97 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2018-07-18  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* NEWS: Mention --enable-cet.
+	* manual/install.texi: Document --enable-cet.
+	* INSTALL: Regenerated.
+
+2018-07-18  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/x86_64/multiarch/memcmp-sse4.S (BRANCH_TO_JMPTBL_ENTRY):
 	Add _CET_NOTRACK before indirect jump to jump table.
 
diff --git a/INSTALL b/INSTALL
index 3c656fb7a6..844aa0f34c 100644
--- a/INSTALL
+++ b/INSTALL
@@ -106,6 +106,17 @@ if 'CFLAGS' is specified it must enable optimization.  For example:
      programs and tests are created as dynamic position independent
      executables (PIE) by default.
 
+'--enable-cet'
+     Enable Intel Control-flow Enforcement Technology (CET) support.
+     When the GNU C Library is built with '--enable-cet', the resulting
+     library is protected with indirect branch tracking (IBT) and shadow
+     stack (SHSTK).  When CET is enabled, the GNU C Library is
+     compatible with all existing executables and shared libraries.
+     This feature is currently supported on i386, x86_64 and x32 with
+     GCC 8 and binutils 2.29 or later.  Note that when CET is enabled,
+     the GNU C Library requires CPUs capable of multi-byte NOPs, like
+     x86-64 processors as well as Intel Pentium Pro or newer.
+
 '--disable-profile'
      Don't build libraries with profiling information.  You may want to
      use this option if you don't plan to do profiling.
diff --git a/NEWS b/NEWS
index c2896a7d93..daef815ae7 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,16 @@ Version 2.28
 
 Major new features:
 
+* The GNU C Library can now be compiled with support for Intel CET, AKA
+  Intel Control-flow Enforcement Technology.  When the library is built
+  with --enable-cet, the resulting glibc is protected with indirect
+  branch tracking (IBT) and shadow stack (SHSTK).  CET-enabled glibc is
+  compatible with all existing executables and shared libraries.  This
+  feature is currently supported on i386, x86_64 and x32 with GCC 8 and
+  binutils 2.29 or later.  Note that CET-enabled glibc requires CPUs
+  capable of multi-byte NOPs, like x86-64 processors as well as Intel
+  Pentium Pro or newer.
+
 * The GNU C Library now has correct support for ABSOLUTE symbols
   (SHN_ABS-relative symbols).  Previously such ABSOLUTE symbols were
   relocated incorrectly or in some cases discarded.  The GNU linker can
diff --git a/manual/install.texi b/manual/install.texi
index 42e9954199..3a87ac8bb5 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -137,6 +137,17 @@ with no-pie.  The resulting glibc can be used with the GCC option,
 PIE.  This option also implies that glibc programs and tests are created
 as dynamic position independent executables (PIE) by default.
 
+@item --enable-cet
+Enable Intel Control-flow Enforcement Technology (CET) support.  When
+@theglibc{} is built with @option{--enable-cet}, the resulting library
+is protected with indirect branch tracking (IBT) and shadow stack
+(SHSTK)@.  When CET is enabled, @theglibc{} is compatible with all
+existing executables and shared libraries.  This feature is currently
+supported on i386, x86_64 and x32 with GCC 8 and binutils 2.29 or later.
+Note that when CET is enabled, @theglibc{} requires CPUs capable of
+multi-byte NOPs, like x86-64 processors as well as Intel Pentium Pro or
+newer.
+
 @item --disable-profile
 Don't build libraries with profiling information.  You may want to use
 this option if you don't plan to do profiling.