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 |