Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Mar 2009 18:56:40 -0600
From:      John Hein <jhein@timing.com>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        ed@80386.nl, arch@freebsd.org
Subject:   Re: Final sanity pass: xdev
Message-ID:  <18881.38984.133668.539997@gromit.timing.com>
In-Reply-To: <20090318.183646.-593221015.imp@bsdimp.com>
References:  <18875.60334.947446.966085@gromit.timing.com> <20090315.080814.669286040.imp@bsdimp.com> <18877.57878.136116.691250@gromit.timing.com> <20090318.183646.-593221015.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
M. Warner Losh wrote at 18:36 -0600 on Mar 18, 2009:
 > In message: <18877.57878.136116.691250@gromit.timing.com>
 >             John Hein <jhein@timing.com> writes:
 > : M. Warner Losh wrote at 08:08 +0900 on Mar 15, 2009:
 > :  > In message: <18875.60334.947446.966085@gromit.timing.com>
 > :  >             John Hein <jhein@timing.com> writes:
 > :  > : An earlier patch of yours had:
 > :  > : 
 > :  > : .if !defined(OSREL)
 > :  > : OSREL!= uname -r | sed -e 's/[-(].*//'
 > :  > : .endif
 > :  > : 
 > :  > : But the latest (and the one committed) does not.
 > :  > 
 > :  > You are right... Dang.  I must have comitted the wrong thing...
 > 
 > There is a subtle point here that we've missed.  This gives us the
 > version on the host, not the version of the tree we're building.  In
 > practice, these need to be the same.  However, if we support building
 > a 6.x cross compiler on a 7.x system, we may have to revisit.

In our build env (I'm sure you recall), it works out fine in practice
(for most ports [*]).

Building 8.x targets on 7.x makes links like "arm-freebsd7.1-cc" but
the cross built ports also look for that name - likely because the
config-guess machinery uses uname also.

I'm not so sure we need to support building the other direction (7 on 8)
since we generally don't support that direction of compatibilty, but
if it can be done with minimal effort, that'd be good.

So, if it's just a matter of finding the appropriate cross version of
cc or nm or whatever, this is okay.

[*] But if there is some dependency in a particular port that actually
looks into the freebsd version and does something different based on
version, it may be an issue.  Then on top of that, there's kernel
version and userland version that may matter to certain ports.

Perhaps we should consider setting UNAME_r in the environment when
building across major OS levels (possibly outside the scope of
/usr/src/Makefile*).

At a certain point in the cross-arch / cross-major-OS-version building
dance, we could also just say it's not supported and let people work
it out with a native "same major" OS level build machine (possibly a
virtual machine).


 > : One more thing... Now that we've switched to bsd ar, installing
 > : gnu/usr.bin/binutils installs the gnu ar as gnu-ar.  Cross-built
 > : ports can't find arm-freebsd8.0-ar
 > 
 > Doh! Thanks for the patch.  I'll run it through my QA cycle.

Okay.  Thanks for getting the 1000 monkeys to give it a test run ;)



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