From c46d9af26cefb0b24646d3235b75ae7a1b8548d4 Mon Sep 17 00:00:00 2001 From: Douglas Yung Date: Mon, 1 May 2023 10:22:53 -0700 Subject: [PATCH] Revert "Host: generalise `GetXcodeSDKPath`" This reverts commit ade3c6a6a88ed3a9b06c076406f196da9d3cc1b9. This breaks the build with GCC and affects at least 2 build bots: https://lab.llvm.org/buildbot/#/builders/217/builds/20568 https://lab.llvm.org/buildbot/#/builders/243/builds/5576 --- lldb/include/lldb/Host/HostInfoBase.h | 29 +++------------------- lldb/include/lldb/Host/macosx/HostInfoMacOSX.h | 2 +- lldb/source/Core/Module.cpp | 4 +-- lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm | 10 ++------ .../Platform/MacOSX/PlatformAppleSimulator.cpp | 3 +-- .../Plugins/Platform/MacOSX/PlatformMacOSX.cpp | 3 +-- lldb/unittests/Host/HostInfoTest.cpp | 3 +-- 7 files changed, 12 insertions(+), 42 deletions(-) diff --git a/lldb/include/lldb/Host/HostInfoBase.h b/lldb/include/lldb/Host/HostInfoBase.h index 28f8093..42f71d9 100644 --- a/lldb/include/lldb/Host/HostInfoBase.h +++ b/lldb/include/lldb/Host/HostInfoBase.h @@ -31,23 +31,6 @@ struct SharedCacheImageInfo { lldb::DataBufferSP data_sp; }; -namespace { -struct HostInfoError : public llvm::ErrorInfo { - static char ID; - const std::string message_; - - HostInfoError(const std::string message) : message_(std::move(message)) {} - - void log(llvm::raw_ostream &OS) const override { OS << "HostInfoError"; } - - std::error_code convertToErrorCode() const override { - return llvm::inconvertibleErrorCode(); - } -}; - -char HostInfoError::ID = 0; -} // namespace - class HostInfoBase { private: // Static class, unconstructable. @@ -125,14 +108,10 @@ public: static FileSpec GetXcodeContentsDirectory() { return {}; } static FileSpec GetXcodeDeveloperDirectory() { return {}; } - - struct SDKOptions { - std::optional XcodeSDK; - }; - - /// Return the directory containing something like a SDK (reused for Swift). - static llvm::Expected GetSDKRoot(SDKOptions options) { - return llvm::make_error("cannot determine SDK root"); + + /// Return the directory containing a specific Xcode SDK. + static llvm::Expected GetXcodeSDKPath(XcodeSDK sdk) { + return ""; } /// Return information about module \p image_name if it is loaded in diff --git a/lldb/include/lldb/Host/macosx/HostInfoMacOSX.h b/lldb/include/lldb/Host/macosx/HostInfoMacOSX.h index 74d979d..0402509 100644 --- a/lldb/include/lldb/Host/macosx/HostInfoMacOSX.h +++ b/lldb/include/lldb/Host/macosx/HostInfoMacOSX.h @@ -31,7 +31,7 @@ public: static FileSpec GetXcodeDeveloperDirectory(); /// Query xcrun to find an Xcode SDK directory. - static llvm::Expected GetSDKRoot(SDKOptions options); + static llvm::Expected GetXcodeSDKPath(XcodeSDK sdk); /// Shared cache utilities static SharedCacheImageInfo diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index 6293cc7..17d8043 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -1607,8 +1607,8 @@ std::optional Module::RemapSourceFile(llvm::StringRef path) const { void Module::RegisterXcodeSDK(llvm::StringRef sdk_name, llvm::StringRef sysroot) { - auto sdk_path_or_err = - HostInfo::GetSDKRoot(HostInfo::SDKOptions{sdk_name.str()}); + XcodeSDK sdk(sdk_name.str()); + auto sdk_path_or_err = HostInfo::GetXcodeSDKPath(sdk); if (!sdk_path_or_err) { Debugger::ReportError("Error while searching for Xcode SDK: " + diff --git a/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm index 6569013..5a39ed3 100644 --- a/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm +++ b/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm @@ -338,8 +338,7 @@ FileSpec HostInfoMacOSX::GetXcodeContentsDirectory() { } } - auto sdk_path_or_err = - HostInfo::GetSDKRoot(SDKOptions{XcodeSDK::GetAnyMacOS()}); + auto sdk_path_or_err = HostInfo::GetXcodeSDKPath(XcodeSDK::GetAnyMacOS()); if (!sdk_path_or_err) { Log *log = GetLog(LLDBLog::Host); LLDB_LOGF(log, "Error while searching for Xcode SDK: %s", @@ -520,7 +519,7 @@ llvm::Expected GetXcodeSDK(XcodeSDK sdk) { return path; } -llvm::Expected HostInfoMacOSX::GetSDKRoot(SDKOptions options) { +llvm::Expected HostInfoMacOSX::GetXcodeSDKPath(XcodeSDK sdk) { struct ErrorOrPath { std::string str; bool is_error; @@ -531,11 +530,6 @@ llvm::Expected HostInfoMacOSX::GetSDKRoot(SDKOptions options) { std::lock_guard guard(g_sdk_path_mutex); LLDB_SCOPED_TIMER(); - if (!options.XcodeSDK) - return llvm::createStringError(llvm::inconvertibleErrorCode(), - "XCodeSDK not specified"); - XcodeSDK sdk = *options.XcodeSDK; - auto key = sdk.GetString(); auto it = g_sdk_path.find(key); if (it != g_sdk_path.end()) { diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp index 7044426..7501f3e 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformAppleSimulator.cpp @@ -284,8 +284,7 @@ static llvm::StringRef GetXcodeSDKDir(std::string preferred, std::string secondary) { llvm::StringRef sdk; auto get_sdk = [&](std::string sdk) -> llvm::StringRef { - auto sdk_path_or_err = - HostInfo::GetSDKRoot(HostInfo::SDKOptions{XcodeSDK(std::move(sdk))}); + auto sdk_path_or_err = HostInfo::GetXcodeSDKPath(XcodeSDK(std::move(sdk))); if (!sdk_path_or_err) { Debugger::ReportError("Error while searching for Xcode SDK: " + toString(sdk_path_or_err.takeError())); diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp index ba412da..25b821d 100644 --- a/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp +++ b/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp @@ -124,8 +124,7 @@ ConstString PlatformMacOSX::GetSDKDirectory(lldb_private::Target &target) { } // Use the default SDK as a fallback. - auto sdk_path_or_err = - HostInfo::GetSDKRoot(HostInfo::SDKOptions{XcodeSDK::GetAnyMacOS()}); + auto sdk_path_or_err = HostInfo::GetXcodeSDKPath(XcodeSDK::GetAnyMacOS()); if (!sdk_path_or_err) { Debugger::ReportError("Error while searching for Xcode SDK: " + toString(sdk_path_or_err.takeError())); diff --git a/lldb/unittests/Host/HostInfoTest.cpp b/lldb/unittests/Host/HostInfoTest.cpp index 322675c..b6c8edd 100644 --- a/lldb/unittests/Host/HostInfoTest.cpp +++ b/lldb/unittests/Host/HostInfoTest.cpp @@ -57,8 +57,7 @@ TEST_F(HostInfoTest, GetHostname) { #if defined(__APPLE__) TEST_F(HostInfoTest, GetXcodeSDK) { auto get_sdk = [](std::string sdk, bool error = false) -> llvm::StringRef { - auto sdk_path_or_err = - HostInfo::GetSDKRoot(HostInfo::SDKOptions{XcodeSDK(std::move(sdk))}); + auto sdk_path_or_err = HostInfo::GetXcodeSDKPath(XcodeSDK(std::move(sdk))); if (!error) { EXPECT_TRUE((bool)sdk_path_or_err); return *sdk_path_or_err; -- 2.7.4