can't build x86-32 libc on x86-64 with mainline binutils

R Hill dirtyepic.sk@gmail.com
Sat Apr 29 23:54:00 GMT 2006


Nick Clifton wrote:

>> Anyhow, here's the testcase:
>>
>>     .tfloat 0.3465735902799726547086160
> 
> Ah ha - difficult to reproduce but yes I now get:
> 
>   foo.s: Assembler messages:
>   foo.s:1: Fatal error: failed sanity check
> 
> Note - this bug does not seem to have stopped me from building gcc with 
> the mainline sources, but then I am not configuring with glibc in the 
> same way as you and there are probably some other differences in our 
> build environments as well.
> 
> I assume however that this must be a gcc bug - ie it has miscompiled 
> gas.  Have you investigated further yet ?


We've hit this as well on x86 and x86_64, but in a different spot.

x86_64-pc-linux-gnu-gcc ../sysdeps/x86_64/fpu/s_expm1l.S -c -D__NO_MATH_INLINES 
-D__LIBC_INTERNAL_MATH_INLINES -I../include 
-I/var/tmp/portage/glibc-2.4-r2/work/build-amd64-x86_64-pc-linux-gnu-nptl/math 
-I/var/tmp/portage/glibc-2.4-r2/work/build-amd64-x86_64-pc-linux-gnu-nptl 
-I../sysdeps/x86_64/elf -I../nptl/sysdeps/unix/sysv/linux/x86_64 
-I../sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/wordsize-64 
-I../ports/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux 
-I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../sysdeps/unix/sysv/linux 
-I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman 
-I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv -I../nptl/sysdeps/unix/sysv 
-I../sysdeps/unix/sysv -I../sysdeps/unix/x86_64 -I../ports/sysdeps/unix 
-I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix 
-I../sysdeps/x86_64/fpu -I../nptl/sysdeps/x86_64 -I../sysdeps/x86_64 
-I../sysdeps/wordsize-64 -I../sysdeps/ieee754/ldbl-96 
-I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 
-I../sysdeps/generic/elf -I../sysdeps/generic -I../ports -I../nptl  -I.. 
-I../libio -I. -nostdinc -isystem 
/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.0-pre20060421/include -isystem /usr/include 
-D_LIBC_REENTRANT -include ../include/libc-symbols.h   -DNOT_IN_libc=1 
-DIS_IN_libm=1    -DASSEMBLER   -Wa,--noexecstack -Wa,--noexecstack  -o 
/var/tmp/portage/glibc-2.4-r2/work/build-amd64-x86_64-pc-linux-gnu-nptl/math/s_expm1l.o 
-MD -MP -MF 
/var/tmp/portage/glibc-2.4-r2/work/build-amd64-x86_64-pc-linux-gnu-nptl/math/s_expm1l.o.dt 
-MT 
/var/tmp/portage/glibc-2.4-r2/work/build-amd64-x86_64-pc-linux-gnu-nptl/math/s_expm1l.o
../sysdeps/x86_64/fpu/s_expm1l.S: Assembler messages:
../sysdeps/x86_64/fpu/s_expm1l.S:40: Fatal error: failed sanity check


Testcase is:

.tfloat 1.442695040888963407359924681002


Glibc is 2.4, configured with:

configure --disable-nls
     --disable-stackguard-randomization
     --enable-old-ssp-compat
     --enable-omitfp
     --with-tls
     --with-__thread
     --enable-add-ons=ports,nptl,c_stubs,libidn
     --enable-kernel=2.6.11
     --without-selinux
     --without-cvs
     --enable-bind-now
     --build=x86_64-pc-linux-gnu
     --host=x86_64-pc-linux-gnu
     --disable-profile
     --without-gd
     --with-headers=/usr/include
     --prefix=/usr
     --libdir=/usr/lib64
     --mandir=/usr/share/man
     --infodir=/usr/share/info
     --libexecdir=/usr/lib64/misc/glibc


Binutils is 2.16.92, configured with:

configure --prefix=/usr
     --host=x86_64-pc-linux-gnu
     --target=x86_64-pc-linux-gnu
     --datadir=/usr/share/binutils-data/x86_64-pc-linux-gnu/2.16.92
     --infodir=/usr/share/binutils-data/x86_64-pc-linux-gnu/2.16.92/info
     --mandir=/usr/share/binutils-data/x86_64-pc-linux-gnu/2.16.92/man
     --bindir=/usr/x86_64-pc-linux-gnu/binutils-bin/2.16.92
     --libdir=/usr/lib64/binutils/x86_64-pc-linux-gnu/2.16.92
     --libexecdir=/usr/lib64/binutils/x86_64-pc-linux-gnu/2.16.92
     --includedir=/usr/lib64/binutils/x86_64-pc-linux-gnu/2.16.92/include
     --enable-64-bit-bfd
     --enable-shared
     --disable-werror
     --disable-nls
     --build=x86_64-pc-linux-gnu


and GCC is 20060428 svn:

Using built-in specs.
Target: x86_64-pc-linux-gnu
Configured with: 
/var/tmp/portage/gcc-4.2.0_pre20060428/work/gcc-4.2.0-20060428/configure 
--prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.2.0-pre20060428 
--includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.0-pre20060428/include 
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.2.0-pre20060428 
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.2.0-pre20060428/man 
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.2.0-pre20060428/info 
--with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.0-pre20060428/include/g++-v4 
--host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec 
--disable-nls --with-system-zlib --disable-checking --disable-werror 
--disable-libunwind-exceptions --disable-multilib --disable-libmudflap 
--disable-libssp --disable-libgcj --enable-languages=c,c++ --enable-shared 
--enable-threads=posix --enable-bootstrap --enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
gcc version 4.2.0-pre20060428  (experimental)


Has there been any progress on this or has there been a PR opened against GCC?


--de.




More information about the Binutils mailing list