On 3/3/20 3:59 AM, Peter Kjellerstedt wrote:
-----Original Message-----
From: [email protected] <openembedded-core-
[email protected]> On Behalf Of Junling Zheng
Sent: den 3 mars 2020 04:11
To: Khem Raj <[email protected]>; openembedded-
[email protected]
Cc: [email protected]
Subject: Re: [OE-core] [PATCH] arch-arm64.inc: Do not append aarch64 in
MACHINEOVERRIDES

On 2020/3/3 2:29, Khem Raj wrote:


On 3/2/20 9:11 AM, Junling Zheng wrote:
Currently, for arch-arm64, poky will append the MACHINEOVERRIDES with
"aarch64:", which has the higher priority than TRANSLATED_TARGET_ARCH.
So, for aarch64 big endian, the variable '<foo>_aarch64' will override
not only '<foo>', but also '<foo>_aarch64-be', thus we will get an
incorrect variable.

Signed-off-by: Junling Zheng <[email protected]>
---
   meta/conf/machine/include/arm/arch-arm64.inc | 2 --
   1 file changed, 2 deletions(-)

diff --git a/meta/conf/machine/include/arm/arch-arm64.inc
b/meta/conf/machine/include/arm/arch-arm64.inc
index 53f4566815..32294bd218 100644
--- a/meta/conf/machine/include/arm/arch-arm64.inc
+++ b/meta/conf/machine/include/arm/arch-arm64.inc
@@ -4,8 +4,6 @@ require conf/machine/include/arm/arch-armv7ve.inc
     TUNEVALID[aarch64] = "Enable instructions for aarch64"
   -MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 
'aarch64:', '' ,d)}"
-

if its removed here, where is it being added for other machines,
question is, should we treat aarch64 as LE equivalent of aarch64_be
or should be treated as common aarch64 and a new define like aarch64_le
defined.


Currently, for arm64, we have aarch64_be to represent big endian, but no
overrides to represent little endian only.

So, IMO, we should treat aarch64 as little enaian only, like arm and
armeb.

   # Little Endian base configs
   AVAILTUNES += "aarch64 aarch64_be"
   ARMPKGARCH_tune-aarch64 ?= "aarch64"

Please, before removing "aarch64" from MACHINEOVERRIDES, add "armv8a" or
similar. This is how it is done for the armv7* based chips. E.g., I would
expect to see tune-cortexa53.inc have:

MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'cortexa53', 'armv8a:', 
'' ,d)}"

Which corresponds to how it is done for armv7*.

At least we currently rely on being able to do, e.g.:

COMPATIBLE_MACHINE = "aarch64|armv7a|armv7ve"

and if you remove "aarch64" from MACHINEOVERRIDES, we need a suitable
substitute.

I think armv8a or somesuch might be better in the above usecase, but so far I think we have treated aarch64 as common arm64 notation, so removing this might have more changes needed in rest of metadata, which would be not good.

//Peter

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to