[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