[llvm-branch-commits] [clang] release/23.x: [clang][Driver] Fix libc++ include path on OpenBSD (#212979) (PR #234480)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Oct 21 21:09:06 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: llvmbot
<details>
<summary>Changes</summary>
Backport 1204f6b4e9d6bef8ec319d121942dca5cbf94a26
Requested by: @<!-- -->brad0
---
Full diff: https://github.com/llvm/llvm-project/pull/234480.diff
3 Files Affected:
- (modified) clang/lib/Driver/ToolChains/OpenBSD.cpp (-6)
- (modified) clang/lib/Driver/ToolChains/OpenBSD.h (-3)
- (modified) clang/test/Driver/openbsd.cpp (+12-2)
``````````diff
diff --git a/clang/lib/Driver/ToolChains/OpenBSD.cpp b/clang/lib/Driver/ToolChains/OpenBSD.cpp
index de5284ddf6e605..cc171d9f80c5b3 100644
--- a/clang/lib/Driver/ToolChains/OpenBSD.cpp
+++ b/clang/lib/Driver/ToolChains/OpenBSD.cpp
@@ -349,12 +349,6 @@ void OpenBSD::AddClangSystemIncludeArgs(
concat(D.SysRoot, "/usr/include"));
}
-void OpenBSD::addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
- llvm::opt::ArgStringList &CC1Args) const {
- addSystemInclude(DriverArgs, CC1Args,
- concat(getDriver().SysRoot, "/usr/include/c++/v1"));
-}
-
void OpenBSD::AddCXXStdlibLibArgs(const ArgList &Args,
ArgStringList &CmdArgs) const {
bool Profiling = Args.hasArg(options::OPT_pg);
diff --git a/clang/lib/Driver/ToolChains/OpenBSD.h b/clang/lib/Driver/ToolChains/OpenBSD.h
index a92c4d321bac63..47c86d95313be1 100644
--- a/clang/lib/Driver/ToolChains/OpenBSD.h
+++ b/clang/lib/Driver/ToolChains/OpenBSD.h
@@ -73,9 +73,6 @@ class LLVM_LIBRARY_VISIBILITY OpenBSD : public Generic_ELF {
void
AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
llvm::opt::ArgStringList &CC1Args) const override;
-
- void addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
- llvm::opt::ArgStringList &CC1Args) const override;
void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
llvm::opt::ArgStringList &CmdArgs) const override;
diff --git a/clang/test/Driver/openbsd.cpp b/clang/test/Driver/openbsd.cpp
index 01aa09b75f27fe..108fbf5d6580b6 100644
--- a/clang/test/Driver/openbsd.cpp
+++ b/clang/test/Driver/openbsd.cpp
@@ -20,22 +20,32 @@
// RUN: | FileCheck --check-prefix=CHECK-PG-CXX %s
// CHECK-PG-CXX: "-lc++_p" "-lc++abi_p" "-lpthread_p" "-lm_p"
+// Test that OpenBSD prefers install tree libc++ headers over system ones.
+// RUN: %clang -### %s --target=amd64-pc-openbsd -r 2>&1 \
+// RUN: -ccc-install-dir %S/Inputs/install_tree_with_libcxx/bin \
+// RUN: --sysroot=%S/Inputs/basic_openbsd_libcxx_tree \
+// RUN: | FileCheck %s --check-prefix=DRIVER-INSTALL-INCLUDES
+// DRIVER-INSTALL-INCLUDES: "-internal-isystem" "{{.*}}bin[[SEP:/|\\\\]]..[[SEP]]include[[SEP]]c++[[SEP]]v1"
+// DRIVER-INSTALL-INCLUDES-NOT: "-internal-isystem" "{{.*}}usr[[SEP]]include[[SEP]]c++[[SEP]]v1"
+
// Test include paths with a sysroot.
// RUN: %clangxx %s -### -fsyntax-only 2>&1 \
// RUN: --target=amd64-pc-openbsd \
+// RUN: -ccc-install-dir %S/Inputs/install_tree_without_libcxx/bin \
// RUN: --sysroot=%S/Inputs/basic_openbsd_libcxx_tree \
// RUN: -resource-dir=%S/Inputs/resource_dir \
// RUN: | FileCheck --check-prefix=CHECK-LIBCXX-SYSROOT %s
// CHECK-LIBCXX-SYSROOT: "-cc1"
// CHECK-LIBCXX-SYSROOT-SAME: "-isysroot" "[[SYSROOT:[^"]+]]"
-// CHECK-LIBCXX-SYSROOT-SAME: "-internal-isystem" "[[SYSROOT]]/usr/include/c++/v1"
+// CHECK-LIBCXX-SYSROOT-SAME: "-internal-isystem" "[[SYSROOT]][[SEP:/|\\\\]]usr[[SEP]]include[[SEP]]c++[[SEP]]v1"
// Test include paths when the sysroot path ends with `/`.
// RUN: %clangxx %s -### -fsyntax-only 2>&1 \
// RUN: --target=amd64-pc-openbsd \
+// RUN: -ccc-install-dir %S/Inputs/install_tree_without_libcxx/bin \
// RUN: --sysroot=%S/Inputs/basic_openbsd_libcxx_tree/ \
// RUN: -resource-dir=%S/Inputs/resource_dir \
// RUN: | FileCheck --check-prefix=CHECK-LIBCXX-SYSROOT-SLASH %s
// CHECK-LIBCXX-SYSROOT-SLASH: "-cc1"
// CHECK-LIBCXX-SYSROOT-SLASH-SAME: "-isysroot" "[[SYSROOT:[^"]+/]]"
-// CHECK-LIBCXX-SYSROOT-SLASH-SAME: "-internal-isystem" "[[SYSROOT]]usr/include/c++/v1"
+// CHECK-LIBCXX-SYSROOT-SLASH-SAME: "-internal-isystem" "[[SYSROOT]]usr[[SEP:/|\\\\]]include[[SEP]]c++[[SEP]]v1"
``````````
</details>
https://github.com/llvm/llvm-project/pull/234480
More information about the llvm-branch-commits
mailing list