sys-libs/compiler-rt: Support bootstrapping with runtime-less clang
authorMichał Górny <mgorny@gentoo.org>
Sat, 1 Oct 2016 18:58:18 +0000 (20:58 +0200)
committerMichał Górny <mgorny@gentoo.org>
Sat, 1 Oct 2016 19:05:59 +0000 (21:05 +0200)
sys-libs/compiler-rt/compiler-rt-9999.ebuild

index 751fac90d8b0825f1ccef1a2bc84bea6223c22f0..1f8d174415732657e9029c30bab18dccec780db8 100644 (file)
@@ -9,7 +9,7 @@ CMAKE_MIN_VERSION=3.4.3
 PYTHON_COMPAT=( python2_7 )
 
 # TODO: fix unnecessary dep on Python upstream
-inherit cmake-utils flag-o-matic git-r3 python-any-r1
+inherit cmake-utils flag-o-matic git-r3 python-any-r1 toolchain-funcs
 
 DESCRIPTION="Compiler runtime library for clang (built-in part)"
 HOMEPAGE="http://llvm.org/"
@@ -28,10 +28,23 @@ DEPEND="${RDEPEND}
        ~sys-devel/llvm-${PV}
        ${PYTHON_DEPS}"
 
+test_compiler() {
+       $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
+               <<<'int main() { return 0; }' &>/dev/null
+}
+
 src_configure() {
        # pre-set since we need to pass it to cmake
        BUILD_DIR=${WORKDIR}/${P}_build
 
+       if ! test_compiler; then
+               local extra_flags=( -nodefaultlibs -lc )
+               if test_compiler "${extra_flags[@]}"; then
+                       local -x LDFLAGS="${LDFLAGS} ${extra_flags[*]}"
+                       ewarn "${CC} seems to lack runtime, trying with ${extra_flags[*]}"
+               fi
+       fi
+
        local clang_version=4.0.0
        local libdir=$(get_libdir)
        local mycmakeargs=(