[clang] [Driver] Support using toolchain libc and libc++ for baremetal (PR #96736)

Nick Desaulniers via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 26 08:47:39 PDT 2024


================
@@ -296,6 +300,47 @@ void BareMetal::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
     return;
 
   const Driver &D = getDriver();
+  std::string Target = getTripleString();
+
+  auto AddCXXIncludePath = [&](StringRef Path) {
+    std::string Version = detectLibcxxVersion(Path);
+    if (Version.empty())
+      return;
+
+    // First add the per-target multilib include dir.
+    if (!SelectedMultilibs.empty() && !SelectedMultilibs.back().isDefault()) {
+      const Multilib &M = SelectedMultilibs.back();
+      SmallString<128> TargetDir(Path);
+      llvm::sys::path::append(TargetDir, Target, M.gccSuffix(), "c++", Version);
+      if (getVFS().exists(TargetDir)) {
+        addSystemInclude(DriverArgs, CC1Args, TargetDir);
+      }
----------------
nickdesaulniers wrote:

```suggestion
      if (getVFS().exists(TargetDir))
        addSystemInclude(DriverArgs, CC1Args, TargetDir);
```

https://github.com/llvm/llvm-project/pull/96736


More information about the cfe-commits mailing list