mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 13:09:50 +00:00
armv8/armv9: Avoid using -march when -mcpu is chosen
Current include logic goes into generic arm v8/v9 architecture tunes and adds corresponding -march option after synthesizing it from various tune fragments, this is fine for a machine which is using armv8/armv9 based tunes but cortex tunes are intentionally using -mcpu option based on selected tune value. So when cortex based default tune is selected for a machine, it will add both -mcpu and -march to the compiler commandline which can result in invalid combinations for this pair in gcc's own logic. This can then result in compiler warnings/errors reporting this e.g. aarch64-yoe-linux-gcc -mcpu=cortex-a72.cortex-a53 -march=armv8-a+crc+crypto -mbranch-protection=standard ... cc1: error: switch '-mcpu=cortex-a72.cortex-a53' conflicts with '-march=armv8-a+crc+crypto' switch and resulted in options '+crc+crypto' being added [-Werror] This is seen in lot of configure test results in glibc 2.39 and the warning is promoted to errors by gcc in some of these checks especially with gcc-14, the logs also show it as warning in other places in configure checks. mcpu option will compute relevant march implicitly as it specifies a cpu implementation and this will be the right value to use, therefore do not specify -march when -mcpu is already describing the cpu. (From OE-Core rev: e64f0c1b6ac5d598a79a21de5f3060f83cb9523e) Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Ross Burton <ross.burton@arm.com> Cc: Jon Mason <jdmason@kudzu.us> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -9,7 +9,8 @@ require conf/machine/include/arm/arch-armv8a.inc
|
||||
AVAILTUNES += "cortexa32 cortexa32-crypto"
|
||||
ARMPKGARCH:tune-cortexa32 = "cortexa32"
|
||||
ARMPKGARCH:tune-cortexa32-crypto = "cortexa32"
|
||||
TUNE_FEATURES:tune-cortexa32 = "armv8a cortexa32 crc callconvention-hard neon"
|
||||
# We do not want -march since -mcpu is added above to cover for it
|
||||
TUNE_FEATURES:tune-cortexa32 = "aarch64 cortexa32 crc callconvention-hard neon"
|
||||
TUNE_FEATURES:tune-cortexa32-crypto = "${TUNE_FEATURES:tune-cortexa32} crypto"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa32 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa32 cortexa32hf-neon"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa32-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa32 cortexa32hf-neon cortexa32hf-neon-crypto"
|
||||
|
||||
@@ -12,7 +12,8 @@ require conf/machine/include/arm/arch-armv8a.inc
|
||||
AVAILTUNES += "cortexa34 cortexa34-crypto"
|
||||
ARMPKGARCH:tune-cortexa34 = "cortexa34"
|
||||
ARMPKGARCH:tune-cortexa34-crypto = "cortexa34"
|
||||
TUNE_FEATURES:tune-cortexa34 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa34"
|
||||
# We do not want -march since -mcpu is added above to cover for it
|
||||
TUNE_FEATURES:tune-cortexa34 = "aarch64 crc cortexa34"
|
||||
TUNE_FEATURES:tune-cortexa34-crypto = "${TUNE_FEATURES:tune-cortexa34} crypto"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa34 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa34"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa34-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa34 cortexa34-crypto"
|
||||
|
||||
@@ -9,7 +9,8 @@ require conf/machine/include/arm/arch-armv8a.inc
|
||||
AVAILTUNES += "cortexa35 cortexa35-crypto"
|
||||
ARMPKGARCH:tune-cortexa35 = "cortexa35"
|
||||
ARMPKGARCH:tune-cortexa35-crypto = "cortexa35"
|
||||
TUNE_FEATURES:tune-cortexa35 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa35"
|
||||
# We do not want -march since -mcpu is added above to cover for it
|
||||
TUNE_FEATURES:tune-cortexa35 = "aarch64 crc cortexa35"
|
||||
TUNE_FEATURES:tune-cortexa35-crypto = "${TUNE_FEATURES:tune-cortexa35} crypto"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa35 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa35"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa35-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa35 cortexa35-crypto"
|
||||
|
||||
@@ -9,7 +9,8 @@ require conf/machine/include/arm/arch-armv8a.inc
|
||||
AVAILTUNES += "cortexa53 cortexa53-crypto"
|
||||
ARMPKGARCH:tune-cortexa53 = "cortexa53"
|
||||
ARMPKGARCH:tune-cortexa53-crypto = "cortexa53-crypto"
|
||||
TUNE_FEATURES:tune-cortexa53 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa53"
|
||||
# We do not want -march since -mcpu is added above to cover for it
|
||||
TUNE_FEATURES:tune-cortexa53 = "aarch64 crc cortexa53"
|
||||
TUNE_FEATURES:tune-cortexa53-crypto = "${TUNE_FEATURES:tune-cortexa53} crypto"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa53 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa53"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa53-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto"
|
||||
|
||||
@@ -9,6 +9,7 @@ require conf/machine/include/arm/arch-armv8a.inc
|
||||
# Little Endian base configs
|
||||
AVAILTUNES += "cortexa57-cortexa53"
|
||||
ARMPKGARCH:tune-cortexa57-cortexa53 = "cortexa57-cortexa53"
|
||||
TUNE_FEATURES:tune-cortexa57-cortexa53 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa57-cortexa53"
|
||||
# We do not want -march since -mcpu is added above to cover for it
|
||||
TUNE_FEATURES:tune-cortexa57-cortexa53 = "aarch64 crc cortexa57-cortexa53"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa57-cortexa53"
|
||||
BASE_LIB:tune-cortexa57-cortexa53 = "lib64"
|
||||
|
||||
@@ -9,7 +9,8 @@ require conf/machine/include/arm/arch-armv8a.inc
|
||||
AVAILTUNES += "cortexa57 cortexa57-crypto"
|
||||
ARMPKGARCH:tune-cortexa57 = "cortexa57"
|
||||
ARMPKGARCH:tune-cortexa57-crypto = "cortexa57-crypto"
|
||||
TUNE_FEATURES:tune-cortexa57 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa57"
|
||||
# We do not want -march since -mcpu is added above to cover for it
|
||||
TUNE_FEATURES:tune-cortexa57 = "aarch64 crc cortexa57"
|
||||
TUNE_FEATURES:tune-cortexa57-crypto = "${TUNE_FEATURES:tune-cortexa57} crypto"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa57 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa57"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa57-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto"
|
||||
|
||||
@@ -10,7 +10,8 @@ require conf/machine/include/arm/arch-armv8a.inc
|
||||
AVAILTUNES += "cortexa72-cortexa53 cortexa72-cortexa53-crypto"
|
||||
ARMPKGARCH:tune-cortexa72-cortexa53 = "cortexa72-cortexa53"
|
||||
ARMPKGARCH:tune-cortexa72-cortexa53-crypto = "cortexa72-cortexa53-crypto"
|
||||
TUNE_FEATURES:tune-cortexa72-cortexa53 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa72-cortexa53"
|
||||
# We do not want -march since -mcpu is added above to cover for it
|
||||
TUNE_FEATURES:tune-cortexa72-cortexa53 = "aarch64 crc cortexa72-cortexa53"
|
||||
TUNE_FEATURES:tune-cortexa72-cortexa53-crypto = "${TUNE_FEATURES:tune-cortexa72-cortexa53} crypto"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa72-cortexa53 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa72-cortexa53"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa72-cortexa53-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto"
|
||||
|
||||
@@ -9,7 +9,8 @@ require conf/machine/include/arm/arch-armv8a.inc
|
||||
AVAILTUNES += "cortexa72 cortexa72-crypto"
|
||||
ARMPKGARCH:tune-cortexa72 = "cortexa72"
|
||||
ARMPKGARCH:tune-cortexa72-crypto = "cortexa72"
|
||||
TUNE_FEATURES:tune-cortexa72 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa72"
|
||||
# We do not want -march since -mcpu is added above to cover for it
|
||||
TUNE_FEATURES:tune-cortexa72 = "aarch64 crc cortexa72"
|
||||
TUNE_FEATURES:tune-cortexa72-crypto = "${TUNE_FEATURES:tune-cortexa72} crypto"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa72 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa72"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa72-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa72 cortexa72-crypto"
|
||||
|
||||
@@ -13,7 +13,8 @@ require conf/machine/include/arm/arch-armv8a.inc
|
||||
AVAILTUNES += "cortexa73-cortexa35 cortexa73-cortexa35-crypto"
|
||||
ARMPKGARCH:tune-cortexa73-cortexa35 = "cortexa73-cortexa35"
|
||||
ARMPKGARCH:tune-cortexa73-cortexa35-crypto = "cortexa73-cortexa35-crypto"
|
||||
TUNE_FEATURES:tune-cortexa73-cortexa35 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa73-cortexa35"
|
||||
# We do not want -march since -mcpu is added above to cover for it
|
||||
TUNE_FEATURES:tune-cortexa73-cortexa35 = "aarch64 crc cortexa73-cortexa35"
|
||||
TUNE_FEATURES:tune-cortexa73-cortexa35-crypto = "${TUNE_FEATURES:tune-cortexa73-cortexa35} crypto"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa73-cortexa35 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa73-cortexa35"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa73-cortexa35-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa73-cortexa35 cortexa73-cortexa35-crypto"
|
||||
|
||||
@@ -10,7 +10,8 @@ require conf/machine/include/arm/arch-armv8a.inc
|
||||
AVAILTUNES += "cortexa73-cortexa53 cortexa73-cortexa53-crypto"
|
||||
ARMPKGARCH:tune-cortexa73-cortexa53 = "cortexa73-cortexa53"
|
||||
ARMPKGARCH:tune-cortexa73-cortexa53-crypto = "cortexa73-cortexa53-crypto"
|
||||
TUNE_FEATURES:tune-cortexa73-cortexa53 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa73-cortexa53"
|
||||
# We do not want -march since -mcpu is added above to cover for it
|
||||
TUNE_FEATURES:tune-cortexa73-cortexa53 = "aarch64 crc cortexa73-cortexa53"
|
||||
TUNE_FEATURES:tune-cortexa73-cortexa53-crypto = "${TUNE_FEATURES:tune-cortexa73-cortexa53} crypto"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa73-cortexa53 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa73-cortexa53"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa73-cortexa53-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa73-cortexa53 cortexa73-cortexa53-crypto"
|
||||
|
||||
@@ -12,7 +12,8 @@ require conf/machine/include/arm/arch-armv8a.inc
|
||||
AVAILTUNES += "cortexa73 cortexa73-crypto"
|
||||
ARMPKGARCH:tune-cortexa73 = "cortexa73"
|
||||
ARMPKGARCH:tune-cortexa73-crypto = "cortexa73"
|
||||
TUNE_FEATURES:tune-cortexa73 = "${TUNE_FEATURES:tune-armv8a-crc} cortexa73"
|
||||
# We do not want -march since -mcpu is added above to cover for it
|
||||
TUNE_FEATURES:tune-cortexa73 = "aarch64 crc cortexa73"
|
||||
TUNE_FEATURES:tune-cortexa73-crypto = "${TUNE_FEATURES:tune-cortexa73} crypto"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa73 = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc} cortexa73"
|
||||
PACKAGE_EXTRA_ARCHS:tune-cortexa73-crypto = "${PACKAGE_EXTRA_ARCHS:tune-armv8a-crc-crypto} cortexa73 cortexa73-crypto"
|
||||
|
||||
Reference in New Issue
Block a user