[libcxx-commits] [libcxx] 61e8973 - [libc++] Simplify the configuration of the C++ ABI library

Hans Wennborg via libcxx-commits libcxx-commits at lists.llvm.org
Thu Apr 2 09:54:08 PDT 2020


On Thu, Apr 2, 2020 at 8:21 AM Louis Dionne via libcxx-commits
<libcxx-commits at lists.llvm.org> wrote:
>
>
> Author: Louis Dionne
> Date: 2020-04-02T02:21:15-04:00
> New Revision: 61e89737c5daf7b65341936f88f68efb680cdcd4
>
> URL: https://github.com/llvm/llvm-project/commit/61e89737c5daf7b65341936f88f68efb680cdcd4
> DIFF: https://github.com/llvm/llvm-project/commit/61e89737c5daf7b65341936f88f68efb680cdcd4.diff
>
> LOG: [libc++] Simplify the configuration of the C++ ABI library
>
> This commit removes support for building against the system libc++abi,
> which was supported on Apple platforms. This is basically never what we
> want to do, since libc++ and libc++abi are coupled and building a trunk
> libc++ against an older libc++abi can lead to incompatibilities (and
> good luck debugging them!). It might have made some sense to support
> that when the monorepo did not exist, however I don't think this is
> anything but a footgun nowadays.
>
> Furthermore, based on the newly-made assumption that we're building
> against the monorepo libc++abi, we can simplify the search path logic
> for finding libc++abi.
>
> This area of our build system has a lot of technical debt accumulated,
> and it's surprisingly difficult to change. We've tried different things
> and failed several times in the past. I did test this change on our
> Docker image for the build bots and on Apple platforms, however it is
> possible that this breaks some unknown configuration, in which case it
> should be fine to revert this (so we can try again!).

Well hello :-)

This broke Chromium's packaging of Clang on Mac (see https://crbug.com/1067216).

We build libc++ as part of that process, not because we ship it with
the compiler, but as part of the bootstrapping process: otherwise the
just-built Clang doesn't find the c++ headers. Until now we've been
building with -DLIBCXX_CXX_ABI=libcxxabi -DLIBCXX_CXX_ABI_SYSTEM=1
however with your patch that stopped working.

I tried adding libcxxabi to -DLLVM_ENABLE_PROJECTS and dropping those
two flags, but now building libcxxabi failed for unclear reasons
([1]).

Would it be okay to revert your patch until we've figured this out?

Thanks,
Hans

 1. https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8884121514869999920/+/steps/package_clang/0/stdout


More information about the libcxx-commits mailing list