Problems with current cpp (compiling glibc fails)
Andreas Jaeger
aj@suse.de
Fri Jul 14 03:31:00 GMT 2000
With the current gcc (I've got the problem since the beginning of the
week) compilation of the current development glibc fails with:
(echo '#include <sysdep.h>'; \
echo 'PSEUDO (__kill, kill, 2)'; \
echo ' ret'; \
echo 'PSEUDO_END(__kill)'; \
echo 'weak_alias (__kill, kill)'; \
) | /opt/gcc-2.96.test/bin/gcc -c -I../include -I. -I/builds/glibc/20000628-main/signal -I.. -I../libio -I/builds/glibc/20000628-main -I../sysdeps/i386/elf -I../linuxthreads/sysdeps/unix/sysv/linux/i386 -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/i386/i686 -I../linuxthreads/sysdeps/i386 -I../soft-fp/sysdeps/i386 -I../sysdeps/unix/sysv/linux/i386/i686 -I../sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv -I../sysdeps/unix/i386/i686 -I../sysdeps/unix/i386/i586 -I../sysdeps/unix/i386 -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686/fpu -I../sysdeps/i386/i686 -I../sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../sysdeps/i386 -I../sysdeps/wordsize-32 -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 -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DASSEMBLER -DGAS_SYNTAX -x assembler-with-cpp -o /builds/glibc/20000628-main/signal/kill.o -
/tmp/ccenHSoC.s: Assembler messages:
/tmp/ccenHSoC.s:24: Error: ignoring junk `__kill' after expression
/tmp/ccenHSoC.s:24: Error: too many memory references for `ret'
make[2]: *** [/builds/glibc/20000628-main/signal/kill.o] Error 1
make[2]: Leaving directory `/usr/src/cvs/libc/signal'
This works fine with older GCCs.
A diff between an older GCC 2.96 version and the current one shows
(besides others):
+ ret .size __kill,.-__kill; 1: .stabs "",36,0,0,1b-__kill;
- ret
- .size __kill,.- __kill; 1: .stabs "",36,0,0,1b- __kill;
This is a change in the behaviour of GCC. Neil and Zack, could you
try compiling glibc with GCC, please?
I'm using:
$ /opt/gcc-2.96.test/bin/gcc -v
Reading specs from /opt/gcc-2.96.test/lib/gcc-lib/i686-pc-linux-gnu/2.96/specs
gcc version 2.96 20000713 (experimental)
and it was configured as:
/cvs/gcc/configure --prefix=/opt/gcc-2.96.test --enable-shared --enable-threads \
--with-gnu-as --with-gnu-ld
Andreas
P.S. Zack and Neil, two more problems:
gromit:/usr/src/cvs/libc/signal:[0]$ (echo '#include <sysdep.h>'; echo 'PSEUDO (__kill, kill, 2)'; echo ' ret'; echo 'PSEUDO_END(__kill)'; echo 'weak_alias (__kill, kill)'; ) | /opt/gcc-2.96.test/bin/gcc -c -I../include -I. -I/builds/glibc/20000628-main/signal -I.. -I../libio -I/builds/glibc/20000628-main -I../sysdeps/i386/elf -I../linuxthreads/sysdeps/unix/sysv/linux/i386 -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/i386/i686 -I../linuxthreads/sysdeps/i386 -I../soft-fp/sysdeps/i386 -I../sysdeps/unix/sysv/linux/i386/i686 -I../sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv -I../sysdeps/unix/i386/i686 -I../sysdeps/unix/i386/i586 -I../sysdeps/unix/i386 -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686/fpu -I../sysdeps/i386/i686 -I../sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../sysdeps/i386 -I../sysdeps/wordsize-32 -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 -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DASSEMBLER -DGAS_SYNTAX -x assembler-with-cpp -o /builds/glibc/20000628-main/signal/kill.i.buggy -E -dD -
gcc: Internal error: Segmentation fault (program cpp)
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
gromit:/usr/src/cvs/libc/signal:[1]$ (echo '#include <sysdep.h>'; echo 'PSEUDO (__kill, kill, 2)'; echo ' ret'; echo 'PSEUDO_END(__kill)'; echo 'weak_alias (__kill, kill)'; ) | /opt/gcc-2.96.test/bin/gcc -c -I../include -I. -I/builds/glibc/20000628-main/signal -I.. -I../libio -I/builds/glibc/20000628-main -I../sysdeps/i386/elf -I../linuxthreads/sysdeps/unix/sysv/linux/i386 -I../linuxthreads/sysdeps/unix/sysv/linux -I../linuxthreads/sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/i386/i686 -I../linuxthreads/sysdeps/i386 -I../soft-fp/sysdeps/i386 -I../sysdeps/unix/sysv/linux/i386/i686 -I../sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv -I../sysdeps/unix/i386/i686 -I../sysdeps/unix/i386/i586 -I../sysdeps/unix/i386 -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686/fpu -I../sysdeps/i386/i686 -I../sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../sysdeps/i386 -I../sysdeps/wordsize-32 -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 -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DASSEMBLER -DGAS_SYNTAX -x assembler-with-cpp -o /builds/glibc/20000628-main/signal/kill.i.buggy -save-temps -
cpp: Invalid option -.s
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
More information about the Libc-alpha
mailing list