[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#678589: gcc-4.7: Fails to build glibc (git master) [amd64]: '__EI___isnan' aliased to external symbol '__GI___isnan'



Package: gcc-4.7
Version: 4.7.1-1
Severity: normal

(See http://sourceware.org/bugzilla/show_bug.cgi?id=14281 for past
history on my investigations on this issue.)

When I try to build glibc, the git master branch, on Debian sid amd64,
I get this error:

make  subdir=math -C math ..=../ subdir_lib
make[2]: Entering directory `/home/lfs/sources/glibc-2.16/math'
gcc ../sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c -c -std=gnu99
-fgnu89-inline  -O2 -Wall -Winline -Wwrite-strings
-fmerge-all-constants -frounding-math -g -Wstrict-prototypes   -fPIC
 -Wno-uninitialized   -D__NO_MATH_INLINES
-D__LIBC_INTERNAL_MATH_INLINES -I../include
-I/home/lfs/sources/libc-build/math -I/home/lfs/sources/libc-build
-I../sysdeps/unix/sysv/linux/x86_64/64/nptl
-I../sysdeps/unix/sysv/linux/x86_64/64
-I../nptl/sysdeps/unix/sysv/linux/x86_64
-I../nptl/sysdeps/unix/sysv/linux/x86 -I../sysdeps/unix/sysv/linux/x86
-I../sysdeps/unix/sysv/linux/x86_64
-I../sysdeps/unix/sysv/linux/wordsize-64
-I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread
-I../sysdeps/pthread -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu
-I../sysdeps/unix/inet -I../nptl/sysdeps/unix/sysv
-I../sysdeps/unix/sysv -I../sysdeps/unix/x86_64 -I../nptl/sysdeps/unix
-I../sysdeps/unix -I../sysdeps/posix -I../nptl/sysdeps/x86_64/64
-I../sysdeps/x86_64/64 -I../sysdeps/x86_64/fpu/multiarch
-I../sysdeps/x86_64/fpu -I../sysdeps/x86/fpu
-I../sysdeps/x86_64/multiarch -I../nptl/sysdeps/x86_64
-I../sysdeps/x86_64 -I../sysdeps/x86 -I../sysdeps/ieee754/ldbl-96
-I../sysdeps/ieee754/dbl-64/wordsize-64 -I../sysdeps/ieee754/dbl-64
-I../sysdeps/ieee754/flt-32 -I../sysdeps/wordsize-64
-I../sysdeps/ieee754 -I../sysdeps/generic -I../nptl  -I.. -I../libio
-I.  -D_LIBC_REENTRANT -include ../include/libc-symbols.h  -DPIC
-DSHARED     -o /home/lfs/sources/libc-build/math/s_isnan.os -MD -MP
-MF /home/lfs/sources/libc-build/math/s_isnan.os.dt -MT
/home/lfs/sources/libc-build/math/s_isnan.os
../sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c:30:1: error:
'__EI___isnan' aliased to external symbol '__GI___isnan'
make[2]: *** [/home/lfs/sources/libc-build/math/s_isnan.os] Error 1
make[2]: Leaving directory `/home/lfs/sources/glibc-2.16/math'
make[1]: *** [math/subdir_lib] Error 2
make[1]: Leaving directory `/home/lfs/sources/glibc-2.16'
make: *** [all] Error 2

I tried building upstream GCC 4.7.1 with a configuration as close as
possible to Debian's:

../gcc-4.7.1/configure -v
--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.7 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--enable-gnu-unique-object --enable-plugin --enable-objc-gc
--with-arch-32=i586 --with-tune=generic --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu

(This was after doing "(cd /usr/lib; ln -sv x86_64-linux-gnu/*.o .)"
to work around upstream GCC not supporting multiarch.)  Once that was
done building, `pwd`/gcc/xgcc -B`pwd`/gcc -c /tmp/s_isnan.i -o
/tmp/s_isnan.o worked fine from the build directory, whereas gcc -c
/tmp/s_isnan.i -o /tmp/s_isnan.o reproduced the error.  So it looks
like this is most likely an issue introduced by one of the
Debian-specific patches.  (Also, it's a regression from Debian
gcc-4.6, which can compile the same preprocessed source without error.
 I've also verified gcc-4.6 can build all of glibc git master without
error.)

Attaching the preprocessed s_isnan.i file.
-- 
Daniel Schepler

Attachment: s_isnan.i
Description: Binary data


Reply to: