This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: can't build x86-32 libc on x86-64 with mainline binutils
- From: R Hill <dirtyepic dot sk at gmail dot com>
- To: Nick Clifton <nickc at redhat dot com>
- Cc: "H. J. Lu" <hjl at lucon dot org>, aoliva at redhat dot com, binutils at sources dot redhat dot com
- Date: Sat, 29 Apr 2006 00:14:03 -0600
- Subject: Re: can't build x86-32 libc on x86-64 with mainline binutils
- References: <or4q2gsou6.fsf@free.oliva.athome.lsd.ic.unicamp.br> <20060302183313.GB29439@lucon.org> <orzmk8r8jl.fsf@free.oliva.athome.lsd.ic.unicamp.br> <44081538.7070304@redhat.com>
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.