summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/kernel-yocto.bbclass33
1 files changed, 29 insertions, 4 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 3311f6e84e..70818cc01c 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -212,11 +212,36 @@ do_kernel_metadata() {
212 fi 212 fi
213 meta_dir=$(kgit --meta) 213 meta_dir=$(kgit --meta)
214 214
215 KERNEL_FEATURES_FINAL=""
216 if [ -n "${KERNEL_FEATURES}" ]; then
217 for feature in ${KERNEL_FEATURES}; do
218 feature_found=f
219 for d in $includes; do
220 path_to_check=$(echo $d | sed 's/-I//g')
221 if [ "$feature_found" = "f" ] && [ -e "$path_to_check/$feature" ]; then
222 feature_found=t
223 fi
224 done
225 if [ "$feature_found" = "f" ]; then
226 if [ -n "${KERNEL_DANGLING_FEATURES_WARN_ONLY}" ]; then
227 bbwarn "Feature '$feature' not found, but KERNEL_DANGLING_FEATURES_WARN_ONLY is set"
228 bbwarn "This may cause runtime issues, dropping feature and allowing configuration to continue"
229 else
230 bberror "Feature '$feature' not found, this will cause configuration failures."
231 bberror "Check the SRC_URI for meta-data repositories or directories that may be missing"
232 bbfatal_log "Set KERNEL_DANGLING_FEATURES_WARN_ONLY to ignore this issue"
233 fi
234 else
235 KERNEL_FEATURES_FINAL="$KERNEL_FEATURES_FINAL $feature"
236 fi
237 done
238 fi
239
215 # run1: pull all the configuration fragments, no matter where they come from 240 # run1: pull all the configuration fragments, no matter where they come from
216 elements="`echo -n ${bsp_definition} $sccs_defconfig ${sccs} ${patches} ${KERNEL_FEATURES}`" 241 elements="`echo -n ${bsp_definition} $sccs_defconfig ${sccs} ${patches} $KERNEL_FEATURES_FINAL`"
217 if [ -n "${elements}" ]; then 242 if [ -n "${elements}" ]; then
218 echo "${bsp_definition}" > ${S}/${meta_dir}/bsp_definition 243 echo "${bsp_definition}" > ${S}/${meta_dir}/bsp_definition
219 scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} $sccs_defconfig $bsp_definition $sccs $patches ${KERNEL_FEATURES} 244 scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} $sccs_defconfig $bsp_definition $sccs $patches $KERNEL_FEATURES_FINAL
220 if [ $? -ne 0 ]; then 245 if [ $? -ne 0 ]; then
221 bbfatal_log "Could not generate configuration queue for ${KMACHINE}." 246 bbfatal_log "Could not generate configuration queue for ${KMACHINE}."
222 fi 247 fi
@@ -230,9 +255,9 @@ do_kernel_metadata() {
230 fi 255 fi
231 256
232 # run2: only generate patches for elements that have been passed on the SRC_URI 257 # run2: only generate patches for elements that have been passed on the SRC_URI
233 elements="`echo -n ${sccs} ${patches} ${KERNEL_FEATURES}`" 258 elements="`echo -n ${sccs} ${patches} $KERNEL_FEATURES_FINAL`"
234 if [ -n "${elements}" ]; then 259 if [ -n "${elements}" ]; then
235 scc --force -o ${S}/${meta_dir}:patch --cmds patch ${includes} ${sccs} ${patches} ${KERNEL_FEATURES} 260 scc --force -o ${S}/${meta_dir}:patch --cmds patch ${includes} ${sccs} ${patches} $KERNEL_FEATURES_FINAL
236 if [ $? -ne 0 ]; then 261 if [ $? -ne 0 ]; then
237 bbfatal_log "Could not generate configuration queue for ${KMACHINE}." 262 bbfatal_log "Could not generate configuration queue for ${KMACHINE}."
238 fi 263 fi