From ede668b71210f097cd9722408f40095e9c5c44cb Mon Sep 17 00:00:00 2001 From: Brad Smith Date: Thu, 18 Sep 2025 21:43:51 -0400 Subject: [PATCH] Fixes for BSD build - patch fixes for BSD handling - OpenBSD/aarch64 has elf_aux_info() - unrar build fix for FreeBSD/NetBSD/OpenBSD - OpenBSD does not have librt Signed-off-by: Rafael Kitover --- src/core/base/patch.cpp | 4 ++-- src/core/fex/7z_C/CpuArch.c | 2 +- src/core/fex/unrar/strfn.cpp | 8 ++++++-- third_party/sfml/src/SFML/System/CMakeLists.txt | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/core/base/patch.cpp b/src/core/base/patch.cpp index 44774b7e..ff113839 100644 --- a/src/core/base/patch.cpp +++ b/src/core/base/patch.cpp @@ -10,7 +10,7 @@ #endif -#if defined(__FreeBSD__) || defined(__NetBSD__) +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) #include #define fopen64 fopen #define fseeko64 fseeko @@ -34,7 +34,7 @@ #include "core/base/file_util.h" #ifdef __GNUC__ -#if defined(__MUSL__) || defined(__APPLE__) || defined(BSD) || defined(__NetBSD__) +#if defined(__MUSL__) || defined(__APPLE__) || defined(BSD) typedef off_t __off64_t; /* off_t is 64 bits on BSD. */ #define fseeko64 fseeko #define ftello64 ftello diff --git a/src/core/fex/7z_C/CpuArch.c b/src/core/fex/7z_C/CpuArch.c index 2560f908..329e4c0c 100644 --- a/src/core/fex/7z_C/CpuArch.c +++ b/src/core/fex/7z_C/CpuArch.c @@ -877,7 +877,7 @@ BoolInt CPU_IsSupported_AES (void) { return APPLE_CRYPTO_SUPPORT_VAL; } #ifdef USE_HWCAP -#if defined(__FreeBSD__) +#if defined(__FreeBSD__) || defined(__OpenBSD__) static unsigned long MY_getauxval(int aux) { unsigned long val; diff --git a/src/core/fex/unrar/strfn.cpp b/src/core/fex/unrar/strfn.cpp index ce448c0a..fb3b1e33 100644 --- a/src/core/fex/unrar/strfn.cpp +++ b/src/core/fex/unrar/strfn.cpp @@ -129,7 +129,9 @@ wchar etoupperw(wchar ch) { if (ch=='i') return('I'); -#if defined(__APPLE__) || defined(_MSC_VER) || defined(__MINGW32__) || defined(__linux__) +#if defined(__APPLE__) || defined(_MSC_VER) || defined(__MINGW32__) || \ + defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || \ + defined(__OpenBSD__) return(toupper(ch)); #else return(toupperw(ch)); @@ -234,7 +236,9 @@ bool LowAscii(const wchar *Str) int wcsicompc(const wchar *Str1,const wchar *Str2) { -#if defined(_UNIX) || defined(_MSC_VER) || defined(__APPLE__) || defined(__linux__) +#if defined(_UNIX) || defined(_MSC_VER) || defined(__APPLE__) || \ + defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || \ + defined(__OpenBSD__) return my_wcscmp(Str1,Str2); #elif defined(__MINGW32__) return _wcsicmp(Str1,Str2); diff --git a/third_party/sfml/src/SFML/System/CMakeLists.txt b/third_party/sfml/src/SFML/System/CMakeLists.txt index 52ce7a91..5d85fe99 100644 --- a/third_party/sfml/src/SFML/System/CMakeLists.txt +++ b/third_party/sfml/src/SFML/System/CMakeLists.txt @@ -88,7 +88,7 @@ endif() if(UNIX OR APPLE) target_link_libraries(sfml-system PRIVATE pthread) endif() -if(UNIX AND NOT APPLE) +if(UNIX AND NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") target_link_libraries(sfml-system PRIVATE rt) elseif(WIN32) target_link_libraries(sfml-system PRIVATE winmm)