diff options
author | Yang Yang <geraint0923@gmail.com> | 2019-11-23 21:05:09 -0800 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2019-11-27 09:58:38 +0100 |
commit | cf3ce64992f49d222223c41b7c4582bd3e089909 (patch) | |
tree | 1df74ec707f0f9b5ec10459309df152a5bb708be /sys-libs | |
parent | sys-auth/ssh-ldap-pubkey: bump to v1.3.2 (diff) | |
download | gentoo-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')
-rw-r--r-- | sys-libs/libcxxabi/libcxxabi-10.0.0.9999.ebuild | 11 | ||||
-rw-r--r-- | sys-libs/libcxxabi/libcxxabi-9.0.0.ebuild | 11 | ||||
-rw-r--r-- | sys-libs/libcxxabi/libcxxabi-9.0.1.9999.ebuild | 11 | ||||
-rw-r--r-- | sys-libs/libcxxabi/libcxxabi-9.0.1_rc1.ebuild | 11 |
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 |