You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.5 KiB
69 lines
1.5 KiB
# SPDX-License-Identifier: Apache-2.0 |
|
|
|
set(ARM_C_FLAGS) |
|
|
|
list(APPEND ARM_C_FLAGS -mcpu=${GCC_M_CPU}) |
|
|
|
if(CONFIG_COMPILER_ISA_THUMB2) |
|
list(APPEND ARM_C_FLAGS -mthumb) |
|
endif() |
|
|
|
list(APPEND ARM_C_FLAGS -mabi=aapcs) |
|
|
|
if(CONFIG_FPU) |
|
list(APPEND ARM_C_FLAGS -mfpu=${GCC_M_FPU}) |
|
|
|
if(CONFIG_DCLS AND NOT CONFIG_FP_HARDABI) |
|
# If the processor is equipped with VFP and configured in DCLS topology, |
|
# the FP "hard" ABI must be used in order to facilitate the FP register |
|
# initialisation and synchronisation. |
|
set(FORCE_FP_HARDABI TRUE) |
|
endif() |
|
|
|
if (CONFIG_FP_HARDABI OR FORCE_FP_HARDABI) |
|
list(APPEND ARM_C_FLAGS -mfloat-abi=hard) |
|
elseif(CONFIG_FP_SOFTABI) |
|
list(APPEND ARM_C_FLAGS -mfloat-abi=softfp) |
|
endif() |
|
endif() |
|
|
|
if(CONFIG_FP16) |
|
if (CONFIG_FP16_IEEE) |
|
list(APPEND ARM_C_FLAGS -mfp16-format=ieee) |
|
elseif(CONFIG_FP16_ALT) |
|
list(APPEND ARM_C_FLAGS -mfp16-format=alternative) |
|
endif() |
|
endif() |
|
|
|
if(CONFIG_THREAD_LOCAL_STORAGE) |
|
list(APPEND ARM_C_FLAGS -mtp=soft) |
|
endif() |
|
|
|
list(APPEND TOOLCHAIN_C_FLAGS ${ARM_C_FLAGS}) |
|
list(APPEND TOOLCHAIN_LD_FLAGS NO_SPLIT ${ARM_C_FLAGS}) |
|
|
|
# Flags not supported by llext linker |
|
# (regexps are supported and match whole word) |
|
set(LLEXT_REMOVE_FLAGS |
|
-fno-pic |
|
-fno-pie |
|
-ffunction-sections |
|
-fdata-sections |
|
-g.* |
|
-Os |
|
) |
|
|
|
# Flags to be added to llext code compilation |
|
set(LLEXT_APPEND_FLAGS |
|
-mlong-calls |
|
-mthumb |
|
) |
|
|
|
list(APPEND LLEXT_EDK_REMOVE_FLAGS |
|
--sysroot=.* |
|
-fmacro-prefix-map=.* |
|
) |
|
|
|
list(APPEND LLEXT_EDK_APPEND_FLAGS |
|
-nodefaultlibs |
|
)
|
|
|