Bug 7610 - [Multilib] Can't install 64bit packages to 32bit rootfs
Summary: [Multilib] Can't install 64bit packages to 32bit rootfs
Status: RESOLVED NOTABUG
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: configuration (show other bugs)
Version: 1.8
Hardware: x86 Multiple
: Medium enhancement
Target Milestone: Future
Assignee: Unassigned
QA Contact: Apoorv
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2015-04-15 08:47 UTC by Wenzong.Fan
Modified: 2025-01-09 16:26 UTC (History)
9 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Don't know


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wenzong.Fan 2015-04-15 08:47:20 UTC
To quote from the Yocto Development manual 1.7.1 (http://www.yoctoproject.org/docs/1.7.1/dev-manual/dev-manual.pdf) 'Section 5.5.2 Combining Multiple Versions of Library Files into One Image'

"An example would be where you have most of a system compiled in 32-bit mode using 32-bit libraries, but you have something large, like a database engine, that needs to be a 64-bit application and uses 64-bit libraries. Multilib allows you to get the best of both 32-bit and 64-bit libraries"

I can't add 64bit packages to 32bit system via:

1) config a project and add below multilib configs to local.conf:

MACHINE = "qemux86-64"
require conf/multilib.conf
MULTILIBS ?= "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 ?= "x86"

2) run "bitbake lib32-core-image-minimal"

3) add IMAGE_INSTALL_append = "valgrind" to local.conf and rerun "bitbake lib32-core-image-minimal"

32bit valgrind will be installed but not 64bit.

Any packages that appended to IMAGE_INSTALL will be extended as lib32-$pkgname in this case, so we can't install any 64bit packages to 32bit system.
Comment 1 Mark Hatle 2015-04-16 15:08:44 UTC
This worked in the YP 1.5.  So something changed afterwards that prevented it from working.  (Likely the multilib remapping fixed a bug that is now causing this issue.
Comment 2 Robert Yang 2015-04-23 10:22:07 UTC
Use lib64-bash:

require conf/multilib.conf
MULTILIBS ?= "multilib:lib32 multilib:lib64"
DEFAULTTUNE_virtclass-multilib-lib32 ?= "x86"
DEFAULTTUNE_virtclass-multilib-lib64 ?= "x86-64"

IMAGE_INSTALL_append = " lib64-bash"

Then it works.
Comment 3 Bogdan Alexandru Voiculescu 2015-08-28 12:19:02 UTC
not a bug
Comment 4 Robert Yang 2015-09-16 02:05:32 UTC
I've sent patches to oe-core, now we can use:

IMAGE_INSTALL_append += " bash"
Comment 6 Robert Yang 2015-10-10 02:34:51 UTC
(In reply to comment #4)
> I've sent patches to oe-core, now we can use:
> 
> IMAGE_INSTALL_append += " bash"

Sorry, it still doesn't work, we can't install 64bit packages to 32bit rootfs, this doesn't sounds good, we need another way to make it work, I will convert it into an enhancement of YP 2.1.
Comment 7 Robert Yang 2016-08-01 08:15:39 UTC
The smart maybe replaced by dnf.
Comment 8 Kai Kang 2018-12-21 09:16:04 UTC
Could reproduce with Yocto 2.6.
Comment 9 Randy MacLeod 2020-12-17 15:52:10 UTC
Kai, ping.
Comment 10 Randy MacLeod 2025-01-09 16:25:11 UTC
Kai, please test. Surely this works on master...
Comment 11 Randy MacLeod 2025-01-09 16:26:39 UTC
We're pretty sure that this work now.