summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2016-05-08 21:57:57 -0400
committerMike Frysinger <vapier@gentoo.org>2016-05-08 22:15:23 -0400
commit0f4dd949d7671bd86610836d5ac270430be37a4c (patch)
tree2587867ec5085dbd62a5e1d949b7f788ebc61ef5
parentapp-misc/lcd4linux: update HOMEPAGE (diff)
downloadgentoo-0f4dd949d7671bd86610836d5ac270430be37a4c.tar.gz
gentoo-0f4dd949d7671bd86610836d5ac270430be37a4c.tar.bz2
gentoo-0f4dd949d7671bd86610836d5ac270430be37a4c.zip
sys-devel/gcc: add USE=vtv support for vtable verification #547040
-rw-r--r--eclass/toolchain.eclass9
-rw-r--r--profiles/base/package.use.mask4
-rw-r--r--profiles/default/linux/amd64/package.use.mask4
-rw-r--r--profiles/default/linux/arm/package.use.mask4
-rw-r--r--profiles/default/linux/arm64/package.use.mask4
-rw-r--r--profiles/default/linux/x86/package.use.mask4
-rw-r--r--sys-devel/gcc/metadata.xml3
7 files changed, 30 insertions, 2 deletions
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index b875e198b367..992074084d2b 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 6e27a8ac813a..65d250d6c6e6 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 849557925956..3f60c80d6670 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 940aef7a0c03..3f4060930181 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 70af019e9e50..252007db419b 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 e9df847e899b..d49253b9a026 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 83745836d6dc..9e45459a2437 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>