[libcxx-commits] [PATCH] D68791: [libc++] Fix linker script generation
Petr Hosek via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Oct 10 14:05:50 PDT 2019
phosek marked an inline comment as done.
phosek added inline comments.
================
Comment at: libcxx/cmake/Modules/DefineLinkerScript.cmake:34
foreach(lib IN LISTS interface_libs)
- if (TARGET "${lib}")
+ if (TARGET "${lib}" OR
+ (${lib} MATCHES "cxxabi(_static|_shared)?" AND HAVE_LIBCXXABI) OR
----------------
ldionne wrote:
> ldionne wrote:
> > How can it be that `${lib}` is equal to `cxxabi_static` or `cxxabi_shared`, but it's not a target? The same applies to the `unwind_xxx` targets. I think this has to do with how you configure your build for Fuchsia with `HAVE_LIBCXXABI`. Can you show me exactly what arguments are used in the CMake invocation?
> >
> > TBH, I'd like to better understand the purpose of `HAVE_LIBCXXABI` and `HAVE_LIBUNWIND`, since those certainly look like slight hacks that would be nice to support better.
> However, feel free to commit this for the time being in order to fix your build. But I'd really like to have the discussion about `HAVE_LIBCXXABI`, since I've been meaning to have it for a while.
The issue is that when building these in the runtimes build, they get added in whatever order user specifies on the command-line so by the time we're processing libc++, libc++abi and libunwind may have not yet been processed so `if(TARGET "${lib})` is going to fail. D68833 is an alternative solution that's trying to address this issue more generally.
Repository:
rCXX libc++
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68791/new/
https://reviews.llvm.org/D68791
More information about the libcxx-commits
mailing list