This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit d701340cb6c168ae3d161c814410b620ddc29e9d
Author: bijunda <[email protected]>
AuthorDate: Tue May 12 21:18:33 2026 +0800

    fix(sim): fix cmake build on macOS
    
    macOS /usr/bin/ar does not understand the @rsp syntax used in CMake.
    Using LLVM binutils instead.
    
    Signed-off-by: bijunda <[email protected]>
---
 arch/sim/src/cmake/Toolchain.cmake | 16 ++++++++++++++--
 arch/sim/src/sim/CMakeLists.txt    |  1 +
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/arch/sim/src/cmake/Toolchain.cmake 
b/arch/sim/src/cmake/Toolchain.cmake
index 3b21b25fbc8..e326dca663e 100644
--- a/arch/sim/src/cmake/Toolchain.cmake
+++ b/arch/sim/src/cmake/Toolchain.cmake
@@ -21,8 +21,20 @@
 # 
##############################################################################
 
 if(APPLE AND CONFIG_SIM_TOOLCHAIN_GCC)
-  find_program(CMAKE_C_ELF_COMPILER x86_64-elf-gcc)
-  find_program(CMAKE_CXX_ELF_COMPILER x86_64-elf-g++)
+  if(CONFIG_HOST_ARM64)
+    find_program(CMAKE_C_ELF_COMPILER aarch64-elf-gcc)
+    find_program(CMAKE_CXX_ELF_COMPILER aarch64-elf-g++)
+  else()
+    find_program(CMAKE_C_ELF_COMPILER x86_64-elf-gcc)
+    find_program(CMAKE_CXX_ELF_COMPILER x86_64-elf-g++)
+  endif()
+endif()
+
+# Ninja archives large object lists through response files. Use LLVM binutils
+# because macOS /usr/bin/ar does not understand the @rsp syntax.
+if(APPLE)
+  find_program(CMAKE_AR NAMES llvm-ar REQUIRED)
+  find_program(CMAKE_RANLIB NAMES llvm-ranlib REQUIRED)
 endif()
 
 if(WIN32)
diff --git a/arch/sim/src/sim/CMakeLists.txt b/arch/sim/src/sim/CMakeLists.txt
index a47cc98d5aa..47d1efd8888 100644
--- a/arch/sim/src/sim/CMakeLists.txt
+++ b/arch/sim/src/sim/CMakeLists.txt
@@ -156,6 +156,7 @@ list(
 if(CONFIG_HOST_MACOS)
   if(CONFIG_HAVE_CXXINITIALIZE)
     list(APPEND HOSTSRCS sim_macho_init.c)
+    target_link_options(nuttx PRIVATE -Wl,-ld_classic,-no_fixup_chains)
   endif()
 endif()
 

Reply via email to