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

Shoaib Meenai via libcxx-commits libcxx-commits at lists.llvm.org
Thu Apr 2 11:34:49 PDT 2020


Can you just build the cxx-headers target instead of doing a full libc++ build? That's what we do for some of our builds which have a similar issue with requiring the headers.

On 4/2/20, 9:54 AM, "libcxx-commits on behalf of Hans Wennborg via libcxx-commits" <libcxx-commits-bounces at lists.llvm.org on behalf of libcxx-commits at lists.llvm.org> wrote:

    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://urldefense.proofpoint.com/v2/url?u=https-3A__crbug.com_1067216&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=SWiE-LfJQGnDioVJ_1oMe3PytSX5eiUvQpefAQsuazY&s=lE5OJxnVAVB3rbcM6cb6l_98rAS88IWoGG10qGpGhdA&e= ).
    
    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://urldefense.proofpoint.com/v2/url?u=https-3A__logs.chromium.org_logs_chromium_buildbucket_cr-2Dbuildbucket.appspot.com_8884121514869999920_-2B_steps_package-5Fclang_0_stdout&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=SWiE-LfJQGnDioVJ_1oMe3PytSX5eiUvQpefAQsuazY&s=sjaVvsQRbGGGSN4z6WyYuXoG8V1t706w716SXjj6TKw&e= 
    _______________________________________________
    libcxx-commits mailing list
    libcxx-commits at lists.llvm.org
    https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_libcxx-2Dcommits&d=DwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=o3kDXzdBUE3ljQXKeTWOMw&m=SWiE-LfJQGnDioVJ_1oMe3PytSX5eiUvQpefAQsuazY&s=00dVbLac1W5uZANZvwp36madK749LqVwkoD3LhxoVNo&e= 
    



More information about the libcxx-commits mailing list