1 |
On Tue, 2005-11-29 at 07:32 -0700, Duncan wrote: |
2 |
|
3 |
> BTW, one of the reasons x86 and ~x86 are discouraged on an amd64 system (~ |
4 |
> or stable) is because in some cases, keyword tests are used to determine |
5 |
> whether a particular portion is built 32-bit or 64-bit. In particular, |
6 |
> (~)x86 keywording on some packages will cause them to try to build |
7 |
> portions of the package in 32-bit assembly. Naturally, when the rest of |
8 |
> the package is 64-bit, this will cause serious problems, where it wouldn't |
9 |
> if the package was moved to overlay and (~)amd64 was added, because |
10 |
> that wouldn't trigger the 32-bit specific assembly coding, based |
11 |
> specifically on the (~)x86 keyword. |
12 |
|
13 |
Duncan, can you give me an example of this behavior? I forgot which but |
14 |
a dev said the other day on IRC something like "as far as I know there |
15 |
is no way to determine the KEYWORD that is allowing the package to be |
16 |
built from within the ebuild" I would like to see an example please. |
17 |
|
18 |
|
19 |
> Most packages don't test on arch keywording specifically, or if they do |
20 |
> it's nothing related to amd64/x86 but rather endianness (as ppc) or other |
21 |
> arch-specific keywording related. Thus, (~)x86 won't get you into trouble |
22 |
> with /most/ packages. However, because the ones where it /will/ get you |
23 |
> in trouble tend to be core packages such as gcc, glibc, xorg, etc, and a |
24 |
> problem in /these/ packages could seriously break your system such that |
25 |
> it's difficult to recover without a fresh install, the recommendation is |
26 |
> not to use (~)x86 keywording at all. |
27 |
|
28 |
I don't think they test for keywording so much as CTARGET and aim for |
29 |
that. How else would the cross compiler work? If it is not defined or |
30 |
overloaded then the CHOST value from make.conf will be used won't it? |
31 |
|
32 |
> For specific packages, therefore, you have two possible solutions. The |
33 |
> recommended solution is to copy the ebuild to your overlay, add the |
34 |
> (~)amd64 keyword as appropriate, redigest, and try to merge the |
35 |
> rekeyworded copy. However, if you are careful, and exercise some reason |
36 |
> as to just what you are keywording (~)x86 (don't do it with anything you |
37 |
> consider core, and preferrably take a look at the ebuild to see if it |
38 |
> does anything specific based on the x86 keyword), /then/ you can |
39 |
> reasonably safely add it to package.keywords as (~)x86. However, this |
40 |
> latter method is /never/ recommended, and if something breaks anyway, |
41 |
> despite your cautions (or lack thereof), as they say, "You get to keep the |
42 |
> pieces!" |
43 |
|
44 |
So the issue is do ebuilds use CHOST or KEYWORD to key the build for. I |
45 |
don't know enough about portage to say for sure but I thought they all |
46 |
used CHOST. If there is one that uses the KEYWORD then link me bud. :p |
47 |
|
48 |
Good to see you're still as active as ever on the ML. I've been |
49 |
spending too much of my time babysitting in #gentoo on IRC. :) |
50 |
> -- |
51 |
> Duncan - List replies preferred. No HTML msgs. |
52 |
> "Every nonfree program has a lord, a master -- |
53 |
> and if you use the program, he is your master." Richard Stallman in |
54 |
> http://www.linuxdevcenter.com/pub/a/linux/2004/12/22/rms_interview.html |
55 |
> |
56 |
> |
57 |
-- |
58 |
Tres Melton |
59 |
IRC & Gentoo: RiverRat |