Gentoo Archives: gentoo-dev

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: RFC: multilib and the compatibility to singlelib
Date: Tue, 20 Oct 2009 16:26:08
Message-Id: pan.2009.10.20.16.25.14@cox.net
In Reply to: Re: [gentoo-dev] RFC: multilib and the compatibility to singlelib by Thomas Sachau
1 Thomas Sachau posted on Tue, 20 Oct 2009 17:29:25 +0200 as excerpted:
2
3 > Michael Haubenwallner schrieb:
4 >> Isn't the intention of multilib to have a new (64bit) system be
5 >> compatible with the corresponding old (32bit) system?
6 >>
7 >> Please comment, thank you!
8 >> /haubi/
9 >
10 > If you have a 64bit system, the default should be 64bit, both for libs
11 > and for binaries. The additional multilib support allows to install and
12 > use additional 32bit libs and binaries. Since they are not the system
13 > dafault, they shouldnt be in some default place like lib, but instead a
14 > different, but clearly labeled dir like lib32. So the Gentoo way looks
15 > like the right way to me.
16
17 Except... it isn't, at least not if Gentoo is at all concerned about
18 standards, especially when they'll make things far easier for it.
19
20 What you just described was the logic applied with, for example, ia64,
21 which is true 64-bit (only) native. However (as I understand it), the
22 Linux FHS and LSB used somewhat different logic for x86_64.
23
24 See, x86_64 is hardware native dual-bitness, so both 32-bit and 64-bit
25 can be said to be true native hardware bitness (this is NOT the case with
26 ia64). Apparently due to that and to the vast number of legacy 32-bit
27 apps around, many binary-only apps doing obscure and unpredictable things
28 that could well break if assumptions about lib proved invalid, they
29 decided to keep the 32-bit lib location just as it was, believing it
30 easier to create the new lib64 for 64-bit, then to worry about whatever
31 obscure and exotic stuff various binary-only apps might be doing. Since
32 this was just one more change to add to the list of changes already being
33 made to port apps to amd64, it was considered easier than the other way,
34 and thus became the standard.
35
36 The problem was that Gentoo's early amd64 implementation predated this
37 standardization, and we had chosen the other way. While we've defaulted
38 to lib64 for 64-bit libs for years, it has never been considered anything
39 but experimental to break the lib --> lib64 link. AFAIK stable
40 baselayout still doesn't get its libdir usage consistent, putting files
41 in one but actually calling them using the other path, and boot breaks in
42 various frustrating ways if lib and lib64 are not the same directory.
43 Openrc gets it better now, but I'm not sure it's all fixed either -- it
44 certainly wasn't last time I tried breaking the link.
45
46 So before Gentoo can switch to the FHS/LSB 32-bit lib on amd64 multilib,
47 it must first fix those last inconsistent usages, and make it possible to
48 break the lib --> lib64 link. Then in theory at least, after awhile with
49 no bugs, or at least no big ones related to this issue, it might be
50 considered safe to move 32-bit back to lib, where the LSB/FHS says it
51 should be.
52
53 > And better support for this part is my current multilib-portage project,
54 > which allows compilation and installation of additional 32bit libs and
55 > binaries.
56
57 While I'm a no-multilib user here, I'm glad someone's finally getting
58 that close enough to mainline merge to talk about it! There's a lot of
59 folks for whom it will make life far easier. =:^)
60
61 --
62 Duncan - List replies preferred. No HTML msgs.
63 "Every nonfree program has a lord, a master --
64 and if you use the program, he is your master." Richard Stallman

Replies