Files
mbed-os/tools/cmake/toolchains/GCC_ARM.cmake
Beslan 0ef1717155
Some checks failed
Basic Checks / license-check (push) Has been cancelled
Basic Checks / include-check (push) Has been cancelled
Basic Checks / style-check (push) Has been cancelled
Basic Checks / docs-check (push) Has been cancelled
Basic Checks / python-tests (push) Has been cancelled
Basic Checks / pin-validation (push) Has been cancelled
Basic Checks / cmake-checks (push) Has been cancelled
Basic Checks / frozen-tools-check (push) Has been cancelled
Publish or Update docker image for head of branch / prepare-tags (push) Has been cancelled
Release or update docker image for a released mbed-os version / prepare-tags (push) Has been cancelled
Publish or Update docker image for head of branch / build-container (push) Has been cancelled
Publish or Update docker image for head of branch / test-container (linux/amd64) (push) Has been cancelled
Publish or Update docker image for head of branch / test-container (linux/arm64) (push) Has been cancelled
Publish or Update docker image for head of branch / deploy-container (push) Has been cancelled
Release or update docker image for a released mbed-os version / build-container (push) Has been cancelled
Release or update docker image for a released mbed-os version / test-container (linux/amd64) (push) Has been cancelled
Release or update docker image for a released mbed-os version / test-container (linux/arm64) (push) Has been cancelled
Release or update docker image for a released mbed-os version / deploy-container (push) Has been cancelled
Prune temporary docker images / prune-images (push) Has been cancelled
Mirror mbed-os-6.15.0
2026-07-10 18:42:39 +03:00

95 lines
2.4 KiB
CMake

# Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
set(CMAKE_ASM_COMPILER "arm-none-eabi-gcc")
set(CMAKE_C_COMPILER "arm-none-eabi-gcc")
set(CMAKE_CXX_COMPILER "arm-none-eabi-g++")
set(GCC_ELF2BIN "arm-none-eabi-objcopy")
set_property(GLOBAL PROPERTY ELF2BIN ${GCC_ELF2BIN})
# build toolchain flags that get passed to everything (including CMake compiler checks)
list(APPEND link_options
"-Wl,--start-group"
"-lstdc++"
"-lsupc++"
"-lm"
"-lc"
"-lgcc"
"-lnosys"
"-Wl,--end-group"
"-specs=nosys.specs"
"-Wl,--cref"
)
# Add linking time preprocessor macro for TFM targets
if("TFM" IN_LIST MBED_TARGET_LABELS)
list(APPEND link_options
"-DDOMAIN_NS=1"
)
endif()
list(APPEND common_options
"-Wall"
"-Wextra"
"-Wno-unused-parameter"
"-Wno-missing-field-initializers"
"-fmessage-length=0"
"-fno-exceptions"
"-ffunction-sections"
"-fdata-sections"
"-funsigned-char"
"-fomit-frame-pointer"
"-g3"
)
# Configure the toolchain to select the selected C library
function(mbed_set_c_lib target lib_type)
if (${lib_type} STREQUAL "small")
target_compile_definitions(${target}
INTERFACE
MBED_RTOS_SINGLE_THREAD
__NEWLIB_NANO
)
target_link_options(${target}
INTERFACE
"--specs=nano.specs"
)
endif()
endfunction()
# Configure the toolchain to select the selected printf library
function(mbed_set_printf_lib target lib_type)
if (${lib_type} STREQUAL "minimal-printf")
target_compile_definitions(${target}
INTERFACE
MBED_MINIMAL_PRINTF
)
set(printf_link_options "")
list(APPEND printf_link_options
"-Wl,--wrap,printf"
"-Wl,--wrap,sprintf"
"-Wl,--wrap,snprintf"
"-Wl,--wrap,vprintf"
"-Wl,--wrap,vsprintf"
"-Wl,--wrap,vsnprintf"
"-Wl,--wrap,fprintf"
"-Wl,--wrap,vfprintf"
)
target_link_options(${target}
INTERFACE
${printf_link_options}
)
endif()
endfunction()
# Add linker flags to generate a mapfile with a given name
function(mbed_configure_memory_map target mapfile)
target_link_options(${target}
PRIVATE
"-Wl,-Map=${mapfile}"
)
endfunction()