]> code.ossystems Code Review - openembedded-core.git/commitdiff
kernel.bbclass: fix installing of kernels 2.6.34 and above
authorJoshua Lock <josh@linux.intel.com>
Tue, 18 May 2010 13:46:33 +0000 (14:46 +0100)
committerJoshua Lock <josh@linux.intel.com>
Wed, 19 May 2010 11:20:08 +0000 (12:20 +0100)
Changes merged from upstream to cope with changes to directory structures in
recent kernels when building for x86

Signed-off-by: Joshua Lock <josh@linux.intel.com>
meta/classes/kernel.bbclass

index 6f8ee31ffc34d3d684a02c4c5bb3aef037f86a34..69631848816e73fde2650fe8192867ebea2c054a 100644 (file)
@@ -107,45 +107,50 @@ kernel_do_install() {
         fi
 
        kerneldir=${D}/kernel/
-       ASMDIR=`readlink include/asm`
 
-       mkdir -p $kerneldir/include/$ASMDIR
-       cp -fR include/$ASMDIR/* $kerneldir/include/$ASMDIR/
+       if [ -e include/asm ] ; then
+               # This link is generated only in kernel before 2.6.33-rc1, don't stage it for newer kernels
+               ASMDIR=`readlink include/asm`
+
+               mkdir -p $kerneldir/include/$ASMDIR
+               cp -fR include/$ASMDIR/* $kerneldir/include/$ASMDIR/
+       fi
+
        # 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/* $kerneldir/include/$ASMDIR/
+               if [ -e include/asm ] ; then
+                       cp -fR arch/${ARCH}/include/asm/* $kerneldir/include/$ASMDIR/
+               fi
                install -d $kerneldir/arch/${ARCH}/include
                cp -fR arch/${ARCH}/* $kerneldir/arch/${ARCH}/  
 
        # Check for arch/x86 on i386
        elif [ -d arch/x86/include/asm/ ]; then
+               mkdir -p $kerneldir/include/asm-x86/
                cp -fR arch/x86/include/asm/* $kerneldir/include/asm-x86/
                install -d $kerneldir/arch/x86/include
                cp -fR arch/x86/* $kerneldir/arch/x86/
        fi
 
-       rm -f $kerneldir/include/asm
-       ln -sf $ASMDIR $kerneldir/include/asm
+       if [ -e include/asm ] ; then
+               rm -f $kerneldir/include/asm
+               ln -sf $ASMDIR $kerneldir/include/asm
+       fi
 
        mkdir -p $kerneldir/include/asm-generic
        cp -fR include/asm-generic/* $kerneldir/include/asm-generic/
 
-       mkdir -p $kerneldir/include/linux
-       cp -fR include/linux/* $kerneldir/include/linux/
-
-       mkdir -p $kerneldir/include/net
-       cp -fR include/net/* $kerneldir/include/net/
-
-       mkdir -p $kerneldir/include/pcmcia
-       cp -fR include/pcmcia/* $kerneldir/include/pcmcia/
-
-       for entry in drivers/crypto drivers/media include/media include/acpi include/sound include/video include/scsi include/trace; do
+       for entry in drivers/crypto drivers/media include/generated include/linux include/net include/pcmcia include/media include/acpi include/sound include/video include/scsi include/trace include/mtd include/rdma include/drm include/xen; do
                if [ -d $entry ]; then
                        mkdir -p $kerneldir/$entry
                        cp -fR $entry/* $kerneldir/$entry/
                fi
        done
 
+       if [ -f include/Kbuild ]; then
+               cp -fR include/Kbuild $kerneldir/include
+       fi
+
        if [ -d drivers/sound ]; then
                # 2.4 alsa needs some headers from this directory
                mkdir -p $kerneldir/include/drivers/sound
@@ -309,7 +314,7 @@ python populate_packages_prepend () {
 
                dvar = bb.data.getVar('PKGD', d, 1)
                if not dvar:
-                       bb.error("D not defined")
+                       bb.error("PKGD not defined")
                        return
 
                kernelver = bb.data.getVar('KERNEL_VERSION', d, 1)