Patchwork classes: add aarch64_be target

login
register
mail settings
Submitter Koen Kooi
Date Oct. 10, 2013, 10:16 a.m.
Message ID <1381400211-28604-1-git-send-email-koen.kooi@linaro.org>
Download mbox | patch
Permalink /patch/59601/
State Accepted
Commit 570ae1afecc88b12a11e62a4341069c125d18403
Headers show

Comments

Koen Kooi - Oct. 10, 2013, 10:16 a.m.
From: Victor Kamensky <victor.kamensky@linaro.org>

Add big endian ARMv8 target to OE infrastructure

Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
---
 meta/classes/insane.bbclass       | 1 +
 meta/classes/kernel-arch.bbclass  | 1 +
 meta/classes/libc-package.bbclass | 1 +
 meta/classes/siteinfo.bbclass     | 2 ++
 4 files changed, 5 insertions(+)
Nobuhiro Iwamatsu - Oct. 11, 2013, 5:37 a.m.
Hi,

I have a question.
Why don't you unite  name rules of  other architecture?
Forexample, armeb is endian-big of arm.  mipsel is endian-little of mips.
If you can unified name, arm64eb is better, I think.

Best regards,
  Nobuhiro

2013/10/10 Koen Kooi <koen@dominion.thruhere.net>:
> From: Victor Kamensky <victor.kamensky@linaro.org>
>
> Add big endian ARMv8 target to OE infrastructure
>
> Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
> ---
>  meta/classes/insane.bbclass       | 1 +
>  meta/classes/kernel-arch.bbclass  | 1 +
>  meta/classes/libc-package.bbclass | 1 +
>  meta/classes/siteinfo.bbclass     | 2 ++
>  4 files changed, 5 insertions(+)
>
> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
> index a784aff..f1c6d22 100644
> --- a/meta/classes/insane.bbclass
> +++ b/meta/classes/insane.bbclass
> @@ -55,6 +55,7 @@ def package_qa_get_machine_dict():
>                        },
>              "linux" : {
>                          "aarch64" :   (183,    0,    0,          True,          64),
> +                        "aarch64_be" :(183,    0,    0,          False,         64),
>                          "arm" :       (40,    97,    0,          True,          32),
>                          "armeb":      (40,    97,    0,          False,         32),
>                          "powerpc":    (20,     0,    0,          False,         32),
> diff --git a/meta/classes/kernel-arch.bbclass b/meta/classes/kernel-arch.bbclass
> index 4a140eb..6a6ad91 100644
> --- a/meta/classes/kernel-arch.bbclass
> +++ b/meta/classes/kernel-arch.bbclass
> @@ -23,6 +23,7 @@ def map_kernel_arch(a, d):
>      if   re.match('(i.86|athlon|x86.64)$', a):  return 'x86'
>      elif re.match('armeb$', a):                 return 'arm'
>      elif re.match('aarch64$', a):               return 'arm64'
> +    elif re.match('aarch64_be$', a):            return 'arm64'
>      elif re.match('mips(el|64|64el)$', a):      return 'mips'
>      elif re.match('p(pc|owerpc)(|64)', a):      return 'powerpc'
>      elif re.match('sh(3|4)$', a):               return 'sh'
> diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-package.bbclass
> index fd06c4a..de3ffe6 100644
> --- a/meta/classes/libc-package.bbclass
> +++ b/meta/classes/libc-package.bbclass
> @@ -268,6 +268,7 @@ python package_do_split_gconvs () {
>              locale_arch_options = { \
>                  "arm":     " --uint32-align=4 --little-endian ", \
>                  "armeb":   " --uint32-align=4 --big-endian ",    \
> +                "aarch64_be": " --uint32-align=4 --big-endian ",    \
>                  "sh4":     " --uint32-align=4 --big-endian ",    \
>                  "powerpc": " --uint32-align=4 --big-endian ",    \
>                  "powerpc64": " --uint32-align=4 --big-endian ",  \
> diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass
> index 8705eaa..9ae2561 100644
> --- a/meta/classes/siteinfo.bbclass
> +++ b/meta/classes/siteinfo.bbclass
> @@ -19,6 +19,7 @@ def siteinfo_data(d):
>      archinfo = {
>          "allarch": "endian-little bit-32", # bogus, but better than special-casing the checks below for allarch
>          "aarch64": "endian-little bit-64 arm-common",
> +        "aarch64_be": "endian-big bit-64 arm-common",
>          "arm": "endian-little bit-32 arm-common",
>          "armeb": "endian-big bit-32 arm-common",
>          "avr32": "endian-big bit-32 avr32-common",
> @@ -63,6 +64,7 @@ def siteinfo_data(d):
>      }
>      targetinfo = {
>          "aarch64-linux-gnu": "aarch64-linux",
> +        "aarch64_be-linux-gnu": "aarch64_be-linux",
>          "arm-linux-gnueabi": "arm-linux",
>          "arm-linux-uclibceabi": "arm-linux-uclibc",
>          "armeb-linux-gnueabi": "armeb-linux",
> --
> 1.8.3.1
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
Koen Kooi - Oct. 11, 2013, 6:48 a.m.
Op 11 okt. 2013, om 07:37 heeft Nobuhiro Iwamatsu <iwamatsu@nigauri.org> het volgende geschreven:

> Hi,
> 
> I have a question.
> Why don't you unite  name rules of  other architecture?
> Forexample, armeb is endian-big of arm.  mipsel is endian-little of mips.
> If you can unified name, arm64eb is better, I think.

In an ideal world I'd do that, but that ghastly 'aarch64_be' is already in upstream gcc, binutils and eglibc  :(

regards,

Koen

> 
> Best regards,
>  Nobuhiro
> 
> 2013/10/10 Koen Kooi <koen@dominion.thruhere.net>:
>> From: Victor Kamensky <victor.kamensky@linaro.org>
>> 
>> Add big endian ARMv8 target to OE infrastructure
>> 
>> Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
>> Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
>> ---
>> meta/classes/insane.bbclass       | 1 +
>> meta/classes/kernel-arch.bbclass  | 1 +
>> meta/classes/libc-package.bbclass | 1 +
>> meta/classes/siteinfo.bbclass     | 2 ++
>> 4 files changed, 5 insertions(+)
>> 
>> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
>> index a784aff..f1c6d22 100644
>> --- a/meta/classes/insane.bbclass
>> +++ b/meta/classes/insane.bbclass
>> @@ -55,6 +55,7 @@ def package_qa_get_machine_dict():
>>                       },
>>             "linux" : {
>>                         "aarch64" :   (183,    0,    0,          True,          64),
>> +                        "aarch64_be" :(183,    0,    0,          False,         64),
>>                         "arm" :       (40,    97,    0,          True,          32),
>>                         "armeb":      (40,    97,    0,          False,         32),
>>                         "powerpc":    (20,     0,    0,          False,         32),
>> diff --git a/meta/classes/kernel-arch.bbclass b/meta/classes/kernel-arch.bbclass
>> index 4a140eb..6a6ad91 100644
>> --- a/meta/classes/kernel-arch.bbclass
>> +++ b/meta/classes/kernel-arch.bbclass
>> @@ -23,6 +23,7 @@ def map_kernel_arch(a, d):
>>     if   re.match('(i.86|athlon|x86.64)$', a):  return 'x86'
>>     elif re.match('armeb$', a):                 return 'arm'
>>     elif re.match('aarch64$', a):               return 'arm64'
>> +    elif re.match('aarch64_be$', a):            return 'arm64'
>>     elif re.match('mips(el|64|64el)$', a):      return 'mips'
>>     elif re.match('p(pc|owerpc)(|64)', a):      return 'powerpc'
>>     elif re.match('sh(3|4)$', a):               return 'sh'
>> diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-package.bbclass
>> index fd06c4a..de3ffe6 100644
>> --- a/meta/classes/libc-package.bbclass
>> +++ b/meta/classes/libc-package.bbclass
>> @@ -268,6 +268,7 @@ python package_do_split_gconvs () {
>>             locale_arch_options = { \
>>                 "arm":     " --uint32-align=4 --little-endian ", \
>>                 "armeb":   " --uint32-align=4 --big-endian ",    \
>> +                "aarch64_be": " --uint32-align=4 --big-endian ",    \
>>                 "sh4":     " --uint32-align=4 --big-endian ",    \
>>                 "powerpc": " --uint32-align=4 --big-endian ",    \
>>                 "powerpc64": " --uint32-align=4 --big-endian ",  \
>> diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass
>> index 8705eaa..9ae2561 100644
>> --- a/meta/classes/siteinfo.bbclass
>> +++ b/meta/classes/siteinfo.bbclass
>> @@ -19,6 +19,7 @@ def siteinfo_data(d):
>>     archinfo = {
>>         "allarch": "endian-little bit-32", # bogus, but better than special-casing the checks below for allarch
>>         "aarch64": "endian-little bit-64 arm-common",
>> +        "aarch64_be": "endian-big bit-64 arm-common",
>>         "arm": "endian-little bit-32 arm-common",
>>         "armeb": "endian-big bit-32 arm-common",
>>         "avr32": "endian-big bit-32 avr32-common",
>> @@ -63,6 +64,7 @@ def siteinfo_data(d):
>>     }
>>     targetinfo = {
>>         "aarch64-linux-gnu": "aarch64-linux",
>> +        "aarch64_be-linux-gnu": "aarch64_be-linux",
>>         "arm-linux-gnueabi": "arm-linux",
>>         "arm-linux-uclibceabi": "arm-linux-uclibc",
>>         "armeb-linux-gnueabi": "armeb-linux",
>> --
>> 1.8.3.1
>> 
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> 
> 
> 
> -- 
> Nobuhiro Iwamatsu
>   iwamatsu at {nigauri.org / debian.org}
>   GPG ID: 40AD1FA6
Khem Raj - Oct. 11, 2013, 6:53 a.m.
On Oct 10, 2013, at 11:48 PM, Koen Kooi <koen@dominion.thruhere.net> wrote:

> 
> Op 11 okt. 2013, om 07:37 heeft Nobuhiro Iwamatsu <iwamatsu@nigauri.org> het volgende geschreven:
> 
>> Hi,
>> 
>> I have a question.
>> Why don't you unite  name rules of  other architecture?
>> Forexample, armeb is endian-big of arm.  mipsel is endian-little of mips.
>> If you can unified name, arm64eb is better, I think.
> 
> In an ideal world I'd do that, but that ghastly 'aarch64_be' is already in upstream gcc, binutils and eglibc  :(
> 

Now that you work with them. can you find out the reasoning behind it ?
Fathi Boudra - Oct. 11, 2013, 7:07 a.m.
On 11 October 2013 09:53, Khem Raj <raj.khem@gmail.com> wrote:
>
> On Oct 10, 2013, at 11:48 PM, Koen Kooi <koen@dominion.thruhere.net> wrote:
>
>>
>> Op 11 okt. 2013, om 07:37 heeft Nobuhiro Iwamatsu <iwamatsu@nigauri.org> het volgende geschreven:
>>
>>> Hi,
>>>
>>> I have a question.
>>> Why don't you unite  name rules of  other architecture?
>>> Forexample, armeb is endian-big of arm.  mipsel is endian-little of mips.
>>> If you can unified name, arm64eb is better, I think.
>>
>> In an ideal world I'd do that, but that ghastly 'aarch64_be' is already in upstream gcc, binutils and eglibc  :(
>>
>
> Now that you work with them.

:) you can surely reached us before that...

> can you find out the reasoning behind it ?

we can ask...but it has been decided by ARM 3 years ago and we're a
bit late in the game. the we is including us, Linaro.
Nobuhiro Iwamatsu - Oct. 17, 2013, 2:02 a.m.
Hi,

2013/10/11 Koen Kooi <koen@dominion.thruhere.net>:
>
> Op 11 okt. 2013, om 07:37 heeft Nobuhiro Iwamatsu <iwamatsu@nigauri.org> het volgende geschreven:
>
>> Hi,
>>
>> I have a question.
>> Why don't you unite  name rules of  other architecture?
>> Forexample, armeb is endian-big of arm.  mipsel is endian-little of mips.
>> If you can unified name, arm64eb is better, I think.
>
> In an ideal world I'd do that, but that ghastly 'aarch64_be' is already in upstream gcc, binutils and eglibc  :(
>

Oh, I see.
Thanks for the clarification.

Best regards,
  Nobuhiro

Patch

diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index a784aff..f1c6d22 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -55,6 +55,7 @@  def package_qa_get_machine_dict():
                       },
             "linux" : { 
                         "aarch64" :   (183,    0,    0,          True,          64),
+                        "aarch64_be" :(183,    0,    0,          False,         64),
                         "arm" :       (40,    97,    0,          True,          32),
                         "armeb":      (40,    97,    0,          False,         32),
                         "powerpc":    (20,     0,    0,          False,         32),
diff --git a/meta/classes/kernel-arch.bbclass b/meta/classes/kernel-arch.bbclass
index 4a140eb..6a6ad91 100644
--- a/meta/classes/kernel-arch.bbclass
+++ b/meta/classes/kernel-arch.bbclass
@@ -23,6 +23,7 @@  def map_kernel_arch(a, d):
     if   re.match('(i.86|athlon|x86.64)$', a):  return 'x86'
     elif re.match('armeb$', a):                 return 'arm'
     elif re.match('aarch64$', a):               return 'arm64'
+    elif re.match('aarch64_be$', a):            return 'arm64'
     elif re.match('mips(el|64|64el)$', a):      return 'mips'
     elif re.match('p(pc|owerpc)(|64)', a):      return 'powerpc'
     elif re.match('sh(3|4)$', a):               return 'sh'
diff --git a/meta/classes/libc-package.bbclass b/meta/classes/libc-package.bbclass
index fd06c4a..de3ffe6 100644
--- a/meta/classes/libc-package.bbclass
+++ b/meta/classes/libc-package.bbclass
@@ -268,6 +268,7 @@  python package_do_split_gconvs () {
             locale_arch_options = { \
                 "arm":     " --uint32-align=4 --little-endian ", \
                 "armeb":   " --uint32-align=4 --big-endian ",    \
+                "aarch64_be": " --uint32-align=4 --big-endian ",    \
                 "sh4":     " --uint32-align=4 --big-endian ",    \
                 "powerpc": " --uint32-align=4 --big-endian ",    \
                 "powerpc64": " --uint32-align=4 --big-endian ",  \
diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass
index 8705eaa..9ae2561 100644
--- a/meta/classes/siteinfo.bbclass
+++ b/meta/classes/siteinfo.bbclass
@@ -19,6 +19,7 @@  def siteinfo_data(d):
     archinfo = {
         "allarch": "endian-little bit-32", # bogus, but better than special-casing the checks below for allarch
         "aarch64": "endian-little bit-64 arm-common",
+        "aarch64_be": "endian-big bit-64 arm-common",
         "arm": "endian-little bit-32 arm-common",
         "armeb": "endian-big bit-32 arm-common",
         "avr32": "endian-big bit-32 avr32-common",
@@ -63,6 +64,7 @@  def siteinfo_data(d):
     }
     targetinfo = {
         "aarch64-linux-gnu": "aarch64-linux",
+        "aarch64_be-linux-gnu": "aarch64_be-linux",
         "arm-linux-gnueabi": "arm-linux",
         "arm-linux-uclibceabi": "arm-linux-uclibc",
         "armeb-linux-gnueabi": "armeb-linux",