Implement File::GetExePath() for OpenBSD with getexecpath()

This commit is contained in:
Brad Smith
2026-09-15 00:49:03 -04:00
parent c185d27ede
commit 71165c82a5
2 changed files with 10 additions and 0 deletions
+5
View File
@@ -80,6 +80,11 @@ if(HAVE_ELF_AUX_INFO)
add_definitions(-DHAVE_ELF_AUX_INFO)
endif()
check_symbol_exists(getexecpath unistd.h HAVE_GETEXECPATH)
if(HAVE_GETEXECPATH)
add_definitions(-DHAVE_GETEXECPATH)
endif()
add_subdirectory(Core)
if (ANDROID)
add_subdirectory(Android/jni)
+5
View File
@@ -740,6 +740,11 @@ std::string GetExePath()
if (sysctl(name, 4, dolphin_exe_path.data(), &length, nullptr, 0) != 0)
return {};
return dolphin_exe_path;
#elif defined(__OpenBSD__) && defined(HAVE_GETEXECPATH)
char dolphin_exe_path[PATH_MAX];
if (getexecpath(dolphin_exe_path, sizeof(dolphin_exe_path)) != 0)
return {};
return dolphin_exe_path;
#else
char dolphin_exe_path[PATH_MAX];
ssize_t len = ::readlink("/proc/self/exe", dolphin_exe_path, sizeof(dolphin_exe_path));