alicelinux

A lightweight musl + clang/llvm + libressl + busybox distro
git clone https://codeberg.org/emmett1/alicelinux
Log | Files | Refs | README | LICENSE

0024-clang-link-libcxxabi-on-linux-when-using-libc.patch (2057B)


      1 From adf31476855428b5c23407569b20c297f6d9be18 Mon Sep 17 00:00:00 2001
      2 From: q66 <q66@chimera-linux.org>
      3 Date: Sat, 4 Nov 2023 09:14:35 +0100
      4 Subject: [PATCH 24/30] clang: link libcxxabi on linux when using libc++
      5 
      6 ---
      7  clang/lib/Driver/ToolChains/Linux.cpp | 15 +++++++++++++++
      8  clang/lib/Driver/ToolChains/Linux.h   |  2 ++
      9  2 files changed, 17 insertions(+)
     10 
     11 diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
     12 index c006ed105..c97d379c9 100644
     13 --- a/clang/lib/Driver/ToolChains/Linux.cpp
     14 +++ b/clang/lib/Driver/ToolChains/Linux.cpp
     15 @@ -732,6 +732,21 @@ void Linux::addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
     16    }
     17  }
     18  
     19 +void Linux::AddCXXStdlibLibArgs(const ArgList &Args,
     20 +                                ArgStringList &CmdArgs) const {
     21 +  switch (GetCXXStdlibType(Args)) {
     22 +  case ToolChain::CST_Libcxx:
     23 +    CmdArgs.push_back("-lc++");
     24 +    if (Args.hasArg(options::OPT_fexperimental_library))
     25 +      CmdArgs.push_back("-lc++experimental");
     26 +    CmdArgs.push_back("-lc++abi");
     27 +    break;
     28 +  case ToolChain::CST_Libstdcxx:
     29 +    CmdArgs.push_back("-lstdc++");
     30 +    break;
     31 +  }
     32 +}
     33 +
     34  void Linux::AddCudaIncludeArgs(const ArgList &DriverArgs,
     35                                 ArgStringList &CC1Args) const {
     36    CudaInstallation->AddCudaIncludeArgs(DriverArgs, CC1Args);
     37 diff --git a/clang/lib/Driver/ToolChains/Linux.h b/clang/lib/Driver/ToolChains/Linux.h
     38 index aa2299c5c..b8cbbedae 100644
     39 --- a/clang/lib/Driver/ToolChains/Linux.h
     40 +++ b/clang/lib/Driver/ToolChains/Linux.h
     41 @@ -33,6 +33,8 @@ public:
     42    void addLibStdCxxIncludePaths(
     43        const llvm::opt::ArgList &DriverArgs,
     44        llvm::opt::ArgStringList &CC1Args) const override;
     45 +  void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
     46 +                           llvm::opt::ArgStringList &CmdArgs) const override;
     47    void AddCudaIncludeArgs(const llvm::opt::ArgList &DriverArgs,
     48                            llvm::opt::ArgStringList &CC1Args) const override;
     49    void AddHIPIncludeArgs(const llvm::opt::ArgList &DriverArgs,
     50 -- 
     51 2.47.0
     52