sys-devel/gcc: add USE=vtv support for vtable verification #547040
authorMike Frysinger <vapier@gentoo.org>
Mon, 9 May 2016 01:57:57 +0000 (21:57 -0400)
committerMike Frysinger <vapier@gentoo.org>
Mon, 9 May 2016 02:15:23 +0000 (22:15 -0400)
eclass/toolchain.eclass
profiles/base/package.use.mask
profiles/default/linux/amd64/package.use.mask
profiles/default/linux/arm/package.use.mask
profiles/default/linux/arm64/package.use.mask
profiles/default/linux/x86/package.use.mask
sys-devel/gcc/metadata.xml

index b875e198b3674512b13dbd43f62a2c502f856841..992074084d2b3b0c90e5dbeacbf86c1780da9ab7 100644 (file)
@@ -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
index 6e27a8ac813a22d1acd51c84fafb1cd4369ca742..65d250d6c6e61cbef06ca0d7ebcd7c4f71be4731 100644 (file)
@@ -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.
index 849557925956472201aa582afd025da3e523ea5d..3f60c80d66703d32639e6f401c373b3f8cd1c38a 100644 (file)
@@ -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
index 940aef7a0c036bcdc34115030048011698078222..3f406093018104c0ec5d85335553fe172682b0ec 100644 (file)
@@ -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
index 70af019e9e5035556ff705edb29c2196c5402cc8..252007db419bf809d8a54a3b1537b930a7ee9775 100644 (file)
@@ -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
index e9df847e899bb46d41f8c21342049d410d949797..d49253b9a026551039131549dbb8c2dbeb0a0794 100644 (file)
@@ -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
index 83745836d6dcdb07e6eb62ad4b890e9a17af678b..9e45459a24378d1be21459774436a0072cec6aca 100644 (file)
@@ -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>