Date: Thu, 31 Jul 1997 12:11:01 -0400 From: "Daniel M. Eischen" <deischen@iworks.InterWorks.org> To: A.J.Smith@nortel.co.uk Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: Cross compiling for FreeBSD 3.0 Message-ID: <33E0B900.41C67EA6@iworks.InterWorks.org>
index | next in thread | raw e-mail
> Is there more info in the bin utils about doing this? I've never built
> binutils or gcc myself, having previously relied on the installed
> binaries.
Yes, but John Polstras Elfkit describes what you need to do. Something
like:
Extract binutils-2.7 (or 2.8)
Apply (probably have to hand apply since they are based on
binutils-2.6) the 2 binutils patches. The patches
are very small.
cd binutils-2.7 # or binutils-2.8
# Configure should correctly determine your host system as linux,
# but you could additionally specify
--host=i486-unknown-linux(elf|aout)
configure --prefix=/usr/local/cross --target=i386-unknown-freebsdelf
(cd bfd; make headers)
make CC=cc CFLAGS=-O
su
make CC=cc CFLAGS=-O install
> > Get the include files from a 3.0 FreeBSd system
> > and install them in <prefix>/i386-unknown-freebsdelf/include.
>
> Do I need to take everything in /usr/include and below?
I would (and did). John gives you directions on how to easily do
this (I've silently thanked John more than a few times :)
su
cd /usr
find -d include | cpio -pdmv
/usr/local/cross/i386-unknown-freebsdelf
> > Grab
> > the necessary libraries from a 3.0 FreeBSD system and place them in
> > <prefix>/i386-unknown-freebsdelf/lib. (I am assuming you're configuring
> > binutils/gcc for i386-unknown-freebsdelf).
>
> Yes. Again, is this everything from /usr/lib? I have a feeling this will
> be a somewhat massive set of files...
No, just what you are going to link with and the crt* objects. Usually,
libc should be enough. Hmm, these have to be elf-built. It would be
easier if you could build Johns Elfkit on a 3.0 box to get these
libraries. I don't have my 3.0-current elf-built libs around anymore,
but I do have 2.2 elf-libs. Perhaps someone with 3.0 elf libs can
make you a tarball so you don't have to do it yourself.
> > Configure gcc-2.7.2 for i386-unknown-freebsdelf and your chosen prefix.
> > Build and install gcc.
>
> I believe I've seen gcc documentation on this: Setting up gcc as a cross
> compiler, the gcc --target <architecture> etc., is this the right stuff?
Really, all you need to do is in Johns README:
configure --prefix=/usr/local/elf --target=i386-unknown-freebsdelf
make CC=cc CFLAGS=-O LIBGCC1=libgcc1.a OLDCC="./xgcc -B./" \
FLOAT_H=/usr/include/float.h LANGUAGES=c
su
make CC=cc CFLAGS=-O LIBGCC1=libgcc1.a OLDCC="./xgcc -B./" \
FLOAT_H=/usr/include/float.h LANGUAGES=c install
I believe the elf-built libraries are going to be your only hurdle.
Dan Eischen
deischen@iworks.InterWorks.org
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?33E0B900.41C67EA6>
