This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
sporadic pexecute problem with gcc-2.95.2 under glibc-2.1.9[2-4]
- To: bug-gcc at gnu dot org
- Subject: sporadic pexecute problem with gcc-2.95.2 under glibc-2.1.9[2-4]
- From: "Adam J. Richter" <adam at yggdrasil dot com>
- Date: Sat, 7 Oct 2000 05:37:32 -0700
SEND-PR: -*- send-pr -*-
SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as
SEND-PR: will all comments (text enclosed in `<' and `>').
SEND-PR:
From: adam
To: libc-alpha@sourceware.cygnus.com
Subject: sporadic pexecute problem with gcc-2.95.2 under glibc-2.1.9[2-4]
>Submitter-Id: net
>Originator: Adam J. Richter
>Organization:
Adam J. Richter __ ______________ 4880 Stevens Creek Blvd, Suite 104
adam@yggdrasil.com \ / San Jose, California 95129-1034
+1 408 261-6630 | g g d r a s i l United States of America
fax +1 408 261-6631 "Free Software For The Rest Of Us."
>
>Confidential: no
>Synopsis: sporadic "no child process" error from pwait at gcc-2.95.2/gcc/gcc.c:2328
>Severity: serious
>Priority: low
>Category: libc
>Class: sw-bug
>Release: libc-2.1.94
>Environment:
Host type: i686-pc-linux-gnu
System: Linux baldur 2.4.0-test9 #3 SMP Tue Oct 3 19:51:09 PDT 2000 i686 unknown
Architecture: i686
Addons: linuxthreads
Build CC: gcc
Compiler version: 2.95.2 19991024 (release)
Kernel headers: 2.4.0-test9
Symbol versioning: yes
Build static: yes
Build shared: yes
Build pic-default: no
Build profile: yes
Build omitfp: no
Build bounded: no
Build static-nss: no
Stdio: libio
>Description:
This is probably a gcc-2.95.2 or libiberty bug. I am using
the ./glibcbug script because I am also going to send this to
gcc-alpha for their reference, but I suspect the bug is in libiberty.
Occassionally, the "./configure" process of a program like
enlightenment or xscreensaver will fail with "configure: error:
installation or configuration problem: C compiler cannot create
executables." The failure is always traceable at line 2328 of
gcc-2.95.2/gcc/gcc.c in execute():
pid = pwait (commands[i].pid, &status, 0);
if (pid < 0) {
abort ();
}
At this point errno = 10 ("no child process"). This has only
been happening with recent glibc versions. It happens under glibc-2.1.94,
and I believe it had been happening as far back as glibc-2.1.92, although
I am not sure. At first, I thought the problem was some side effect of
pexecute() in libiberty using vfork instead of fork, but switching
to fork has not eliminated the problem.
The problem only happens sporadically. I have observed it
during a process that configures a bit more than 400 software
components (xscreensaver is 114th on this list and enlightenment is
125th). Interestingly, with libiberty's pexecute() calling vfork,
the error would almost always occur in the configuration of
xscreensaver, and now, with libiberty's pexecute() using fork for the
past week, I believe I have seen the error occur at the configuration
of enlightenment more than once.
>How-To-Repeat:
The problem is sporadic. So far, I have only seen it in our
build process.
Perhaps it might be possible to reproduce the problem by
unpacking the enlightenement sources from
ftp://ftp.enlightenment.org/pub/enlightenment/enlightenment/, unpacking
them, and doing something like the following in the enlightenemnt
top level sources directory:
while ./configure ; do true ; done
>Fix:
Unknown, but I think this is a libiberty bug.