From owner-freebsd-arm@FreeBSD.ORG Wed Aug 15 14:10:47 2012 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 258F9106566B for ; Wed, 15 Aug 2012 14:10:47 +0000 (UTC) (envelope-from freebsd@damnhippie.dyndns.org) Received: from qmta10.emeryville.ca.mail.comcast.net (qmta10.emeryville.ca.mail.comcast.net [76.96.30.17]) by mx1.freebsd.org (Postfix) with ESMTP id 00CAC8FC15 for ; Wed, 15 Aug 2012 14:10:46 +0000 (UTC) Received: from omta23.emeryville.ca.mail.comcast.net ([76.96.30.90]) by qmta10.emeryville.ca.mail.comcast.net with comcast id n0wa1j0061wfjNsAA2Agi2; Wed, 15 Aug 2012 14:10:40 +0000 Received: from damnhippie.dyndns.org ([24.8.232.202]) by omta23.emeryville.ca.mail.comcast.net with comcast id n2Ae1j00M4NgCEG8j2AfeY; Wed, 15 Aug 2012 14:10:40 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id q7FEAbns016068; Wed, 15 Aug 2012 08:10:37 -0600 (MDT) (envelope-from freebsd@damnhippie.dyndns.org) From: Ian Lepore To: Warner Losh In-Reply-To: <48664E9B-0BBB-4C78-B720-9920083E661A@bsdimp.com> References: <5008728C.5040100@jetcafe.org> <1343846511.1128.34.camel@revolution.hippie.lan> <501B0E04.5040901@jetcafe.org> <1343951251.1128.53.camel@revolution.hippie.lan> <502AEC99.70708@jetcafe.org> <48664E9B-0BBB-4C78-B720-9920083E661A@bsdimp.com> Content-Type: text/plain; charset="us-ascii" Date: Wed, 15 Aug 2012 08:10:37 -0600 Message-ID: <1345039837.27688.14.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: freebsd-arm@freebsd.org Subject: Re: Building ARM ports (was Re: Globalscale Dreamplug and 8.3 RELEASE) X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Aug 2012 14:10:47 -0000 On Tue, 2012-08-14 at 20:44 -0600, Warner Losh wrote: > On Aug 14, 2012, at 6:35 PM, Adrian Chadd wrote: > > > Guys/girls/etc, > > > > OpenWRT manages it. They started from the ground up with having to cross-build. > > > > Just because the problem is hard to tackle doesn't mean we shouldn't try. > > Agreed. I worry the qemu solution sounds simple, but really will be harder. Prove me wrong :) > > > There's like a dozen half-done attempts at this. I realise you can't > > address _all_ the ports at once, but surely starting with a small > > subset and working outward is doable. > > > > I'll put up a bounty for anyone who actually comes up with a basic > > framework for supporting cross-building ports, documents how it > > does/doesn't work (eg if things like build vs run dependencies) and > > has a basic design for how to slowly fix ports to support it. > > I have the basics, and have for years. I've posted them several times. The trouble is that they are very very basic and need more work. I think you'll need to define the problem a little better before progress can be made. > > Warner The system we use at work is basically Warner's (at least I think he put the bulk of it in place years ago). It involves defining a bunch of environment variables that change how ports are built (I want to say "fools" or "tricks" the ports into using cross-tools, but the negative implications of those words may just reflect my ignorance of the details). The biggest problem we have is build versus run dependencies. When crossbuilding port foo to run on arm, that port decides it needs the compile_a_foo port to build the code, so it goes off and cross-builds compile_a_foo, then wants to run the resulting arm binaries on the x86 host. The only way I know of to fix that is to tediously identify and pre-build all the build-time requirements needed by any port you intend to cross-build. Ports that have their own build systems and custom tools are essentially impossible to work with. -- Ian