summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/fixinc/fixincl.c7
-rw-r--r--gcc/fixinc/inclhack.tpl2
3 files changed, 15 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0a38aef0ebd..97a7e39d497 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+Mon May 17 19:45:41 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * fixinc/fixincl.c (process): Wait for children from chain_open()
+ to avoid creating zombies.
+
+ * fixinc/inclhack.tpl: Removed no-op pipe.
+
Mon May 17 07:23:34 1999 Mark Mitchell <mark@codesourcery.com>
* tree.def (TYPE_NONCOPIED_PARTS): Revise documentation to match
diff --git a/gcc/fixinc/fixincl.c b/gcc/fixinc/fixincl.c
index 47c9ef1344a..f4d76bb1d15 100644
--- a/gcc/fixinc/fixincl.c
+++ b/gcc/fixinc/fixincl.c
@@ -938,6 +938,7 @@ process (pz_data, pz_file_name)
tFixDesc *p_fixd = fixDescList;
int todo_ct = FIX_COUNT;
t_fd_pair fdp = { -1, -1 };
+ int num_children = 0;
/* IF this is the first time through,
THEN put the 'file' environment variable into the environment.
@@ -1086,6 +1087,7 @@ process (pz_data, pz_file_name)
if (fd != -1)
{
fdp.read_fd = fd;
+ num_children++;
break;
}
@@ -1172,4 +1174,9 @@ process (pz_data, pz_file_name)
fclose (in_fp);
}
close (fdp.read_fd); /* probably redundant, but I'm paranoid */
+
+ /* Wait for child processes created by chain_open()
+ to avoid creating zombies. */
+ while (--num_children >= 0)
+ wait ((int *) NULL);
}
diff --git a/gcc/fixinc/inclhack.tpl b/gcc/fixinc/inclhack.tpl
index c2b3b513f30..f5153bf0892 100644
--- a/gcc/fixinc/inclhack.tpl
+++ b/gcc/fixinc/inclhack.tpl
@@ -405,7 +405,7 @@ echo 'Removing unneeded directories:'
cd $LIB
all_dirs=`find . -type d -print | sort -r`
for file in $all_dirs; do
- rmdir $LIB/$file > /dev/null 2>&1 | :
+ rmdir $LIB/$file > /dev/null 2>&1
done
# # # # # # # # # # # # # # # # # # # # #