Date: Wed, 15 Aug 2012 13:29:46 -0600 From: Warner Losh <imp@bsdimp.com> To: Adrian Chadd <adrian@FreeBSD.org> Cc: freebsd-arm@freebsd.org Subject: Re: Building ARM ports (was Re: Globalscale Dreamplug and 8.3 RELEASE) Message-ID: <BE31C626-5252-4D61-A019-B251761937BF@bsdimp.com> In-Reply-To: <CAJ-Vmo=yW1A7btA-MS6PM8zTPg_foqoP6MuFszGhDLJGrcW_fw@mail.gmail.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> <CAJ-Vmok-n_focw5x4nM1Go2c0xRoeU=xehDAtTgeM2%2BtZ94GjA@mail.gmail.com> <48664E9B-0BBB-4C78-B720-9920083E661A@bsdimp.com> <1345039837.27688.14.camel@revolution.hippie.lan> <CAJ-Vmo=yW1A7btA-MS6PM8zTPg_foqoP6MuFszGhDLJGrcW_fw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Aug 15, 2012, at 12:56 PM, Adrian Chadd wrote: > On 15 August 2012 07:10, Ian Lepore <freebsd@damnhippie.dyndns.org> = wrote: >=20 >>> 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. >=20 > Right. >=20 >> 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). >=20 > Right. >=20 >> 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. >=20 > Well we have build tools as a make stage in building things in > /usr/src. I know, I keep adding things to it when adding stuff for > cross-building things. >=20 > So if we know _how_ to mark something as a build time versus run time > dependency, wouldn't that be good to add to the ports infrastructure? >=20 > Yes, we can't cross-build _all_ports. But a bunch of basic ones to > begin with would be nice (eg things like thttpd, dropbear.) Ports with > their own build systems and custom tools can stay out of it for this > pass. >=20 > I was hoping that others with a little more build experience could be > coaxed into hacking on the problem. I find it really disenheartening > that the OpenWRT peeps figured this out years ago and yet we can't > even make a _start_ on it in /usr/ports. Now that ports is in svn, maybe we need a projects/xports to get = started. We could dump my crap there, and then start to work out the = build vs run issues and go from there. This is a very time-intensive project, but with enough hands, and a = place to save the work so we don't start from scratch each time, I think = we can make progress. Lots of the nay-sayers will STFU if we get to the = point of building some useful number of ports this way (say 100). And = if it fails, we can delete the branch :) Warner=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BE31C626-5252-4D61-A019-B251761937BF>