summaryrefslogtreecommitdiff
path: root/sys-libs/libcxxabi/libcxxabi-9.0.1.9999.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/libcxxabi/libcxxabi-9.0.1.9999.ebuild')
-rw-r--r--sys-libs/libcxxabi/libcxxabi-9.0.1.9999.ebuild11
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