Subject: Re: pkgsrc compilation failure on redhat linux 7.2
To: Jan Schaumann <jschauma@netmeister.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 12/28/2002 11:40:31
> > gcc -I. -I. -DHAVE_CONFIG_H  -I./missing -DNEED_HOST_CDEFS_H
> > "-D_PATH_DEFSYSPATH=\"/usr/pkg/share/mk\"" -DMAKE_BOOTSTRAP    -c -o
> > compat.o compat.c
> > compat.c: In function `CompatRunCommand':
> > compat.c:318: incompatible type for argument 1 of `wait'

I have had same problems.

> What version of gcc is this?  If it happens to be 2.96 or 3.x, could you
> try with 2.95.x and see if that works?

This made me realize that may have been the change on my system. I was
using Debian Linux packages gcc 2.95.4-15 and gcc-2.95 2.95.4-10. (I
originally used that to build my bmake, et cetera via bootstrap-pkgsrc.)

Now I am using gcc-2.95.3 as installed from pkgsrc (with one patch shown
below signature). And I am having various troubles.

But I also replaced my libc from Debian Linux package libc6-dev
2.2.5-11.1 to version 2.2.5 (installed via my pkgsrc). So I was assuming
that was where the problems came from.

I now just tried with gcc (GCC) 3.2.1 (from Masao Uebayashi email) and
still:

gcc -I. -I. -DHAVE_CONFIG_H  -I./missing -DNEED_HOST_CDEFS_H
"-D_PATH_DEFSYSPATH=\"/usr/share/mk\"" -DMAKE_BOOTSTRAP    -c -o compat.o
compat.c
compat.c: In function `CompatRunCommand':
compat.c:318: incompatible type for argument 1 of `wait'
make: *** [compat.o] Error 1

I guess I will now try reverting to old gcc and trying again.

   Jeremy C. Reed
   http://bsd.reedmedia.net/

My pkgsrc/lang/gcc/patches/patch-af below:

--- ../gcc-2.95.3/libio/stdstreams.cc.orig	2002-12-20 10:24:57.000000000 -0800
+++ ../gcc-2.95.3/libio/stdstreams.cc	2002-12-20 10:25:55.000000000 -0800
@@ -112,6 +112,7 @@
   _fake_istream NAME = {{0, 0, &NAME.base}, {STD_STR(SBUF, TIE, EXTRA_FLAGS)}};
 #endif

+#ifndef _STDIO_USES_IOSTREAM
 OSTREAM_DEF(cout, COUT_SBUF, NULL, 0, )
 OSTREAM_DEF(cerr, CERR_SBUF,(ostream*)&cout, ios::unitbuf, )
 ISTREAM_DEF(cin, CIN_SBUF,  (ostream*)&cout, 0)
@@ -122,6 +123,7 @@
 #else
 OSTREAM_DEF(clog, CERR_SBUF, (ostream*)&cout, 0, )
 #endif
+#endif

 // Switches between using _IO_std{in,out,err} and __std{in,out,err}_buf
 // for standard streams.  This does not normally need to be called