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()
