On Tue, 2005-11-29 at 07:32 -0700, Duncan wrote:

> BTW, one of the reasons x86 and ~x86 are discouraged on an amd64 system (~
> or stable) is because in some cases, keyword tests are used to determine
> whether a particular portion is built 32-bit or 64-bit.  In particular,
> (~)x86 keywording on some packages will cause them to try to build
> portions of the package in 32-bit assembly.  Naturally, when the rest of
> the package is 64-bit, this will cause serious problems, where it wouldn't
> if the package was moved to overlay and (~)amd64 was added, because
> that wouldn't trigger the 32-bit specific assembly coding, based
> specifically on the (~)x86 keyword.

Duncan, can you give me an example of this behavior?  I forgot which but
a dev said the other day on IRC something like "as far as I know there
is no way to determine the KEYWORD that is allowing the package to be
built from within the ebuild"  I would like to see an example please.


> Most packages don't test on arch keywording specifically, or if they do
> it's nothing related to amd64/x86 but rather endianness (as ppc) or other
> arch-specific keywording related.  Thus, (~)x86 won't get you into trouble
> with /most/ packages.  However, because the ones where it /will/ get you
> in trouble tend to be core packages such as gcc, glibc, xorg, etc, and a
> problem in /these/ packages could seriously break your system such that
> it's difficult to recover without a fresh install, the recommendation is
> not to use (~)x86 keywording at all.

I don't think they test for keywording so much as CTARGET and aim for
that.  How else would the cross compiler work?  If it is not defined or
overloaded then the CHOST value from make.conf will be used won't it?

> For specific packages, therefore, you have two possible solutions.  The
> recommended solution is to copy the ebuild to your overlay, add the
> (~)amd64 keyword as appropriate, redigest, and try to merge the
> rekeyworded copy.  However, if you are careful, and exercise some reason
> as to just what you are keywording (~)x86 (don't do it with anything you
> consider core, and preferrably take a look at the ebuild to see if it
> does anything specific based on the x86 keyword), /then/ you can
> reasonably safely add it to package.keywords as (~)x86.  However, this
> latter method is /never/ recommended, and if something breaks anyway,
> despite your cautions (or lack thereof), as they say, "You get to keep the
> pieces!"

So the issue is do ebuilds use CHOST or KEYWORD to key the build for.  I
don't know enough about portage to say for sure but I thought they all
used CHOST.  If there is one that uses the KEYWORD then link me bud.  :p

Good to see you're still as active as ever on the ML.  I've been
spending too much of my time babysitting in #gentoo on IRC.  :)
> -- 
> Duncan - List replies preferred.   No HTML msgs.
> "Every nonfree program has a lord, a master --
> and if you use the program, he is your master."  Richard Stallman in
> http://www.linuxdevcenter.com/pub/a/linux/2004/12/22/rms_interview.html
> 
> 
-- 
Tres Melton
IRC & Gentoo: RiverRat

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to