cmake: gcc: target_arm: Force FP hard ABI for DCLS
When Dual-redundant Core Lock-step (DCLS) topology is used, the VFP registers across the two redundant cores must be manually initialised and synchronised, and this requires the `-mfloat-abi=hard` option to be specified. This commit forces the use of FP "hard" ABI on the VFP-equipped cores that are configured in DCLS topology. Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit is contained in:
parent
6d4bce81ae
commit
18398948db
1 changed files with 11 additions and 4 deletions
|
@ -14,12 +14,19 @@ if(CONFIG_FPU)
|
|||
list(APPEND TOOLCHAIN_C_FLAGS -mfpu=${GCC_M_FPU})
|
||||
list(APPEND TOOLCHAIN_LD_FLAGS -mfpu=${GCC_M_FPU})
|
||||
|
||||
if (CONFIG_FP_SOFTABI)
|
||||
list(APPEND TOOLCHAIN_C_FLAGS -mfloat-abi=softfp)
|
||||
list(APPEND TOOLCHAIN_LD_FLAGS -mfloat-abi=softfp)
|
||||
elseif(CONFIG_FP_HARDABI)
|
||||
if(CONFIG_CPU_HAS_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 TOOLCHAIN_C_FLAGS -mfloat-abi=hard)
|
||||
list(APPEND TOOLCHAIN_LD_FLAGS -mfloat-abi=hard)
|
||||
elseif(CONFIG_FP_SOFTABI)
|
||||
list(APPEND TOOLCHAIN_C_FLAGS -mfloat-abi=softfp)
|
||||
list(APPEND TOOLCHAIN_LD_FLAGS -mfloat-abi=softfp)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue