commit:     2695b3da15699bdf40098dd409b32f9d87a9cc5c
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Fri Aug  3 20:19:57 2018 +0000
Commit:     Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Fri Aug  3 20:20:44 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2695b3da

sys-libs/glibc: Add rudimentary Intel CET support (since glibc-2.29)

Before unmasking this flag we still need to add checks for binutils >=2.29
and gcc >=8 ...

Package-Manager: Portage-2.3.44, Repoman-2.3.10

 sys-libs/glibc/glibc-9999.ebuild | 8 +++++++-
 sys-libs/glibc/metadata.xml      | 1 +
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index f51a7785067..82232b67b6d 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -33,7 +33,7 @@ PATCH_VER=7
 SRC_URI+=" 
https://dev.gentoo.org/~dilfridge/distfiles/${P}-patches-${PATCH_VER}.tar.bz2";
 SRC_URI+=" multilib? ( 
https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz
 )"
 
-IUSE="audit caps compile-locales doc gd hardened headers-only +multiarch 
multilib nscd profile selinux suid systemtap test vanilla"
+IUSE="audit caps cet compile-locales doc gd hardened headers-only +multiarch 
multilib nscd profile selinux suid systemtap test vanilla"
 
 # Minimum kernel version that glibc requires
 MIN_KERN_VER="3.2.0"
@@ -841,6 +841,12 @@ glibc_do_configure() {
                *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;;
        esac
 
+       # Enable Intel Control-flow Enforcement Technology on amd64 if requested
+       case ${CTARGET} in
+               x86_64-*) myconf+=( $(use_enable cet) ) ;;
+               *) ;;
+       esac
+
        [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp )
 
        myconf+=( --enable-kernel=${MIN_KERN_VER} )

diff --git a/sys-libs/glibc/metadata.xml b/sys-libs/glibc/metadata.xml
index 89da155531e..8079534faf1 100644
--- a/sys-libs/glibc/metadata.xml
+++ b/sys-libs/glibc/metadata.xml
@@ -14,6 +14,7 @@
  <flag name="rpc">Enable obsolete RPC/NIS layers</flag>
  <flag name="suid">Make internal pt_chown helper setuid -- not needed if using 
Linux and have /dev/pts mounted with gid=5</flag>
  <flag name="systemtap">enable systemtap static probe points</flag>
+ <flag name="cet">Enable Intel Control-flow Enforcement Technology (needs 
binutils 2.29 and gcc 8)</flag>
 </use>
 <upstream>
  <remote-id type="cpe">cpe:/a:gnu:glibc</remote-id>

Reply via email to