On Mon, Jul 6, 2020 at 6:29 AM Bruce Ashfield <[email protected]> wrote: > > We have a fixup patch for this one in test right now, so we don't want > this patch, without the follow up. > > But this is useful for dunfell, since it was an unexpected behaviour > that needed to be fixed.
Thanks, I'll drop this patch from the pull request and include it along with the fixup patch in next week's patch set. Steve > On Mon, Jul 6, 2020 at 12:11 PM Steve Sakoman <[email protected]> wrote: > > > > From: Bruce Ashfield <[email protected]> > > > > It is uncommon that a BSP definition and a defconfig are used in > > a single configuration. That being said, it is a valid way to > > organize kernel configuration meta data. > > > > When a defconfig is used, either on the src_uri or from in > > the kernel tree, it is normally expected that it is the baseline, > > with all options applied on top of it. > > > > With this commit, we detect either type of defconfig and ensure > > that it is used first, followed by the fragments in their > > previous order. This allows existing configuration stacks to > > remain the same, while ensuring that a defconfig combined stack > > works as expected. > > > > Signed-off-by: Bruce Ashfield <[email protected]> > > Signed-off-by: Richard Purdie <[email protected]> > > (cherry picked from commit e6845327b69396d843a2f3c4c3ac9400ae9caedf) > > Signed-off-by: Steve Sakoman <[email protected]> > > --- > > meta/classes/kernel-yocto.bbclass | 33 ++++++++++++++++++++----------- > > 1 file 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() { > > else > > cp -f > > ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig > > fi > > - sccs="${WORKDIR}/defconfig" > > + in_tree_defconfig="${WORKDIR}/defconfig" > > else > > bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' > > was specified, but not present in the source tree" > > fi > > @@ -153,14 +153,24 @@ do_kernel_metadata() { > > patches="${@" ".join(find_patches(d,''))}" > > feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}" > > > > - # a quick check to make sure we don't have duplicate defconfigs > > - # If there's a defconfig in the SRC_URI, did we also have one from > > - # the KBUILD_DEFCONFIG processing above ? > > - if [ -n "$sccs" ]; then > > - # we did have a defconfig from above. remove any that might be > > in the src_uri > > - sccs_from_src_uri=$(echo $sccs_from_src_uri | awk '{ if > > ($0!="defconfig") { print $0 } }' RS=' ') > > + # a quick check to make sure we don't have duplicate defconfigs If > > + # there's a defconfig in the SRC_URI, did we also have one from the > > + # KBUILD_DEFCONFIG processing above ? > > + src_uri_defconfig=$(echo $sccs_from_src_uri | awk '{ if > > ($0=="defconfig") { print $0 } }' RS=' ') > > + # drop and defconfig's from the src_uri variable, we captured it > > just above here if it existed > > + sccs_from_src_uri=$(echo $sccs_from_src_uri | awk '{ if > > ($0!="defconfig") { print $0 } }' RS=' ') > > + if [ -n "$in_tree_defconfig" ]; then > > + sccs_defconfig=$in_tree_defconfig > > + if [ -n "$src_uri_defconfig" ]; then > > + bbwarn "[NOTE]: defconfig was supplied both via > > KBUILD_DEFCONFIG and SRC_URI. Dropping SRC_URI defconfig" > > + fi > > + else > > + # if we didn't have an in-tree one, make our defconfig the > > one > > + # from the src_uri. Note: there may not have been one from > > the > > + # src_uri, so this can be an empty variable. > > + sccs_defconfig=$src_uri_defconfig > > fi > > - sccs="$sccs $sccs_from_src_uri" > > + sccs="$sccs_from_src_uri" > > > > # check for feature directories/repos/branches that were part of the > > # SRC_URI. If they were supplied, we convert them into include > > directives > > @@ -187,11 +197,10 @@ do_kernel_metadata() { > > # expand kernel features into their full path equivalents > > bsp_definition=$(spp ${includes} --find -DKMACHINE=${KMACHINE} > > -DKTYPE=${LINUX_KERNEL_TYPE}) > > if [ -z "$bsp_definition" ]; then > > - echo "$sccs" | grep -q defconfig > > - if [ $? -ne 0 ]; then > > + if [ -z "$sccs_defconfig" ]; then > > bbfatal_log "Could not locate BSP definition for > > ${KMACHINE}/${LINUX_KERNEL_TYPE} and no defconfig was provided" > > fi > > - > > + else > > # if the bsp definition has "define KMETA_EXTERNAL_BSP t", > > # then we need to set a flag that will instruct the next > > # steps to use the BSP as both configuration and patches. > > @@ -206,7 +215,7 @@ do_kernel_metadata() { > > elements="`echo -n ${bsp_definition} ${sccs} ${patches} > > ${KERNEL_FEATURES}`" > > if [ -n "${elements}" ]; then > > echo "${bsp_definition}" > ${S}/${meta_dir}/bsp_definition > > - scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} > > ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES} > > + scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} > > $sccs_defconfig $bsp_definition $sccs $patches ${KERNEL_FEATURES} > > if [ $? -ne 0 ]; then > > bbfatal_log "Could not generate configuration queue > > for ${KMACHINE}." > > fi > > -- > > 2.17.1 > > > > > > > > -- > - Thou shalt not follow the NULL pointer, for chaos and madness await > thee at its end > - "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#140360): https://lists.openembedded.org/g/openembedded-core/message/140360 Mute This Topic: https://lists.openembedded.org/mt/75336267/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
