Gentoo Archives: gentoo-amd64

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-amd64@l.g.o
Subject: [gentoo-amd64] Re: Switching form non-multilib to mulitilib profile?
Date: Fri, 22 Dec 2006 21:49:46
Message-Id: emhjp9$4co$2@sea.gmane.org
In Reply to: Re: [gentoo-amd64] Switching form non-multilib to mulitilib profile? by Jakob
1 Jakob <jak.gentoo@××××××××××.com> posted
2 a23345650612221005y6c0cd6c9iebeebf15edfec863@××××××××××.com, excerpted
3 below, on Fri, 22 Dec 2006 19:05:26 +0100:
4
5 > On 12/22/06, Boyd Stephen Smith Jr. <bss03@××××××××××.net> wrote:
6 >> On Friday 22 December 2006 01:06, Mike Doty <kingtaco@g.o> wrote
7 >> about 'Re: [gentoo-amd64] Switching form non-multilib to mulitilib
8 >> profile?':
9 >> Well, Mike's probably a better source than me, but I thought the multilib
10 >> <-> no-multilib switch could be done with a simple emerge -e world.
11 >>
12 > I think I just try that and if it doesn't work no problem because I
13 > have to reinstall anyway.
14
15 The problem is that after you've emerged glibc and gcc using the
16 non-multilib profile, you no longer have a 32-bit capable compiler and
17 libc as no-multilib only compiles the 64-bit side. Without a 32-bit
18 compiler and glibc, you can't (easily) compile the 32-bit compiler and
19 glibc necessary for multilib.
20
21 Thus, one can go multilib -> no-multilb simply by switching profiles and
22 remerging at minimum the toolchain, but it's a one-way switch. Once you
23 are 64-bit only, you don't have the 32-bit stuff necessary to bootstrap
24 /further/ 32-bit stuff. You therefore can't (easily) go the other way,
25 no-multilib -> multilib.
26
27 There are of course a number of ways around the problem, but the easiest,
28 because it's documented, is to simply reinstall from stage-3 using the
29 multilb profile. Anything else, you'd better know what you are doing
30 (which it's safe to say you don't if you are asking the question), as you
31 are on your own, at least in terms of official Gentoo/amd64 documentation.
32
33 However, most packages will be 64-bit only anyway, thus the same in both
34 cases (unless one requires a different version for some reason or other),
35 and of course any 32-bit binary packages (like the emul* packages) aren't
36 difficult to merge once on multilib, if needed. Thus, the only ones you
37 really need to worry about are the toolchain, basically glibc, gcc,
38 binutils, and portage's sandbox (which has both 32-bit and 64-bit
39 libraries in multilib mode).
40
41 Thus, the quick method would be to quickpkg those packages (glibc, gcc,
42 binutils, sandbox) off of a stage-3, change the profile, and merge the
43 quickpkg-ed binpkgs over the 64-bit-only versions. After that, it
44 /should/ be possible to remerge just those packages, instead of having to
45 remerge the entire system, to get full multilib. (It's likely you have to
46 switch the profile and merge the four binpkgs in a specific order,
47 however, which I might not have correct, above, and it's possible there's
48 a multilib package or two I missed, but I don't think so.) If anything goes
49 wrong, as you said, you'd just have to do the reinstall that was the other
50 option anyway, so nothing lost.
51
52 --
53 Duncan - List replies preferred. No HTML msgs.
54 "Every nonfree program has a lord, a master --
55 and if you use the program, he is your master." Richard Stallman
56
57 --
58 gentoo-amd64@g.o mailing list