diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/kernel.bbclass | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index eefe574a60..f8318b83a1 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass | |||
@@ -28,7 +28,6 @@ KERNEL_VERSION_PKG_NAME = "${@legitimize_package_name(d.getVar('KERNEL_VERSION', | |||
28 | KERNEL_VERSION_PKG_NAME[vardepvalue] = "${LINUX_VERSION}" | 28 | KERNEL_VERSION_PKG_NAME[vardepvalue] = "${LINUX_VERSION}" |
29 | 29 | ||
30 | python __anonymous () { | 30 | python __anonymous () { |
31 | import re | ||
32 | 31 | ||
33 | # Merge KERNEL_IMAGETYPE and KERNEL_ALT_IMAGETYPE into KERNEL_IMAGETYPES | 32 | # Merge KERNEL_IMAGETYPE and KERNEL_ALT_IMAGETYPE into KERNEL_IMAGETYPES |
34 | type = d.getVar('KERNEL_IMAGETYPE', True) or "" | 33 | type = d.getVar('KERNEL_IMAGETYPE', True) or "" |
@@ -40,7 +39,10 @@ python __anonymous () { | |||
40 | types = (alttype + ' ' + types).strip() | 39 | types = (alttype + ' ' + types).strip() |
41 | d.setVar('KERNEL_IMAGETYPES', types) | 40 | d.setVar('KERNEL_IMAGETYPES', types) |
42 | 41 | ||
43 | typeformake = re.sub(r'\.gz', '', types) | 42 | # some commonly used kernel images aren't generated by the kernel build system, such as vmlinux.gz |
43 | # typeformake lists only valid kernel make targets, and post processing can be done after the kernel | ||
44 | # is built (such as using gzip to compress vmlinux) | ||
45 | typeformake = types.replace('vmlinux.gz', 'vmlinux') | ||
44 | d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake) | 46 | d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake) |
45 | 47 | ||
46 | for type in types.split(): | 48 | for type in types.split(): |
@@ -262,14 +264,12 @@ kernel_do_compile() { | |||
262 | fi | 264 | fi |
263 | for typeformake in ${KERNEL_IMAGETYPE_FOR_MAKE} ; do | 265 | for typeformake in ${KERNEL_IMAGETYPE_FOR_MAKE} ; do |
264 | oe_runmake ${typeformake} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd | 266 | oe_runmake ${typeformake} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd |
265 | for type in ${KERNEL_IMAGETYPES} ; do | ||
266 | if test "${typeformake}.gz" = "${type}"; then | ||
267 | mkdir -p "${KERNEL_OUTPUT_DIR}" | ||
268 | gzip -9c < "${typeformake}" > "${KERNEL_OUTPUT_DIR}/${type}" | ||
269 | break; | ||
270 | fi | ||
271 | done | ||
272 | done | 267 | done |
268 | # vmlinux.gz is not built by kernel | ||
269 | if (echo "${KERNEL_IMAGETYPES}" | grep -wq "vmlinux\.gz"); then | ||
270 | mkdir -p "${KERNEL_OUTPUT_DIR}" | ||
271 | gzip -9c < ${B}/vmlinux > "${KERNEL_OUTPUT_DIR}/vmlinux.gz" | ||
272 | fi | ||
273 | } | 273 | } |
274 | 274 | ||
275 | do_compile_kernelmodules() { | 275 | do_compile_kernelmodules() { |