summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Yang <geraint0923@gmail.com>2019-11-23 21:05:09 -0800
committerMichał Górny <mgorny@gentoo.org>2019-11-27 09:58:38 +0100
commitcf3ce64992f49d222223c41b7c4582bd3e089909 (patch)
tree1df74ec707f0f9b5ec10459309df152a5bb708be /sys-libs/libcxxabi
parentsys-auth/ssh-ldap-pubkey: bump to v1.3.2 (diff)
downloadgentoo-cf3ce64992f49d222223c41b7c4582bd3e089909.tar.gz
gentoo-cf3ce64992f49d222223c41b7c4582bd3e089909.tar.bz2
gentoo-cf3ce64992f49d222223c41b7c4582bd3e089909.zip
sys-libs/libcxxabi-9.0.0: add USE to explicitly link compiler-rt
According to https://clang.llvm.org/docs/Toolchain.html#compiler-rt-llvm, `-DLIBCXXABI_USE_COMPILER_RT=YES` is needed to linked against compiler-rt if compiled with clang+compiler-rt. Signed-off-by: Yang Yang <geraint0923@gmail.com> Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'sys-libs/libcxxabi')
-rw-r--r--sys-libs/libcxxabi/libcxxabi-10.0.0.9999.ebuild11
-rw-r--r--sys-libs/libcxxabi/libcxxabi-9.0.0.ebuild11
-rw-r--r--sys-libs/libcxxabi/libcxxabi-9.0.1.9999.ebuild11
-rw-r--r--sys-libs/libcxxabi/libcxxabi-9.0.1_rc1.ebuild11
4 files changed, 44 insertions, 0 deletions
diff --git a/sys-libs/libcxxabi/libcxxabi-10.0.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-10.0.0.9999.ebuild
index df108a4e0237..4bdd0295a168 100644
--- a/sys-libs/libcxxabi/libcxxabi-10.0.0.9999.ebuild
+++ b/sys-libs/libcxxabi/libcxxabi-10.0.0.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
diff --git a/sys-libs/libcxxabi/libcxxabi-9.0.0.ebuild b/sys-libs/libcxxabi/libcxxabi-9.0.0.ebuild
index eb2960357792..3d656a49cf7d 100644
--- a/sys-libs/libcxxabi/libcxxabi-9.0.0.ebuild
+++ b/sys-libs/libcxxabi/libcxxabi-9.0.0.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
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
diff --git a/sys-libs/libcxxabi/libcxxabi-9.0.1_rc1.ebuild b/sys-libs/libcxxabi/libcxxabi-9.0.1_rc1.ebuild
index df108a4e0237..4bdd0295a168 100644
--- a/sys-libs/libcxxabi/libcxxabi-9.0.1_rc1.ebuild
+++ b/sys-libs/libcxxabi/libcxxabi-9.0.1_rc1.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