| Message ID | 20251006191055.729066-1-adrian.freihofer@siemens.com |
|---|---|
| State | Accepted, archived |
| Commit | f31903ca484bad68708ec510e25ea33234f5c0ce |
| Headers | show |
| Series | toolchain-scripts.bbclass: fix bitbake-setup compatibility | expand |
On Mon Oct 6, 2025 at 9:10 PM CEST, Adrian Freihofer via lists.openembedded.org wrote: > From: Adrian Freihofer <adrian.freihofer@siemens.com> > > Pass the BITBAKEDIR parameter to oe-init-build-env when called from the > environment-setup script. This fixes compatibility with bitbake-setup, > which places bitbake in a different directory structure than the > standard poky repository layout where bitbake is located alongside > oe-init-build-env. > > The issue was discovered when running the oe-selftest test > DevtoolIdeSdkTests.test_devtool_ide_sdk_shared_sysroots, which failed > because the environment-setup script was not able to find bitbake. > > File ".../openembedded-core/meta/lib/oeqa/selftest/cases/devtool.py", > line 2955, in test_devtool_ide_sdk_shared_sysroots > self.assertExists(cmake_native) > ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ > File ".../openembedded-core/meta/lib/oeqa/selftest/case.py", line 251, > in assertExists > raise self.failureException(msg) > AssertionError: 'Error: The bitbake directory (/tmp/devtoolqah9ndff2x/bitbake) > does not exist! Please ensure a copy of bitbake exists at this location or > specify an alternative path on the command line\n > .../build-st/tmp/sysroots/x86_64/usr/bin/cmake' does not exist > > Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> > --- Hi Adrian, Thanks for the new version. It looks like it is braking some tc tests: 2025-10-07 06:03:00,760 - oe-selftest - INFO - 9: 2/4 4/18 (0.31s) (0 failed) (meta_ide.MetaIDE.test_meta_ide_can_compile_c_program) 2025-10-07 06:03:00,760 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last): File "/srv/pokybuild/yocto-worker/qemuarm64-tc/build/meta/lib/oeqa/selftest/cases/meta_ide.py", line 40, in test_meta_ide_can_compile_c_program runCmd("cd %s; . %s; $CC test.c -lm" % (self.tmpdir_metaideQA, self.environment_script_path)) ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/srv/pokybuild/yocto-worker/qemuarm64-tc/build/meta/lib/oeqa/utils/commands.py", line 214, in runCmd raise AssertionError("Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, exc_output)) AssertionError: Command 'cd /tmp/metaid ... cc1: fatal error: test.c: No such file or directory Can you have look at this failure please? Thanks, Mathieu
On Tue Oct 7, 2025 at 2:38 PM CEST, Mathieu Dubois-Briand wrote: > On Mon Oct 6, 2025 at 9:10 PM CEST, Adrian Freihofer via lists.openembedded.org wrote: >> From: Adrian Freihofer <adrian.freihofer@siemens.com> >> >> Pass the BITBAKEDIR parameter to oe-init-build-env when called from the >> environment-setup script. This fixes compatibility with bitbake-setup, >> which places bitbake in a different directory structure than the >> standard poky repository layout where bitbake is located alongside >> oe-init-build-env. >> >> The issue was discovered when running the oe-selftest test >> DevtoolIdeSdkTests.test_devtool_ide_sdk_shared_sysroots, which failed >> because the environment-setup script was not able to find bitbake. >> >> File ".../openembedded-core/meta/lib/oeqa/selftest/cases/devtool.py", >> line 2955, in test_devtool_ide_sdk_shared_sysroots >> self.assertExists(cmake_native) >> ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ >> File ".../openembedded-core/meta/lib/oeqa/selftest/case.py", line 251, >> in assertExists >> raise self.failureException(msg) >> AssertionError: 'Error: The bitbake directory (/tmp/devtoolqah9ndff2x/bitbake) >> does not exist! Please ensure a copy of bitbake exists at this location or >> specify an alternative path on the command line\n >> .../build-st/tmp/sysroots/x86_64/usr/bin/cmake' does not exist >> >> Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com> >> --- > > Hi Adrian, > > Thanks for the new version. > > It looks like it is braking some tc tests: > > 2025-10-07 06:03:00,760 - oe-selftest - INFO - 9: 2/4 4/18 (0.31s) (0 failed) (meta_ide.MetaIDE.test_meta_ide_can_compile_c_program) > 2025-10-07 06:03:00,760 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last): > File "/srv/pokybuild/yocto-worker/qemuarm64-tc/build/meta/lib/oeqa/selftest/cases/meta_ide.py", line 40, in test_meta_ide_can_compile_c_program > runCmd("cd %s; . %s; $CC test.c -lm" % (self.tmpdir_metaideQA, self.environment_script_path)) > ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File "/srv/pokybuild/yocto-worker/qemuarm64-tc/build/meta/lib/oeqa/utils/commands.py", line 214, in runCmd > raise AssertionError("Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, exc_output)) > AssertionError: Command 'cd /tmp/metaid > ... > cc1: fatal error: test.c: No such file or directory > > Can you have look at this failure please? > > Thanks, > Mathieu Sorry, I forgot the AB links: https://autobuilder.yoctoproject.org/valkyrie/#/builders/5/builds/2449 https://autobuilder.yoctoproject.org/valkyrie/#/builders/28/builds/2443
diff --git a/meta/classes-recipe/toolchain-scripts.bbclass b/meta/classes-recipe/toolchain-scripts.bbclass index 5d28df845b..ec040b5ebb 100644 --- a/meta/classes-recipe/toolchain-scripts.bbclass +++ b/meta/classes-recipe/toolchain-scripts.bbclass @@ -87,11 +87,12 @@ toolchain_create_sdk_env_script () { # Caller must ensure CONFIG_SITE is setup toolchain_create_tree_env_script () { script=${B}/environment-setup-${REAL_MULTIMACH_TARGET_SYS} + bitbakedir=$(readlink -f ${BITBAKEPATH}/..) rm -f $script touch $script echo 'standalone_sysroot_target="${STAGING_DIR}/${MACHINE}"' >> $script echo 'standalone_sysroot_native="${STAGING_DIR}/${BUILD_ARCH}"' >> $script - echo 'orig=`pwd`; cd ${COREBASE}; . ./oe-init-build-env ${TOPDIR}; cd $orig' >> $script + echo "orig=`pwd`; cd ${COREBASE}; . ./oe-init-build-env ${TOPDIR} $bitbakedir; cd \$orig" >> $script echo 'export PATH=$standalone_sysroot_native/${bindir_native}:$standalone_sysroot_native/${bindir_native}/${TARGET_SYS}:$PATH' >> $script echo 'export PKG_CONFIG_SYSROOT_DIR=$standalone_sysroot_target' >> $script echo 'export PKG_CONFIG_PATH=$standalone_sysroot_target'"$libdir"'/pkgconfig:$standalone_sysroot_target'"$prefix"'/share/pkgconfig' >> $script