svn commit: r266553 - head/release/scripts

Warner Losh imp at bsdimp.com
Tue May 27 13:17:54 UTC 2014


On May 27, 2014, at 1:36 AM, Tijl Coosemans <tijl at FreeBSD.org> wrote:

> On Mon, 26 May 2014 16:31:21 -0600 Warner Losh wrote:
>> On May 26, 2014, at 4:18 PM, Tijl Coosemans <tijl at FreeBSD.org> wrote: 
>>> On Mon, 26 May 2014 09:53:57 -0600 Warner Losh wrote:
>>>> On May 26, 2014, at 8:39 AM, Nathan Whitehorn <nwhitehorn at freebsd.org> wrote:
>>>>> On 05/26/14 02:35, Tijl Coosemans wrote:
>>>>>> I suppose you could replace the "x86" in the pkg scheme with i386/amd64,
>>>>>> but then you'd still be talking about i386:32, amd64:32 and amd64:64
>>>>>> instead of x86:32, x86:x32 and x86:64.  
>>>> 
>>>> I suppose you could replace these by “i386”, “x32” (or “amd64x32”) and
>>>> “amd64” respectively.
>>> 
>>> So you're on an amd64 or mips64 system (as indicated by uname) but you
>>> want to use the 32-bit package if possible.  How does your script know
>>> about the magic "x32", "amd64x32" or "mipsn32" strings?  Wouldn't it be
>>> easier if you could just use "`uname -p`:32”?
>> 
>> Oh give me a break. You know it because you know you are building for
>> mipsn32 because that’s what you’ve set MACHINE_ARCH or TARGET_ARCH to,
> 
> No, MACHINE_ARCH or TARGET_ARCH is "amd64" or "mips64".  You are building
> the 64-bit OS and then decide separately per package whether you want the
> ILP32 one or the LP64 one.

I think I understand why we’re talking past each other. This bit is wrong. The  LP64 one has a MACHINE_ARCH of “amd64” or “mips64”. The ILP32 one will have MACHINE_ARCH of “i386” or “mips”. The weird ones (ILP32 with 64-bit registers) will have a different MACHINE_ARCH of “x32” or “mipsn32”. Selection can be done on a case by case basis, but this will be validated against the supported_abis sysctl. There’s no need to have different names here, the current standard ones do just fine, are completely sufficient and all inclusive. This is rather by definition, and your understanding of the definition sounds flawed.

While we have limited support for building 32-bit binaries, it is to build 32-bit binaries for a different MACHINE_ARCH. -m32 on amd64 creates i386 binaries, not amd64:32 binaries. -m32 on powerpc64 creates powerpc binaries, not powerpc64:32 binaries. On mips, -mabi-n32 (I think the option is) is required to create the mipsn32 binaries. In every single one of these cases, there exists a MACHINE_ARCH that completely describes the binary.

So I’m still waiting for a use case that requires the new names. One has not been articulated, and I don’t think one actually exists.

Warner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20140527/cb11c6d6/attachment.sig>


More information about the svn-src-head mailing list