diff options
Diffstat (limited to 'sys-libs/libcxxabi/libcxxabi-9.0.1.9999.ebuild')
-rw-r--r-- | sys-libs/libcxxabi/libcxxabi-9.0.1.9999.ebuild | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sys-libs/libcxxabi/libcxxabi-9.0.1.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-9.0.1.9999.ebuild index df108a4e0237..4bdd0295a168 100644 --- a/sys-libs/libcxxabi/libcxxabi-9.0.1.9999.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-9.0.1.9999.ebuild @@ -45,6 +45,16 @@ pkg_setup() { } multilib_src_configure() { + # link against compiler-rt instead of libgcc if we are using clang with libunwind + local want_compiler_rt=OFF + if use libunwind && tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LDFLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + want_compiler_rt=ON + fi + fi + local libdir=$(get_libdir) local mycmakeargs=( -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib} @@ -52,6 +62,7 @@ multilib_src_configure() { -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) -DLIBCXXABI_INCLUDE_TESTS=$(usex test) + -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx/include # upstream is omitting standard search path for this |