Gentoo Archives: gentoo-amd64

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-amd64@l.g.o
Subject: [gentoo-amd64] Re: multilib
Date: Sun, 26 Mar 2006 23:39:39
Message-Id: pan.2006.03.26.23.37.50.964387@cox.net
In Reply to: [gentoo-amd64] multilib by JimD
JimD posted <20060326113037.63d2f7f3@××××××.localdomain>, excerpted below,
 on Sun, 26 Mar 2006 11:30:37 -0500:

> What does (-multilib) mean? I tried to unmask it but I cannot figure out > how to get multilib turned on. > > P.S. I have also seen the (-FOO) syntax before and cannot figure out how > to enable a USE option that is in that format.
I see SS's pointing to the FAQ, and that's correct, but I read the blurb in the FAQ and don't find it worded as clearly as it could be. In general, a USE flag in parenthesis, as (-multilib), indicates that USE flag is set by the profile and can't be changed. (Well, it could be, but you better be very sure you know what you are doing, and as with many things in life, if you are asking, you don't.) Why would this be? Simple. The regular amd64 profiles require multilib, altho there are subprofiles available that have it disabled, if you prefer. Thus, it's part of the profile, enabled or disabled by the profile you use, and not settable separately. (This is a fairly new situation. Old 2004 profiles had it as a settable USE flag, which is why it still exists as a USE flag, even if it can't be set as such.) Similarly with some other flags, including mmx, sse, etc. All amd64 based processors, both those from AMD and those from Intel, include these extensions, so gcc knows they can be used already, and the flags need not be specified. Additionally, as the flags were developed on 32-bit processors, they often invoke the 32-bit specific assembly language extensions. Trying to use these 32-bit specific extensions in a 64-bit program is a sure way to failure, so all around, it's simply better to force the USE flags off for 64-bit mode. Again, gcc already knows it can use the 64-bit versions, and the USE flags apply the 32-bit versions which will break stuff in 64-bit mode, so leave them off, and nobody gets hurt. <g> Do note, however, that if you use a 32-bit chroot, you can safely use those flags there, and they'll work as intended, because the chroot will be using a 32-bit profile, not the usual 64-bit profile. Perhaps this is clearer than the way the FAQ says it? -- 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 -- gentoo-amd64@g.o mailing list