From ade46497ad4811aaf026ac12a7cc9cece0efe996 Mon Sep 17 00:00:00 2001 From: Greg Steuck Date: Fri, 3 Sep 2021 09:26:31 +0200 Subject: [PATCH] Fallback to superclass in OpenBSD::getCompilerRT for missing libs This helps with running tests from llvm development tree which doesn't have the libraries in OpenBSD preferred installed location. Tested with gmake check-asan that previous failed to find clangrt libraries. --- clang/lib/Driver/ToolChains/OpenBSD.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/clang/lib/Driver/ToolChains/OpenBSD.cpp b/clang/lib/Driver/ToolChains/OpenBSD.cpp index 41df6d9a8d7fa..1feeca027b3ac 100644 --- a/clang/lib/Driver/ToolChains/OpenBSD.cpp +++ b/clang/lib/Driver/ToolChains/OpenBSD.cpp @@ -16,6 +16,7 @@ #include "clang/Driver/SanitizerArgs.h" #include "llvm/Option/ArgList.h" #include "llvm/Support/Path.h" +#include "llvm/Support/VirtualFileSystem.h" using namespace clang::driver; using namespace clang::driver::tools; @@ -309,7 +310,9 @@ std::string OpenBSD::getCompilerRT(const ArgList &Args, std::string CRTBasename = getCompilerRTBasename(Args, Component, Type, /*AddArch=*/false); llvm::sys::path::append(P, "lib", CRTBasename); - return std::string(P.str()); + if (getVFS().exists(P)) + return std::string(P.str()); + return ToolChain::getCompilerRT(Args, Component, Type); } }