diff options
author | Tom Zanussi <tom.zanussi@linux.intel.com> | 2016-05-10 16:50:05 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-05-11 12:37:06 +0100 |
commit | 00b016b010298c4f83f16afa8e3b49889b4eb24e (patch) | |
tree | 2bf741abb66fe732ca29a7ffd1a34199986cfdc8 | |
parent | 877a6b3ef42a5d185cfef1f6e63fd25d3a3b85d1 (diff) | |
download | poky-00b016b010298c4f83f16afa8e3b49889b4eb24e.tar.gz |
Revert "kernel/kernel-arch: Explicitly mapping between, i386/x86_64 and x86 for kernel ARCH"
This reverts commit a6f52930a68d8462e23486d51cdda715072dd752.
In addition to also causing the problem in [YOCTO #9579], this commit
was reverted in krogoth and master but wasn't reverted in jethro but
should be. The original revert message was:
This reverts commit 8d310b24927d0f348fb431895f0583733db2aad0.
That commit completely breaks KBUILD_DEFCONFIG because it relies on
$ARCH to match between the target OE arch and the kernel subdirectory
containing the defconfigs. In the kernel all defconfigs for everything
x86-based (including x86_64) is stored in dir arch/x86/configs/
kernel-yocto.bbclass correctly searches for all the defconfigs inside
${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG}
Commit 8d310b249 makes it search in wrong places and _only_ if you
define TARGET_ARCH = "athlon" will it search x86 which is nonsensical.
The commit further adds an if clause to hack the mungled kernel arches
back to their original values (ugh) in do_shared_workdir which is run
after do compile, but of course the build breaks before that in
do_kernel_metadata because of the KBUILD_DEFCONFIG mentioned above (so
that hack is useless).
Please fix that corner case bug in another way which does not completely
screw up the kernel arch mapping & defconfig logic. If 64bit configs are
generated in the kernel for 32bit machines because the host is asked,
then it it a bug in the kernel, it is of no use to hack around it in OE.
(From OE-Core rev: bc02a478a5d4a5de7b3943ed809d5c22711f5b1f)
(From OE-Core rev: 88e0032f13f635c868c426e963db4d8a6fc42e9d)
Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/kernel-arch.bbclass | 4 | ||||
-rw-r--r-- | meta/classes/kernel.bbclass | 15 |
2 files changed, 4 insertions, 15 deletions
diff --git a/meta/classes/kernel-arch.bbclass b/meta/classes/kernel-arch.bbclass index d8b180ec49..3ed5986a52 100644 --- a/meta/classes/kernel-arch.bbclass +++ b/meta/classes/kernel-arch.bbclass | |||
@@ -21,9 +21,7 @@ def map_kernel_arch(a, d): | |||
21 | 21 | ||
22 | valid_archs = d.getVar('valid_archs', True).split() | 22 | valid_archs = d.getVar('valid_archs', True).split() |
23 | 23 | ||
24 | if re.match('i.86$', a): return 'i386' | 24 | if re.match('(i.86|athlon|x86.64)$', a): return 'x86' |
25 | elif re.match('x86.64$', a): return 'x86_64' | ||
26 | elif re.match('athlon$', a): return 'x86' | ||
27 | elif re.match('armeb$', a): return 'arm' | 25 | elif re.match('armeb$', a): return 'arm' |
28 | elif re.match('aarch64$', a): return 'arm64' | 26 | elif re.match('aarch64$', a): return 'arm64' |
29 | elif re.match('aarch64_be$', a): return 'arm64' | 27 | elif re.match('aarch64_be$', a): return 'arm64' |
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index ee3e9a0d94..5e8b6cf343 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass | |||
@@ -309,18 +309,9 @@ do_shared_workdir () { | |||
309 | cp -fR include/generated/* $kerneldir/include/generated/ | 309 | cp -fR include/generated/* $kerneldir/include/generated/ |
310 | fi | 310 | fi |
311 | 311 | ||
312 | # When ARCH is set to i386 or x86_64, we need to map ARCH to the real name of src | 312 | if [ -d arch/${ARCH}/include/generated ]; then |
313 | # dir (x86) under arch/ of kenrel tree, so that we can find correct source to copy. | 313 | mkdir -p $kerneldir/arch/${ARCH}/include/generated/ |
314 | 314 | cp -fR arch/${ARCH}/include/generated/* $kerneldir/arch/${ARCH}/include/generated/ | |
315 | if [ "${ARCH}" = "i386" ] || [ "${ARCH}" = "x86_64" ]; then | ||
316 | KERNEL_SRCARCH=x86 | ||
317 | else | ||
318 | KERNEL_SRCARCH=${ARCH} | ||
319 | fi | ||
320 | |||
321 | if [ -d arch/${KERNEL_SRCARCH}/include/generated ]; then | ||
322 | mkdir -p $kerneldir/arch/${KERNEL_SRCARCH}/include/generated/ | ||
323 | cp -fR arch/${KERNEL_SRCARCH}/include/generated/* $kerneldir/arch/${KERNEL_SRCARCH}/include/generated/ | ||
324 | fi | 315 | fi |
325 | } | 316 | } |
326 | 317 | ||