This is the mail archive of the
newlib@sources.redhat.com
mailing list for the newlib project.
building a big endian arm elf gcc/binutils/newlib
- To: gcc-help at gcc dot gnu dot org, newlib at sources dot redhat dot com
- Subject: building a big endian arm elf gcc/binutils/newlib
- From: Martin Rivers <rivers at lexmark dot com>
- Date: Wed, 13 Jun 2001 14:14:06 -0400
- Organization: Lexmark International, Inc.
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