summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/classes/kernel.bbclass43
1 files changed, 20 insertions, 23 deletions
diff --git a/meta-oe/classes/kernel.bbclass b/meta-oe/classes/kernel.bbclass
index ce82351f8..7b80e9a79 100644
--- a/meta-oe/classes/kernel.bbclass
+++ b/meta-oe/classes/kernel.bbclass
@@ -82,6 +82,10 @@ EXTRA_OEMAKE = ""
82 82
83KERNEL_ALT_IMAGETYPE ??= "" 83KERNEL_ALT_IMAGETYPE ??= ""
84 84
85# Define where the kernel headers are installed on the target as well as where
86# they are staged.
87KERNEL_SRC_PATH = "/usr/src/kernel"
88
85KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}" 89KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}"
86 90
87kernel_do_compile() { 91kernel_do_compile() {
@@ -135,7 +139,7 @@ kernel_do_install() {
135 # Support for external module building - create a minimal copy of the 139 # Support for external module building - create a minimal copy of the
136 # kernel source tree. 140 # kernel source tree.
137 # 141 #
138 kerneldir=${D}/kernel 142 kerneldir=${D}${KERNEL_SRC_PATH}
139 install -d $kerneldir 143 install -d $kerneldir
140 144
141 # 145 #
@@ -178,7 +182,7 @@ kernel_do_install() {
178 # 182 #
179 oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean 183 oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean
180 make -C $kerneldir _mrproper_scripts 184 make -C $kerneldir _mrproper_scripts
181 find $kerneldir -path $kerneldir/scripts -prune -o -name "*.[csS]" -exec rm '{}' \; 185 find $kerneldir -path $kerneldir/lib -prune -o -path $kerneldir/tools -prune -o -path $kerneldir/scripts -prune -o -name "*.[csS]" -exec rm '{}' \;
182 find $kerneldir/Documentation -name "*.txt" -exec rm '{}' \; 186 find $kerneldir/Documentation -name "*.txt" -exec rm '{}' \;
183 187
184 # As of Linux kernel version 3.0.1, the clean target removes 188 # As of Linux kernel version 3.0.1, the clean target removes
@@ -188,23 +192,21 @@ kernel_do_install() {
188 cp arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o 192 cp arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o
189 fi 193 fi
190 194
191 # Remove the following binaries which cause strip errors 195 # Necessary for building modules like compat-wireless.
196 cp include/generated/bounds.h $kerneldir/include/generated/bounds.h
197
198 # Remove the following binaries which cause strip or arch QA errors
192 # during do_package for cross-compiled platforms 199 # during do_package for cross-compiled platforms
193 bin_files="arch/powerpc/boot/addnote arch/powerpc/boot/hack-coff \ 200 bin_files="arch/powerpc/boot/addnote arch/powerpc/boot/hack-coff \
194 arch/powerpc/boot/mktree" 201 arch/powerpc/boot/mktree scripts/kconfig/zconf.tab.o \
202 scripts/kconfig/conf.o scripts/kconfig/kxgettext.o"
195 for entry in $bin_files; do 203 for entry in $bin_files; do
196 rm -f $kerneldir/$entry 204 rm -f $kerneldir/$entry
197 done 205 done
198} 206}
199 207
200PACKAGE_PREPROCESS_FUNCS += "kernel_package_preprocess"
201
202kernel_package_preprocess () {
203 rm -rf ${PKGD}/kernel
204}
205
206sysroot_stage_all_append() { 208sysroot_stage_all_append() {
207 sysroot_stage_dir ${D}/kernel ${SYSROOT_DESTDIR}/kernel 209 sysroot_stage_dir ${D}${KERNEL_SRC_PATH} ${SYSROOT_DESTDIR}${KERNEL_SRC_PATH}
208} 210}
209 211
210kernel_do_configure() { 212kernel_do_configure() {
@@ -252,19 +254,18 @@ EXPORT_FUNCTIONS do_compile do_install do_configure
252 254
253# kernel-base becomes kernel-${KERNEL_VERSION} 255# kernel-base becomes kernel-${KERNEL_VERSION}
254# kernel-image becomes kernel-image-${KERNEL_VERISON} 256# kernel-image becomes kernel-image-${KERNEL_VERISON}
255PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev kernel-misc" 257PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev"
256FILES = "" 258FILES = ""
257FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*" 259FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
258FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config*" 260FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH}"
259FILES_kernel-vmlinux = "/boot/vmlinux*" 261FILES_kernel-vmlinux = "/boot/vmlinux*"
260# misc is a package to contain files we need in staging
261FILES_kernel-misc = "/kernel/include/config /kernel/scripts /kernel/drivers/crypto /kernel/drivers/media"
262RDEPENDS_kernel = "kernel-base" 262RDEPENDS_kernel = "kernel-base"
263# Allow machines to override this dependency if kernel image files are 263# Allow machines to override this dependency if kernel image files are
264# not wanted in images as standard 264# not wanted in images as standard
265RDEPENDS_kernel-base ?= "kernel-image" 265RDEPENDS_kernel-base ?= "kernel-image"
266PKG_kernel-image = "kernel-image-${@legitimize_package_name('${KERNEL_VERSION}')}" 266PKG_kernel-image = "kernel-image-${@legitimize_package_name('${KERNEL_VERSION}')}"
267PKG_kernel-base = "kernel-${@legitimize_package_name('${KERNEL_VERSION}')}" 267PKG_kernel-base = "kernel-${@legitimize_package_name('${KERNEL_VERSION}')}"
268RPROVIDES_kernel-base += "kernel-${KERNEL_VERSION}"
268ALLOW_EMPTY_kernel = "1" 269ALLOW_EMPTY_kernel = "1"
269ALLOW_EMPTY_kernel-base = "1" 270ALLOW_EMPTY_kernel-base = "1"
270ALLOW_EMPTY_kernel-image = "1" 271ALLOW_EMPTY_kernel-image = "1"
@@ -318,12 +319,12 @@ module_conf_rfcomm = "alias bt-proto-3 rfcomm"
318 319
319python populate_packages_prepend () { 320python populate_packages_prepend () {
320 def extract_modinfo(file): 321 def extract_modinfo(file):
321 import tempfile, re 322 import tempfile, re, subprocess
322 tempfile.tempdir = d.getVar("WORKDIR", True) 323 tempfile.tempdir = d.getVar("WORKDIR", True)
323 tf = tempfile.mkstemp() 324 tf = tempfile.mkstemp()
324 tmpfile = tf[1] 325 tmpfile = tf[1]
325 cmd = "PATH=\"%s\" %sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("PATH", True), d.getVar("HOST_PREFIX", True) or "", file, tmpfile) 326 cmd = "PATH=\"%s\" %sobjcopy -j .modinfo -O binary %s %s" % (d.getVar("PATH", True), d.getVar("HOST_PREFIX", True) or "", file, tmpfile)
326 os.system(cmd) 327 subprocess.call(cmd, shell=True)
327 f = open(tmpfile) 328 f = open(tmpfile)
328 l = f.read().split("\000") 329 l = f.read().split("\000")
329 f.close() 330 f.close()
@@ -475,7 +476,7 @@ python populate_packages_prepend () {
475 metapkg = "kernel-modules" 476 metapkg = "kernel-modules"
476 d.setVar('ALLOW_EMPTY_' + metapkg, "1") 477 d.setVar('ALLOW_EMPTY_' + metapkg, "1")
477 d.setVar('FILES_' + metapkg, "") 478 d.setVar('FILES_' + metapkg, "")
478 blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux', 'perf', 'perf-dbg', 'kernel-misc' ] 479 blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux' ]
479 for l in module_deps.values(): 480 for l in module_deps.values():
480 for i in l: 481 for i in l:
481 pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1)) 482 pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1))
@@ -544,6 +545,7 @@ kernel_do_deploy() {
544 cd ${DEPLOYDIR} 545 cd ${DEPLOYDIR}
545 rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.bin 546 rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.bin
546 ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${KERNEL_IMAGE_SYMLINK_NAME}.bin 547 ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${KERNEL_IMAGE_SYMLINK_NAME}.bin
548 ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${KERNEL_IMAGETYPE}
547 549
548 cp ${COREBASE}/meta/files/deploydir_readme.txt ${DEPLOYDIR}/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt 550 cp ${COREBASE}/meta/files/deploydir_readme.txt ${DEPLOYDIR}/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
549} 551}
@@ -553,8 +555,3 @@ addtask deploy before do_build after do_install
553 555
554EXPORT_FUNCTIONS do_deploy 556EXPORT_FUNCTIONS do_deploy
555 557
556# perf must be enabled in individual kernel recipes
557PACKAGES =+ "perf-dbg perf"
558FILES_perf = "${bindir}/* \
559 ${libexecdir}"
560FILES_perf-dbg = "${FILES_${PN}-dbg}"