ggml : fix run-time on FreeBSD in get_executable_path() (#10948)

This commit is contained in:
yuri@FreeBSD 2024-12-22 16:20:11 -08:00 committed by GitHub
parent 7c0e285858
commit 7024d59e6a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -402,12 +402,16 @@ static std::string get_executable_path() {
base_path = base_path.substr(0, last_slash);
}
return base_path + "/";
#elif defined(__linux__)
#elif defined(__linux__) || defined(__FreeBSD__)
std::string base_path = ".";
std::vector<char> path(1024);
while (true) {
// get executable path
# if defined(__linux__)
ssize_t len = readlink("/proc/self/exe", path.data(), path.size());
# elif defined(__FreeBSD__)
ssize_t len = readlink("/proc/curproc/file", path.data(), path.size());
# endif
if (len == -1) {
break;
}