Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Nov 1999 21:22:34 +1100
From:      John Birrell <jb@cimlogic.com.au>
To:        Marcel Moolenaar <marcel@scc.nl>
Cc:        arch@freebsd.org
Subject:   Re: Cross compilation goals.
Message-ID:  <19991118212234.E13376@freebsd1.cimlogic.com.au>
In-Reply-To: <3833C40B.EC5290CF@scc.nl>; from Marcel Moolenaar on Thu, Nov 18, 1999 at 10:16:59AM %2B0100
References:  <19991117184034.A53402@dragon.nuxi.com>, <199911180559.WAA21245@harmony.village.org> <3833C40B.EC5290CF@scc.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Nov 18, 1999 at 10:16:59AM +0100, Marcel Moolenaar wrote:
> Cross-compilation and cross-building don't share the same problem-space
> and each have a different set of goals (non necessarily disjunct).

I think that cross-compilation is a superset of cross-building if you
want to make a distinction between the too.

> My personal thoughts on the subject of the ability to make
> cross-compilers from within our source tree are *at this time* dominated
> by it's use for cross-building. I don't see a point to bloat our source
> tree with the ability to make a cross-compilation toolset for NT (for
> example) while there's this really neat ports collection in which we can
> add anything that's not directly related/necessary for out base-system.

The build I have avoids bloat for those who don't want the cross-compilation
tools. I want the build system to be flexible enough to get tools "for
all seasons". To me, the build makefiles are the key to it. I rarely
get what I want out of Cygnus' configure shit^H^H^Htuff.

I can easily cross-build FreeBSD sources targeted to NetBSD/m68k/aout
the way I build the compiler. And I can cross-build non-FreeBSD sources
targeted at LynxOS/PowerPC or NT/i386. The binutils makefiles in the
tree already support that. Extending them to other architectures is
trivial. I want the compiler build to be the same way. There is very
little bloat (just a few more makefiles) for those who only want to
build.

I want to see FreeBSD become a serious contender as a development
platform (preferably out of the box).

> My suggestion is this:
> Let's talk cross-building first and fix our make world. When release 4.0
> is out we have the time and the (inner) peace to discuss how we think we
> should help developers that eat cross-compilers for breakfast :-)

I think we can do both at the same time.

We seem to disagree on the mechanics of how we should drive a cross-build.
_I_ think we should use MACHINE and MACHINE_ARCH which are set in make(1)
as a convenience for host builds, but can be overridden for cross-builds.
They are not there for any other make function AFAIK. I agree that the
make(1) man page doesn't support this, but I think that is just a few
paragraphs of documentation that can be "fixed" (or changed to suit the
new world order).

What I _don't_ want to see is gcc trying to interpret MACHINE_ARCH
or TARGET_ARCH or somehow trying to "discover" that it is cross-compiling.
I think we can just do what Cygnus does and build a dedicated version
of gcc for each target.

I want the makefiles (including .mk) to have control over how things build.

I also don't want to see make(1) customized. I would like to ask that
we use the version of make from 2.2.5 (or whenever the -m switch was
first implemented) as the reference. If we can't do a cross-build with
an old version of make like that, then we're doing something wrong.

At work I have to live with GNU make because of portability issues
across Solaris, NT, Linux and FreeBSD. I'm tempted to suggest that we
drop BSD make in favour of gmake. I bet a suggestion like that will
wake people up. 8-) I'm only half joking.

-- 
John Birrell - jb@cimlogic.com.au; jb@freebsd.org http://www.cimlogic.com.au/
               john.birrell@cai.com john.birrell@opendirectory.com.au




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




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