diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2018-08-12 06:32:46 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2018-08-12 06:32:46 +0100 |
commit | 28e3d252dc8ac8a5635206dfefe1cfe05058d1db (patch) | |
tree | e75bce604750fb72e53ed3684059e2e5d2094509 /sys-devel/llvm/llvm-9999.ebuild | |
parent | f625b9919a60a30f1bd860f7d1b2eac183ced593 (diff) |
gentoo resync : 12.08.2018
Diffstat (limited to 'sys-devel/llvm/llvm-9999.ebuild')
-rw-r--r-- | sys-devel/llvm/llvm-9999.ebuild | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/sys-devel/llvm/llvm-9999.ebuild b/sys-devel/llvm/llvm-9999.ebuild index 612f8a07e7b8..d5404d204a07 100644 --- a/sys-devel/llvm/llvm-9999.ebuild +++ b/sys-devel/llvm/llvm-9999.ebuild @@ -89,6 +89,18 @@ src_prepare() { cmake-utils_src_prepare } +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include <ciso646> +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + + [[ ${out} == *HAVE_LIBCXX* ]] +} + multilib_src_configure() { local ffi_cflags ffi_ldflags if use libffi; then @@ -132,6 +144,15 @@ multilib_src_configure() { -DOCAMLFIND=NO ) + if is_libcxx_linked; then + # Smart hack: alter version suffix -> SOVERSION when linking + # against libc++. This way we won't end up mixing LLVM libc++ + # libraries with libstdc++ clang, and the other way around. + mycmakeargs+=( + -DLLVM_VERSION_SUFFIX="libcxx" + ) + fi + # Note: go bindings have no CMake rules at the moment # but let's kill the check in case they are introduced # if ! multilib_is_native_abi || ! use go; then |