From 22456d9cdf21a5d7ce38c295ba8f8ea4dcd8d57c Mon Sep 17 00:00:00 2001 From: Mason Tran Date: Fri, 2 Feb 2024 16:10:01 -0500 Subject: [PATCH] [cmake] fix handling of assembly files These changes address the build failure that occurs when trying to build with the `ot_crash_handler` component which uses an assembly file `fault.s`. Previously, `.s` files were incorrectly set to be handled as C files without the `-x assemble-with-cpp` flag ```bash /opt/toolchain/arm-gnu-toolchain-12.3.rel1-x86_64-arm-none-eabi/bin/arm-none-eabi-gcc -DCORTEXM3=1 -DCORTEXM3_EFM32_MICRO=1 -DCORTEXM3_EFR32=1 -DEFR32MG21A020F1024IM32=1 -DHARDWARE_BOARD_DEFAULT_RF_BAND_2400=1 -DHARDWARE_BOARD_SUPPORTS_1_RF_BAND=1 -DHARDWARE_BOARD_SUPPORTS_RF_BAND_2400=1 -DHFXO_FREQ=38400000 -DMBEDTLS_CONFIG_FILE="" -DMBEDTLS_PSA_CRYPTO_CONFIG_FILE="" -DOPENTHREAD_CONFIG_DIAG_ENABLE=1 -DOPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS=0 -DOPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS_MANAGEMENT=0 -DOPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE=1 -DOPENTHREAD_CONFIG_IP6_SLAAC_ENABLE=1 -DOPENTHREAD_CONFIG_NCP_HDLC_ENABLE=1 -DOPENTHREAD_CONFIG_PING_SENDER_ENABLE=1 -DOPENTHREAD_CONFIG_THREAD_VERSION=OT_THREAD_VERSION_1_3 -DOPENTHREAD_CORE_CONFIG_PLATFORM_CHECK_FILE=\"openthread-core-efr32-config-check.h\" -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"openthread-core-efr32-config.h\" -DPACKAGE_NAME=\"OPENTHREAD\" -DPHY_RAIL=1 -DPLATFORM_HEADER=\"platform-header.h\" -DSLI_RADIOAES_REQUIRES_MASKING=1 -DSL_BOARD_NAME=\"BRD4180A\" -DSL_BOARD_REV=\"A02\" -DSL_COMPONENT_CATALOG_PRESENT=1 -DSL_OPENTHREAD_STACK_FEATURES_CONFIG_FILE=\"sl_openthread_features_config.h\" -DSL_RAIL_LIB_MULTIPROTOCOL_SUPPORT=0 -DSL_RAIL_UTIL_PA_CONFIG_HEADER="" -I/Users/matran/repos/ot-efr32/build/brd4180a/slc/soc/autogen -I/Users/matran/repos/ot-efr32/build/brd4180a/slc/soc/config -I/Users/matran/repos/ot-efr32/openthread/include -I/Users/matran/repos/ot-efr32/openthread/src -I/Users/matran/repos/ot-efr32/openthread/src/core -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/Device/SiliconLabs/EFR32MG21/Include -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/common/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/hardware/board/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/CMSIS/Core/Include -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/hardware/driver/configuration_over_swo/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/driver/debug/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/device_init/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/emdrv/dmadrv/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/emdrv/common/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/emlib/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/emdrv/gpiointerrupt/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/security/sl_component/sl_mbedtls_support/config -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/security/sl_component/sl_mbedtls_support/config/preset -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/security/sl_component/sl_mbedtls_support/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/util/third_party/mbedtls/include -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/util/third_party/mbedtls/library -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/mpu/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/emdrv/nvm3/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/protocol/openthread/src/legacy_hal/include -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/inc -I/Users/matran/repos/ot-efr32/openthread/examples/platforms -I/Users/matran/repos/ot-efr32/openthread/examples/platforms/utils -I/Users/matran/repos/ot-efr32/src/src -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/protocol/openthread/platform-abstraction/include -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/security/sl_component/sl_psa_driver/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/radio/rail_lib/common -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/radio/rail_lib/protocol/ble -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/radio/rail_lib/protocol/ieee802154 -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/radio/rail_lib/protocol/wmbus -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/radio/rail_lib/protocol/zwave -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/radio/rail_lib/chip/efr32/efr32xg2x -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/radio/rail_lib/protocol/sidewalk -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/radio/rail_lib/plugin/pa-conversions -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg21 -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/radio/rail_lib/plugin/rail_util_pti -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/radio/rail_lib/plugin/rail_util_rf_path -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/radio/rail_lib/plugin/rail_util_rssi -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/security/sl_component/se_manager/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/security/sl_component/se_manager/src -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/util/plugin/security_manager -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/util/silicon_labs/silabs_core/memory_manager -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/common/toolchain/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/system/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/sleeptimer/inc -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/security/sl_component/sl_protocol_crypto/src -I/Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/emdrv/uartdrv/inc -mcpu=cortex-m33 -mthumb -fmessage-length=0 -ffunction-sections -fdata-sections -mfpu=fpv5-sp-d16 -mfloat-abi=hard -std=c99 -Os -mcpu=cortex-m33 -mthumb -mfpu=fpv5-sp-d16 -mfloat-abi=hard -std=c99 -Wall -Wextra -Os -fdata-sections -ffunction-sections -fomit-frame-pointer -imacros sl_gcc_preinclude.h -mcmse --specs=nano.specs -g -Wno-shadow -Wno-pedantic -std=gnu99 -MD -MT build/brd4180a/slc/soc/CMakeFiles/openthread-efr32-soc.dir/__/__/__/__/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s.obj -MF build/brd4180a/slc/soc/CMakeFiles/openthread-efr32-soc.dir/__/__/__/__/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s.obj.d -o build/brd4180a/slc/soc/CMakeFiles/openthread-efr32-soc.dir/__/__/__/__/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s.obj -c /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s: Assembler messages: /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s:20: Error: bad instruction `__import__ halCrashInfo' /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s:21: Error: bad instruction `__import__ halInternalCrashHandler' /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s:22: Error: bad instruction `__import__ halInternalSysReset' /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s:25: Error: bad instruction `__equ__(EXC_RETURN_HANDLER_MSP, 0xFFFFFFF1)' /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s:26: Error: bad instruction `__equ__(EXC_RETURN_THREAD_MSP, 0xFFFFFFF9)' /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s:27: Error: bad instruction `__equ__(EXC_RETURN_THREAD_PSP, 0xFFFFFFFD)' /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s:30: Error: bad instruction `__equ__(CRASH_STACK_SIZE, 64)' /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s:43: Error: bad instruction `__code__' /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s:44: Error: bad instruction `__thumb__' /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s:45: Error: bad instruction `__export__ NMI_Handler' /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s:47: Error: unexpected character `w' in type specifier /Users/matran/repos/ot-efr32/third_party/silabs/gecko_sdk/platform/service/legacy_hal/src/faults.s:47: Error: bad instruction `b.w fault' ... ... ``` --- CMakeLists.txt | 2 +- .../platform_library/CMakeLists.txt.jinja | 9 +--- src/arm-none-eabi.cmake | 51 ------------------- src/efr32mg1/arm-none-eabi.cmake | 3 +- src/efr32mg12/arm-none-eabi.cmake | 3 +- src/efr32mg13/arm-none-eabi.cmake | 3 +- src/efr32mg21/arm-none-eabi.cmake | 3 +- src/efr32mg24/arm-none-eabi.cmake | 3 +- 8 files changed, 12 insertions(+), 65 deletions(-) delete mode 100644 src/arm-none-eabi.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 63b2138e..dc11c43e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,7 @@ # CMake project definitions # ============================================================================== cmake_minimum_required(VERSION 3.16.0) -project(ot-efr32 VERSION 1.0.0) +project(ot-efr32 VERSION 1.0.0 LANGUAGES C CXX ASM) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin) diff --git a/slc/exporter_templates/platform_library/CMakeLists.txt.jinja b/slc/exporter_templates/platform_library/CMakeLists.txt.jinja index e211d2e8..8f6cf25f 100644 --- a/slc/exporter_templates/platform_library/CMakeLists.txt.jinja +++ b/slc/exporter_templates/platform_library/CMakeLists.txt.jinja @@ -88,19 +88,12 @@ target_include_directories({{PROJECT_NAME}} PRIVATE # ============================================================================== target_sources({{PROJECT_NAME}} PRIVATE {%- for source in NON_MBEDTLS_SOURCES %} - {%- if source.endswith('.c') or source.endswith('.cpp') or source.endswith('.h') or source.endswith('.hpp') %} + {%- if source.endswith('.c') or source.endswith('.cpp') or source.endswith('.h') or source.endswith('.hpp') or source.endswith('.s') or source.endswith('.S') %} {{source}} {%- endif %} {%- endfor %} ) -{%- for source in NON_MBEDTLS_SOURCES %} - {%- if source.endswith('.s') or source.endswith('.S') %} -target_sources({{PROJECT_NAME}} PRIVATE {{source}}) -set_property(SOURCE {{source}} PROPERTY LANGUAGE C) - {%- endif %} -{%- endfor %} - # ============================================================================== # Compile definitions # ============================================================================== diff --git a/src/arm-none-eabi.cmake b/src/arm-none-eabi.cmake deleted file mode 100644 index 9f2e385f..00000000 --- a/src/arm-none-eabi.cmake +++ /dev/null @@ -1,51 +0,0 @@ -# -# Copyright (c) 2021, The OpenThread Authors. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of the copyright holder nor the -# names of its contributors may be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# - -set(CMAKE_SYSTEM_NAME Generic) -set(CMAKE_SYSTEM_PROCESSOR ARM) - -set(CMAKE_C_COMPILER arm-none-eabi-gcc) -set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -set(CMAKE_ASM_COMPILER arm-none-eabi-as) -set(CMAKE_RANLIB arm-none-eabi-ranlib) - -execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) - -set(COMMON_C_FLAGS "-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -mthumb -fdata-sections -ffunction-sections") - -set(CMAKE_C_FLAGS_INIT "${COMMON_C_FLAGS} -std=c99") -set(CMAKE_CXX_FLAGS_INIT "${COMMON_C_FLAGS} -fno-exceptions -fno-rtti") -set(CMAKE_EXE_LINKER_FLAGS_INIT "${COMMON_C_FLAGS} -specs=nano.specs -specs=nosys.specs") - -set(CMAKE_C_FLAGS_DEBUG "-Og -g") -set(CMAKE_CXX_FLAGS_DEBUG "-Og -g") -set(CMAKE_ASM_FLAGS_DEBUG "-g") - -set(CMAKE_C_FLAGS_RELEASE "-Os") -set(CMAKE_CXX_FLAGS_RELEASE "-Os") -set(CMAKE_ASM_FLAGS_RELEASE "") diff --git a/src/efr32mg1/arm-none-eabi.cmake b/src/efr32mg1/arm-none-eabi.cmake index 9f2e385f..543c7ac4 100644 --- a/src/efr32mg1/arm-none-eabi.cmake +++ b/src/efr32mg1/arm-none-eabi.cmake @@ -31,7 +31,7 @@ set(CMAKE_SYSTEM_PROCESSOR ARM) set(CMAKE_C_COMPILER arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -set(CMAKE_ASM_COMPILER arm-none-eabi-as) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) set(CMAKE_RANLIB arm-none-eabi-ranlib) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -40,6 +40,7 @@ set(COMMON_C_FLAGS "-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-ab set(CMAKE_C_FLAGS_INIT "${COMMON_C_FLAGS} -std=c99") set(CMAKE_CXX_FLAGS_INIT "${COMMON_C_FLAGS} -fno-exceptions -fno-rtti") +set(CMAKE_ASM_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} -x assembler-with-cpp") set(CMAKE_EXE_LINKER_FLAGS_INIT "${COMMON_C_FLAGS} -specs=nano.specs -specs=nosys.specs") set(CMAKE_C_FLAGS_DEBUG "-Og -g") diff --git a/src/efr32mg12/arm-none-eabi.cmake b/src/efr32mg12/arm-none-eabi.cmake index 9f2e385f..543c7ac4 100644 --- a/src/efr32mg12/arm-none-eabi.cmake +++ b/src/efr32mg12/arm-none-eabi.cmake @@ -31,7 +31,7 @@ set(CMAKE_SYSTEM_PROCESSOR ARM) set(CMAKE_C_COMPILER arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -set(CMAKE_ASM_COMPILER arm-none-eabi-as) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) set(CMAKE_RANLIB arm-none-eabi-ranlib) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -40,6 +40,7 @@ set(COMMON_C_FLAGS "-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-ab set(CMAKE_C_FLAGS_INIT "${COMMON_C_FLAGS} -std=c99") set(CMAKE_CXX_FLAGS_INIT "${COMMON_C_FLAGS} -fno-exceptions -fno-rtti") +set(CMAKE_ASM_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} -x assembler-with-cpp") set(CMAKE_EXE_LINKER_FLAGS_INIT "${COMMON_C_FLAGS} -specs=nano.specs -specs=nosys.specs") set(CMAKE_C_FLAGS_DEBUG "-Og -g") diff --git a/src/efr32mg13/arm-none-eabi.cmake b/src/efr32mg13/arm-none-eabi.cmake index 9f2e385f..543c7ac4 100644 --- a/src/efr32mg13/arm-none-eabi.cmake +++ b/src/efr32mg13/arm-none-eabi.cmake @@ -31,7 +31,7 @@ set(CMAKE_SYSTEM_PROCESSOR ARM) set(CMAKE_C_COMPILER arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -set(CMAKE_ASM_COMPILER arm-none-eabi-as) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) set(CMAKE_RANLIB arm-none-eabi-ranlib) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -40,6 +40,7 @@ set(COMMON_C_FLAGS "-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-ab set(CMAKE_C_FLAGS_INIT "${COMMON_C_FLAGS} -std=c99") set(CMAKE_CXX_FLAGS_INIT "${COMMON_C_FLAGS} -fno-exceptions -fno-rtti") +set(CMAKE_ASM_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} -x assembler-with-cpp") set(CMAKE_EXE_LINKER_FLAGS_INIT "${COMMON_C_FLAGS} -specs=nano.specs -specs=nosys.specs") set(CMAKE_C_FLAGS_DEBUG "-Og -g") diff --git a/src/efr32mg21/arm-none-eabi.cmake b/src/efr32mg21/arm-none-eabi.cmake index 04603163..a803b08e 100644 --- a/src/efr32mg21/arm-none-eabi.cmake +++ b/src/efr32mg21/arm-none-eabi.cmake @@ -31,7 +31,7 @@ set(CMAKE_SYSTEM_PROCESSOR ARM) set(CMAKE_C_COMPILER arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -set(CMAKE_ASM_COMPILER arm-none-eabi-as) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) set(CMAKE_RANLIB arm-none-eabi-ranlib) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -40,6 +40,7 @@ set(COMMON_C_FLAGS "-mcpu=cortex-m33 -mthumb -fmessage-length=0 set(CMAKE_C_FLAGS_INIT "${COMMON_C_FLAGS} -std=c99") set(CMAKE_CXX_FLAGS_INIT "${COMMON_C_FLAGS} -fno-exceptions -fno-rtti") +set(CMAKE_ASM_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} -x assembler-with-cpp") set(CMAKE_EXE_LINKER_FLAGS_INIT "${COMMON_C_FLAGS} -specs=nano.specs -specs=nosys.specs") set(CMAKE_C_FLAGS_DEBUG "-Og -g") diff --git a/src/efr32mg24/arm-none-eabi.cmake b/src/efr32mg24/arm-none-eabi.cmake index 04603163..a803b08e 100644 --- a/src/efr32mg24/arm-none-eabi.cmake +++ b/src/efr32mg24/arm-none-eabi.cmake @@ -31,7 +31,7 @@ set(CMAKE_SYSTEM_PROCESSOR ARM) set(CMAKE_C_COMPILER arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER arm-none-eabi-g++) -set(CMAKE_ASM_COMPILER arm-none-eabi-as) +set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) set(CMAKE_RANLIB arm-none-eabi-ranlib) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE COMPILER_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -40,6 +40,7 @@ set(COMMON_C_FLAGS "-mcpu=cortex-m33 -mthumb -fmessage-length=0 set(CMAKE_C_FLAGS_INIT "${COMMON_C_FLAGS} -std=c99") set(CMAKE_CXX_FLAGS_INIT "${COMMON_C_FLAGS} -fno-exceptions -fno-rtti") +set(CMAKE_ASM_FLAGS_INIT "${CMAKE_C_FLAGS_INIT} -x assembler-with-cpp") set(CMAKE_EXE_LINKER_FLAGS_INIT "${COMMON_C_FLAGS} -specs=nano.specs -specs=nosys.specs") set(CMAKE_C_FLAGS_DEBUG "-Og -g")