From 069279e3e7f6424eed1ea79f129ab26b22195b55 Mon Sep 17 00:00:00 2001 From: Daan Date: Sat, 8 Feb 2025 12:18:27 -0800 Subject: [PATCH 1/2] improve cmake for multi-arch binaries on apple --- CMakeLists.txt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 530afcf8..cd1582b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -425,10 +425,13 @@ endif() if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|Clang|GNU|Intel" AND NOT CMAKE_SYSTEM_NAME MATCHES "Haiku") if(MI_OPT_ARCH) - if(APPLE AND CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND "arm64" IN_LIST CMAKE_OSX_ARCHITECTURES) # to support multi-arch binaries (#999) - set(MI_OPT_ARCH_FLAGS "-Xarch_arm64" "-march=armv8.1-a") + if(APPLE AND CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_OSX_ARCHITECTURES) # to support multi-arch binaries (#999) + set(MI_OPT_ARCH_FLAGS "") + if("arm64" IN_LIST CMAKE_OSX_ARCHITECTURES) + list(APPEND MI_OPT_ARCH_FLAGS "-Xarch_arm64;-march=armv8.1-a") + endif() elseif(MI_ARCH STREQUAL "arm64") - set(MI_OPT_ARCH_FLAGS "-march=armv8.1-a") # fast atomics + set(MI_OPT_ARCH_FLAGS "-march=armv8.1-a") # fast atomics endif() endif() endif() From 5f9b42685efd0800389fe785f4bfeb805bc484f8 Mon Sep 17 00:00:00 2001 From: Daan Leijen Date: Sat, 8 Feb 2025 12:51:06 -0800 Subject: [PATCH 2/2] remove declspec(dllexport) from DllMain on Windows (issue #1008) --- src/prim/windows/prim.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/prim/windows/prim.c b/src/prim/windows/prim.c index e3ad1e57..aa79eb91 100644 --- a/src/prim/windows/prim.c +++ b/src/prim/windows/prim.c @@ -651,7 +651,7 @@ static void NTAPI mi_win_main(PVOID module, DWORD reason, LPVOID reserved) { #define MI_PRIM_HAS_PROCESS_ATTACH 1 // Windows DLL: easy to hook into process_init and thread_done - __declspec(dllexport) BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved) { + BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved) { mi_win_main((PVOID)inst,reason,reserved); return TRUE; }