[OE-core] [PATCH] Explicitly map ARCH to 32 or 64 bit for Intel machines
Saul Wold
saul.wold at intel.com
Thu Dec 3 23:31:45 UTC 2015
On Thu, 2015-12-03 at 15:03 -0800, Jianxun Zhang wrote:
> For a bare-bone kernel recipe which specifies 32 bit x86 target,
> a 64 bit .config will be generated from do_configure task when
> building 32-bit qemux86, once all of these conditions are true:
>
> () arch of host is x86_64
> () kernel source tree used in build has commit ffee0de41 which
> actually chooses i386 or x86_64 defconfig by asking host arch if
> ARCH is "x86" (arch/x86/Makefile)
> () bare-bone kernel recipe inherits directly from kernel without
> other special treatment
>
> Build will fail in this case because of the mismatched architecture
> of kernel image after compiling.
>
> The patch sets ARCH i386 or x86_64 explicitly to configure
> task to avoid this host contamination.
>
Just to be clear about this, it does not change the TUNE_ARCH, the ARCH
that is set is local to the kernel-arch.bbclass.
This should also be a candidate for backport to Jethro
Sau!
> Signed-off-by: Jianxun Zhang <jianxun.zhang at linux.intel.com>
> ---
> meta/classes/kernel-arch.bbclass | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes/kernel-arch.bbclass b/meta/classes/kernel-
> arch.bbclass
> index 3ed5986..d8b180e 100644
> --- a/meta/classes/kernel-arch.bbclass
> +++ b/meta/classes/kernel-arch.bbclass
> @@ -21,7 +21,9 @@ def map_kernel_arch(a, d):
>
> valid_archs = d.getVar('valid_archs', True).split()
>
> - if re.match('(i.86|athlon|x86.64)$', a): return 'x86'
> + if re.match('i.86$', a): return 'i386'
> + elif re.match('x86.64$', a): return 'x86_64'
> + elif re.match('athlon$', 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'
> --
> 1.9.1
>
More information about the Openembedded-core
mailing list