This is the mail archive of the libc-hacker@cygnus.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]

Re: make check failed on libc-2.0.110


>>>>> Ulrich Drepper writes:

 > I've got a few reports that the tests failed and also that the
 > compiler aborts, all on ix86 platforms.  In the second case the
 > compiler is certainly buggy.  A correct compiler does not abort.

The illegal instruction might not come from the compiler, it could
come from the vfork implementation!

 > For the case when apparently wrong code is generated: I can only say
 > that I have tested it several times.  It compiles, checks, and
 > installs correctly.  This is on ix86 with the highest optimizations.
 > The only thing is that it is a patched egcs version, based on the
 > current development version.  Those who are working with me on the
 > library and who also constantly recompile glibc also haven't reported
 > problems.

 > So my first guess is that the compilers which were used are broken.
 > This very well can be.  That I compiler worked so far does not mean
 > anything.  Rather the other direction: if the compiler works for
 > compiling glibc there is a good chance it has no big bugs.

That's (in my case) the same compiler that compiles every odd day a
glibc.

 > But there is another chance.  I've replaced a few of the most often
 > used functions for i686 with assembler versions I wrote.  I think they
 > work but I might have missed a point.
Shouldn't be the problem since we've got reports on i586, i686 and
i486 (myself).

 > So, I really need somebody who has the problems to grab the debugger
 > and look where the programs crash.

But I've noticed that all use Linux 2.2.0pre7 (myself included) that
get these failures.

I disabled the use of the vfork syscall in
sysdeps/unix/sysv/linux/vfork.c (changing #ifdef __NR_vfork to #if 0)
and make stdio-common/tests and make timezone/tests was both sucessful
(that's the tests that failed before).  I fear that vfork (either the
glibc wrapper or the Linux implementation) is broken :-(.


Andreas

P.S.: I'm testing glibc 2.1.110 with egcs 1.1.1, binutils 2.9.1.0.19,
Linux 2.2.0pre7 on i486.

P.S.2: Here's the trivial patch for vfork which gets things working
for me.  This isn't a final solution, it's just a workaround.

--- sysdeps/unix/sysv/linux/vfork.c.~1~	Thu Jan 14 07:33:06 1999
+++ sysdeps/unix/sysv/linux/vfork.c	Fri Jan 15 09:08:59 1999
@@ -24,7 +24,7 @@
 
 extern pid_t __syscall_fork __P ((void));
 
-#ifdef __NR_vfork
+#if 0
 extern pid_t __syscall_vfork __P ((void));
 
 /* Use the system call.  If it's not available, fork is close enough.  */

-- 
 Andreas Jaeger   aj@arthur.rhein-neckar.de    jaeger@informatik.uni-kl.de
  for pgp-key finger ajaeger@aixd1.rhrk.uni-kl.de


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