CRIS Toolchain

Axis toolchain

The initial CRIS cross-compiler was done by [WWW] Axis Communications. Axis have their own repository and gcc, binutils and glibc versions that they update. The first CRIS toolchain was done based on the Axis toolchain build script and their build sources. This toolchain can be built with the cris-gcc3.2.conf file.

uClibc toolchain

For building Debian "sarge" from scratch we needed newer versions of binutils and gcc. So we made the second cris toolchain cris-gcc3.4-uclibc.conf. uClibc was chosen as the C-library because Glibc seems to be dropping the CRIS support. Also because of the problems we had trying to compile a Glibc based toolchain. The uClibc toolchain had also problems with linking which was fixed with the binutils CVS HEAD version. For the moment the toolchain seems to be working fine.

Because we used uClibc instead of Glibc we needed to provide the libintl separately as uClibc's libintl is not yet finished. A new build directory was added for the gettext sources.

The uClibc toolchain is built from the following components:

kernel-headers  2.6.11.0
binutils        cvs-20050901
uClibc          0.9.27
gettext         0.14.5
gcc             3.4.3
Building the toolchain

Start building the cris-gcc3.4-uclibc.conf toolchain as any Scratchbox [WWW] toolchain. The build fails when building strace as CRIS is not a supported architecture for strace. To continue the toolchain build run:

Toolchain test results

The toolchain was tested with the dejagnu stress tests. See the test [WWW] summaries or see the separate test result:

Glibc toolchain

The problems building the Glibc toolchain:

1. This can be avoided by changing the libc build CFLAG = -O2 to CFLAG = -Os

nsap_addr.c:96: internal compiler error: in output_149, at insn-output.c:1086

2. This blocks the build of the Glibc toolchain. The problem wasn't fixed even with the binutils CVS version.

/scratchbox/compilers/cris-linux-gcc3.4-glibc/lib/gcc/cris-axis-linux/3.4.4/../../../../cris-axis-linux/bin/ld: /home/rkekki/darcs/sb-toolchains/libc/cris-glibc/work/build-glibc/elf/librtld.os, section .text: relocation R_CRIS_32_GOTREL is not allowed for global symbol: `(null)'
/scratchbox/compilers/cris-linux-gcc3.4-glibc/lib/gcc/cris-axis-linux/3.4.4/../../../../cris-axis-linux/bin/ld: final link failed: Bad value

last edited 2005-10-03 10:27:42 by VeliMankinen