Subject: Re: cross compiling -cuurent on 1.4/alpha
To: Todd Whitesel <toddpw@best.com>
From: Bill Studenmund <wrstuden@nas.nasa.gov>
List: current-users
Date: 12/26/1999 13:38:14
On Fri, 24 Dec 1999, Todd Whitesel wrote:
> Yes, but those are installed during 'make install' for the cross compilers.
> After the next supscan, they become out-of-date, so either we must update
> them as part of the cross-build process or use something else.
Not really. See below.
> > By default, the packaged cross compilers don't do this. I think the idea
> > is that they'd be used to cross-compile the tree, which'd have its own
> > includes. Thus it wouldn't make sense to have two copies of these includs.
>
> Right, and my proposed place for "its own includes" is 'xincludes'.
But we don't need it! :-)
> > Why should we be using xincludes? I've cross-compiled before, and this is
> > not a problem. I've cross-built the whole tree with no major changes
> > needed to the build system (once we added bsd.hostprog.mk).
>
> For a single cross build, sure, but how about tracking -current over time?
> How often do you regenerate the cross compilers (thus updating the installed
> headers) ? This becomes almost a non-issue if your standard procedure is to
> regenerate before every build.
>
> The basic benefit of xincludes is that it allows 'make includes' to work
> without jeopardizing /usr/includes until 'make install' time. In the case
> of cross builds, it supplies the headers so the cross-compiler doesn't have
> to worry about providing headers and keeping them in sync with the source
> tree.
But you're corss-compiling. You've GOT to be using a DESTDIR (if not,
you'll overwrite the hosts's libraries and programs with the ones for the
cross-compiled architecture).
Since you're using DESTDIR, the NetBSD build system uses "-nostdinc -I
${DESTDIR}/usr/include". So why do we need to install the headers in to
the cross-compilers "/usr/include" area given that the whole build system
will ignore them? _That's_ why the package cross-compilers don't bother.
So to answer your question (which is a good one), the reason tracking
-current isn't a problem is that the corss-compiling will use make build,
which will install new headers into the DESTDIR, and then proceed to use
them exclusivly for cross-make programs.
Take care,
Bill