Re: Problems building eSDK: Exception: variable BBFILES references itself!


Bryan Evenson
 

Richard,

-----Original Message-----
From: Richard Purdie <richard.purdie@...>
Sent: Wednesday, February 9, 2022 3:59 PM
To: Bryan Evenson <bevenson@...>;
yocto@...
Subject: Re: [yocto] Problems building eSDK: Exception: variable BBFILES
references itself!

On Wed, 2022-02-09 at 20:19 +0000, Bryan Evenson wrote:
Richard,

-----Original Message-----
From: Richard Purdie <richard.purdie@...>
Sent: Wednesday, February 9, 2022 2:47 PM
To: Bryan Evenson <bevenson@...>;
yocto@...
Subject: Re: [yocto] Problems building eSDK: Exception: variable
BBFILES references itself!

On Wed, 2022-02-09 at 19:36 +0000, Bryan Evenson wrote:
Richard,

-----Original Message-----
From: Richard Purdie <richard.purdie@...>
Sent: Wednesday, February 9, 2022 1:51 PM
To: Bryan Evenson <bevenson@...>;
yocto@...
Subject: Re: [yocto] Problems building eSDK: Exception: variable
BBFILES references itself!

On Wed, 2022-02-09 at 18:10 +0000, Bryan Evenson wrote:
Richard,

-----Original Message-----
From: Richard Purdie <richard.purdie@...>
Sent: Wednesday, February 9, 2022 12:25 PM
To: Bryan Evenson <bevenson@...>;
yocto@...
Subject: Re: [yocto] Problems building eSDK: Exception:
variable BBFILES references itself!

On Wed, 2022-02-09 at 16:51 +0000, Bryan Evenson wrote:
All,

I've used the SDK in the past and want to start using the
eSDK for my
project.
I'm on the dunfell branch. I'm trying to build the eSDK
for my image by
calling:

bitbake <my_image_name> -c populate_sdk_ext

The sdk generation fails with the error in the subject. I
haven't been able to find any documentation on what this
means or how to fix it. I've tried deleting my tmp
directory and running cleansstate on my image and I still
get the same error. I've also tried generating the eSDK
for core-image-minimal and I have the same error. I can
generate the SDK successfully, just not the eSDK. I have
copied more of the
build output below if it helps.
Note that I have replaced some text that I'm paranoid
about publishing on the internet; the modified text is
enclosed with <>.

Does anyone have any insight as to why the eSDK build is failing?
Could you share what bitbake -e shows BBFILES as being set to?
The variable history from that command for the variable may
also be
helpful.

There has to be something different to how you're setting it
compared to what we test on the autobuilder.

Cheers,

Richard
Here's what I was able to pull from bitbake -e. I've included
details for both BBFILES and BBFILES_DYNAMIC. Let me know if
anything else would be helpful.
Thanks, I'm not seeing anything too odd there. I guess next we
need to see the bblayers.conf that the code is building into the
eSDK and compare it to your original conf/bblayer.conf.

The generated file should be in the eSDK image directory
somewhere, I'm not able to look up the exact path right now. Let
me know if you can't
find it.
Lets see if the two bblayers.conf files look different and
introduce some issue.
I think I found what you were looking for under the image tmp
working
directory at sdk-ext/image/temp-renamed-sdk/conf/bblayers.conf.
Here's a comparison of my original bblayers.conf in my tmp directory
and the generated bblayers.conf for the eSDK. I confirmed that the
layers directory is present and contains all the layers as listed in the
generated bblayers.conf.

##########################################################
############
###
#
# Contents of my original bblayers.conf #
##########################################################
############
### # LAYER_CONF_VERSION is increased each time
build/conf/bblayers.conf # changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
<my_home_dir>/poky/<my_custom_layer1> \
<my_home_dir>/poky/<my_custom_layer2> \
<my_home_dir>/poky/meta-bacnet \
<my_home_dir>/poky/meta-atmel \
<my_home_dir>/poky/meta \
<my_home_dir>/poky/meta-poky \
<my_home_dir>/poky/meta-yocto-bsp \
<my_home_dir>/poky/meta-openembedded/meta-oe \
<my_home_dir>/poky/meta-openembedded/meta-networking \
<my_home_dir>/poky/meta-openembedded/meta-python \
<my_home_dir>/poky/poky-build/workspace \
"
BBLAYERS_NON_REMOVABLE ?= " \
<my_home_dir>/poky/meta \
<my_home_dir>/poky/meta-poky \
"

##########################################################
############
###
#
# Contents of my
<img_tmp_work_dir>/sdk-ext/image/tmp-renamed-
sdk/conf/bblayers.conf
#
##########################################################
############
### # WARNING: this configuration has been automatically generated
and in # most cases should not be edited. If you need more
flexibility than # this configuration provides, it is strongly
suggested that you set # up a proper instance of the full build
system and use that instead.

BBPATH = "${TOPDIR}"
SDKBASEMETAPATH = "${TOPDIR}"
BBLAYERS := " \
${SDKBASEMETAPATH}/layers/poky/<my_custom_layer1> \
${SDKBASEMETAPATH}/layers/poky/<my_custom_layer2> \
${SDKBASEMETAPATH}/layers/poky/meta-bacnet \
${SDKBASEMETAPATH}/layers/poky/meta-atmel \
${SDKBASEMETAPATH}/layers/poky/meta \
${SDKBASEMETAPATH}/layers/poky/meta-poky \
${SDKBASEMETAPATH}/layers/poky/meta-yocto-bsp \
${SDKBASEMETAPATH}/layers/poky/meta-openembedded/meta-oe
\
${SDKBASEMETAPATH}/layers/poky/meta-openembedded/meta-
networking \
${SDKBASEMETAPATH}/layers/poky/meta-openembedded/meta-
python \
${SDKBASEMETAPATH}/workspace \
"

Let me know if anything else would be helpful for diagnosing this issue.
I'm now wondering what happens if you remove

<my_home_dir>/poky/poky-build/workspace \

since I suspect your local workspace probably doesn't make sense in
the eSDK?
Could you try temporarily removing that and see if that helps?

The BBFILES entry in one of these layer.conf files is probably
causing some issue but I can't easily know which one. You could
remove some of the other layers to try and see if you identify where the
issue is from too?
This is odd. I removed the workspace from my local bblayers.conf. I
executed:
bitbake -c cleansstate image
bitbake image
bitbake image -c populate_sdk_ext

I got the same error message as before. Also, the bblayers.conf in
the tmp- sdk-ext directory still contains the workspace directory in the
BBLAYERS list.
I then switched and built core-image-minimal the same way, and I'm
getting the same error. I checked BBLAYERS in bitbake -e for
core-image-minimal, and the workspace directory is not listed. I
don’t know how populate_sdk_ext is pulling the workspace directory into
BBLAYERS. Any ideas?

I suspect the eSDK adds a workspace for the devtool and similar workflows
so that piece may be normal and perhaps it was conflicting with your existing
workspace? I have to admit I don't remember if it does that or not offhand
but it could.

If that were the case, it is sounding like the conflict may be with some other
layer instead.

Cheers,

Richard
I found it. In one of my layers, instead of:

BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"

I had:

BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"

I know I looked at that line a few times in the last day and never noticed the problem. This has been like this on my layer for a long time. Not sure how this has built without issue for the last eight years. Thanks for the assistance.

Thanks,
Bryan

Join yocto@lists.yoctoproject.org to automatically receive all group messages.