egcs-1.1.2 installation, sparc-solaris

Michael Smith
Fri May 7 15:01:00 GMT 1999

I've run into a problem installing egcs-1.1.2 on an ultrasparc running
Solaris 2.6. While building libio, cc1plus gives up. I'm not the first
person to see this problem, see:

The actual error message looks like this:
test x"yes" != xyes || \
  /ccnroot/michael/objdir/gcc/xgcc -B/ccnroot/michael/objdir/gcc/ -c -g
-O2 -fno-implicit-templates -I. -I../../../egcs-1.1.2/libio -nostdinc++
`case "-g -g -O2 -fno-implicit-templates" in *-fpic* ) echo -fpic ;; * )
echo -fPIC ;; esac` ../../../egcs-1.1.2/libio/ -o pic/isscan.o
../../../egcs-1.1.2/libio/ In method `class istream & istream::scan(const char * ...)':
../../../egcs-1.1.2/libio/ no matching function for call to
`streambuf::vscan (const char *&, void *&, istream *)'
../../../egcs-1.1.2/libio/streambuf.h:403: candidates are:
streambuf::vscan(const char *, char *, ios *)
make[2]: *** [isscan.o] Error 1

I traced it back to libio/gen-params picking the default of char * to
typedef _G_va_list. gen-params writes a "typedef va_list XXXva_list" into
dummy.c and preprocesses it so that va_list can be replaced by a #define
(if it should be). But va_list isn't a #define, it's a typedef...
I may be wrong about some of this.

To fix it, I put a line like
	va_list="void *"
near the top of gen-params.

Why doesn't libio just use va_list instead of _IO_va_list and _G_va_list?
arghghghghgg.... ;)

More information about the Gcc-bugs mailing list