I'm running a fresh install of Solaris 10-sparc, and am having a helluvatime getting stunnel to configure.  I come from a Gentoo background, where compiling apps is second nature, and I'm not used to this kind of problem! 

I originally installed gcc3.3.2 using the sunfreeware package, and as an afterthought went back again using pkg-get to make sure I had all the dependencies I needed. When I run ./configure, it errors out:


# ./configure
configure: **************************************** initialization
checking for a BSD-compatible install... /opt/sfw/bin/ginstall -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... sparc-sun-solaris2.10
checking host system type... sparc-sun-solaris2.10
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for a BSD-compatible install... /opt/sfw/bin/ginstall -c
checking whether make sets $(MAKE)... (cached) yes
configure: **************************************** libtool
checking for a sed that does not truncate output... /opt/sfw/bin/gsed
checking for egrep... egrep
checking for ld used by gcc... /usr/ccs/bin/ld
checking if the linker (/usr/ccs/bin/ld) is GNU ld... no
checking for /usr/ccs/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /opt/sfw/lib/bin//nm -B
checking whether ln -s works... yes
checking how to recognise dependent libraries... pass_all
checking how to run the C preprocessor... /lib/cpp
configure: error: C preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.





relevant chunk of config.log:



configure:2615: checking whether gcc accepts -g
configure:2636: gcc -c -g  conftest.c >&5
configure:2642: $? = 0
configure:2645: test -z                          || test ! -s conftest.err
configure:2648: $? = 0
configure:2651: test -s conftest.o
configure:2654: $? = 0
configure:2665: result: yes
configure:2682: checking for gcc option to accept ANSI C
configure:2752: gcc  -c -g -O2  conftest.c >&5
In file included from conftest.c:13:
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:36:27: iso/stdio_iso.h: No such file or directory
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:105:27: iso/stdio_c99.h: No such file or directory
In file included from conftest.c:13:
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:210: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:246: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:247: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:256: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:258: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:282: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:284: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:295: error: parse error before '*' token
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/stdio.h:296: error: parse error before "FILE"
In file included from conftest.c:14:
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:27:31: sys/feature_tests.h: No such file or directory
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:28 :26: sys/isa_defs.h: No such file or directory
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:33:27: sys/machtypes.h: No such file or directory
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:45:27: sys/int_types.h: No such file or directory
In file included from conftest.c:14:
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:68: error: parse error before "int32_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:72: error: parse error before "uint32_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:214: error: parse error before "int32_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:219: error: parse error before "uint32_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:225: error: parse error before "int32_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:230: error: parse error before "uint32_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:233: error: parse error before "offset_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:234: error: parse error before "u_offset_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:235: error: parse error before "len_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:236: error: parse error before "diskaddr_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:395: error: parse error before "uint16_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:397: error: parse error before "__pthread_mutex_ceiling"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:398: error: parse error before "__pthread_mutex_type"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:399: error: parse error before "__pthread_mutex_magic"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:403: error: parse error before "uint8_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:406: error: parse error before "uint32_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:409: error: parse error before "__pthread_mutex_owner64"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:411: error: parse error before "__pthread_mutex_data"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:416: error: parse error before "uint8_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:418: error: parse error before "__pthread_cond_magic"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:420: error: parse error before "__pthread_cond_data"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:427: error: parse error before "int32_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:429: error: parse error before "__pthread_rwlock_magic"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:430: error: parse error before "__pthread_rwlock_mutex"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:431: error: parse error before "__pthread_rwlock_readercv"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:432: error: parse error before "__pthread_rwlock_writercv"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:439: error: parse error before "uint32_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:441: error: parse error before "__pthread_barrier_cycle"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:442: error: parse error before "__pthread_barrier_reserved"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:443: error: parse error before "__pthread_barrier_lock"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:444: error: parse error before "__pthread_barrier_cond"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:447: error: parse error before "pthread_spinlock_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:474: error: parse error before "upad64_t"
/usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/include/sys/types.h:618:24: sys/select.h: No such file or directory
conftest.c:15:22: sys/stat.h: No such file or directory
conftest.c:18: error: parse error before '*' token
conftest.c:18: warning: `struct stat' declared inside parameter list
conftest.c:18: warning: its scope is only this definition or declaration, which is probably not what you want
conftest.c:18: warning: data definition has no type or storage class
conftest.c:47: error: parse error before "FILE"
conftest.c:47: warning: `struct stat' declared inside parameter list
conftest.c:47: error: `pairnames' declared as function returning a function
conftest.c:47: error: parse error before "int"
configure:2758: $? = 1
configure: failed program was:
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "stunnel"
| #define PACKAGE_TARNAME "stunnel"
| #define PACKAGE_VERSION "4.14"
| #define PACKAGE_STRING "stunnel 4.14"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "stunnel"
| #define VERSION "4.14"
| #define HOST "sparc-sun-solaris2.10"
| /* end confdefs.h.  */
| #include <stdarg.h>
| #include <stdio.h>
| #include <sys/types.h>
| #include <sys/stat.h>
| /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
| struct buf { int x; };
| FILE * (*rcsopen) (struct buf *, struct stat *, int);
| static char *e (p, i)
|      char **p;
|      int i;
| {
|   return p[i];
| }
| static char *f (char * (*g) (char **, int), char **p, ...)
| {
|   char *s;
|   va_list v;
|   va_start (v,p);
|   s = g (p, va_arg (v,int));
|   va_end (v);
|   return s;
| }
|
| /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
|    function prototypes and stuff, but not '\xHH' hex character constants.
|    These don't provoke an error unfortunately, instead are silently treated
|    as 'x'.  The following induces an error, until -std1 is added to get
|    proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
|    array size at least.  It's necessary to write '\x00'==0 to get something
|    that's true only with -std1.  */
| int osf4_cc_array ['\x00' == 0 ? 1 : -1];
|
| int test (int i, double x);
| struct s1 {int (*f) (int a);};
| struct s2 {int (*f) (double a);};
| int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
| int argc;
| char **argv;
| int
| main ()
| {
| return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
|   ;
|   return 0;
| }




I'm at my wits end at this point.  Any help would be greatly appreciated!


# uname -a
SunOS foobar 5.10 Generic sun4u sparc SUNW,Sun-Blade-100

# gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.10/3.3.2/specs
Configured with: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls
Thread model: posix
gcc version 3.3.2

# make -v
GNU Make 3.80
Copyright (C) 2002  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

Thanks

Cam