Using crosstool-0.27
Tim Connors
connors@hpltsc.hpl.hp.com
Fri Apr 2 19:48:00 GMT 2004
As per the request in the crosstool-howto, here is a note stating that
I've successfully used crosstool to create an arm cross toolchain.
I'm sure this has been done many times. I wouldn't have posted
here except that, in my case, I also built with the java frontend.
I'd like to report that java works in addition to c and c++.
Thank you Dan Kegel, Bill Gatliff and other contributors.
Details:
crosstool-0.27
TARGET=arm-unknown-linux-gnu
eval `cat arm.dat java_versions.dat` sh all.sh --notest
I based my effort on the conf file
gcc-3.3.2-glibc-2.3.2.dat
Java wouldn't compile with the straight binutils-2.14. I googled the
error message and found that binutils-2.14.90.0.5 would fix the
problem. Here's a diff
$ diff gcc-3.3.2-glibc-2.3.2.dat java_versions.dat
1,2c1,2
< BINUTILS_DIR=binutils-2.14
< BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils
---
> BINUTILS_DIR=binutils-2.14.90.0.5
> BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils
6a7
> BUILD_JAVA=yes
$
Note the addition of BUILD_JAVA=yes. To use this flag, I also changed
crosstool.sh to modify the "--enable-languages" option of configure.
Here's another diff
$ diff crosstool.sh crosstool.sh.org
335,341d334
< if test "$BUILD_JAVA" == "yes"; then
< LANGUAGES=c,c++,java
< else
< LANGUAGES=c,c++
< fi
< echo Building Languages: ${LANGUAGES}
<
355c348
< --enable-languages=${LANGUAGES} \
---
> --enable-languages=c,c++ \
$
To further accommodate java, I also hacked mkjail.sh. Note addition
of libgcj in list.
$ diff mkjail.sh mkjail.sh.org
39c39
< ld libBrokenLocale libSegFault libanl libc libcrypt libdl libgcc_s libgcc_s_nof libgcj libm \
---
> ld libBrokenLocale libSegFault libanl libc libcrypt libdl libgcc_s libgcc_s_nof libm \
$
Experiences:
As usual, wget (from getandpatch.sh) won't work through a firewall
without a proxy. It might be nice to remind users that
$ export http_proxy=<proxy_host>:<port>
will fix this. Or maybe work it into the scripts or .dat files.
Since I don't have rcp nor rsh available on my REMOTE, crosstest.sh
wouldn't work. But it did show me the recipe to manually create,
transfer and install the chroot environment.
I was initially confused while studying crosstest.sh. In order to run
mkjail.sh you need the argument jail_etc_passwd. That argument seems
to be acquired from root@REMOTE:/jail/etc/passwd. Yet the directory
root@REMOTE:/jail/ (let along any file in it) won't even exist till
after initjail.sh is run on REMOTE. That doesn't happen until later
in crosstest.sh. If you already have a jail on REMOTE, it works, but
the first time around I'm not sure.
Enjoy
-Tim
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list