On Tue, 2021-01-26 at 09:00 -0800, Rudolf J Streif wrote:
> I have been scratching my head over building openjdk-8 with multilib for
> an aarch64 system. Essentially, I want to use 32-bit OpenJDK on the
> 64-bit system.
>
> Theoretically adding to local.conf
>
> require conf/multilib.conf
> MULTILIBS = "multilib:lib32"
> DEFAULTTUNE_virtclass-multilib-lib32 = "armv7a"
>
> and then building lib32-openjdk-8 should do the trick. However, it does not:
>
> $ bitbake lib32-openjdk-8
> <omitted>
> ERROR: Nothing PROVIDES 'lib32-openjdk-8'
> lib32-openjdk-8 was skipped: incompatible with host
> arm-fslcmllib32-linux-gnueabi (not in COMPATIBLE_HOST)
>
> The openjdk-8 recipe sets architecture dependency by selectively
> including an include file:
>
> INC_FILE_SUFFIX = ""
> INC_FILE_SUFFIX_aarch64 = "-aarch64"
> INC_FILE_SUFFIX_armv7a = "-aarch32"
> INC_FILE_SUFFIX_armv7ve = "-aarch32"
> require openjdk-8-release${INC_FILE_SUFFIX}.inc
> require openjdk-8-cross.inc
I suspect that at this point in the parse, the mulitlib code hasn't
swizzled the bits around so it still looks like the main lib rather
than the mutlilib.
Including a variable in a require like that is an immediate expansion
operation so it can't be "undone" when things get properly setup later.
Offhand I'm not sure what you'd do to avoid this. The multilibs are all
a bit ugly in some ways. It suggests they need to be setting up the
overrides earlier. The assumption in the code is that people don't use
immediate expansion for this reason.
Cheers,
Richard
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#52102): https://lists.yoctoproject.org/g/yocto/message/52102
Mute This Topic: https://lists.yoctoproject.org/mt/80135247/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-