================
@@ -382,38 +382,6 @@ void BareMetal::AddClangCXXStdlibIncludeArgs(const ArgList 
&DriverArgs,
   }
 }
 
-void BareMetal::AddCXXStdlibLibArgs(const ArgList &Args,
-                                    ArgStringList &CmdArgs) const {
-  switch (GetCXXStdlibType(Args)) {
-  case ToolChain::CST_Libcxx:
-    CmdArgs.push_back("-lc++");
-    if (Args.hasArg(options::OPT_fexperimental_library))
-      CmdArgs.push_back("-lc++experimental");
-    CmdArgs.push_back("-lc++abi");
----------------
smithp35 wrote:

Yes I can confirm that leaving out -lc++abi does cause build failures with our 
C++ samples with undefined symbols from libc++abi.

The lld command (paths shortened for brevity) coming out of `clang++ 
--target=armv6m-none-eabi -march=armv6m -mfpu=none -mfloat-abi=soft 
-lcrt0-semihost -lsemihost -g -T ../../ldscripts/microbit.ld -o hello-exn.elf 
hello-exn.cpp`
```
"bin/ld.lld" -lcrt0-semihost -lsemihost /tmp/hello-exn-5244ae.o -Bstatic -EL -T 
../../ldscripts/microbit.ld 
-Lbin/../lib/clang-runtimes/arm-none-eabi/armv6m_soft_nofp_exn_rtti/lib 
-Llib/clang/20/lib/armv6m-unknown-none-eabi 
-Lbin/../lib/clang-runtimes/arm-none-eabi/armv6m_soft_nofp_exn_rtti/lib -lc++ 
-lm b\
in/../lib/clang-runtimes/arm-none-eabi/armv6m_soft_nofp_exn_rtti/lib/libclang_rt.builtins.a
 -lc --target2=rel -o hello-exn.elf
ld.lld: error: undefined symbol: operator new(unsigned int)
...
ld.lld: error: undefined symbol: __cxa_allocate_exception
...
```


https://github.com/llvm/llvm-project/pull/101259
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to