egcs-980221, sunos4 bootstrap failure + patch
Kaveh R. Ghazi
ghazi@caip.rutgers.edu
Tue Feb 24 11:46:00 GMT 1998
I had some trouble bootstrapping egcs-980221 on
sparc-sun-sunos4.1.3 because that platform contains a non-conforming
prototype of `free' in stdlib.h, and many new files are now including
stdlib.h whereas previously they did not.
> cc -c -DIN_GCC -g -DHAVE_CONFIG_H -I. -I. -I./config ./genattr.c
> "./genattr.c", line 38: redeclaration of free
> make[2]: *** [genattr.o] Error 1
The following patch adds NEED_DECLARATION_FREE macros to protect
from this whereever I found it necessary for the bootstrap to succeed.
--Kaveh
Tue Feb 24 13:34:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* genattr.c: Wrap prototype of `free' in NEED_DECLARATION_FREE.
* genattrtab.c: Likewise.
* genconfig.c: Likewise.
* genemit.c: Likewise.
* genextract.c: Likewise.
* genflags.c: Likewise.
* genopinit.c: Likewise.
* genoutput.c: Likewise.
* genpeep.c: Likewise.
* genrecog.c: Likewise.
* tlink.c: Likewise. Also wrap `getenv' in NEED_DECLARATION_GETENV.
diff -r -u /tmp/gcc-testing/egcs-980221/gcc/genattr.c egcs-980221/gcc/genattr.c
--- /tmp/gcc-testing/egcs-980221/gcc/genattr.c Sat Feb 7 17:54:21 1998
+++ egcs-980221/gcc/genattr.c Tue Feb 24 00:12:37 1998
@@ -35,7 +35,9 @@
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
+#ifdef NEED_DECLARATION_FREE
extern void free PROTO((void *));
+#endif
extern rtx read_rtx PROTO((FILE *));
char *xmalloc PROTO((unsigned));
diff -r -u /tmp/gcc-testing/egcs-980221/gcc/genattrtab.c egcs-980221/gcc/genattrtab.c
--- /tmp/gcc-testing/egcs-980221/gcc/genattrtab.c Fri Feb 13 00:30:42 1998
+++ egcs-980221/gcc/genattrtab.c Tue Feb 24 00:35:11 1998
@@ -140,7 +140,9 @@
/* Define this so we can link with print-rtl.o to get debug_rtx function. */
char **insn_name_ptr = 0;
+#ifdef NEED_DECLARATION_FREE
extern void free ();
+#endif
extern rtx read_rtx ();
static void fatal ();
diff -r -u /tmp/gcc-testing/egcs-980221/gcc/genconfig.c egcs-980221/gcc/genconfig.c
--- /tmp/gcc-testing/egcs-980221/gcc/genconfig.c Sat Feb 7 17:54:23 1998
+++ egcs-980221/gcc/genconfig.c Tue Feb 24 00:16:31 1998
@@ -35,7 +35,9 @@
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
+#ifdef NEED_DECLARATION_FREE
extern void free ();
+#endif
extern rtx read_rtx ();
/* flags to determine output of machine description dependent #define's. */
diff -r -u /tmp/gcc-testing/egcs-980221/gcc/genemit.c egcs-980221/gcc/genemit.c
--- /tmp/gcc-testing/egcs-980221/gcc/genemit.c Sat Feb 7 17:54:24 1998
+++ egcs-980221/gcc/genemit.c Tue Feb 24 00:33:52 1998
@@ -34,7 +34,9 @@
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
+#ifdef NEED_DECLARATION_FREE
extern void free ();
+#endif
extern rtx read_rtx ();
char *xmalloc ();
diff -r -u /tmp/gcc-testing/egcs-980221/gcc/genextract.c egcs-980221/gcc/genextract.c
--- /tmp/gcc-testing/egcs-980221/gcc/genextract.c Fri Feb 13 06:17:14 1998
+++ egcs-980221/gcc/genextract.c Tue Feb 24 00:31:17 1998
@@ -35,7 +35,9 @@
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
+#ifdef NEED_DECLARATION_FREE
extern void free ();
+#endif
extern rtx read_rtx ();
/* Names for patterns. Need to allow linking with print-rtl. */
diff -r -u /tmp/gcc-testing/egcs-980221/gcc/genflags.c egcs-980221/gcc/genflags.c
--- /tmp/gcc-testing/egcs-980221/gcc/genflags.c Sat Feb 7 17:54:26 1998
+++ egcs-980221/gcc/genflags.c Tue Feb 24 00:15:22 1998
@@ -37,7 +37,9 @@
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
+#ifdef NEED_DECLARATION_FREE
extern void free ();
+#endif
extern rtx read_rtx ();
char *xmalloc ();
diff -r -u /tmp/gcc-testing/egcs-980221/gcc/genopinit.c egcs-980221/gcc/genopinit.c
--- /tmp/gcc-testing/egcs-980221/gcc/genopinit.c Fri Feb 13 00:40:24 1998
+++ egcs-980221/gcc/genopinit.c Tue Feb 24 00:28:09 1998
@@ -36,7 +36,9 @@
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
+#ifdef NEED_DECLARATION_FREE
extern void free ();
+#endif
extern rtx read_rtx ();
char *xmalloc ();
diff -r -u /tmp/gcc-testing/egcs-980221/gcc/genoutput.c egcs-980221/gcc/genoutput.c
--- /tmp/gcc-testing/egcs-980221/gcc/genoutput.c Sat Feb 7 17:54:28 1998
+++ egcs-980221/gcc/genoutput.c Tue Feb 24 00:32:27 1998
@@ -111,7 +111,9 @@
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
+#ifdef NEED_DECLARATION_FREE
extern void free ();
+#endif
extern rtx read_rtx ();
char *xmalloc ();
diff -r -u /tmp/gcc-testing/egcs-980221/gcc/genpeep.c egcs-980221/gcc/genpeep.c
--- /tmp/gcc-testing/egcs-980221/gcc/genpeep.c Sat Feb 7 17:54:29 1998
+++ egcs-980221/gcc/genpeep.c Tue Feb 24 00:25:39 1998
@@ -34,7 +34,9 @@
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
+#ifdef NEED_DECLARATION_FREE
extern void free ();
+#endif
extern rtx read_rtx ();
/* While tree-walking an instruction pattern, we keep a chain
diff -r -u /tmp/gcc-testing/egcs-980221/gcc/genrecog.c egcs-980221/gcc/genrecog.c
--- /tmp/gcc-testing/egcs-980221/gcc/genrecog.c Thu Feb 19 22:13:58 1998
+++ egcs-980221/gcc/genrecog.c Tue Feb 24 00:29:23 1998
@@ -61,7 +61,9 @@
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
+#ifdef NEED_DECLARATION_FREE
extern void free ();
+#endif
extern rtx read_rtx ();
/* Data structure for a listhead of decision trees. The alternatives
diff -r -u /tmp/gcc-testing/egcs-980221/gcc/tlink.c egcs-980221/gcc/tlink.c
--- /tmp/gcc-testing/egcs-980221/gcc/tlink.c Fri Feb 13 00:40:33 1998
+++ egcs-980221/gcc/tlink.c Tue Feb 24 00:40:53 1998
@@ -49,8 +49,12 @@
#define obstack_chunk_free free
extern char * xmalloc PARAMS((unsigned));
+#ifdef NEED_DECLARATION_FREE
extern void free ();
+#endif
+#ifdef NEED_DECLARATION_GETENV
extern char * getenv ();
+#endif
/* Defined in collect2.c. */
extern int vflag, debug;
--
Kaveh R. Ghazi Project Manager / Custom Development
ghazi@caip.rutgers.edu ICon CMT Corp.
More information about the Gcc
mailing list