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