From 04bb278e03b7a36b5a5682c77355c68aee632e78 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20G=C3=B3rny?= Date: Thu, 16 Feb 2017 14:36:42 +0100 Subject: [PATCH] sys-libs/compiler-rt: Prefer building using clang Add a USE=clang flag to prefer building using installed clang, to work around limited/broken support for '#pragma redefine_extname' which results in incomplete runtime being emitted when building using GCC. --- sys-libs/compiler-rt/compiler-rt-4.0.0_rc2.ebuild | 10 ++++++++-- sys-libs/compiler-rt/compiler-rt-9999.ebuild | 11 +++++++++-- sys-libs/compiler-rt/metadata.xml | 4 ++++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/sys-libs/compiler-rt/compiler-rt-4.0.0_rc2.ebuild b/sys-libs/compiler-rt/compiler-rt-4.0.0_rc2.ebuild index 43560c2edd59..82b3dcffe19b 100644 --- a/sys-libs/compiler-rt/compiler-rt-4.0.0_rc2.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-4.0.0_rc2.ebuild @@ -19,7 +19,7 @@ SRC_URI="http://www.llvm.org/pre-releases/${PV/_//}/${P/_/}.src.tar.xz" LICENSE="|| ( UoI-NCSA MIT )" SLOT="${PV%_*}" KEYWORDS="~amd64 ~arm64 ~x86" -IUSE="test" +IUSE="+clang test" LLVM_SLOT=${SLOT%%.*} RDEPEND="!=sys-libs/compiler-rt-${SLOT}*:0" @@ -43,7 +43,13 @@ src_configure() { # pre-set since we need to pass it to cmake BUILD_DIR=${WORKDIR}/${P}_build - if ! test_compiler; then + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + # ensure we can use clang before installing compiler-rt + local -x LDFLAGS="${LDFLAGS} -nodefaultlibs -lc" + strip-unsupported-flags + elif ! test_compiler; then local extra_flags=( -nodefaultlibs -lc ) if test_compiler "${extra_flags[@]}"; then local -x LDFLAGS="${LDFLAGS} ${extra_flags[*]}" diff --git a/sys-libs/compiler-rt/compiler-rt-9999.ebuild b/sys-libs/compiler-rt/compiler-rt-9999.ebuild index 450177ae5cf7..034b1d253154 100644 --- a/sys-libs/compiler-rt/compiler-rt-9999.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-9999.ebuild @@ -22,12 +22,13 @@ LICENSE="|| ( UoI-NCSA MIT )" # Note: this needs to be updated to match version of clang-9999 SLOT="5.0.0" KEYWORDS="" -IUSE="test" +IUSE="+clang test" LLVM_SLOT=${SLOT%%.*} # llvm-4 needed for --cmakedir DEPEND=" >=sys-devel/llvm-4 + clang? ( sys-devel/clang ) test? ( =sys-devel/clang-${PV%_*}*:${LLVM_SLOT} ) ${PYTHON_DEPS}" @@ -43,7 +44,13 @@ src_configure() { # pre-set since we need to pass it to cmake BUILD_DIR=${WORKDIR}/${P}_build - if ! test_compiler; then + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + # ensure we can use clang before installing compiler-rt + local -x LDFLAGS="${LDFLAGS} -nodefaultlibs -lc" + strip-unsupported-flags + elif ! test_compiler; then local extra_flags=( -nodefaultlibs -lc ) if test_compiler "${extra_flags[@]}"; then local -x LDFLAGS="${LDFLAGS} ${extra_flags[*]}" diff --git a/sys-libs/compiler-rt/metadata.xml b/sys-libs/compiler-rt/metadata.xml index 89c4bdb96049..3b996021381a 100644 --- a/sys-libs/compiler-rt/metadata.xml +++ b/sys-libs/compiler-rt/metadata.xml @@ -4,4 +4,8 @@ llvm@gentoo.org + + Force building using installed clang (rather + than the default CC/CXX). + -- 2.26.2