mirror of
https://git.yoctoproject.org/poky
synced 2026-03-02 05:19:40 +01:00
GCC has the ability to pass extensions to the march parameter, which expand the funcationality of the march. For example "-march=armv7ve+simd" adds SIMD to ARMv7. Currently, there is no way to expand the march setting without modifying each instance, as you can't guarantee the ordering when using the existing TUNE_CCARGS. By introducing two new variables, TUNE_CCARGS_MARCH and TUNE_CCARGS_MARCH_OPT, we can enforce that these two go together. Also, expand existing and create new feature files that use these variables to expand the functionality. (From OE-Core rev: 794eb617bfd1997e7a3498812c63a20c58a10554) Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
20 lines
809 B
HTML
20 lines
809 B
HTML
# Tuning for ARMV6-m defined in ARM v6-M ArchitectureReference Manual
|
|
# at https://static.docs.arm.com/ddi0419/d/DDI0419D_armv6m_arm.pdf
|
|
DEFAULTTUNE ?= "armv6m"
|
|
|
|
TUNEVALID[armv6m] = "Enable instructions for ARMv6-m"
|
|
TUNECONFLICTS[armv6m] = "armv4 armv5 armv6 armv7a"
|
|
|
|
# Use armv6s-m instead of armv6-m to avoid gcc bug "SVC is not permitted on this architecture".
|
|
# SVC is a valid instruction.
|
|
TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', ' -march=armv6s-m', '', d)}"
|
|
MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6m', 'armv6m:', '', d)}"
|
|
|
|
require conf/machine/include/arm/arch-armv5.inc
|
|
|
|
# Little Endian
|
|
AVAILTUNES += "armv6m"
|
|
ARMPKGARCH:tune-armv6m = "armv6m"
|
|
TUNE_FEATURES:tune-armv6m = "armv6m"
|
|
PACKAGE_EXTRA_ARCHS:tune-armv6m = "armv6m"
|