[llvm] 9ce30c8 - [Orc][LibResolver] Fix GNU/Hurd build (#184470)

via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 5 11:56:36 PDT 2026


Author: Samuel Thibault
Date: 2026-04-05T19:56:31+01:00
New Revision: 9ce30c8dc3ab8718d9818e8995d677e5b883302a

URL: https://github.com/llvm/llvm-project/commit/9ce30c8dc3ab8718d9818e8995d677e5b883302a
DIFF: https://github.com/llvm/llvm-project/commit/9ce30c8dc3ab8718d9818e8995d677e5b883302a.diff

LOG: [Orc][LibResolver] Fix GNU/Hurd build (#184470)

GNU/Hurd does not put a PATH_MAX static constraint on path lengths. We can instead check the symlink length.

Added: 
    

Modified: 
    llvm/lib/ExecutionEngine/Orc/TargetProcess/LibraryScanner.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/ExecutionEngine/Orc/TargetProcess/LibraryScanner.cpp b/llvm/lib/ExecutionEngine/Orc/TargetProcess/LibraryScanner.cpp
index 5d5b2ae543e57..cf662afe24fe6 100644
--- a/llvm/lib/ExecutionEngine/Orc/TargetProcess/LibraryScanner.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/TargetProcess/LibraryScanner.cpp
@@ -439,11 +439,9 @@ std::optional<std::string> PathResolver::readlinkCached(StringRef Path) {
     return Cache;
 
   // If result not in cache - call system function and cache result
-  char buf[PATH_MAX];
-  ssize_t len;
-  if ((len = readlink(Path.str().c_str(), buf, sizeof(buf))) != -1) {
-    buf[len] = '\0';
-    std::string s(buf);
+  SmallString<128> Buf;
+  if (!sys::fs::readlink(Path, Buf)) {
+    std::string s(Buf.str());
     LibPathCache->insert_link(Path, s);
     return s;
   }


        


More information about the llvm-commits mailing list