Subject: Re: New ARM ELF toolchain patch
To: Reinoud Zandijk <imago@kabel065011.kabel.utwente.nl>
From: Ben Harris <bjh21@netbsd.org>
List: port-arm
Date: 04/24/2001 13:00:02
On Tue, 24 Apr 2001, Reinoud Zandijk wrote:
> On Tue, 24 Apr 2001, Ben Harris wrote:
> > <URL:ftp://ftp.netbsd.org/pub/NetBSD/misc/bjh21/armelf/
> > arm-elf-toolchain-20010424.diff>
> >
> > This is updated for the latest imports into gnu/dist/toolchain. The only
> > substantive change is that structure alignment is back to the traditional
> > eight bits. It seems to build an arm26 kernel correctly, at least.
>
> Thanks :)) ... i'm still a bit ... euhm ... carefull to install it but
> i'll try it on my RiscPC since my Shark is normally doing the ARM
> compilations ... that way i have 2 toolchains to test :)
You shouldn't try to replace your existing toolchain with this one anyway.
Just build it as a cross-compiler with --prefix=/usr/local or whatever.
Hrm, yeah, documentation (of a sort):
0: You'll need a source directory (e.g. /usr/src), a build directory (e.g.
/usr/crossobj) and a destination directory (e.g. /usr/cross).
1: Apply the patch to a -current source tree. You'll also need the patch
I posted to tech-toolchain yesterday, unless I've committed it already.
2: In /usr/crossobj, run
/usr/src/gnu/dist/toolchain/configure \
--target=arm-unknown-netbsdelf --prefix=/usr/cross
3: Run "make".
4: The build will eventually fall over somewhere in libio. This is
nothing to worry about -- it's built all the important stuff by this
point. Run "make install".
5: You now have a compiler in /usr/cross/bin/arm-unknown-elf-gcc, with
other tools in the obviously-analogous places. You'll need a new "cpp"
script, which you can find alongside the patch on ftp.netbsd.org.
6: To use these, you'll want to set lots of environment variables when
running "make". My list (which will obviously vary for other people)
says:
export ADDR2LINE=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-addr2line
export AR=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-ar
export AS=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-as
export CC=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-gcc
#export CPP=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-cpp
export CXX=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-c++
export CXXFILT=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-cxxfilt
export LD=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-ld
export MAKE=arm26make
export NM=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-nm
export OBJCOPY=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-objcopy
export RANLIB=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-ranlib
export SIZE=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-size
export STRIP=/opt/netbsd/cross/bin/arm-unknown-netbsdelf-strip
export MACHINE=arm26 MACHINE_ARCH=arm26
export DESTDIR=${DESTDIR:-/export/arm26}
export OBJECT_FMT=ELF
--
Ben Harris <bjh21@netbsd.org>
Portmaster, NetBSD/arm26 <URL:http://www.netbsd.org/Ports/arm26/>