I needed to make the following changes in order to compile on Solaris 9 with an older version of the Sun C compilers (one without any C99 or recent gcc-ish extensions). These changes should be compatible with all compilers though.
1) Unneccessary use of C99/gcc varargs macros in makedepend. The DBG_PRINT macro always uses three arguments, so specifying a variable number seems unneccessary. diff -ur 4.3.0/xc/config/makedepend/main.c solaris/xc/config/makedepend/main.c --- 4.3.0/xc/config/makedepend/main.c Fri Jan 17 09:09:49 2003 +++ solaris/xc/config/makedepend/main.c Tue Mar 4 14:58:38 2003 @@ -57,9 +57,9 @@ /* #define DEBUG_DUMP */ #ifdef DEBUG_DUMP -#define DBG_PRINT(args...) fprintf(args) +#define DBG_PRINT(a,b,c) fprintf(a,b,c) #else -#define DBG_PRINT(args...) /* empty */ +#define DBG_PRINT(a,b,c) /* empty */ #endif #define DASH_INC_PRE "#include \"" 2) ICWrap.c derefences function pointers when it shouldn't when trying to verify they are not NULL. diff -ur 4.3.0/xc/lib/X11/ICWrap.c solaris/xc/lib/X11/ICWrap.c --- 4.3.0/xc/lib/X11/ICWrap.c Mon Nov 25 06:04:53 2002 +++ solaris/xc/lib/X11/ICWrap.c Tue Mar 4 18:26:35 2003 @@ -395,9 +395,9 @@ XIC ic; { if (ic->core.im) { - if (*ic->methods->utf8_reset) + if (ic->methods->utf8_reset) return (*ic->methods->utf8_reset)(ic); - else if (*ic->methods->mb_reset) + else if (ic->methods->mb_reset) return (*ic->methods->mb_reset)(ic); } return (char *)NULL; @@ -443,10 +443,10 @@ Status *status; { if (ic->core.im) { - if (*ic->methods->utf8_lookup_string) + if (ic->methods->utf8_lookup_string) return (*ic->methods->utf8_lookup_string) (ic, ev, buffer, nbytes, keysym, status); - else if (*ic->methods->mb_lookup_string) + else if (ic->methods->mb_lookup_string) return (*ic->methods->mb_lookup_string) (ic, ev, buffer, nbytes, keysym, status); } 3) The -I. in xedit/lisp/Imakefile caused it to include the string.h in that directory for #include <string.h>, resulting in undefined structure errors. Removing it allowed the compile to finish sucessfully. (A better solution would be to not have headers with the same names as standard ANSI/POSIX standard includes.) diff -ur 4.3.0/xc/programs/xedit/lisp/Imakefile solaris/xc/programs/xedit/lisp/Imakefile --- 4.3.0/xc/programs/xedit/lisp/Imakefile Fri Dec 13 20:41:13 2002 +++ solaris/xc/programs/xedit/lisp/Imakefile Tue Mar 4 18:27:36 2003 @@ -112,7 +112,7 @@ DEFINES = -DLISP $(SHARED_DEFINES) -DLISPDIR='"$(LISPDIR)"' \ $(SNPRINTF_DEFS) $(SYS_DEFINES) $(SIGNAL_DEFINES) DEPLIBS = mp re - INCLUDES = -I. -Imp -Ire -I- $(MISC_INCLUDES) + INCLUDES = -Imp -Ire -I- $(MISC_INCLUDES) LOCAL_LIBRARIES = -L. -llisp -Lmp -lmp -Lre -lre -lm $(DLLIB) #ifdef IHaveSubdirs 4) Typo in the #else clause of #ifdef __GNUC__ in RenderLogo.c. Simply appears to have never been tested with anything that's not gcc. (An unrelated fix would be to check for C99 and if so, use __func__.) diff -ur 4.3.0/xc/programs/xlogo/RenderLogo.c solaris/xc/programs/xlogo/RenderLogo.c --- 4.3.0/xc/programs/xlogo/RenderLogo.c Sat Oct 19 12:15:32 2002 +++ solaris/xc/programs/xlogo/RenderLogo.c Tue Mar 4 18:30:03 2003 @@ -156,7 +156,7 @@ #ifdef __GNUC__ fprintf(stderr, "%s: intersection is off by: %f\n", __FUNCTION__, fabs(check - intersection->x)); #else - fprintf(stderr, "intersect: intersection is off by %f\n", fabs(check - instersection->x)); + fprintf(stderr, "intersect: intersection is off by %f\n", fabs(check - intersection->x)); #endif } } -Alan Coopersmith- [EMAIL PROTECTED] Sun Microsystems, Inc. - Sun Software Group Quality, Integration, & Customer Success (QICS) Platform Globalization Engin. - X11 Engineering _______________________________________________ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel