Gentoo Archives: gentoo-dev

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: multilib setup
Date: Sun, 11 Sep 2011 23:11:48
Message-Id: pan.2011.09.11.23.10.26@cox.net
In Reply to: [gentoo-dev] multilib setup by Mike Frysinger
1 Mike Frysinger posted on Sun, 11 Sep 2011 15:55:49 -0400 as excerpted:
2
3 > all current multilib systems use the sub-profile
4 > features/multilib/lib32/.
5 > in there, we set SYMLINK_LIB=yes. this causes the 32bit libs to move
6 > from their normal ABI location in "lib" to "lib32" and then symlink
7 > "lib" to "lib64". this is the only currently supported setup, but can be
8 > considered legacy.
9
10 As a long-time Gentoo/amd64 user...
11
12 It's worth noting that Gentoo was quite out in front on the amd64 thing,
13 and this present "legacy" setup was developed pretty much at the same
14 time as the FHS spec that deals with the issue. At the time, lib could
15 have gone either way, legacy 32-bit lib with lib64, or new 64-bit lib
16 with lib32.
17
18 The early amd64/Gentoo implementors apparently decided to follow ia64 and
19 make lib64 the 64-bit location, but for transition reasons, made lib a
20 symlink to it, with lib32 the 32-bit version.
21
22 Then the standard went the other way (apparently they decided the 64-bit
23 target needed ported anyway so making it lib64 wasn't a big deal, and
24 many 32-bit libraries and packages, with binary-only packages a major
25 consideraction, would then simply continue to work without any changes at
26 all).
27
28 For a couple years, Gentoo/amd64 actively planned to switch, with one of
29 the first steps being implementation of portage's
30 FEATURES=multilib-strict, to catch the "bad" packages so bugs could be
31 filed and they could be fixed. I personally ran this feature for some
32 years and reported several bugs based on it.
33
34 But somehow, it never happened, and over time, as 64-bit became common
35 and pretty much everything (at least everything freedomware) was ported
36 and the existing setup worked better and better, the pressure to leave
37 what was now working reasonably well, well enough alone, grew.
38
39 Thus we arrive at the current situation. I had actually thought that
40 Gentoo/amd64 at least had given up on finally turning off that symlink
41 and making lib 32-bit, and decided to leave things as they were and let
42 time continue to deprecate 32-bit until it's no longer an issue, but
43 Vapier's post indicates otherwise. Still, it has been "in the future"
44 since I switched to Gentoo/amd64 in 2004, and as I said, with the
45 pressure for 32-bit gradually going away and the current situation
46 established now for quite some time and working reasonably well,
47 honestly, is it even worth the upset and bugs it'll cause, any more?
48
49 Meanwhile, I personally switched to no-multilib a few years ago now, and
50 turned off FEATURES=multilib-strict after filing one last bug on it soon
51 thereafter, so I don't know the current state there, but last I used it,
52 the feature wasn't often killing merges, indicating that problem pretty
53 much sinks into the ordinary bug count background.
54
55 Unfortunately, I and others have occasionally tried breaking the symlink
56 and having separate lib and lib64 dirs, and even with FEATURES=multilib-
57 strict guaranteeing I had no breakers of that nature on the system, it
58 still proved to be a rather difficult config to try to run, because
59 there's apparently a lot of packages installing scripts, etc, to one
60 path, but then trying to call them by the other path. Actually, last I
61 tried it, openrc was one of the problem packages so I couldn't even
62 complete a normal boot!
63
64 Unfortunately, automated tinderbox testing for that isn't as easy as it
65 might at first appear, since some packages will legitimately install both
66 arch-neutral content to lib, and multilib content to lib64. But not all
67 those will be false-positives either, if they still install something to
68 one but look for it in the other. (AFAIK this was the problem with some
69 of the openrc shell scripts, arguably arch-neutral and called from lib,
70 but all installed (at least now) to (subdirs of) lib64. But, last time I
71 tried it was before the openrc stabilization push, IIRC, so it's quite
72 possible things have changes since then.)
73
74 > in the future, multilib profiles we'll be moving to SYMLINK_LIB=no and
75 > using just features/multilib/. so there will be no "lib32" dir at all,
76 > "lib" will be for 32bit libs (just like the matching 32bit arch), and
77 > "lib64" will be for 64bit libs.
78 >
79 > as for no-multilib systems, "lib64" will be the same, and "lib" will be
80 > symlinked to "lib64". this will be easier i think to share files
81 > between multilib and non-multilib 64bit systems.
82
83 Thanks for that update, Mike. That is likely to be the least problematic
84 for no-multilib users, so I at least don't have to worry about it so
85 much. =:^)
86
87 --
88 Duncan - List replies preferred. No HTML msgs.
89 "Every nonfree program has a lord, a master --
90 and if you use the program, he is your master." Richard Stallman

Replies

Subject Author
Re: [gentoo-dev] Re: multilib setup Mike Frysinger <vapier@g.o>