This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Using crosstool-0.27


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]