tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Cross-building on ubuntu
As promised, notes on cross-compiling a kernel for NetBSD 4.0.1 on a ubuntu
8.10 host. I’ve been away from NetBSD for a while (since v1.6), so apologies
if the following is well known/obvious to regulars:
1. Unpack sources somewhere convenient.
2. Ensure both g++ and ncurses-dev are installed.
(‘sudo apt-get install g++’ and ‘sudo apt-get install ncurses-dev’ respectively)
3. Ensure that bash is used as the shell rather than /bin/sh. Obscure shell
script errors result if not. ‘HOST_SH=/bin/bash; export HOST_SH’
4. glob.c in tools/compat relies on ARG_MAX being defined. As discussed in
various places
(http://mail-index.netbsd.org/pkgsrc-bugs/2008/06/21/msg026977.html),
GLIBC>=2.8 no longer define ARG_MAX. I couldn’t determine the best place to
apply the fix, so I simply added it to the top of glob.c. Presumably there’s a
.h file somewhere that I ought to put it in?
5. It is possible for a stack overrun to occur in parts of binutils
(particularly ar). Applying the patch at:
http://sources.redhat.com/ml/binutils/2005-03/msg00180.html in
gnu/dist/binutils makes it work again. Note that this patch doesn’t quite
apply cleanly and the hunk that contains the definition of _bfd_ar_spacepad()
needs to be tweaked/applied manually.
It is then possible to execute something like:
/bin/bash ./build.sh –m i386 –O ~/obj –U tools kernel=GENERIC
…and get a functioning kernel at the end of it. I’ve not yet tried building a
full distribution.
Cheers,
David.
--- On Wed, 3/12/08, Hubert Feyrer <hubert%feyrer.de@localhost> wrote:
> From: Hubert Feyrer <hubert%feyrer.de@localhost>
> Subject: Re: Cross-building on ubuntu
> To: "David Forbes" <ilikeearlymornings%yahoo.co.uk@localhost>
> Cc: tech-toolchain%netbsd.org@localhost
> Date: Wednesday, 3 December, 2008, 10:44 AM
> On Wed, 3 Dec 2008, David Forbes wrote:
> > I've recently being trying to cross-build NetBSD
> from a
> > ubuntu 8.10 system. In general, the build.sh system
> works
> > well and I've managed to get it working to the
> point of
> > a building a usable i386/GENERIC kernel.
> >
> > However, I did have to solve a number of snags along
> the
> > way, to which the solutions were in varied locations
> across
> > the internet. Is there a document/wiki that I should
> > contribute my notes to?
>
> I think sharing your experiences on this list would be good
> for a start.
> FWIW, I'm doing release builds of the netbsd-5 and the
> HEAD branches on OpenSuse 10.2. The former works fine, the
> latter seems broken right now (or was so when I checked
> yesterday).
>
>
> - Hubert
Home |
Main Index |
Thread Index |
Old Index