sys-libs/compiler-rt-sanitizers: Default to building using clang
authorMichał Górny <mgorny@gentoo.org>
Tue, 9 Jan 2018 20:38:34 +0000 (21:38 +0100)
committerMichał Górny <mgorny@gentoo.org>
Tue, 9 Jan 2018 20:45:21 +0000 (21:45 +0100)
Default to building using clang rather than gcc since the latter
is starting to cause more issues, most notably GotsanRuntimeCheck
segfaulting more commonly than it used to.

Closes: https://bugs.gentoo.org/630958

sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.9999.ebuild
sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild
sys-libs/compiler-rt-sanitizers/metadata.xml

index 879e08005bbb850f679bfb56b555895a624c935a..5e10ee47eeb478030d17c4f19059b723497be5ac 100644 (file)
@@ -21,13 +21,14 @@ LICENSE="|| ( UoI-NCSA MIT )"
 # Note: this needs to be updated to match version of clang-9999
 SLOT="6.0.0"
 KEYWORDS=""
-IUSE="test"
-RESTRICT="!test? ( test )"
+IUSE="+clang test"
+RESTRICT="!test? ( test ) !clang? ( test )"
 
 LLVM_SLOT=${SLOT%%.*}
 # llvm-4 needed for --cmakedir
 DEPEND="
        >=sys-devel/llvm-4
+       clang? ( sys-devel/clang )
        test? (
                app-portage/unsandbox
                $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
@@ -74,6 +75,12 @@ src_configure() {
        # pre-set since we need to pass it to cmake
        BUILD_DIR=${WORKDIR}/${P}_build
 
+       if use clang; then
+               local -x CC=${CHOST}-clang
+               local -x CXX=${CHOST}-clang++
+               strip-unsupported-flags
+       fi
+
        local mycmakeargs=(
                -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}"
                # use a build dir structure consistent with install
index 97b8b578d56fd6845d39fc96fcc03428ac5de2e6..5821a6f3c0ebb9a310536a824b7c4b08e678f35a 100644 (file)
@@ -20,13 +20,14 @@ LICENSE="|| ( UoI-NCSA MIT )"
 # Note: this needs to be updated to match version of clang-9999
 SLOT="7.0.0"
 KEYWORDS=""
-IUSE="test"
-RESTRICT="!test? ( test )"
+IUSE="+clang test"
+RESTRICT="!test? ( test ) !clang? ( test )"
 
 LLVM_SLOT=${SLOT%%.*}
 # llvm-4 needed for --cmakedir
 DEPEND="
        >=sys-devel/llvm-4
+       clang? ( sys-devel/clang )
        test? (
                app-portage/unsandbox
                $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
@@ -73,6 +74,12 @@ src_configure() {
        # pre-set since we need to pass it to cmake
        BUILD_DIR=${WORKDIR}/${P}_build
 
+       if use clang; then
+               local -x CC=${CHOST}-clang
+               local -x CXX=${CHOST}-clang++
+               strip-unsupported-flags
+       fi
+
        local mycmakeargs=(
                -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}"
                # use a build dir structure consistent with install
index 89c4bdb96049e6115e6748d08e9e0ce0b5636564..3b996021381aeba90da560b0db5e8c8f50fa0da4 100644 (file)
@@ -4,4 +4,8 @@
        <maintainer type="project">
                <email>llvm@gentoo.org</email>
        </maintainer>
+       <use>
+               <flag name='clang'>Force building using installed clang (rather
+                       than the default CC/CXX).</flag>
+       </use>
 </pkgmetadata>