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 <[email protected]> (08 May 2016)
+# Most targets do not support VTV #547040.
+sys-devel/gcc vtv
+
# Matthew Brewer <[email protected]> (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 <[email protected]> (08 May 2016)
+# This target supports VTV #547040.
+>=sys-devel/gcc-4.9 -vtv
+
# Mike Frysinger <[email protected]> (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 <[email protected]> (08 May 2016)
+# This target supports VTV #547040.
+>=sys-devel/gcc-6 -vtv
+
# Mike Frysinger <[email protected]> (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 <[email protected]> (08 May 2016)
+# This target supports VTV #547040.
+>=sys-devel/gcc-6 -vtv
+
# Mike Frysinger <[email protected]> (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 <[email protected]> (08 May 2016)
+# This target supports VTV #547040.
+>=sys-devel/gcc-4.9 -vtv
+
# Mike Frysinger <[email protected]> (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>