[OE-core] [PATCH 1/1] gcc-multilib-config: make aarch64 support multilib

Mark Hatle mark.hatle at windriver.com
Thu Nov 5 13:43:33 UTC 2015


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 at 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'
> 




More information about the Openembedded-core mailing list