Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Sep 2013 09:56:11 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Baptiste Daroussin <bapt@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Nathan Whitehorn <nwhitehorn@freebsd.org>
Subject:   Re: svn commit: r255457 - head/usr.sbin/pkg
Message-ID:  <201309110956.11782.jhb@freebsd.org>
In-Reply-To: <20130911054907.GK40186@ithaqua.etoilebsd.net>
References:  <201309102056.r8AKu1rQ000442@svn.freebsd.org> <522FE3A2.2090405@freebsd.org> <20130911054907.GK40186@ithaqua.etoilebsd.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday, September 11, 2013 1:49:07 am Baptiste Daroussin wrote:
> On Tue, Sep 10, 2013 at 10:29:38PM -0500, Nathan Whitehorn wrote:
> > On 09/10/13 15:56, Baptiste Daroussin wrote:
> > > Author: bapt
> > > Date: Tue Sep 10 20:56:01 2013
> > > New Revision: 255457
> > > URL: http://svnweb.freebsd.org/changeset/base/255457
> > >
> > > Log:
> > >    Add support to detect arm vs armv6
> > >    
> > >    There are two different versions of the ARM ABI depending on the
> > >    TARGET_ARCH. As these are sligntly different a package built for
> > >    one may not work on another. We need to detect which one we are on
> > >    by parsing the .ARM.attributes section.
> > >    
> > >    This will only work on the ARM EABI as this section is part of the
> > >    ABI definition. As armv6 only supports the ARM EABI this is not a
> > >    problem for the oabi.
> > >    
> > >    Older versions of libelf in FreeBSD fail to read the
> > >    .ARM.attributes section needed. As armv6 is unsupported on these
> > >    versions we can assume we are running on arm.
> > >    
> > 
> > Picking a random commit: I don't suppose we can just use MACHINE_ARCH 
> > for these identifiers? It encapsulates everything needed for compatibility.
> > -Nathan
> 
> Yes we probably can, it encapsulates everything since recently! It wasn't the
> case when ABI string was defined, and it lacks an important part of why the ABI
> string has been designed on pkgng: making a package match multiple arch via
> simple glob on the ABI line.
> 
> So as I already said to Warner, Yes now that it properly works on all arches we
> could use it but that is not that easy.
> 
> People wanting to go that way should:
> 1. provide a way for pkgng to extract MARCHE_ARCH out of a binary (/bin/ls)
> (dynamic cross installation ABI detection)
> 2. provide a way to create multiarch ABI out of MACHINE_ARCH
> 3. provide an upgrade path with compatibility for the current string (pkgng is
> already largely deployed)
> 4. have time to do it
> 
> There is so much work pending on pkgng, in particular for 10.0 that I just have
> no time to work on it.

We actually had a thread about this on arch@ a while back where I think we did
largely satisfy your concerns.  However, one of the open items is to convert
amd64, i386, and pc98 to set MACHINE_CPUARCH to x86 instead of amd64/i386 (this
would clean up several other things as well).  I do think it would be helpful
if pkgng used arch strings that were consistent with MACHINE_ARCH so that the
transition is easier (e.g. x86:i386 and x86:amd64 instead of x86:32 and
x86:64).

-- 
John Baldwin



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