summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/crtstuff.c17
-rw-r--r--gcc/frame.c2
-rw-r--r--gcc/libgcc2.c2
4 files changed, 29 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b1e78141565..cd1fd980085 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,16 @@
1999-12-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
+ Otherwise provide a declaration for atexit.
+ (init_dummy): Make sure dummy call to atexit is nevertheless
+ called with correct number of args.
+
+ * frame.c: Update comments referring to other files.
+
+ * libgcc2.c: Likewise.
+
+1999-12-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
* cse.c (free_element, get_element): Remove unused prototypes.
* fold-const.c (extract_muldiv): Initialize variables `op0' and
diff --git a/gcc/crtstuff.c b/gcc/crtstuff.c
index c0a6ae02ffd..98e0779a5e2 100644
--- a/gcc/crtstuff.c
+++ b/gcc/crtstuff.c
@@ -52,6 +52,21 @@ Boston, MA 02111-1307, USA. */
do not apply. */
#include "tm.h"
+
+/* We disable this when inhibit_libc, so that gcc can still be built without
+ needing header files first. */
+/* ??? This is not a good solution, since prototypes may be required in
+ some cases for correct code. See also libgcc2.c/frame.c. */
+#ifndef inhibit_libc
+/* fixproto guarantees these system headers exist. */
+#include <stdlib.h>
+#include <unistd.h>
+#else
+# ifndef atexit
+extern int atexit(void (*)(void));
+# endif
+#endif
+
#include "defaults.h"
#include <stddef.h>
#include "frame.h"
@@ -403,7 +418,7 @@ init_dummy (void)
extern char **__environ;
___brk_addr = __environ;
- atexit ();
+ atexit (0);
}
#endif
}
diff --git a/gcc/frame.c b/gcc/frame.c
index e6f71bedec2..697d3f4f0a9 100644
--- a/gcc/frame.c
+++ b/gcc/frame.c
@@ -36,7 +36,7 @@ Boston, MA 02111-1307, USA. */
/* We disable this when inhibit_libc, so that gcc can still be built without
needing header files first. */
/* ??? This is not a good solution, since prototypes may be required in
- some cases for correct code. See also libgcc2.c. */
+ some cases for correct code. See also libgcc2.c/crtstuff.c. */
#ifndef inhibit_libc
/* fixproto guarantees these system headers exist. */
#include <stdlib.h>
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c
index 7cba424d1a7..8a1b703e209 100644
--- a/gcc/libgcc2.c
+++ b/gcc/libgcc2.c
@@ -35,7 +35,7 @@ Boston, MA 02111-1307, USA. */
/* We disable this when inhibit_libc, so that gcc can still be built without
needing header files first. */
/* ??? This is not a good solution, since prototypes may be required in
- some cases for correct code. See also frame.c. */
+ some cases for correct code. See also frame.c/crtstuff.c. */
#ifndef inhibit_libc
/* fixproto guarantees these system headers exist. */
#include <stdlib.h>