summaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel.bbclass
diff options
context:
space:
mode:
authorAndre McCurdy <armccurdy@gmail.com>2018-05-15 12:13:51 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-05-22 13:13:33 +0100
commit95a1d7aefa93de688fa69d37a5cd38a1ebcf0e29 (patch)
treeff4218c26801d73c8cddcecdc891f4b387440e14 /meta/classes/kernel.bbclass
parent0124d2d94e64f0073b78260fad0391f14942ba78 (diff)
downloadpoky-95a1d7aefa93de688fa69d37a5cd38a1ebcf0e29.tar.gz
kernel.bbclass: avoid duplicates in KERNEL_IMAGETYPE_FOR_MAKE
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. (From OE-Core rev: 80455a0b6cce6d12a5b32194d0cad2e4c7f71599) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/kernel.bbclass')
-rw-r--r--meta/classes/kernel.bbclass28
1 files changed, 16 insertions, 12 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 6595a04fb1..68d218584a 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -62,32 +62,36 @@ python __anonymous () {
62 type = d.getVar('KERNEL_IMAGETYPE') or "" 62 type = d.getVar('KERNEL_IMAGETYPE') or ""
63 alttype = d.getVar('KERNEL_ALT_IMAGETYPE') or "" 63 alttype = d.getVar('KERNEL_ALT_IMAGETYPE') or ""
64 types = d.getVar('KERNEL_IMAGETYPES') or "" 64 types = d.getVar('KERNEL_IMAGETYPES') or ""
65 kname = d.getVar('KERNEL_PACKAGE_NAME') or "kernel"
66 if type not in types.split(): 65 if type not in types.split():
67 types = (type + ' ' + types).strip() 66 types = (type + ' ' + types).strip()
68 if alttype not in types.split(): 67 if alttype not in types.split():
69 types = (alttype + ' ' + types).strip() 68 types = (alttype + ' ' + types).strip()
70 d.setVar('KERNEL_IMAGETYPES', types) 69 d.setVar('KERNEL_IMAGETYPES', types)
71 70
71 # KERNEL_IMAGETYPES may contain a mixture of image types supported directly
72 # by the kernel build system and types which are created by post-processing
73 # the output of the kernel build system (e.g. compressing vmlinux ->
74 # vmlinux.gz in kernel_do_compile()).
75 # KERNEL_IMAGETYPE_FOR_MAKE should contain only image types supported
76 # directly by the kernel build system.
72 if not d.getVar('KERNEL_IMAGETYPE_FOR_MAKE'): 77 if not d.getVar('KERNEL_IMAGETYPE_FOR_MAKE'):
73 # some commonly used kernel images aren't generated by the kernel build system, such as vmlinux.gz 78 typeformake = set()
74 # typeformake lists only valid kernel make targets, and post processing can be done after the kernel 79 for type in types.split():
75 # is built (such as using gzip to compress vmlinux) 80 if type == 'vmlinux.gz':
76 typeformake = types.replace('vmlinux.gz', 'vmlinux') 81 type = 'vmlinux'
77 d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', typeformake) 82 typeformake.add(type)
83
84 d.setVar('KERNEL_IMAGETYPE_FOR_MAKE', ' '.join(sorted(typeformake)))
85
86 kname = d.getVar('KERNEL_PACKAGE_NAME') or "kernel"
87 imagedest = d.getVar('KERNEL_IMAGEDEST')
78 88
79 for type in types.split(): 89 for type in types.split():
80 typelower = type.lower() 90 typelower = type.lower()
81 imagedest = d.getVar('KERNEL_IMAGEDEST')
82
83 d.appendVar('PACKAGES', ' %s-image-%s' % (kname, typelower)) 91 d.appendVar('PACKAGES', ' %s-image-%s' % (kname, typelower))
84
85 d.setVar('FILES_' + kname + '-image-' + typelower, '/' + imagedest + '/' + type + '-${KERNEL_VERSION_NAME}' + ' /' + imagedest + '/' + type) 92 d.setVar('FILES_' + kname + '-image-' + typelower, '/' + imagedest + '/' + type + '-${KERNEL_VERSION_NAME}' + ' /' + imagedest + '/' + type)
86
87 d.appendVar('RDEPENDS_%s-image' % kname, ' %s-image-%s' % (kname, typelower)) 93 d.appendVar('RDEPENDS_%s-image' % kname, ' %s-image-%s' % (kname, typelower))
88
89 d.setVar('PKG_%s-image-%s' % (kname,typelower), '%s-image-%s-${KERNEL_VERSION_PKG_NAME}' % (kname, typelower)) 94 d.setVar('PKG_%s-image-%s' % (kname,typelower), '%s-image-%s-${KERNEL_VERSION_PKG_NAME}' % (kname, typelower))
90
91 d.setVar('ALLOW_EMPTY_%s-image-%s' % (kname, typelower), '1') 95 d.setVar('ALLOW_EMPTY_%s-image-%s' % (kname, typelower), '1')
92 96
93 image = d.getVar('INITRAMFS_IMAGE') 97 image = d.getVar('INITRAMFS_IMAGE')