[OE-core] [PATCH] kernel.bbclass: avoid duplicates in KERNEL_IMAGETYPE_FOR_MAKE
Andre McCurdy
armccurdy at gmail.com
Mon Mar 12 23:19:08 UTC 2018
Currently if KERNEL_IMAGETYPES contains both vmlinux and vmlinux.gz,
KERNEL_IMAGETYPE_FOR_MAKE will end up containing two copies of
vmlinux, which will result in two calls to "make vmlinux" from
kernel_do_compile().
Avoid duplicating vmlinux in KERNEL_IMAGETYPE_FOR_MAKE plus some
minor non-functional updates to formatting and comments.
Signed-off-by: Andre McCurdy <armccurdy at gmail.com>
---
meta/classes/kernel.bbclass | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index dc0152f..4bcaa61 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -62,31 +62,37 @@ python __anonymous () {
type = d.getVar('KERNEL_IMAGETYPE') or ""
alttype = d.getVar('KERNEL_ALT_IMAGETYPE') or ""
types = d.getVar('KERNEL_IMAGETYPES') or ""
- kname = d.getVar('KERNEL_PACKAGE_NAME') or "kernel"
if type not in types.split():
types = (type + ' ' + types).strip()
if alttype not in types.split():
types = (alttype + ' ' + types).strip()
d.setVar('KERNEL_IMAGETYPES', types)
- # some commonly used kernel images aren't generated by the kernel build system, such as vmlinux.gz
- # typeformake lists only valid kernel make targets, and post processing can be done after the kernel
- # is built (such as using gzip to compress vmlinux)
- typeformake = types.replace('vmlinux.gz', 'vmlinux')
+ # KERNEL_IMAGETYPES may contain a mixture of image types supported directly
+ # by the kernel build system and others which are created by post-processing
+ # (e.g. compressing vmlinux -> vmlinux.gz in kernel_do_compile()).
+ # KERNEL_IMAGETYPE_FOR_MAKE should contain only image types supported
+ # directly by the kernel build system.
+
+ typeformake = ""
+ for type in types.split():
+ if type == 'vmlinux.gz':
+ type = 'vmlinux'
+ if type in types.split():
+ continue
+ typeformake = (typeformake + ' ' + type).strip()
+
d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake)
+ kname = d.getVar('KERNEL_PACKAGE_NAME') or "kernel"
+ imagedest = d.getVar('KERNEL_IMAGEDEST')
+
for type in types.split():
typelower = type.lower()
- imagedest = d.getVar('KERNEL_IMAGEDEST')
-
d.appendVar('PACKAGES', ' %s-image-%s' % (kname, typelower))
-
d.setVar('FILES_' + kname + '-image-' + typelower, '/' + imagedest + '/' + type + '-${KERNEL_VERSION_NAME}' + ' /' + imagedest + '/' + type)
-
d.appendVar('RDEPENDS_%s-image' % kname, ' %s-image-%s' % (kname, typelower))
-
d.setVar('PKG_%s-image-%s' % (kname,typelower), '%s-image-%s-${KERNEL_VERSION_PKG_NAME}' % (kname, typelower))
-
d.setVar('ALLOW_EMPTY_%s-image-%s' % (kname, typelower), '1')
image = d.getVar('INITRAMFS_IMAGE')
--
1.9.1
More information about the Openembedded-core
mailing list