building a big endian arm elf gcc/binutils/newlib

Martin Rivers rivers@lexmark.com
Wed Jun 13 11:15:00 GMT 2001


I've been attempting to build a big endian version of the arm elf cross compiler
and associated software (binutils, newlib) to be hosted from a sun solaris
workstation.  I'm working from 2.11 binutils, 2.95.3 gcc and 1.9 newlib.  The
native sun gcc is 2.8.1 and gmake is 3.78.1

If I attempt to:

cd $prefix/build-binutils
../binutils-2.11/configure --target=armbe-elf --prefix=$prefix
gmake all install

I get an error indicating the target is not supported.

If is let the target == arm-elf binutils builds okay.  However, when I then
attempt to build gcc with:

cd $prefix/build-gcc
../gcc-2.95.3/configure --target=arm-elf --prefix=$prefix
--with-headers=$headers -v
gmake all install

the build of all gets to somewhere into the libiberty and fails with 

touch bigstmp-complx
cd ../libiberty ; gmake "SHELL=/bin/sh" "INSTALL=/bin/sh
/users/rivers/gnu2/gcc-2.95.3/install-sh -c" "INSTALL_DATA=/bin/sh
/users/rivers/gnu2/gcc-2.95.3/install-sh -c -m 644" "INSTALL_PROGRAM=/bin/sh
/users/rivers/gnu2/gcc-2.95.3/install-sh -c " "prefix=/users/rivers/gnu2"
"exec_prefix=/users/rivers/gnu2" "tooldir=/users/rivers/gnu2/arm-elf"
"gxx_include_dir=/users/rivers/gnu2/include/g++-3"
"libsubdir=/users/rivers/gnu2/lib/gcc-lib/arm-elf/2.95.3" "gcc_version=2.95.3"
"gcc_version_trigger=/users/rivers/gnu2/gcc-2.95.3/gcc/version.c"
"AR=arm-elf-ar" "AR_FLAGS=rc" "CC=/users/rivers/gnu2/build-gcc/gcc/xgcc
-B/users/rivers/gnu2/build-gcc/gcc/ -B/users/rivers/gnu2/arm-elf/bin/"
"CXX=/users/rivers/gnu2/build-gcc/gcc/xgcc -B/users/rivers/gnu2/build-gcc/gcc/
-B/users/rivers/gnu2/arm-elf/bin/" "CFLAGS=-g -O2" "CXXFLAGS=-g -O2"
"NM=arm-elf-nm" "RANLIB=arm-elf-ranlib" "LIBCFLAGS=-g -O2" "LIBCXXFLAGS=-g -O2
-fno-implicit-templates" "LOADLIBES=" "LDFLAGS="
"MAKEINFO=/users/rivers/gnu2/build-gcc/texinfo/makeinfo/makeinfo "
"SHLIB=libstdc++.so.2.10.0" "SHCURSES=" "RUNTESTFLAGS="
gmake[2]: Entering directory `/users/rivers/gnu2/build-gcc/arm-elf/libiberty'
gmake[2]: *** No targets specified and no makefile found.  Stop.
gmake[2]: Leaving directory `/users/rivers/gnu2/build-gcc/arm-elf/libiberty'
gmake[1]: *** [../libiberty/libiberty.a] Error 2
gmake[1]: Leaving directory `/users/rivers/gnu2/build-gcc/arm-elf/libstdc++'
gmake: *** [all-target-libstdc++] Error 2

If I then change the configure line to read:

../gcc-2.95.3/configure --target=arm-elf --prefix=$prefix
--with-headers=$headers --with-newlib -v
gmake all install

it appears to be okay except I'm still left without big endian versions of
things.  In talking with one of the people in the MAINTAINERS list (Nick
Clifton), he indicated to change the gcc/config/arm/t-elf.h file to select only
big endian for the MULTILIB_OPTIONS.  However, in checking crtbegin.o and
crtend.o, I've still got little endian modules.

Is there anyone who can tell the magic set of configure/target commands to build
an big endian arm elf cross compiler/binutils/newlib.  Any help would be greatly
appreciated.

Thanks in advance!

martin rivers



More information about the Newlib mailing list