Hi all, I’m currently facing an issue when trying to build an SDK for an aarch64 host also with an aarch64 target board on Kirkstone. I’ve appended both nativesdk-protobuf and nativesdk-protobuf-compiler to nativesdk-packagegroup-sdk-host. When building the SDK for an x86 host, everything works as expected, but for the aarch64 host, the following error occurs:
> > > > ERROR: nativesdk-packagegroup-sdk-host-1.0-r12 do_package_write_rpm: An > allarch packagegroup shouldn’t depend on packages which are dynamically > renamed (nativesdk-protobuf to nativesdk-libprotobuf30) > ERROR: nativesdk-packagegroup-sdk-host-1.0-r12 do_package_write_rpm: An > allarch packagegroup shouldn’t depend on packages which are dynamically > renamed (nativesdk-protobuf-compiler to nativesdk-libprotobuf-compiler) > > When searching for this issue, I found the patch that defines this error: https://lists.openembedded.org/g/openembedded-core/message/158230 As stated in the error message, it is caused by the dynamic renaming of the package when it is part of an allarch packagegroup. I’m not familiar with the dynamic renaming process itself, but I found it weird that the packagegroup would be allarch instead of aarch64. The patch description states: > > > > If you run into this issue you either need to remove the dependency from > the > packagegroup or mark the packagegroup as tune specific, i.e. set: > > > > PACKAGE_ARCH = “${TUNE_PKGARCH}” > > > > before the packagegroup inherit. > > Indeed, packagegroup.bbclass makes a weak assignment of PACKAGE_ARCH? = “all”. This value is immediately assigned to PACKAGE_ARCH_EXPANDED (before any overrides), which in turn causes allarch.bbclass to be inherited. This is also confirmed when analyzing the build environment: > > > > # $PACKAGE_ARCH [4 operations] > # set /home/sog/build/sdk/sources/poky/meta/conf/bitbake.conf:182 > # [_defaultval] “${TUNE_PKGARCH}” > # set /home/sog/build/sdk/sources/poky/meta/conf/documentation.conf:309 > # [doc] “The architecture of the resulting package or packages.” > # set? > /home/sog/build/sdk/sources/poky/meta/classes/packagegroup.bbclass:12 > # “all” > # set /home/sog/build/sdk/sources/poky/meta/classes/nativesdk.bbclass:24 > > # “${SDK_ARCH}-${SDKPKGSUFFIX}” > # pre-expansion value: > # “${SDK_ARCH}-${SDKPKGSUFFIX}” > PACKAGE_ARCH=“aarch64-nativesdk” > > > > # $PACKAGE_ARCH_EXPANDED > # immediate > /home/sog/build/sdk/sources/poky/meta/classes/packagegroup.bbclass:15 > # “${PACKAGE_ARCH}” > PACKAGE_ARCH_EXPANDED=“all” > > The problem does not occur at all if I change nativesdk-packagegroup-sdk-host.bb to first inherit “nativesdk”, and lastly “packagegroup”. In this case, PACKAGE_ARCH_EXPANDED is also set to “aarch64-nativesdk”, which prevents allarch.bbclass from being inherited. Also, I can avoid the issue completely by defining a separate packagegroup and adding protobuf there, but I wanted to clarify: should nativesdk-packagegroup-sdk-host really be defined as allarch? Or should it assume the architecture defined in nativesdk.bbclass? Kind regards, Paulo Sogari
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#59729): https://lists.yoctoproject.org/g/yocto/message/59729 Mute This Topic: https://lists.yoctoproject.org/mt/98365178/21656 Group Owner: yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-