diff --git a/arch/sim/src/cmake/Toolchain.cmake b/arch/sim/src/cmake/Toolchain.cmake index c4c0cff080a91..7e295493a0c26 100644 --- a/arch/sim/src/cmake/Toolchain.cmake +++ b/arch/sim/src/cmake/Toolchain.cmake @@ -29,6 +29,32 @@ if(WIN32) return() endif() +# LLVM style architecture flags +if(CONFIG_HOST_X86_64) + if(CONFIG_SIM_M32) + set(LLVM_ARCHTYPE "x86") + set(LLVM_CPUTYPE "i686") + else() + set(LLVM_ARCHTYPE "x86_64") + set(LLVM_CPUTYPE "skylake") + endif() +elseif(CONFIG_HOST_X86_32) + set(LLVM_ARCHTYPE "x86") + set(LLVM_CPUTYPE "i686") +elseif(CONFIG_HOST_ARM64) + set(LLVM_ARCHTYPE "aarch64") + set(LLVM_CPUTYPE "cortex-a53") +elseif(CONFIG_HOST_ARM) + set(LLVM_ARCHTYPE "arm") + set(LLVM_CPUTYPE "cortex-a9") +endif() + +if(CONFIG_HOST_LINUX OR CONFIG_HOST_MACOS) + set(LLVM_ABITYPE "sysv") +elseif(WIN32) + set(LLVM_ABITYPE "msvc") +endif() + # NuttX is sometimes built as a native target. In that case, the __NuttX__ macro # is predefined by the compiler. https://github.com/NuttX/buildroot # diff --git a/boards/sim/sim/sim/scripts/Make.defs b/boards/sim/sim/sim/scripts/Make.defs index c56772dc04309..5911e22b29fe8 100644 --- a/boards/sim/sim/sim/scripts/Make.defs +++ b/boards/sim/sim/sim/scripts/Make.defs @@ -179,9 +179,9 @@ else ifeq ($(CONFIG_HOST_ARM),y) endif ifeq ($(CONFIG_HOST_LINUX),y) - LLVM_ABITYPE := gnu + LLVM_ABITYPE := sysv else ifeq ($(CONFIG_HOST_MACOS),y) - LLVM_ABITYPE := darwin + LLVM_ABITYPE := sysv endif ARCHPICFLAGS = -fpic