gcc cvs current miscompiles glibc 2.1.2pre3
Andreas Jaeger
aj@arthur.rhein-neckar.de
Mon Sep 6 11:31:00 GMT 1999
Hi,
the current CVS version:
$ /opt/gcc-2.96/bin/gcc -v
Reading specs from /opt/gcc-2.96/lib/gcc-lib/i486-pc-linux-gnu/2.96/specs
gcc version 2.96 19990905 (experimental)
miscompiles the current glibc 2.1.2prerelease.
gcc seems to miscompile elf/dl-load from looking at the strace output:
$ strace elf/ld.so string/tester
execve("elf/ld.so", ["elf/ld.so", "string/tester"], [/* 36 vars */]) = 0
getuid() = 207
getgid() = 100
geteuid() = 207
getegid() = 100
brk(0) = 0x800149d0
brk(0x800159d0) = 0x800159d0
open("string/tester", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=198117, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\2\0\3\0\1\0\0\0\220\213"..., 4096) = 4096
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40000000
getcwd("/usr/glibc/src/buildreport/19990905", 128) = 36
mmap(0x8048000, 36864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, -2147398184, 0) = -1 EBADF (Bad file descriptor)
close(-2147398184) = -1 EBADF (Bad file descriptor)
write(2, "string/tester", 13string/tester) = 13
write(2, ": error in loading shared librar"..., 37: error in loading shared libraries: ) = 37
write(2, "", 0) = 0
write(2, "", 0) = 0
write(2, "failed to map segment from share"..., 40failed to map segment from shared object) = 40
write(2, ": ", 2: ) = 2
write(2, "Error 9", 7Error 9) = 7
write(2, "\n", 1) = 1
_exit(127) = ?
The second mmap call (which appears in elf/dl-load.c) uses -2147398184
as fd which shouldn't happen - this is IMO the result of a compiler
bug.
My system: glibc 2.1.2pre3, Linux 2.2.12, i486.
Sorry, I don't have further info nor can I spend time on nailing this
down. I just wanted to make this known.
Andreas
--
Andreas Jaeger aj@arthur.rhein-neckar.de jaeger@informatik.uni-kl.de
for pgp-key finger ajaeger@aixd1.rhrk.uni-kl.de
More information about the Gcc-bugs
mailing list