gcc 4.2.1 for arm & mips?

Chris MacGregor chris@bouncingdog.com
Mon Sep 17 23:35:00 GMT 2007


Hi.  Specifically, I'm attempting:

gcc-4.2.1 (have been using 3.4.6 with all the other bits below the same)
crosstool-0.43
binutils-2.17
glibc-2.3.6 (using linuxthreads)

for mips:
   * gcc configured with --with-float=soft --with-arch=mips32 
--with-tune=mips32 --with-endian=little and a bunch of other stuff (see 
below)
   * glibc configured with --without-fp and other stuff

for arm:
   * gcc configured with --with-float=soft --with-cpu=xscale 
--with-endian=little
   * glibc configured with --without-fp and other stuff

On mips, the glibc stage of the build fails with:

In file included from 
../linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h:22,
                 from ../sysdeps/unix/sysv/linux/mips/pread.c:29:
../linuxthreads/internals.h:532: warning: C99 inline functions are not 
supported; using GNU89
../sysdeps/unix/sysv/linux/mips/pread.c: In function '__libc_pread':
../sysdeps/unix/sysv/linux/mips/pread.c:69: error: memory input 7 is not 
directly addressable
../sysdeps/unix/sysv/linux/mips/pread.c:86: error: memory input 7 is not 
directly addressable
make[3]: *** 
[/export/build/toolchain1/new-tools/build-mipsel-070916-1933/crosstool-0.43/build/mipsel-digeo-linux/gcc-4.2.1-glibc-2.3.6/build-glibc/posix/pread.o] 
Error 1

The source line in question is:

  result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
                           __LONG_LONG_PAIR (offset >> 31, offset));

(I haven't dug into the macros yet, but I'm sure it's inline asm.)

On arm, after applying a patch for raise in linuxthreads and a patch for 
floating point, I get complaints about multiple defs of __floatundisf, 
__floatdidf, etc.  I'll dig into that next.

I just wanted to see if anyone else had already come up with patches for 
this stuff before I go spend a bunch of time on it - this task is 
tangential to what my job is supposed to be.  Anyone?  Any pointers 
would be appreciated.  (Snide remarks to /dev/null, please - you know 
who you are.  My understanding is that this list is for folks to HELP 
each other, and post patches and the like.)  I've googled but not found 
much that helped.

On that topic, it would be very nice if we could somehow arrange for 
patches that are submitted (e.g., for newer versions of gcc, glibc, 
etc.) to appear in crosstool (at least in svn) a bit more promptly.  
Perhaps Dan could delegate if he's too busy??

Here's the details (output from the script I use to kick off crosstool) 
for each platform:

+ cd crosstool-0.43
+ TARBALLS_DIR=/export/build/toolchain1/new-tools/sources
+ RESULT_TOP=/export/objdir/armv5tel-070916-1920/tools/armv5tel-070916
+ PREFIX=/export/objdir/armv5tel-070916-1920/tools/armv5tel-070916
+ export TARBALLS_DIR RESULT_TOP PREFIX
+ GCC_LANGUAGES=c,c++
+ export GCC_LANGUAGES
+ mkdir -p /export/objdir/armv5tel-070916-1920/tools/armv5tel-070916
+ TARGET=armv5tel-rst-linux
+ LINUX_SANITIZED_HEADER_DIR=
+ BINUTILS_DIR=binutils-2.17
+ GCC_DIR=gcc-4.2.1
+ GLIBC_DIR=glibc-2.3.6
+ GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6
+ GDB_DIR=gdb-6.6
+ 
USE_SYSROOT=/export/objdir/armv5tel-070916-1920/tools/armv5tel-070916/armv5tel-rst-linux/sys-root
+ 
LINUX_DIR=/export/build/toolchain1/new-tools/build-armv5tel-070916-1920/kernel
+ 
KERNELCONFIG=/export/build/toolchain1/new-tools/build-armv5tel-070916-1920/kernel/config/xscale-dev
+ TARGET_CFLAGS='-O2 -finline-limit=10000'
+ BINUTILS_EXTRA_CONFIG='   --enable-softfloat=yes     '
+ GCC_EXTRA_CONFIG='--enable-checking=yes  --enable-threads=posix 
--with-float=soft --with-cpu=xscale --enable-cxx-flags=-mcpu=xscale 
--with-endian=little --enable-cxx-flags=-mlittle-endian  
--enable-languages=c,c++ --enable-shared --enable-__cxa_atexit 
--disable-libgcj --enable-c99 --enable-long-long --disable-nls 
--enable-symvers=gnu --disable-multilib '
+ GLIBC_EXTRA_CONFIG=' --without-tls --without-thread --without-__thread 
--enable-add-ons=linuxthreads --without-fp    --disable-profile 
--disable-debug --without-gd --enable-shared --enable-kernel=2.6.16.16 
--without-cvs'
+ export TARGET LINUX_SANITIZED_HEADER_DIR BINUTILS_DIR GCC_DIR 
GLIBC_DIR GLIBCTHREADS_FILENAME GDB_DIR LINUX_DIR KERNELCONFIG 
TARGET_CFLAGS BINUTILS_EXTRA_CONFIG GCC_EXTRA_CONFIG GLIBC_EXTRA_CONFIG 
USE_SYSROOT
+ sh all.sh --notest --gdb

+ cd crosstool-0.43
+ TARBALLS_DIR=/export/build/toolchain1/new-tools/sources
+ RESULT_TOP=/export/objdir/mipsel-070916-1933/tools/mipsel-070916
+ PREFIX=/export/objdir/mipsel-070916-1933/tools/mipsel-070916
+ export TARBALLS_DIR RESULT_TOP PREFIX
+ GCC_LANGUAGES=c,c++
+ export GCC_LANGUAGES
+ mkdir -p /export/objdir/mipsel-070916-1933/tools/mipsel-070916
+ TARGET=mipsel-rst-linux
+ LINUX_SANITIZED_HEADER_DIR=
+ BINUTILS_DIR=binutils-2.17
+ GCC_DIR=gcc-4.2.1
+ GLIBC_DIR=glibc-2.3.6
+ GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6
+ GDB_DIR=gdb-6.6
+ 
USE_SYSROOT=/export/objdir/mipsel-070916-1933/tools/mipsel-070916/mipsel-rst-linux/sys-root
+ 
LINUX_DIR=/export/build/toolchain1/new-tools/build-mipsel-070916-1933/kernel
+ 
KERNELCONFIG=/export/build/toolchain1/new-tools/build-mipsel-070916-1933/kernel/config/mipsel-esata
+ TARGET_CFLAGS='-O2 -finline-limit=10000'
+ BINUTILS_EXTRA_CONFIG='   --enable-softfloat=yes     '
+ GCC_EXTRA_CONFIG='--enable-checking=yes  --enable-threads=posix 
--with-float=soft --with-arch=mips32 --with-tune=mips32 
--with-endian=little --enable-cxx-flags=-mel 
--enable-libunwind-exceptions --disable-sjlj-exceptions 
--enable-languages=c,c++ --enable-shared --enable-__cxa_atexit 
--disable-libgcj --enable-c99 --enable-long-long --disable-nls 
--enable-symvers=gnu --disable-multilib '
+ GLIBC_EXTRA_CONFIG=' --without-tls --without-thread --without-__thread 
--enable-add-ons=linuxthreads --without-fp    --disable-profile 
--disable-debug --without-gd --enable-shared --enable-kernel=2.6.12.2 
--without-cvs'
+ export TARGET LINUX_SANITIZED_HEADER_DIR BINUTILS_DIR GCC_DIR 
GLIBC_DIR GLIBCTHREADS_FILENAME GDB_DIR LINUX_DIR KERNELCONFIG 
TARGET_CFLAGS BINUTILS_EXTRA_CONFIG GCC_EXTRA_CONFIG GLIBC_EXTRA_CONFIG 
USE_SYSROOT
+ sh all.sh --notest --gdb

    Chris MacGregor

--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list