> On 2018-07-04, at 01:51, Zoltán Kócsi <zol...@bendor.com.au> wrote:
>
> My problem is that I've installed a multilib-enabled 64-bit system and
> realised that /usr/lib32 and /usr/lib64 are vastly of different. There
> are around 2200 dynamic and some 130 static libs in lib64 while there
> are around 300 dynamic and 15 static libs in lib32. That is, about 85%
> of libraries exist in 64-bit version only.
This is normal.
>
> Consequently, pretty much any 32-bit binary fails to launch due to
> missing libraries. Which is most unfortunate as I have quite a few
> of such binaries from EDA tools to productivity tools to games.
If your (presumably closed source) apps are old enough to not have 64-bit
builds available, then they may be too old for Portage to be useful for this.
You would be better off building the old version open source libs in 32-bit and
set up a prefix to run everything from with things like LD_LIBRARY_PATH set.
>
> I would much appreciate if someone would explain how to tell the system
> to build a 32-bit version of *every* library it installs (and have
> already installed) so that 32-bit binaries could run (and could also be
> built against those libs, actually).
There's no such feature (yet). You can set up a chroot for a 32-bit system and
run things from there.
https://wiki.gentoo.org/wiki/Project:AMD64/32-bit_Chroot_Guide
If most of your apps are 32-bit then you are almost better off running a native
32-bit system, especially for games.
You can also use the chroot for building, but then copy the libraries you need
(and only the ones you need) to a path outside of the chroot. Then you can set
LD_LIBRARY_PATH to that path and run the binary. This will work for most apps
including games. I prefer this way because then I don't have to remember to set
up the chroot, nor do I have to do anything as root once this is set up. This
is how I ran PCSX2 prior to it running natively on x86-64.
Otherwise, if graphics performance is not an issue, use a 32-bit Linux within a
VM.
Andrew