diff options
-rw-r--r-- | meta-oe/classes/kernel.bbclass | 43 |
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 | ||
83 | KERNEL_ALT_IMAGETYPE ??= "" | 83 | KERNEL_ALT_IMAGETYPE ??= "" |
84 | 84 | ||
85 | # Define where the kernel headers are installed on the target as well as where | ||
86 | # they are staged. | ||
87 | KERNEL_SRC_PATH = "/usr/src/kernel" | ||
88 | |||
85 | KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}" | 89 | KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}" |
86 | 90 | ||
87 | kernel_do_compile() { | 91 | kernel_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 | ||
200 | PACKAGE_PREPROCESS_FUNCS += "kernel_package_preprocess" | ||
201 | |||
202 | kernel_package_preprocess () { | ||
203 | rm -rf ${PKGD}/kernel | ||
204 | } | ||
205 | |||
206 | sysroot_stage_all_append() { | 208 | sysroot_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 | ||
210 | kernel_do_configure() { | 212 | kernel_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} |
255 | PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev kernel-misc" | 257 | PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev" |
256 | FILES = "" | 258 | FILES = "" |
257 | FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*" | 259 | FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*" |
258 | FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config*" | 260 | FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH}" |
259 | FILES_kernel-vmlinux = "/boot/vmlinux*" | 261 | FILES_kernel-vmlinux = "/boot/vmlinux*" |
260 | # misc is a package to contain files we need in staging | ||
261 | FILES_kernel-misc = "/kernel/include/config /kernel/scripts /kernel/drivers/crypto /kernel/drivers/media" | ||
262 | RDEPENDS_kernel = "kernel-base" | 262 | RDEPENDS_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 |
265 | RDEPENDS_kernel-base ?= "kernel-image" | 265 | RDEPENDS_kernel-base ?= "kernel-image" |
266 | PKG_kernel-image = "kernel-image-${@legitimize_package_name('${KERNEL_VERSION}')}" | 266 | PKG_kernel-image = "kernel-image-${@legitimize_package_name('${KERNEL_VERSION}')}" |
267 | PKG_kernel-base = "kernel-${@legitimize_package_name('${KERNEL_VERSION}')}" | 267 | PKG_kernel-base = "kernel-${@legitimize_package_name('${KERNEL_VERSION}')}" |
268 | RPROVIDES_kernel-base += "kernel-${KERNEL_VERSION}" | ||
268 | ALLOW_EMPTY_kernel = "1" | 269 | ALLOW_EMPTY_kernel = "1" |
269 | ALLOW_EMPTY_kernel-base = "1" | 270 | ALLOW_EMPTY_kernel-base = "1" |
270 | ALLOW_EMPTY_kernel-image = "1" | 271 | ALLOW_EMPTY_kernel-image = "1" |
@@ -318,12 +319,12 @@ module_conf_rfcomm = "alias bt-proto-3 rfcomm" | |||
318 | 319 | ||
319 | python populate_packages_prepend () { | 320 | python 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 | ||
554 | EXPORT_FUNCTIONS do_deploy | 556 | EXPORT_FUNCTIONS do_deploy |
555 | 557 | ||
556 | # perf must be enabled in individual kernel recipes | ||
557 | PACKAGES =+ "perf-dbg perf" | ||
558 | FILES_perf = "${bindir}/* \ | ||
559 | ${libexecdir}" | ||
560 | FILES_perf-dbg = "${FILES_${PN}-dbg}" | ||