gcc 4.x series arm-softfloat-linux showstopper...

Michelsen, Robert Robert.Michelsen@vitk.vossloh.com
Wed Jul 6 14:06:00 GMT 2005


Hello again,

i've been tinkering with gcc 4.x builds for quite some time now,
getting it compiled for my arm-softfloat-linux target.
I want to make some tests how C++ specific optimization has improved vs.
gcc 3.4.x series.

I am using binutils 2.15 and 2.16.x series and

gcc 4.0.0 release
gcc-4.0.1-20050702
pre 4.1 snapshot.

and glibc 2.3.x combinations

$ ls patches/gcc-4.0.1-20050702/
gcc-3.4.0-arm-lib1asm.patch  gcc-4.0-arm-bigendian.patch
gcc-4.0-arm-nolibfloat.patch

(and some a little quick-hack for glibc, removing some unneeded
weak_aliases which
stop compiler from building)

I got stuck in glibc on all three 4.x versions...

---------- snip --------------

arm-softfloat-linux-gnu-gcc  ../sysdeps/ieee754/dbl-64/s_erf.c -c
-std=gnu99 -O -Wall 
-Winline -Wstrict-prototypes -Wwrite-strings -Wno-uninitialized
-D__NO_MATH_INLINES 
-D__LIBC_INTERNAL_MATH_INLINES -DNO_LONG_DOUBLE -D_Mlong_double_=double
-I../include 
-I.
-I/opt/crosstool/src/crosstool-0.36/build/arm-softfloat-linux-gnu/gcc-4.
0.1-20050702-glibc-2.3.3/
build-glibc/math -I.. -I../libio  
-I/opt/crosstool/src/crosstool-0.36/build/arm-softfloat-linux-gnu/gcc-4.
0.1-20050702-glibc-2.3.3/build-glibc
-I../sysdeps/arm/elf -I../linuxthreads/sysdeps/unix/sysv/linux/arm
-I../linuxthreads/sysdeps/unix
/sysv/linux -I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread
-I../linuxthreads/sysdeps/unix/sysv
 -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/arm
-I../sysdeps/unix/sysv/linux/arm 
-I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common
-I../sysdeps/unix/mman
 -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/arm
-I../sysdeps/unix -I../sysdeps/posix 
-I../sysdeps/arm -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32
-I../sysdeps/ieee754/dbl-64 
-I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic
-nostdinc 
-isystem
/opt/crosstool/gcc-4.0.1-20050702-glibc-2.3.3/arm-softfloat-linux-gnu/li
b/gcc/
arm-softfloat-linux-gnu/4.0.1/include -isystem
/opt/crosstool/gcc-4.0.1-20050702-glibc-2.3.3/
arm-softfloat-linux-gnu/arm-softfloat-linux-gnu/include 
-D_LIBC_REENTRANT -include ../include/libc-symbols.h   -DNOT_IN_libc=1
-DIS_IN_libm=1    
-o /opt/crosstool/src/crosstool-0.36/build/arm-softfloat-linux-gnu/
gcc-4.0.1-20050702-glibc-2.3.3/build-glibc/math/s_erf.o 
-MD -MP -MF
/opt/crosstool/src/crosstool-0.36/build/arm-softfloat-linux-gnu/
gcc-4.0.1-20050702-glibc-2.3.3/build-glibc/math/s_erf.o.dt

/cygdrive/c/Temp/ccKPWOnF.s: Assembler messages:
/cygdrive/c/Temp/ccKPWOnF.s:1708: Error: invalid constant (fffffbfc)
after fixup
make[2]: ***
[/opt/crosstool/src/crosstool-0.36/build/arm-softfloat-linux-gnu/
gcc-4.0.1-20050702-glibc-2.3.3/build-glibc
/math/s_erf.o] Error 1
make[2]: Leaving directory
`/opt/crosstool/src/crosstool-0.36/build/arm-softfloat-linux-gnu/
gcc-4.0.1-20050702-glibc-2.3
.3/glibc-2.3.3/math'
make[1]: *** [math/others] Error 2
make[1]: Leaving directory
`/opt/crosstool/src/crosstool-0.36/build/arm-softfloat-linux-gnu/
gcc-4.0.1-20050702-glibc-2.3
.3/glibc-2.3.3'
make: *** [all] Error 2

---------- snip --------------

The offending file seems to be "../sysdeps/ieee754/dbl-64/s_erf.c" for
which 
invalid code is generated for (assembler: "Error: invalid constant
(xxxx) after fixup?")

I'm not really experienced in compiler/toolchain bugfixing so i dont
know if this is caused by
binutils (assembler?) or gcc itself?
I've tested with binutils 2.15, 2.16, 2.16.x and glibc 2.3.3, 2.3.4,
2.3.5 ... same everywhere.

Maybe someone can shed any light on this...
I've come that far and that seems to be the only showstopper before i
can build and run _real_ software with it ;-)

Regards,

Robert

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com



More information about the crossgcc mailing list