Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jul 2013 16:11:37 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-arch@freebsd.org
Cc:        Baptiste Daroussin <bapt@freebsd.org>, Dimitry Andric <dim@freebsd.org>, Adrian Chadd <adrian@freebsd.org>, Andrew Turner <andrew@fubar.geek.nz>
Subject:   Re: Adding a MACHINE_ARCH note
Message-ID:  <201307101611.37437.jhb@freebsd.org>
In-Reply-To: <20130710195547.GB68830@ithaqua.etoilebsd.net>
References:  <32F979BD-FB5C-4111-9586-4C5E7C6DFA71@bsdimp.com> <CAJ-Vmo=sUKs4u-pq%2B1hx-q1bfhPugMcSp4XYzNcBNwHMrw3Kug@mail.gmail.com> <20130710195547.GB68830@ithaqua.etoilebsd.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday, July 10, 2013 3:55:47 pm Baptiste Daroussin wrote:
> On Wed, Jul 10, 2013 at 12:26:42PM -0700, Adrian Chadd wrote:
> > On 10 July 2013 09:55, Warner Losh <imp@bsdimp.com> wrote:
> > 
> > >> That's the reason I replied about it. Not specifically to make it
> > >> happen _everywhere_, but to see if we're about to migrate to a tool
> > >> that doesn't support it, making it a much bigger deal to migrate again
> > >> later.
> > >
> > > I've been talking to Baptiste, and it will support this.
> > 
> > Sweet.
> > 
> > Thanks!
> > 
> > 
> > -adrian
> 
> Yeah I need to get a simple and uniq way to gather the different ABI, I have
> been creating my own ABI string to solve this, but I'm far from being a
> specialist.
> 
> While thinking about this kind of thing, please please think about a format that
> can easily give us a way to figure out a way to get cross ABI binaries support.
> 
> pkgng needs for example to allow i386 packages to be installed on amd64 because
> amd64 does support it.
> 
> Maintaining a list the compatibility will be painful.
> 
> In my own version I have
> os:version:family:class:...
> 
> for example here:
> on FreeBSD 9 i386 we have:
> 
> freebsd:9:x86:32
> 
> on FreeBSD 10 amd64 we have:
> 
> freebsd:9:x86:64
> 
> now if I do want a package I can install on both amd64 and i386 I just have to
> create a package saying:
> 
> freebsd:9:x86
> 
> or if I want a package that can be installed on all arches:
> 
> freebsd:9
> 
> It became complicated for arm and mips because of the multiple variation
> available.

You should look at how MACHINE_CPUARCH vs MACHINE vs MACHINE_ARCH works.

Keep in mind that amd64/i386/pc98 should probably have MACHINE_CPUARCH of x86,
but we just haven't done that yet.  If we did that I think you could follow
src's conventions and be fine.  Something like:

os:version:cpuarch:arch

Where cpuarch == MACHINE_CPUARCH (should be x86 on amd64/i386/pc98, but isn't
yet.  It ss sane on other platforms) and
arch == MACHINE_ARCH (amd64/i386 (for pc98 MACHINE_ARCH is i386))

So that would give:

freebsd:9:x86:amd64
freebsd:9:x86:i386 (for both pc98 and i386)
freebsd:9:arm:armv6

etc.

I think that means we could eventually support x32 as:

freebsd:9:x86:x32

We might have an x32 world (but perhaps not a kernel?, though we would need
the headers to DTRT)

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201307101611.37437.jhb>