Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/1] gcc-multilib-config: make aarch64 support multilib
@ 2015-11-05  8:20 Robert Yang
  2015-11-05  8:20 ` [PATCH 1/1] " Robert Yang
  0 siblings, 1 reply; 6+ messages in thread
From: Robert Yang @ 2015-11-05  8:20 UTC (permalink / raw)
  To: openembedded-core

The following changes since commit e44ed8c18e395b9c055aefee113b90708e8a8a2f:

  build-appliance-image: Update to jethro head revision (2015-11-03 14:02:57 +0000)

are available in the git repository at:

  git://git.openembedded.org/openembedded-core-contrib rbt/lib32-gcc
  http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/lib32-gcc

Robert Yang (1):
  gcc-multilib-config: make aarch64 support multilib

 meta/recipes-devtools/gcc/gcc-multilib-config.inc |    7 +++++++
 1 file changed, 7 insertions(+)

-- 
1.7.9.5



^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/1] gcc-multilib-config: make aarch64 support multilib
  2015-11-05  8:20 [PATCH 0/1] gcc-multilib-config: make aarch64 support multilib Robert Yang
@ 2015-11-05  8:20 ` Robert Yang
  2015-11-05 13:43   ` Mark Hatle
  0 siblings, 1 reply; 6+ messages in thread
From: Robert Yang @ 2015-11-05  8:20 UTC (permalink / raw)
  To: openembedded-core

Fixed:
MACHINE = qemuarm64
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "armv7at-neon"

$ bitbake core-image-minimal -cpopulate_sdk

WARNING: gcc multilib setup is not supported for TARGET_ARCH=aarch64
WARNING: gcc multilib setup is not supported for TARGET_ARCH=aarch64

[YOCTO #8638]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 meta/recipes-devtools/gcc/gcc-multilib-config.inc |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/meta/recipes-devtools/gcc/gcc-multilib-config.inc b/meta/recipes-devtools/gcc/gcc-multilib-config.inc
index 1c0a45a..a0a2ac0 100644
--- a/meta/recipes-devtools/gcc/gcc-multilib-config.inc
+++ b/meta/recipes-devtools/gcc/gcc-multilib-config.inc
@@ -29,6 +29,9 @@ python gcc_multilib_setup() {
     bb.utils.remove(build_conf_dir, True)
     ml_globs = ('%s/*/t-linux64' % src_conf_dir,
                 '%s/*/linux64.h' % src_conf_dir,
+                '%s/aarch64/t-aarch64' % src_conf_dir,
+                '%s/aarch64/aarch64.h' % src_conf_dir,
+                '%s/aarch64/aarch64-cores.def' % src_conf_dir,
                 '%s/*/linux.h' % src_conf_dir,
                 '%s/linux.h' % src_conf_dir)
 
@@ -130,6 +133,8 @@ python gcc_multilib_setup() {
         'mips64'    : ['gcc/config/mips/t-linux64'],
         'powerpc'   : ['gcc/config/rs6000/t-linux64'],
         'powerpc64' : ['gcc/config/rs6000/t-linux64'],
+        'aarch64'   : ['gcc/config/aarch64/t-aarch64'],
+        'arm'       : ['gcc/config/aarch64/t-aarch64'],
     }
 
     gcc_header_config_files = {
@@ -140,6 +145,8 @@ python gcc_multilib_setup() {
         'mips64'    : ['gcc/config/mips/linux.h', 'gcc/config/mips/linux64.h'],
         'powerpc'   : ['gcc/config/rs6000/linux64.h'],
         'powerpc64' : ['gcc/config/rs6000/linux64.h'],
+        'aarch64'   : ['gcc/config/aarch64/aarch64.h'],
+        'arm'       : ['gcc/config/aarch64/aarch64.h'],
     }
 
     libdir32 = 'SYSTEMLIBS_DIR'
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/1] gcc-multilib-config: make aarch64 support multilib
  2015-11-05  8:20 ` [PATCH 1/1] " Robert Yang
@ 2015-11-05 13:43   ` Mark Hatle
  2015-11-06  3:01     ` Robert Yang
  2015-11-06  5:35     ` Khem Raj
  0 siblings, 2 replies; 6+ messages in thread
From: Mark Hatle @ 2015-11-05 13:43 UTC (permalink / raw)
  To: Robert Yang, openembedded-core; +Cc: Richard Purdie

On 11/5/15 2:20 AM, Robert Yang wrote:
> Fixed:
> MACHINE = qemuarm64
> require conf/multilib.conf
> MULTILIBS = "multilib:lib32"
> DEFAULTTUNE_virtclass-multilib-lib32 = "armv7at-neon"
> 
> $ bitbake core-image-minimal -cpopulate_sdk
> 
> WARNING: gcc multilib setup is not supported for TARGET_ARCH=aarch64
> WARNING: gcc multilib setup is not supported for TARGET_ARCH=aarch64
> 
> [YOCTO #8638]
> 
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
>  meta/recipes-devtools/gcc/gcc-multilib-config.inc |    7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-multilib-config.inc b/meta/recipes-devtools/gcc/gcc-multilib-config.inc
> index 1c0a45a..a0a2ac0 100644
> --- a/meta/recipes-devtools/gcc/gcc-multilib-config.inc
> +++ b/meta/recipes-devtools/gcc/gcc-multilib-config.inc
> @@ -29,6 +29,9 @@ python gcc_multilib_setup() {
>      bb.utils.remove(build_conf_dir, True)
>      ml_globs = ('%s/*/t-linux64' % src_conf_dir,
>                  '%s/*/linux64.h' % src_conf_dir,
> +                '%s/aarch64/t-aarch64' % src_conf_dir,
> +                '%s/aarch64/aarch64.h' % src_conf_dir,
> +                '%s/aarch64/aarch64-cores.def' % src_conf_dir,
>                  '%s/*/linux.h' % src_conf_dir,
>                  '%s/linux.h' % src_conf_dir)
>  
> @@ -130,6 +133,8 @@ python gcc_multilib_setup() {
>          'mips64'    : ['gcc/config/mips/t-linux64'],
>          'powerpc'   : ['gcc/config/rs6000/t-linux64'],
>          'powerpc64' : ['gcc/config/rs6000/t-linux64'],
> +        'aarch64'   : ['gcc/config/aarch64/t-aarch64'],
> +        'arm'       : ['gcc/config/aarch64/t-aarch64'],
>      }
>  
>      gcc_header_config_files = {
> @@ -140,6 +145,8 @@ python gcc_multilib_setup() {
>          'mips64'    : ['gcc/config/mips/linux.h', 'gcc/config/mips/linux64.h'],
>          'powerpc'   : ['gcc/config/rs6000/linux64.h'],
>          'powerpc64' : ['gcc/config/rs6000/linux64.h'],
> +        'aarch64'   : ['gcc/config/aarch64/aarch64.h'],
> +        'arm'       : ['gcc/config/aarch64/aarch64.h'],
>      }

I'm not sure the above is correct in this case.  As I believe GCC treats aarch64
and arm as different architectures unlike MIPS, Power and IA32.

In this case, I would expect two specific cross compilers to be generated, one
for armv7 and one for aarch64, instead of a combination single compiler that
understand both.

So in this case, it might be better to have an exception to the warning
message...  (unless I'm wrong, in which case this IS likely a correct fix....)

Hopefully Khem and/or Richard will be able to comment as they are more familiar
with this code path.

>  
>      libdir32 = 'SYSTEMLIBS_DIR'
> 



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/1] gcc-multilib-config: make aarch64 support multilib
  2015-11-05 13:43   ` Mark Hatle
@ 2015-11-06  3:01     ` Robert Yang
  2015-11-06  5:35     ` Khem Raj
  1 sibling, 0 replies; 6+ messages in thread
From: Robert Yang @ 2015-11-06  3:01 UTC (permalink / raw)
  To: Mark Hatle, openembedded-core; +Cc: Richard Purdie



On 11/05/2015 09:43 PM, Mark Hatle wrote:
> On 11/5/15 2:20 AM, Robert Yang wrote:
>> Fixed:
>> MACHINE = qemuarm64
>> require conf/multilib.conf
>> MULTILIBS = "multilib:lib32"
>> DEFAULTTUNE_virtclass-multilib-lib32 = "armv7at-neon"
>>
>> $ bitbake core-image-minimal -cpopulate_sdk
>>
>> WARNING: gcc multilib setup is not supported for TARGET_ARCH=aarch64
>> WARNING: gcc multilib setup is not supported for TARGET_ARCH=aarch64
>>
>> [YOCTO #8638]
>>
>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> ---
>>   meta/recipes-devtools/gcc/gcc-multilib-config.inc |    7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/meta/recipes-devtools/gcc/gcc-multilib-config.inc b/meta/recipes-devtools/gcc/gcc-multilib-config.inc
>> index 1c0a45a..a0a2ac0 100644
>> --- a/meta/recipes-devtools/gcc/gcc-multilib-config.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-multilib-config.inc
>> @@ -29,6 +29,9 @@ python gcc_multilib_setup() {
>>       bb.utils.remove(build_conf_dir, True)
>>       ml_globs = ('%s/*/t-linux64' % src_conf_dir,
>>                   '%s/*/linux64.h' % src_conf_dir,
>> +                '%s/aarch64/t-aarch64' % src_conf_dir,
>> +                '%s/aarch64/aarch64.h' % src_conf_dir,
>> +                '%s/aarch64/aarch64-cores.def' % src_conf_dir,
>>                   '%s/*/linux.h' % src_conf_dir,
>>                   '%s/linux.h' % src_conf_dir)
>>
>> @@ -130,6 +133,8 @@ python gcc_multilib_setup() {
>>           'mips64'    : ['gcc/config/mips/t-linux64'],
>>           'powerpc'   : ['gcc/config/rs6000/t-linux64'],
>>           'powerpc64' : ['gcc/config/rs6000/t-linux64'],
>> +        'aarch64'   : ['gcc/config/aarch64/t-aarch64'],
>> +        'arm'       : ['gcc/config/aarch64/t-aarch64'],
>>       }
>>
>>       gcc_header_config_files = {
>> @@ -140,6 +145,8 @@ python gcc_multilib_setup() {
>>           'mips64'    : ['gcc/config/mips/linux.h', 'gcc/config/mips/linux64.h'],
>>           'powerpc'   : ['gcc/config/rs6000/linux64.h'],
>>           'powerpc64' : ['gcc/config/rs6000/linux64.h'],
>> +        'aarch64'   : ['gcc/config/aarch64/aarch64.h'],
>> +        'arm'       : ['gcc/config/aarch64/aarch64.h'],
>>       }
>
> I'm not sure the above is correct in this case.  As I believe GCC treats aarch64
> and arm as different architectures unlike MIPS, Power and IA32.
>
> In this case, I would expect two specific cross compilers to be generated, one
> for armv7 and one for aarch64, instead of a combination single compiler that
> understand both.

Hi Mark,

I think that there are two compilers ? For example, gcc and lib32-gcc. Yes,
Hopefully we can get feed back from Khem or RP.

// Robert

>
> So in this case, it might be better to have an exception to the warning
> message...  (unless I'm wrong, in which case this IS likely a correct fix....)
>
> Hopefully Khem and/or Richard will be able to comment as they are more familiar
> with this code path.
>
>>
>>       libdir32 = 'SYSTEMLIBS_DIR'
>>
>
>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/1] gcc-multilib-config: make aarch64 support multilib
  2015-11-05 13:43   ` Mark Hatle
  2015-11-06  3:01     ` Robert Yang
@ 2015-11-06  5:35     ` Khem Raj
  2015-11-06 14:41       ` Mark Hatle
  1 sibling, 1 reply; 6+ messages in thread
From: Khem Raj @ 2015-11-06  5:35 UTC (permalink / raw)
  To: Mark Hatle; +Cc: Richard Purdie, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 3208 bytes --]


> On Nov 5, 2015, at 5:43 AM, Mark Hatle <mark.hatle@windriver.com> wrote:
> 
> On 11/5/15 2:20 AM, Robert Yang wrote:
>> Fixed:
>> MACHINE = qemuarm64
>> require conf/multilib.conf
>> MULTILIBS = "multilib:lib32"
>> DEFAULTTUNE_virtclass-multilib-lib32 = "armv7at-neon"
>> 
>> $ bitbake core-image-minimal -cpopulate_sdk
>> 
>> WARNING: gcc multilib setup is not supported for TARGET_ARCH=aarch64
>> WARNING: gcc multilib setup is not supported for TARGET_ARCH=aarch64
>> 
>> [YOCTO #8638]
>> 
>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> ---
>> meta/recipes-devtools/gcc/gcc-multilib-config.inc |    7 +++++++
>> 1 file changed, 7 insertions(+)
>> 
>> diff --git a/meta/recipes-devtools/gcc/gcc-multilib-config.inc b/meta/recipes-devtools/gcc/gcc-multilib-config.inc
>> index 1c0a45a..a0a2ac0 100644
>> --- a/meta/recipes-devtools/gcc/gcc-multilib-config.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-multilib-config.inc
>> @@ -29,6 +29,9 @@ python gcc_multilib_setup() {
>>     bb.utils.remove(build_conf_dir, True)
>>     ml_globs = ('%s/*/t-linux64' % src_conf_dir,
>>                 '%s/*/linux64.h' % src_conf_dir,
>> +                '%s/aarch64/t-aarch64' % src_conf_dir,
>> +                '%s/aarch64/aarch64.h' % src_conf_dir,
>> +                '%s/aarch64/aarch64-cores.def' % src_conf_dir,
>>                 '%s/*/linux.h' % src_conf_dir,
>>                 '%s/linux.h' % src_conf_dir)
>> 
>> @@ -130,6 +133,8 @@ python gcc_multilib_setup() {
>>         'mips64'    : ['gcc/config/mips/t-linux64'],
>>         'powerpc'   : ['gcc/config/rs6000/t-linux64'],
>>         'powerpc64' : ['gcc/config/rs6000/t-linux64'],
>> +        'aarch64'   : ['gcc/config/aarch64/t-aarch64'],
>> +        'arm'       : ['gcc/config/aarch64/t-aarch64'],
>>     }
>> 
>>     gcc_header_config_files = {
>> @@ -140,6 +145,8 @@ python gcc_multilib_setup() {
>>         'mips64'    : ['gcc/config/mips/linux.h', 'gcc/config/mips/linux64.h'],
>>         'powerpc'   : ['gcc/config/rs6000/linux64.h'],
>>         'powerpc64' : ['gcc/config/rs6000/linux64.h'],
>> +        'aarch64'   : ['gcc/config/aarch64/aarch64.h'],
>> +        'arm'       : ['gcc/config/aarch64/aarch64.h'],
>>     }
> 
> I'm not sure the above is correct in this case.  As I believe GCC treats aarch64
> and arm as different architectures unlike MIPS, Power and IA32.
> 
> In this case, I would expect two specific cross compilers to be generated, one
> for armv7 and one for aarch64, instead of a combination single compiler that
> understand both.
> 

Well not entirely so, gcc can support ilp32 as a mutlilib variant for aarch64
so this patch is fine although if we should support ilp32 as a variant is another
question, which folks can chime in and provide feedback if they have use of it.
but nevertheless this patch should be ok

> So in this case, it might be better to have an exception to the warning
> message...  (unless I'm wrong, in which case this IS likely a correct fix....)
> 
> Hopefully Khem and/or Richard will be able to comment as they are more familiar
> with this code path.
> 
>> 
>>     libdir32 = 'SYSTEMLIBS_DIR'
>> 
> 


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 211 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/1] gcc-multilib-config: make aarch64 support multilib
  2015-11-06  5:35     ` Khem Raj
@ 2015-11-06 14:41       ` Mark Hatle
  0 siblings, 0 replies; 6+ messages in thread
From: Mark Hatle @ 2015-11-06 14:41 UTC (permalink / raw)
  To: Khem Raj; +Cc: Richard Purdie, openembedded-core

On 11/5/15 11:35 PM, Khem Raj wrote:
> 
>> On Nov 5, 2015, at 5:43 AM, Mark Hatle <mark.hatle@windriver.com> wrote:
>>
>> On 11/5/15 2:20 AM, Robert Yang wrote:
>>> Fixed:
>>> MACHINE = qemuarm64
>>> require conf/multilib.conf
>>> MULTILIBS = "multilib:lib32"
>>> DEFAULTTUNE_virtclass-multilib-lib32 = "armv7at-neon"
>>>
>>> $ bitbake core-image-minimal -cpopulate_sdk
>>>
>>> WARNING: gcc multilib setup is not supported for TARGET_ARCH=aarch64
>>> WARNING: gcc multilib setup is not supported for TARGET_ARCH=aarch64
>>>
>>> [YOCTO #8638]
>>>
>>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>>> ---
>>> meta/recipes-devtools/gcc/gcc-multilib-config.inc |    7 +++++++
>>> 1 file changed, 7 insertions(+)
>>>
>>> diff --git a/meta/recipes-devtools/gcc/gcc-multilib-config.inc b/meta/recipes-devtools/gcc/gcc-multilib-config.inc
>>> index 1c0a45a..a0a2ac0 100644
>>> --- a/meta/recipes-devtools/gcc/gcc-multilib-config.inc
>>> +++ b/meta/recipes-devtools/gcc/gcc-multilib-config.inc
>>> @@ -29,6 +29,9 @@ python gcc_multilib_setup() {
>>>     bb.utils.remove(build_conf_dir, True)
>>>     ml_globs = ('%s/*/t-linux64' % src_conf_dir,
>>>                 '%s/*/linux64.h' % src_conf_dir,
>>> +                '%s/aarch64/t-aarch64' % src_conf_dir,
>>> +                '%s/aarch64/aarch64.h' % src_conf_dir,
>>> +                '%s/aarch64/aarch64-cores.def' % src_conf_dir,
>>>                 '%s/*/linux.h' % src_conf_dir,
>>>                 '%s/linux.h' % src_conf_dir)
>>>
>>> @@ -130,6 +133,8 @@ python gcc_multilib_setup() {
>>>         'mips64'    : ['gcc/config/mips/t-linux64'],
>>>         'powerpc'   : ['gcc/config/rs6000/t-linux64'],
>>>         'powerpc64' : ['gcc/config/rs6000/t-linux64'],
>>> +        'aarch64'   : ['gcc/config/aarch64/t-aarch64'],
>>> +        'arm'       : ['gcc/config/aarch64/t-aarch64'],
>>>     }
>>>
>>>     gcc_header_config_files = {
>>> @@ -140,6 +145,8 @@ python gcc_multilib_setup() {
>>>         'mips64'    : ['gcc/config/mips/linux.h', 'gcc/config/mips/linux64.h'],
>>>         'powerpc'   : ['gcc/config/rs6000/linux64.h'],
>>>         'powerpc64' : ['gcc/config/rs6000/linux64.h'],
>>> +        'aarch64'   : ['gcc/config/aarch64/aarch64.h'],
>>> +        'arm'       : ['gcc/config/aarch64/aarch64.h'],
>>>     }
>>
>> I'm not sure the above is correct in this case.  As I believe GCC treats aarch64
>> and arm as different architectures unlike MIPS, Power and IA32.
>>
>> In this case, I would expect two specific cross compilers to be generated, one
>> for armv7 and one for aarch64, instead of a combination single compiler that
>> understand both.
>>
> 
> Well not entirely so, gcc can support ilp32 as a mutlilib variant for aarch64
> so this patch is fine although if we should support ilp32 as a variant is another
> question, which folks can chime in and provide feedback if they have use of it.
> but nevertheless this patch should be ok

I've seen no real world need for ilp32 at this point.. but I have seen many
requests to run armv7 code on an aarch64 system.  (Compatibility multilib.)

--Mark

>> So in this case, it might be better to have an exception to the warning
>> message...  (unless I'm wrong, in which case this IS likely a correct fix....)
>>
>> Hopefully Khem and/or Richard will be able to comment as they are more familiar
>> with this code path.
>>
>>>
>>>     libdir32 = 'SYSTEMLIBS_DIR'
>>>
>>
> 



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-11-06 14:41 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-05  8:20 [PATCH 0/1] gcc-multilib-config: make aarch64 support multilib Robert Yang
2015-11-05  8:20 ` [PATCH 1/1] " Robert Yang
2015-11-05 13:43   ` Mark Hatle
2015-11-06  3:01     ` Robert Yang
2015-11-06  5:35     ` Khem Raj
2015-11-06 14:41       ` Mark Hatle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox