* Bug in kernel-arch.bbclass
@ 2009-03-24 9:35 Henning Heinold
2009-03-27 4:16 ` Khem Raj
0 siblings, 1 reply; 2+ messages in thread
From: Henning Heinold @ 2009-03-24 9:35 UTC (permalink / raw)
To: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 1800 bytes --]
Hi,
while compiling 2.6.28 for wrap board(geodegx) I noticed that the asm-headers didnt install into staging.
After examine kernel-arch.bbclass and kernel.bblcass I found the following lines
kernel-arch.bbclass
def map_kernel_arch(a, d):
import bb, re
valid_archs = bb.data.getVar('valid_archs', d, 1).split()
if re.match('(i.86|athlon)$', a): return '386'
elif re.match('arm26$', a): return 'arm26'
elif re.match('armeb$', a): return 'arm'
elif re.match('mipsel$', a): return 'mips'
elif re.match('sh(3|4)$', a): return 'sh'
elif re.match('bfin', a): return 'blackfin'
elif a in valid_archs: return a
else:
bb.error("cannot map '%s' to a linux kernel architecture" % a)
export ARCH = "${@map_kernel_arch(bb.data.getVar('TARGET_ARCH', d, 1), d)}"
kernel.bbclass
kernel_do_stage() {
ASMDIR=`readlink include/asm`
mkdir -p ${STAGING_KERNEL_DIR}/include/$ASMDIR
cp -fR include/$ASMDIR/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/
# Kernel 2.6.27 moved headers from includes/asm-${ARCH} to arch/${ARCH}/include/asm
if [ -e arch/${ARCH}/include/asm/ ] ; then
cp -fR arch/${ARCH}/include/asm/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/
install -d ${STAGING_KERNEL_DIR}/arch/${ARCH}/include
cp -fR arch/${ARCH}/* ${STAGING_KERNEL_DIR}/arch/${ARCH}/
As you can see this can not work because the ARCH-variable is set to 386 and so the "-e arch/${ARCH}/include/asm/"
is not true. For backward compatiblity I attached a patch, which covers this problem.
Is this okay for checkin?
Bye Henning
[-- Attachment #2: kernel_bbclass.patch --]
[-- Type: text/x-diff, Size: 753 bytes --]
diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass
index 4c1dbda..91bd640 100644
--- a/classes/kernel.bbclass
+++ b/classes/kernel.bbclass
@@ -98,6 +98,10 @@ kernel_do_stage() {
cp -fR arch/${ARCH}/include/asm/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/
install -d ${STAGING_KERNEL_DIR}/arch/${ARCH}/include
cp -fR arch/${ARCH}/* ${STAGING_KERNEL_DIR}/arch/${ARCH}/
+ elif [ -e arch/x86/include/asm/ ] ; then
+ cp -fR arch/x86/include/asm/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/
+ install -d ${STAGING_KERNEL_DIR}/arch/x86/include
+ cp -fR arch/x86/* ${STAGING_KERNEL_DIR}/arch/x86/
fi
rm -f $ASMDIR ${STAGING_KERNEL_DIR}/include/asm
ln -sf $ASMDIR ${STAGING_KERNEL_DIR}/include/asm
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: Bug in kernel-arch.bbclass
2009-03-24 9:35 Bug in kernel-arch.bbclass Henning Heinold
@ 2009-03-27 4:16 ` Khem Raj
0 siblings, 0 replies; 2+ messages in thread
From: Khem Raj @ 2009-03-27 4:16 UTC (permalink / raw)
To: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 2074 bytes --]
On Tuesday 24 March 2009 02:35:20 Henning Heinold wrote:
> Hi,
>
> while compiling 2.6.28 for wrap board(geodegx) I noticed that the asm-headers didnt install into staging.
> After examine kernel-arch.bbclass and kernel.bblcass I found the following lines
>
> kernel-arch.bbclass
>
> def map_kernel_arch(a, d):
> import bb, re
>
> valid_archs = bb.data.getVar('valid_archs', d, 1).split()
>
> if re.match('(i.86|athlon)$', a): return '386'
> elif re.match('arm26$', a): return 'arm26'
> elif re.match('armeb$', a): return 'arm'
> elif re.match('mipsel$', a): return 'mips'
> elif re.match('sh(3|4)$', a): return 'sh'
> elif re.match('bfin', a): return 'blackfin'
> elif a in valid_archs: return a
> else:
> bb.error("cannot map '%s' to a linux kernel architecture" % a)
>
> export ARCH = "${@map_kernel_arch(bb.data.getVar('TARGET_ARCH', d, 1), d)}"
>
>
> kernel.bbclass
>
> kernel_do_stage() {
> ASMDIR=`readlink include/asm`
>
> mkdir -p ${STAGING_KERNEL_DIR}/include/$ASMDIR
> cp -fR include/$ASMDIR/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/
> # Kernel 2.6.27 moved headers from includes/asm-${ARCH} to arch/${ARCH}/include/asm
> if [ -e arch/${ARCH}/include/asm/ ] ; then
> cp -fR arch/${ARCH}/include/asm/* ${STAGING_KERNEL_DIR}/include/$ASMDIR/
> install -d ${STAGING_KERNEL_DIR}/arch/${ARCH}/include
> cp -fR arch/${ARCH}/* ${STAGING_KERNEL_DIR}/arch/${ARCH}/
>
> As you can see this can not work because the ARCH-variable is set to 386 and so the "-e arch/${ARCH}/include/asm/"
> is not true. For backward compatiblity I attached a patch, which covers this problem.
>
> Is this okay for checkin?
your patch installs like old dir structure, I wonder if it should install in arch/$ARCH/include too
>
>
> Bye Henning
>
--
Khem Raj
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 204 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-03-27 4:18 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-24 9:35 Bug in kernel-arch.bbclass Henning Heinold
2009-03-27 4:16 ` Khem Raj
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.