View previous topic :: View next topic |
Author |
Message |
fernan82 n00b
Joined: 24 Jul 2014 Posts: 70
|
Posted: Fri Jul 25, 2014 3:31 am Post subject: Howto: Make a trully multilib system |
|
|
I removed the instructions because it will cause problems installing wine.
My goal now is to use the emul-linux libraries as much as possible but still be able to install any packages from portage that are not in the emul-linux packages in a way that once ABI_X86=32 is more stable I can switch without problems.
Last edited by fernan82 on Fri Jul 25, 2014 9:13 pm; edited 1 time in total |
|
Back to top |
|
|
The Doctor Moderator
Joined: 27 Jul 2010 Posts: 2678
|
Posted: Fri Jul 25, 2014 3:49 am Post subject: |
|
|
I take it you didn't try and install using the multilib stage 3 and set a multilib profile.
No chroot is necessary. That is only if you are running a no multilib profile or have specific need of a 32 bit specific environment. _________________ First things first, but not necessarily in that order.
Apologies if I take a while to respond. I'm currently working on the dematerialization circuit for my blue box. |
|
Back to top |
|
|
mmogilvi n00b
Joined: 13 May 2011 Posts: 62
|
Posted: Fri Jul 25, 2014 7:17 am Post subject: |
|
|
@fernan82: The Doctor's strategy is definitely the simplest way to install and run 32-bit-only programs on a mostly-64-bit install, although it has some limitations, such as:
- For the most part, portage won't install 32-bit versions of programs that have fully-functional 64-bit versions available. And most programs have 64-bit versions...
- In a stable system (ACCEPT_KEYWORDS="amd64"), most 32-bit runtime libraries are installed from pre-built binary packages called emul-linux-x86-*, instead of building from source like native gentoo.
There is currently a major "multilib" effort underway to replace emul-linux-x86-* packages with "native" library ebuilds by enabling the appropriate USE flag. It isn't yet officially supported, but the basic idea is to unmask and widely enable the USE=abi_x86_32 (or equivalently, ABI_X86=32) flag. But there are a lot of complex dependency hell issues to wade through when switching, involving things still asking for emul-linux, emul-linux turning into more of a "meta" package when abi_x86_32 is enabled, some required packages still only have the abi_x86_32 flag in unstable (~amd64) versions, a few rare libraries still haven't been converted at all, etc. But see https://forums.gentoo.org/viewtopic-p-7509542.html?sid=c5b44664c998872c1c014477e22c3048#7509542 for more information about how to try it out on a mostly-stable system.
Although this new scheme is a whole lot better (more configurable, and automatically keeping libraries in sync with headers) than the emul-linux packages, there are still some limitations:
- It doesn't automatically figure out and limit which libraries need to enable abi_x86_32 to meet your main (world) requirements. You either need to enable it very rather widely (globally with exceptions, or use package wildcards), or manually construct a rather large list of specific packages. And the error messages from portage can be confusing to interpret if you are missing a few...
- Won't let you have different USE flags in 32-bit vs 64-bit builds of libraries (except some ebuilds may sometimes ignore unsupported USE flags for some ABIs).
- Typically doesn't provide both 32-bit and 64-bit builds of an executable, nor make it easy to prefer the 32-bit version when the 64-bit is possible.
|
|
Back to top |
|
|
fernan82 n00b
Joined: 24 Jul 2014 Posts: 70
|
Posted: Fri Jul 25, 2014 5:11 pm Post subject: |
|
|
I did used multilib tarball with the emul-linux packages at first but there's more than a few missing libraries and you can't just compile any library package from portage so I wouldn't call it trully multilib. I'm not trying to install 32-bit programs from portage, I need to run programs 32 bit programs for which I don't have the source code and to build 32-bit libraries from sources that are not in portage and have dependencies on libraries that are not on the emul-linux packages. That's where I spent most time trying to build the missing libraries from tarballs.
I dabbled with ABI_X86=32 but ran into problems and couldn't find much info about it so I moved on quickly. Once I tried chrooting I got everything working pretty quickly. I will look into it though for now this does just what I need without much hassle. Thanks |
|
Back to top |
|
|
Anon-E-moose Watchman
Joined: 23 May 2008 Posts: 6098 Location: Dallas area
|
Posted: Fri Jul 25, 2014 6:16 pm Post subject: |
|
|
Getting all emul-linux-* to compile (native 32 bit libs) from all packages is still a work in progress, AFAIK. _________________ PRIME x570-pro, 3700x, 6.1 zen kernel
gcc 13, profile 17.0 (custom bare multilib), openrc, wayland |
|
Back to top |
|
|
fernan82 n00b
Joined: 24 Jul 2014 Posts: 70
|
Posted: Fri Jul 25, 2014 9:17 pm Post subject: |
|
|
Yea, I ran into a problem, it breaks the wine ebuild. I'm using the emul-linux packages now but with this method on the side so I can install ebuilds to fill in the gaps on the emul-linux packages. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|