Re: [yocto] Issues with DEPENDS
Jared Weyer <[email protected]>
| Newsgroups | org.yoctoproject.lists.yocto |
|---|---|
| Message-ID | <[email protected]> |
Hi all,
Thanks for the input! I figured out that the issue was indeed related to the install directory. I have the following in recipe B:
do_install() {
install -d ${D}${MCU_PLUS_SDK_AM263PX_INSTALL_DIR}
cp -r ${B}/. ${D}${MCU_PLUS_SDK_AM263PX_INSTALL_DIR}
}
where MCU_PLUS_SDK_AM263PX_INSTALL_DIR came from two different include files:
# meta-ti/meta-ti-extras/recipes-ti/includes/ti-paths.inc
installdir = "${datadir}/ti"
# meta-aec/recipes-ti/includes/aec-ti-paths.inc
CU_PLUS_SDK_AM263PX_VERSION := "11.00.00.19"
MCU_PLUS_SDK_AM263PX_INSTALL_NAME := "mcu_plus_sdk_am263px_${MCU_PLUS_SDK_AM263PX_VERSION}"
MCU_PLUS_SDK_AM263PX_INSTALL_DIR = "${installdir}/${MCU_PLUS_SDK_AM263PX_INSTALL_NAME}"
The above works as expected; However, the bug was that I had the following:
MCU_PLUS_SDK_AM263PX_INSTALL_DIR := "${installdir}/${MCU_PLUS_SDK_AM263PX_INSTALL_NAME}"
I was using immediate expansion which causing issues only when the recipe was built as a dependency to another recipe. I believe this was because of the context shift causing ${datadir} to expand differently when the recipe was built independently, though I am still not entirely sure why it caused sysroot-components to be empty, I would have expected it to populate but with an incorrect path.
Anyways, thank you both for your input!
Thanks again,
- Jared
________________________________________
From: Gyorgy Sarvari <[email protected]>
Sent: Thursday, October 23, 2025 4:27 AM
To: [email protected]; Jared Weyer
Subject: Re: [yocto] Issues with DEPENDS
On 10/21/25 03:02, Jared Weyer via lists.yoctoproject.org wrote:
>
> install -m 0755 ${S}/test.txt ${D}/usr/share/ti
> install -m 0755 ${S}/test2.txt ${D}/usr
I remember this, this is how I learned to use bitbake variables for all
paths, I spent at least 2 days debugging it some years ago.
When you do build for native, ${D} is pretty much the same as for
tagret, but ${datadir and ${prefix} are very different.
For target it looks like this:
prefix = /usr
datadir = /usr/share
For native, it looks like this:
prefix =
/home/mee/stuff/ptest-images/build/tmp/work/x86_64-linux/openssl-native/3.5.4/recipe-sysroot-native/usr
datadir =
/home/mee/stuff/ptest-images/build/tmp/work/x86_64-linux/openssl-native/3.5.4/recipe-sysroot-native/usr/share
Try in your recipe you should always use ${D}${datadir}, ${D}{prefix}
etc variables when installing files to avoid such issues.