summaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel-yocto.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/kernel-yocto.bbclass')
-rw-r--r--meta/classes/kernel-yocto.bbclass33
1 files changed, 21 insertions, 12 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 5bc627066e..41d8620e67 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -131,7 +131,7 @@ do_kernel_metadata() {
131 else 131 else
132 cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig 132 cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig
133 fi 133 fi
134 sccs="${WORKDIR}/defconfig" 134 in_tree_defconfig="${WORKDIR}/defconfig"
135 else 135 else
136 bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree" 136 bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree"
137 fi 137 fi
@@ -153,14 +153,24 @@ do_kernel_metadata() {
153 patches="${@" ".join(find_patches(d,''))}" 153 patches="${@" ".join(find_patches(d,''))}"
154 feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}" 154 feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
155 155
156 # a quick check to make sure we don't have duplicate defconfigs 156 # a quick check to make sure we don't have duplicate defconfigs If
157 # If there's a defconfig in the SRC_URI, did we also have one from 157 # there's a defconfig in the SRC_URI, did we also have one from the
158 # the KBUILD_DEFCONFIG processing above ? 158 # KBUILD_DEFCONFIG processing above ?
159 if [ -n "$sccs" ]; then 159 src_uri_defconfig=$(echo $sccs_from_src_uri | awk '{ if ($0=="defconfig") { print $0 } }' RS=' ')
160 # we did have a defconfig from above. remove any that might be in the src_uri 160 # drop and defconfig's from the src_uri variable, we captured it just above here if it existed
161 sccs_from_src_uri=$(echo $sccs_from_src_uri | awk '{ if ($0!="defconfig") { print $0 } }' RS=' ') 161 sccs_from_src_uri=$(echo $sccs_from_src_uri | awk '{ if ($0!="defconfig") { print $0 } }' RS=' ')
162 if [ -n "$in_tree_defconfig" ]; then
163 sccs_defconfig=$in_tree_defconfig
164 if [ -n "$src_uri_defconfig" ]; then
165 bbwarn "[NOTE]: defconfig was supplied both via KBUILD_DEFCONFIG and SRC_URI. Dropping SRC_URI defconfig"
166 fi
167 else
168 # if we didn't have an in-tree one, make our defconfig the one
169 # from the src_uri. Note: there may not have been one from the
170 # src_uri, so this can be an empty variable.
171 sccs_defconfig=$src_uri_defconfig
162 fi 172 fi
163 sccs="$sccs $sccs_from_src_uri" 173 sccs="$sccs_from_src_uri"
164 174
165 # check for feature directories/repos/branches that were part of the 175 # check for feature directories/repos/branches that were part of the
166 # SRC_URI. If they were supplied, we convert them into include directives 176 # SRC_URI. If they were supplied, we convert them into include directives
@@ -187,11 +197,10 @@ do_kernel_metadata() {
187 # expand kernel features into their full path equivalents 197 # expand kernel features into their full path equivalents
188 bsp_definition=$(spp ${includes} --find -DKMACHINE=${KMACHINE} -DKTYPE=${LINUX_KERNEL_TYPE}) 198 bsp_definition=$(spp ${includes} --find -DKMACHINE=${KMACHINE} -DKTYPE=${LINUX_KERNEL_TYPE})
189 if [ -z "$bsp_definition" ]; then 199 if [ -z "$bsp_definition" ]; then
190 echo "$sccs" | grep -q defconfig 200 if [ -z "$sccs_defconfig" ]; then
191 if [ $? -ne 0 ]; then
192 bbfatal_log "Could not locate BSP definition for ${KMACHINE}/${LINUX_KERNEL_TYPE} and no defconfig was provided" 201 bbfatal_log "Could not locate BSP definition for ${KMACHINE}/${LINUX_KERNEL_TYPE} and no defconfig was provided"
193 fi 202 fi
194 203 else
195 # if the bsp definition has "define KMETA_EXTERNAL_BSP t", 204 # if the bsp definition has "define KMETA_EXTERNAL_BSP t",
196 # then we need to set a flag that will instruct the next 205 # then we need to set a flag that will instruct the next
197 # steps to use the BSP as both configuration and patches. 206 # steps to use the BSP as both configuration and patches.
@@ -206,7 +215,7 @@ do_kernel_metadata() {
206 elements="`echo -n ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES}`" 215 elements="`echo -n ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES}`"
207 if [ -n "${elements}" ]; then 216 if [ -n "${elements}" ]; then
208 echo "${bsp_definition}" > ${S}/${meta_dir}/bsp_definition 217 echo "${bsp_definition}" > ${S}/${meta_dir}/bsp_definition
209 scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES} 218 scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} $sccs_defconfig $bsp_definition $sccs $patches ${KERNEL_FEATURES}
210 if [ $? -ne 0 ]; then 219 if [ $? -ne 0 ]; then
211 bbfatal_log "Could not generate configuration queue for ${KMACHINE}." 220 bbfatal_log "Could not generate configuration queue for ${KMACHINE}."
212 fi 221 fi