From d107d241e5e0758deec2fb2b0abf743f82c49015 Mon Sep 17 00:00:00 2001 From: Shreyas Atre Date: Sat, 27 Jan 2024 17:52:00 -0600 Subject: [PATCH] Fix DLOpen symbol not found macOS Signed-off-by: Shreyas Atre --- lib/Interpreter/Paths.cpp | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/lib/Interpreter/Paths.cpp b/lib/Interpreter/Paths.cpp index bbd70d89..e0e2762f 100644 --- a/lib/Interpreter/Paths.cpp +++ b/lib/Interpreter/Paths.cpp @@ -106,7 +106,20 @@ namespace platform { return std::string(Buffer.str()); } -#if defined(LLVM_ON_UNIX) +#if defined(_WIN32) + void* DLOpen(const std::string& Path, std::string& Err /* = nullptr */) { + auto lib = llvm::sys::DynamicLibrary::getLibrary(Path.c_str(), Err); + return lib.getOSSpecificHandle(); + } + + void DLClose(void* Lib, std::string& Err /* = nullptr*/) { + auto dl = llvm::sys::DynamicLibrary(Lib); + llvm::sys::DynamicLibrary::closeLibrary(dl); + if (Err) { + *Err = std::string(); + } + } +#else static void DLErr(std::string& Err) { if (Err.empty()) return; @@ -124,20 +137,6 @@ namespace platform { ::dlclose(Lib); DLErr(Err); } -#elif defined(_WIN32) - - void* DLOpen(const std::string& Path, std::string& Err /* = nullptr */) { - auto lib = llvm::sys::DynamicLibrary::getLibrary(Path.c_str(), Err); - return lib.getOSSpecificHandle(); - } - - void DLClose(void* Lib, std::string& Err /* = nullptr*/) { - auto dl = llvm::sys::DynamicLibrary(Lib); - llvm::sys::DynamicLibrary::closeLibrary(dl); - if (Err) { - *Err = std::string(); - } - } #endif } // namespace platform