This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Problems with current cpp (compiling glibc fails)



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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]