public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: profiles/default/linux/x86/, profiles/default/linux/arm/, ...
@ 2016-05-09  2:19 Mike Frysinger
  0 siblings, 0 replies; only message in thread
From: Mike Frysinger @ 2016-05-09  2:19 UTC (permalink / raw
  To: gentoo-commits

commit:     0f4dd949d7671bd86610836d5ac270430be37a4c
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Mon May  9 01:57:57 2016 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Mon May  9 02:15:23 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0f4dd949

sys-devel/gcc: add USE=vtv support for vtable verification #547040

 eclass/toolchain.eclass                       | 9 ++++++++-
 profiles/base/package.use.mask                | 4 ++++
 profiles/default/linux/amd64/package.use.mask | 4 ++++
 profiles/default/linux/arm/package.use.mask   | 4 ++++
 profiles/default/linux/arm64/package.use.mask | 4 ++++
 profiles/default/linux/x86/package.use.mask   | 4 ++++
 sys-devel/gcc/metadata.xml                    | 3 ++-
 7 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index b875e19..9920740 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -152,7 +152,7 @@ if [[ ${PN} != "kgcc64" && ${PN} != gcc-* ]] ; then
 	# versions which we dropped.  Since graphite was also experimental in
 	# the older versions, we don't want to bother supporting it.  #448024
 	tc_version_is_at_least 4.8 && IUSE+=" graphite" IUSE_DEF+=( sanitize )
-	tc_version_is_at_least 4.9 && IUSE+=" cilk"
+	tc_version_is_at_least 4.9 && IUSE+=" cilk +vtv"
 	tc_version_is_at_least 5.0 && IUSE+=" jit"
 	tc_version_is_at_least 6.0 && IUSE+=" pie +ssp"
 fi
@@ -1165,6 +1165,13 @@ toolchain_src_configure() {
 		confgcc+=( $(use_enable cilk libcilkrts) )
 	fi
 
+	if in_iuse vtv ; then
+		confgcc+=(
+			$(use_enable vtv vtable-verify)
+			$(use_enable vtv libvtv)
+		)
+	fi
+
 	# newer gcc's come with libquadmath, but only fortran uses
 	# it, so auto punt it when we don't care
 	if tc_version_is_at_least 4.6 && ! is_fortran ; then

diff --git a/profiles/base/package.use.mask b/profiles/base/package.use.mask
index 6e27a8a..65d250d 100644
--- a/profiles/base/package.use.mask
+++ b/profiles/base/package.use.mask
@@ -5,6 +5,10 @@
 # This file requires >=portage-2.1.1
 # New entries go on top.
 
+# Mike Frysinger <vapier@gentoo.org> (08 May 2016)
+# Most targets do not support VTV #547040.
+sys-devel/gcc vtv
+
 # Matthew Brewer <tomboy64@sina.cn> (08 May 2016)
 # Upstream supports using Clang's address sanitizer, but apparently
 # invokes it wrong.

diff --git a/profiles/default/linux/amd64/package.use.mask b/profiles/default/linux/amd64/package.use.mask
index 8495579..3f60c80 100644
--- a/profiles/default/linux/amd64/package.use.mask
+++ b/profiles/default/linux/amd64/package.use.mask
@@ -2,6 +2,10 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
+# Mike Frysinger <vapier@gentoo.org> (08 May 2016)
+# This target supports VTV #547040.
+>=sys-devel/gcc-4.9 -vtv
+
 # Mike Frysinger <vapier@gentoo.org> (21 Oct 2014)
 # This target supports ASAN/etc... #504200.
 sys-devel/gcc -sanitize

diff --git a/profiles/default/linux/arm/package.use.mask b/profiles/default/linux/arm/package.use.mask
index 940aef7..3f40609 100644
--- a/profiles/default/linux/arm/package.use.mask
+++ b/profiles/default/linux/arm/package.use.mask
@@ -2,6 +2,10 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
+# Mike Frysinger <vapier@gentoo.org> (08 May 2016)
+# This target supports VTV #547040.
+>=sys-devel/gcc-6 -vtv
+
 # Mike Frysinger <vapier@gentoo.org> (21 Oct 2014)
 # This target supports ASAN/etc... #504200.
 >=sys-devel/gcc-4.9.0 -sanitize

diff --git a/profiles/default/linux/arm64/package.use.mask b/profiles/default/linux/arm64/package.use.mask
index 70af019..252007d 100644
--- a/profiles/default/linux/arm64/package.use.mask
+++ b/profiles/default/linux/arm64/package.use.mask
@@ -2,6 +2,10 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
+# Mike Frysinger <vapier@gentoo.org> (08 May 2016)
+# This target supports VTV #547040.
+>=sys-devel/gcc-6 -vtv
+
 # Mike Frysinger <vapier@gentoo.org> (22 Mar 2016)
 # This target supports ASAN/etc... #504200.
 >=sys-devel/gcc-5 -sanitize

diff --git a/profiles/default/linux/x86/package.use.mask b/profiles/default/linux/x86/package.use.mask
index e9df847..d49253b 100644
--- a/profiles/default/linux/x86/package.use.mask
+++ b/profiles/default/linux/x86/package.use.mask
@@ -2,6 +2,10 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
+# Mike Frysinger <vapier@gentoo.org> (08 May 2016)
+# This target supports VTV #547040.
+>=sys-devel/gcc-4.9 -vtv
+
 # Mike Frysinger <vapier@gentoo.org> (21 Oct 2014)
 # This target supports ASAN/etc... #504200.
 sys-devel/gcc -sanitize

diff --git a/sys-devel/gcc/metadata.xml b/sys-devel/gcc/metadata.xml
index 8374583..9e45459 100644
--- a/sys-devel/gcc/metadata.xml
+++ b/sys-devel/gcc/metadata.xml
@@ -28,7 +28,8 @@
     <flag name="objc-gc">Build support for the Objective C code language Garbage
       Collector</flag>
     <flag name="regression-test">Run the testsuite and install the results (requires FEATURES=test)</flag>
-    <flag name="sanitize">Build support various sanitizer functions (ASAN/TSAN/etc...)</flag>
+    <flag name="sanitize">Build support for various sanitizer functions (ASAN/TSAN/etc...)</flag>
+    <flag name="vtv">Build support for virtual table verification (a C++ hardening feature)</flag>
   </use>
   <upstream>
     <remote-id type="cpe">cpe:/a:gnu:gcc</remote-id>


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-05-09  2:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-09  2:19 [gentoo-commits] repo/gentoo:master commit in: profiles/default/linux/x86/, profiles/default/linux/arm/, Mike Frysinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox