diff options
author | Orion Poplawski <orion@cora.nwra.com> | 2015-02-09 15:51:26 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2015-02-09 15:52:21 +0100 |
commit | 95dbaa6149b496a6851fc6422f54dd8393217269 (patch) | |
tree | 7af4dc662fd810f7fabad6309a2dd5d56883ce74 /debian/patches/055_nx-X11_imake-Werror-format-security.full.patch | |
parent | 0b711de48cdb04f4328eff75f82b97f9a07cbfbf (diff) | |
download | nx-libs-95dbaa6149b496a6851fc6422f54dd8393217269.tar.gz nx-libs-95dbaa6149b496a6851fc6422f54dd8393217269.tar.bz2 nx-libs-95dbaa6149b496a6851fc6422f54dd8393217269.zip |
Fix FTBFS when compiled with -Werror=format-security (055_nx-X11_imake-Werror-format-security.full.patch).
Diffstat (limited to 'debian/patches/055_nx-X11_imake-Werror-format-security.full.patch')
-rw-r--r-- | debian/patches/055_nx-X11_imake-Werror-format-security.full.patch | 1090 |
1 files changed, 0 insertions, 1090 deletions
diff --git a/debian/patches/055_nx-X11_imake-Werror-format-security.full.patch b/debian/patches/055_nx-X11_imake-Werror-format-security.full.patch deleted file mode 100644 index 6e5b4c80e..000000000 --- a/debian/patches/055_nx-X11_imake-Werror-format-security.full.patch +++ /dev/null @@ -1,1090 +0,0 @@ -Description: Fix FTBFS when compiled with -Werror=format-security -Author: Orion Poplawski <orion@cora.nwra.com> -diff -up a/nx-X11/config/imake/imake.c b/nx-X11/config/imake/imake.c ---- a/nx-X11/config/imake/imake.c 2014-01-04 13:39:35.000000000 -0700 -+++ b/nx-X11/config/imake/imake.c 2014-01-24 13:55:53.940697330 -0700 -@@ -7,8 +7,6 @@ - * be passed to the template file. * - * * - ***************************************************************************/ --/* $XFree86: xc/config/imake/imake.c,v 3.63tsi Exp $ */ -- - /* - * - Copyright (c) 1985, 1986, 1987, 1998 The Open Group -@@ -153,23 +151,14 @@ in this Software without prior written a - #endif - #include <stdlib.h> - #include <stdio.h> --#ifdef MONOLITH --# include "Xosdefs.h" --#else --# include <X11/Xosdefs.h> --#endif -+#include <stdarg.h> -+#include <X11/Xfuncproto.h> -+#include <X11/Xosdefs.h> - #include <string.h> - #include <ctype.h> - #ifdef WIN32 - # include "Xw32defs.h" - #endif --#if 0 --#ifndef X_NOT_POSIX --# ifndef _POSIX_SOURCE --# define _POSIX_SOURCE --# endif --#endif --#endif - #include <sys/types.h> - #include <fcntl.h> - #ifdef X_NOT_POSIX -@@ -231,22 +220,16 @@ typedef union wait waitType; - # define WIFEXITED(w) waitCode(w) - # endif - #endif /* X_NOT_POSIX */ --# include <stdlib.h> --#if defined(macII) && !defined(__STDC__) /* stdlib.h fails to define these */ --char *malloc(), *realloc(); --#endif /* macII */ -+#include <stdlib.h> - #include <errno.h> - #ifdef __minix_vmd --#define USE_FREOPEN 1 -+# define USE_FREOPEN 1 - #endif - --#if !((defined(sun) && !defined(SVR4)) || defined(macII)) --#define USE_STRERROR 1 --#endif - #ifndef WIN32 --#include <sys/utsname.h> -+# include <sys/utsname.h> - #else --#include <windows.h> -+# include <windows.h> - #endif - #ifndef SYS_NMLN - # ifdef _SYS_NMLN -@@ -256,39 +239,22 @@ char *malloc(), *realloc(); - # endif - #endif - #if defined(linux) || defined(__GNU__) || defined(__GLIBC__) --#include <limits.h> --#include <stdio.h> -+# include <limits.h> -+# include <stdio.h> - #endif - #ifdef __QNX__ --#include <unix.h> --#endif -- --/* -- * This define of strerror is copied from (and should be identical to) -- * Xos.h, which we don't want to include here for bootstrapping reasons. -- */ --#ifndef USE_STRERROR --# ifndef strerror --extern char *sys_errlist[]; --extern int sys_nerr; --# define strerror(n) \ -- (((n) >= 0 && (n) < sys_nerr) ? sys_errlist[n] : "unknown error") --# endif -+# include <unix.h> - #endif - - #if defined(__NetBSD__) /* see code clock in init() below */ --#include <sys/utsname.h> --#endif -- --#if !(defined(Lynx) || defined(__Lynx__) || (defined(SVR4) && !defined(sun))) && !defined (__CYGWIN__) --#define HAS_MKSTEMP -+# include <sys/utsname.h> - #endif - - typedef unsigned char boolean; - #define TRUE 1 - #define FALSE 0 - --# include "imakemdep.h" -+#include "imakemdep.h" - #ifdef CROSSCOMPILE - # include "imakemdep_cpp.h" - #endif -@@ -305,7 +271,7 @@ int xvariables[10]; - #endif - - #ifndef PATH_MAX --#define PATH_MAX 1024 -+# define PATH_MAX 1024 - #endif - - /* -@@ -331,11 +297,13 @@ void KludgeOutputLine(char **), KludgeRe - # endif - #endif - --char *cpp = NULL; -+const char *cpp = NULL; - --char *tmpMakefile = "/tmp/Imf.XXXXXX"; --char *tmpImakefile = "/tmp/IIf.XXXXXX"; --char *make_argv[ ARGUMENTS ] = { -+const char *tmpMakefile; -+const char *tmpMakefileTemplate = "/tmp/Imf.XXXXXX"; -+const char *tmpImakefile; -+const char *tmpImakefileTemplate = "/tmp/IIf.XXXXXX"; -+const char *make_argv[ ARGUMENTS ] = { - #ifdef WIN32 - "nmake" - #else -@@ -345,53 +313,53 @@ char *make_argv[ ARGUMENTS ] = { - - int make_argindex; - int cpp_argindex; --char *Imakefile = NULL; --char *Makefile = "Makefile"; --char *Template = "Imake.tmpl"; --char *ImakefileC = "Imakefile.c"; -+const char *Imakefile = NULL; -+const char *Makefile = "Makefile"; -+const char *Template = "Imake.tmpl"; -+const char *ImakefileC = "Imakefile.c"; - boolean haveImakefileC = FALSE; --char *cleanedImakefile = NULL; --char *program; --char *FindImakefile(char *Imakefile); --char *ReadLine(FILE *tmpfd, char *tmpfname); --char *CleanCppInput(char *imakefile); --char *Strdup(char *cp); -+const char *cleanedImakefile = NULL; -+const char *program; -+const char *FindImakefile(const char *Imakefile); -+char *ReadLine(FILE *tmpfd, const char *tmpfname); -+const char *CleanCppInput(const char *imakefile); -+char *Strdup(const char *cp); - char *Emalloc(int size); --void LogFatalI(char *s, int i), LogFatal(char *x0, char *x1), -- LogMsg(char *x0, char *x1); -+void LogFatal(const char *x0, ...) _X_ATTRIBUTE_PRINTF(1, 2); -+void LogMsg(const char *x0, ...) _X_ATTRIBUTE_PRINTF(1, 2); - - void showit(FILE *fd); - void wrapup(void); - void init(void); --void AddMakeArg(char *arg); --void AddCppArg(char *arg); -+void AddMakeArg(const char *arg); -+void AddCppArg(const char *arg); - #ifdef CROSSCOMPILE - char *CrossCompileCPP(void); - #endif - void SetOpts(int argc, char **argv); --void CheckImakefileC(char *masterc); --void cppit(char *imakefile, char *template, char *masterc, -- FILE *outfd, char *outfname); -+void CheckImakefileC(const char *masterc); -+void cppit(const char *imakefile, const char *template, const char *masterc, -+ FILE *outfd, const char *outfname); - void makeit(void); --void CleanCppOutput(FILE *tmpfd, char *tmpfname); -+void CleanCppOutput(FILE *tmpfd, const char *tmpfname); - boolean isempty(char *line); --void writetmpfile(FILE *fd, char *buf, int cnt, char *fname); -+void writetmpfile(FILE *fd, const char *buf, int cnt, const char *fname); - #ifdef SIGNALRETURNSINT - int catch(int sig); - #else - void catch(int sig); - #endif --void showargs(char **argv); --boolean optional_include(FILE *inFile, char *defsym, char *fname); --void doit(FILE *outfd, char *cmd, char **argv); -+void showargs(const char **argv); -+boolean optional_include(FILE *inFile, const char *defsym, const char *fname); -+void doit(FILE *outfd, const char *cmd, const char **argv); - boolean define_os_defaults(FILE *inFile); - #ifdef CROSSCOMPILE - static void get_cross_compile_dir(FILE *inFile); - #endif - #ifdef CROSSCOMPILEDIR --char *CrossCompileDir = CROSSCOMPILEDIR; -+const char *CrossCompileDir = CROSSCOMPILEDIR; - #else --char *CrossCompileDir = ""; -+const char *CrossCompileDir = ""; - #endif - boolean CrossCompiling = FALSE; - -@@ -428,24 +396,25 @@ main(int argc, char *argv[]) - if ((tmpfd = fopen(tmpMakefile, "w+")) == NULL) - LogFatal("Cannot create temporary file %s.", tmpMakefile); - } else { --#ifdef HAS_MKSTEMP -+#ifdef HAVE_MKSTEMP - int fd; - #endif -- tmpMakefile = Strdup(tmpMakefile); --#ifndef HAS_MKSTEMP -- if (mktemp(tmpMakefile) == NULL || -- (tmpfd = fopen(tmpMakefile, "w+")) == NULL) { -- LogFatal("Cannot create temporary file %s.", tmpMakefile); -+ char *tmpMakefileName = Strdup(tmpMakefileTemplate); -+#ifndef HAVE_MKSTEMP -+ if (mktemp(tmpMakefileName) == NULL || -+ (tmpfd = fopen(tmpMakefileName, "w+")) == NULL) { -+ LogFatal("Cannot create temporary file %s.", tmpMakefileName); - } - #else -- fd = mkstemp(tmpMakefile); -+ fd = mkstemp(tmpMakefileName); - if (fd == -1 || (tmpfd = fdopen(fd, "w+")) == NULL) { - if (fd != -1) { -- unlink(tmpMakefile); close(fd); -+ unlink(tmpMakefileName); close(fd); - } -- LogFatal("Cannot create temporary file %s.", tmpMakefile); -+ LogFatal("Cannot create temporary file %s.", tmpMakefileName); - } - #endif -+ tmpMakefile = tmpMakefileName; - } - AddMakeArg("-f"); - AddMakeArg( tmpMakefile ); -@@ -498,7 +467,7 @@ void - catch(int sig) - { - errno = 0; -- LogFatalI("Signal %d.", sig); -+ LogFatal("Signal %d.", sig); - } - - /* -@@ -572,21 +541,21 @@ init(void) - } - - void --AddMakeArg(char *arg) -+AddMakeArg(const char *arg) - { - errno = 0; - if (make_argindex >= ARGUMENTS-1) -- LogFatal("Out of internal storage.", ""); -+ LogFatal("Out of internal storage."); - make_argv[ make_argindex++ ] = arg; - make_argv[ make_argindex ] = NULL; - } - - void --AddCppArg(char *arg) -+AddCppArg(const char *arg) - { - errno = 0; - if (cpp_argindex >= ARGUMENTS-1) -- LogFatal("Out of internal storage.", ""); -+ LogFatal("Out of internal storage."); - cpp_argv[ cpp_argindex++ ] = arg; - cpp_argv[ cpp_argindex ] = NULL; - } -@@ -618,7 +587,7 @@ SetOpts(int argc, char **argv) - else { - argc--, argv++; - if (! argc) -- LogFatal("No description arg after -f flag", ""); -+ LogFatal("No description arg after -f flag"); - Imakefile = argv[0]; - } - } else if (argv[0][1] == 's') { -@@ -628,7 +597,7 @@ SetOpts(int argc, char **argv) - else { - argc--, argv++; - if (!argc) -- LogFatal("No description arg after -s flag", ""); -+ LogFatal("No description arg after -s flag"); - Makefile = ((argv[0][0] == '-') && !argv[0][1]) ? - NULL : argv[0]; - } -@@ -642,7 +611,7 @@ SetOpts(int argc, char **argv) - else { - argc--, argv++; - if (! argc) -- LogFatal("No description arg after -T flag", ""); -+ LogFatal("No description arg after -T flag"); - Template = argv[0]; - } - } else if (argv[0][1] == 'C') { -@@ -651,7 +620,7 @@ SetOpts(int argc, char **argv) - else { - argc--, argv++; - if (! argc) -- LogFatal("No imakeCfile arg after -C flag", ""); -+ LogFatal("No imakeCfile arg after -C flag"); - ImakefileC = argv[0]; - } - } else if (argv[0][1] == 'v') { -@@ -667,10 +636,10 @@ SetOpts(int argc, char **argv) - if (!cpp) - { - AddCppArg("-E"); --#ifdef __GNUC__ -+# ifdef __GNUC__ - if (verbose) - AddCppArg("-v"); --#endif -+# endif - cpp = DEFAULT_CC; - } - # else -@@ -686,8 +655,8 @@ SetOpts(int argc, char **argv) - AddCppArg(ImakefileC); - } - --char * --FindImakefile(char *Imakefile) -+const char * -+FindImakefile(const char *Imakefile) - { - if (Imakefile) { - if (access(Imakefile, R_OK) < 0) -@@ -695,7 +664,7 @@ FindImakefile(char *Imakefile) - } else { - if (access("Imakefile", R_OK) < 0) { - if (access("imakefile", R_OK) < 0) -- LogFatal("No description file.", ""); -+ LogFatal("No description file."); - else - Imakefile = "imakefile"; - } else -@@ -704,44 +673,50 @@ FindImakefile(char *Imakefile) - return(Imakefile); - } - --void --LogFatalI(char *s, int i) -+static void _X_ATTRIBUTE_PRINTF(1, 0) -+vLogMsg(const char *fmt, va_list args) - { -- /*NOSTRICT*/ -- LogFatal(s, (char *)(long)i); -+ int error_number = errno; -+ -+ if (error_number) { -+ fprintf(stderr, "%s: ", program); -+ fprintf(stderr, "%s\n", strerror(error_number)); -+ } -+ fprintf(stderr, "%s: ", program); -+ vfprintf(stderr, fmt, args); -+ fprintf(stderr, "\n"); - } - - void --LogFatal(char *x0, char *x1) -+LogFatal(const char *fmt, ...) - { - static boolean entered = FALSE; -+ va_list args; - - if (entered) - return; - entered = TRUE; - -- LogMsg(x0, x1); -+ va_start(args, fmt); -+ vLogMsg(fmt, args); -+ va_end(args); - fprintf(stderr, " Stop.\n"); - wrapup(); - exit(1); - } - - void --LogMsg(char *x0, char *x1) -+LogMsg(const char *fmt, ...) - { -- int error_number = errno; -+ va_list args; - -- if (error_number) { -- fprintf(stderr, "%s: ", program); -- fprintf(stderr, "%s\n", strerror(error_number)); -- } -- fprintf(stderr, "%s: ", program); -- fprintf(stderr, x0, x1); -- fprintf(stderr, "\n"); -+ va_start(args, fmt); -+ vLogMsg(fmt, args); -+ va_end(args); - } - - void --showargs(char **argv) -+showargs(const char **argv) - { - for (; *argv; argv++) - fprintf(stderr, "%s ", *argv); -@@ -751,7 +726,7 @@ showargs(char **argv) - #define ImakefileCHeader "/* imake - temporary file */" - - void --CheckImakefileC(char *masterc) -+CheckImakefileC(const char *masterc) - { - char mkcbuf[1024]; - FILE *inFile; -@@ -767,7 +742,8 @@ CheckImakefileC(char *masterc) - fclose(inFile); - LogFatal("Refuse to overwrite: %s", masterc); - } -- fclose(inFile); -+ else -+ fclose(inFile); - } - } - -@@ -778,7 +754,7 @@ CheckImakefileC(char *masterc) - #define OverrideWarning "Warning: local file \"%s\" overrides global macros." - - boolean --optional_include(FILE *inFile, char *defsym, char *fname) -+optional_include(FILE *inFile, const char *defsym, const char *fname) - { - errno = 0; - if (access(fname, R_OK) == 0) { -@@ -790,7 +766,7 @@ optional_include(FILE *inFile, char *def - } - - void --doit(FILE *outfd, char *cmd, char **argv) -+doit(FILE *outfd, const char *cmd, const char **argv) - { - int pid; - waitType status; -@@ -805,18 +781,18 @@ doit(FILE *outfd, char *cmd, char **argv - if (status < 0) - LogFatal("Cannot spawn %s.", cmd); - if (status > 0) -- LogFatalI("Exit code %d.", status); -+ LogFatal("Exit code %d.", status); - #else - pid = fork(); - if (pid < 0) -- LogFatal("Cannot fork.", ""); -+ LogFatal("Cannot fork."); - if (pid) { /* parent... simply wait */ - while (wait(&status) > 0) { - errno = 0; - if (WIFSIGNALED(status)) -- LogFatalI("Signal %d.", waitSig(status)); -+ LogFatal("Signal %d.", waitSig(status)); - if (WIFEXITED(status) && waitCode(status)) -- LogFatalI("Exit code %d.", waitCode(status)); -+ LogFatal("Exit code %d.", waitCode(status)); - } - } - else { /* child... dup and exec cmd */ -@@ -832,7 +808,7 @@ doit(FILE *outfd, char *cmd, char **argv - - #if !defined WIN32 - static void --parse_utsname(struct utsname *name, char *fmt, char *result, char *msg) -+parse_utsname(struct utsname *name, const char *fmt, char *result, const char *msg) - { - char buf[SYS_NMLN * 5 + 1]; - char *ptr = buf; -@@ -892,7 +868,7 @@ parse_utsname(struct utsname *name, char - - /* Just in case... */ - if (strlen(buf) >= sizeof(buf)) -- LogFatal("Buffer overflow parsing uname.", ""); -+ LogFatal("Buffer overflow parsing uname."); - - /* Parse the buffer. The sscanf() return value is rarely correct. */ - *result = '\0'; -@@ -978,13 +954,23 @@ const char *libc_c= - static void - get_libc_version(FILE *inFile) - { -- char aout[] = "/tmp/imakeXXXXXX"; -+ char aout[4096], *tmpdir; - FILE *fp; - const char *format = "%s -o %s -x c -"; - char *cc; - int len; - char *command; - -+ /* If $TMPDIR is defined and has an acceptable length, -+ * use that as tmp dir, else use /tmp. That fixes -+ * problems with /tmp mounted "noexec". -+ */ -+ if((tmpdir = getenv("TMPDIR")) != NULL && strlen(tmpdir) < (4096-13)) -+ strcpy(aout, tmpdir); -+ else -+ strcpy(aout, "/tmp"); -+ strcat(aout, "/imakeXXXXXX"); -+ - /* Pre-create temp file safely */ - { - /* Linux + ELF has mkstemp() */ -@@ -1000,7 +986,8 @@ get_libc_version(FILE *inFile) - cc = "gcc"; - len = strlen (aout) + strlen (format) + strlen (cc); - if (len < 128) len = 128; -- command = alloca (len); -+ if((command = alloca (len)) == NULL) -+ abort(); - - if (snprintf (command , len, format, cc, aout) == len) - abort (); -@@ -1015,12 +1002,16 @@ get_libc_version(FILE *inFile) - abort (); - - while (fgets (command, len, fp)) -- fprintf (inFile, command); -+ fputs (command, inFile); - - len = pclose (fp); - remove (aout); -- if (len) -- abort (); -+ if (len) { -+ /* handwave furiously */ -+ printf("#define DefaultLinuxCLibMajorVersion 6\n"); -+ printf("#define DefaultLinuxCLibMinorVersion 12\n"); -+ printf("#define DefaultLinuxCLibTeenyVersion 0\n"); -+ } - } - #endif - -@@ -1031,14 +1022,14 @@ get_stackprotector(FILE *inFile) - FILE *fp; - char *cc; - char command[1024], buf[1024]; -- -+ - cc = getenv("CC"); - if (cc == NULL) { - cc = "cc"; - } - snprintf(command, sizeof(command), "%s -v 2>&1", cc); - fp = popen(command, "r"); -- if (fp == NULL) -+ if (fp == NULL) - abort(); - while (fgets(buf, sizeof(buf), fp)) { - if (strstr(buf, "propolice") != NULL) { -@@ -1046,11 +1037,10 @@ get_stackprotector(FILE *inFile) - break; - } - } -- if (pclose(fp)) -- abort(); -+ pclose(fp); - } - #endif -- -+ - - #if defined CROSSCOMPILE || defined linux || defined(__GLIBC__) - static void -@@ -1058,9 +1048,9 @@ get_distrib(FILE *inFile) - { - struct stat sb; - -- static char* suse = "/etc/SuSE-release"; -- static char* redhat = "/etc/redhat-release"; -- static char* debian = "/etc/debian_version"; -+ static const char* suse = "/etc/SuSE-release"; -+ static const char* redhat = "/etc/redhat-release"; -+ static const char* debian = "/etc/debian_version"; - - fprintf (inFile, "%s\n", "#define LinuxUnknown 0"); - fprintf (inFile, "%s\n", "#define LinuxSuSE 1"); -@@ -1076,14 +1066,14 @@ get_distrib(FILE *inFile) - fprintf (inFile, "%s\n", "#define LinuxWare 11"); - fprintf (inFile, "%s\n", "#define LinuxYggdrasil 12"); - --#ifdef CROSSCOMPILE -+# ifdef CROSSCOMPILE - if (CrossCompiling) { - fprintf (inFile, "%s\n", - "#define DefaultLinuxDistribution LinuxUnknown"); - fprintf (inFile, "%s\n", "#define DefaultLinuxDistName Unknown"); - return; - } --#endif -+# endif - if (lstat (suse, &sb) == 0) { - fprintf (inFile, "%s\n", "#define DefaultLinuxDistribution LinuxSuSE"); - fprintf (inFile, "%s\n", "#define DefaultLinuxDistName SuSE"); -@@ -1116,7 +1106,7 @@ get_ld_version(FILE *inFile) - int ldmajor, ldminor; - const char *ld = "ld -v"; - --#ifdef CROSSCOMPILE -+# ifdef CROSSCOMPILE - if (CrossCompiling) { - char cmd[PATH_MAX]; - strcpy (cmd, CrossCompileDir); -@@ -1124,7 +1114,7 @@ get_ld_version(FILE *inFile) - strcat (cmd,ld); - ldprog = popen (cmd, "r"); - } else --#endif -+# endif - ldprog = popen (ld, "r"); - - if (ldprog) { -@@ -1192,7 +1182,7 @@ get_binary_format(FILE *inFile) - * Returns: 0 if successful, -1 if not. - */ - static int --ask_sun_compiler_for_versions(const char *cmd, const char *path, -+ask_sun_compiler_for_versions(const char *cmd, const char *path, - int *cmajor, int *cminor) - { - char buf[BUFSIZ]; -@@ -1201,7 +1191,7 @@ ask_sun_compiler_for_versions(const char - FILE* ccproc; - const char vflag[] = " -V 2>&1"; - int retval = -1; -- -+ - int len = strlen(cmd) + sizeof(vflag); - - if (path != NULL) { -@@ -1229,7 +1219,7 @@ ask_sun_compiler_for_versions(const char - } - } - if (retval != 0) { -- fprintf(stderr, -+ fprintf(stderr, - "warning: could not parse version number in output of:\n" - " %s\n", cmdtorun); - } -@@ -1247,23 +1237,22 @@ get_sun_compiler_versions (FILE *inFile) - { - const char* sunpro_path = "/opt/SUNWspro/bin"; - int cmajor, cminor, found = 0; -- struct stat sb; - - /* If cross-compiling, only check CrossCompilerDir for compilers. -- * If not cross-compiling, first check cc in users $PATH, -+ * If not cross-compiling, first check cc in users $PATH, - * then try /opt/SUNWspro if not found in the users $PATH - */ - --#if defined CROSSCOMPILE -+# if defined CROSSCOMPILE - if (CrossCompiling) { - if (ask_sun_compiler_for_versions("cc", CrossCompileDir, - &cmajor, &cminor) == 0) { - found = 1; - } -- } -+ } - else --#endif -- { -+# endif -+ { - if (ask_sun_compiler_for_versions("cc", NULL, &cmajor, &cminor) == 0) { - found = 1; - } else if (ask_sun_compiler_for_versions("cc", sunpro_path, -@@ -1282,22 +1271,22 @@ get_sun_compiler_versions (FILE *inFile) - - /* Now do it again for C++ compiler (CC) */ - found = 0; --#if defined CROSSCOMPILE -+# if defined CROSSCOMPILE - if (CrossCompiling) { - if (ask_sun_compiler_for_versions("CC", CrossCompileDir, - &cmajor, &cminor) == 0) { - found = 1; - } -- } -+ } - else --#endif -- { -+# endif -+ { - if (ask_sun_compiler_for_versions("CC", NULL, &cmajor, &cminor) == 0) { - found = 1; - } else if (ask_sun_compiler_for_versions("CC", sunpro_path, - &cmajor, &cminor) == 0) { - found = 1; -- fprintf(inFile, -+ fprintf(inFile, - "#define DefaultSunProCplusplusCompilerDir %s", sunpro_path); - } - } -@@ -1318,7 +1307,7 @@ static void - get_gcc_version(FILE *inFile, char *name) - { - fprintf (inFile, "#define HasGcc 1\n"); --#ifdef CROSSCOMPILE -+# ifdef CROSSCOMPILE - if (CrossCompiling) - { - if (gnu_c > 1) { -@@ -1329,20 +1318,20 @@ get_gcc_version(FILE *inFile, char *name - fprintf (inFile, "#define GccMajorVersion %d\n", gnu_c); - fprintf (inFile, "#define GccMinorVersion %d\n", gnu_c_minor); - } else --#endif -+# endif - { --#if __GNUC__ > 1 -+# if __GNUC__ > 1 - fprintf (inFile, "#define HasGcc2 1\n"); --# if __GNUC__ > 2 -+# if __GNUC__ > 2 - fprintf (inFile, "#define HasGcc3 1\n"); -+# endif - # endif --#endif - fprintf (inFile, "#define GccMajorVersion %d\n", __GNUC__); - fprintf (inFile, "#define GccMinorVersion %d\n", __GNUC_MINOR__); - } --#if defined(HAS_MERGE_CONSTANTS) -+# if defined(HAS_MERGE_CONSTANTS) - fprintf (inFile, "#define HasGccMergeConstants %d\n", HAS_MERGE_CONSTANTS); --#endif -+# endif - } - #endif - -@@ -1350,8 +1339,8 @@ static boolean - get_gcc(char *cmd) - { - struct stat sb; -- static char* gcc_path[] = { --# if defined(linux) || \ -+ static const char* gcc_path[] = { -+#if defined(linux) || \ - defined(__NetBSD__) || \ - defined(__OpenBSD__) || \ - defined(__FreeBSD__) || \ -@@ -1362,14 +1351,14 @@ get_gcc(char *cmd) - defined(__GNU__) || \ - defined(__GLIBC__) - "/usr/bin/cc", /* for Linux PostIncDir */ --# endif -+#endif - "/usr/local/bin/gcc", - "/opt/gnu/bin/gcc", - "/usr/pkg/bin/gcc" - }; - - #ifdef CROSSCOMPILE -- static char* cross_cc_name[] = { -+ static const char* cross_cc_name[] = { - "cc", - "gcc" - }; -@@ -1399,7 +1388,7 @@ get_gcc(char *cmd) - return FALSE; - } - --#if defined CROSSCOMPILE || !defined __UNIXOS2__ -+#ifdef CROSSCOMPILE - static void - get_gcc_incdir(FILE *inFile, char* name) - { -@@ -1428,14 +1417,14 @@ get_gcc_incdir(FILE *inFile, char* name) - boolean - define_os_defaults(FILE *inFile) - { --#if defined CROSSCOMPILE || ( !defined(WIN32) && !defined(__UNIXOS2__) ) --#ifdef CROSSCOMPILE --#ifdef __GNUC__ -+#if defined CROSSCOMPILE || !defined(WIN32) -+# ifdef CROSSCOMPILE -+# ifdef __GNUC__ - if (1) --#else -+# else - if ((sys != win32) && (sys != emx)) --#endif --#endif -+# endif -+# endif - { - # if (defined(DEFAULT_OS_NAME) || defined(DEFAULT_OS_MAJOR_REV) || \ - defined(DEFAULT_OS_MINOR_REV) || defined(DEFAULT_OS_TEENY_REV)) -@@ -1444,16 +1433,16 @@ define_os_defaults(FILE *inFile) - char buf[SYS_NMLN * 5 + 1]; - - /* Obtain the system information. */ --#ifdef CROSSCOMPILE -+# ifdef CROSSCOMPILE - if (!CrossCompiling) --#endif -+# endif - { - if (uname(&uts_name) < 0) -- LogFatal("Cannot invoke uname", ""); -+ LogFatal("Cannot invoke uname"); - else - name = &uts_name; - } --#if defined CROSSCOMPILE && (defined linux || defined(__GLIBC__)) -+# if defined CROSSCOMPILE && (defined linux || defined(__GLIBC__)) - else { - strncpy(uts_name.sysname,cross_uts_sysname,SYS_NMLN); - strncpy(uts_name.release,cross_uts_release,SYS_NMLN); -@@ -1461,14 +1450,14 @@ define_os_defaults(FILE *inFile) - strncpy(uts_name.machine,cross_uts_machine,SYS_NMLN); - name = &uts_name; - } --#endif --# ifdef __FreeBSD__ -+# endif -+# ifdef __FreeBSD__ - /* Override for compiling in chroot of other OS version, such as - * in the bento build cluster. - */ - { - char *e; -- if ((e = getenv("OSREL")) != NULL && -+ if ((e = getenv("OSREL")) != NULL && - strlen(name->sysname) + strlen(e) + 1 < SYS_NMLN) { - strcpy(name->release, e); - strcpy(name->version, name->sysname); -@@ -1476,7 +1465,7 @@ define_os_defaults(FILE *inFile) - strcat(name->version, e); - } - } --# endif -+# endif - - # if defined DEFAULT_OS_NAME - # if defined CROSSCOMPILE -@@ -1648,10 +1637,8 @@ define_os_defaults(FILE *inFile) - char name[PATH_MAX]; - if (get_gcc(name)) { - get_gcc_version (inFile,name); --# if defined CROSSCOMPILE || !defined __UNIXOS2__ --# if defined CROSSCOMPILE -+# if defined CROSSCOMPILE - if (sys != emx) --# endif - get_gcc_incdir(inFile,name); - # endif - } -@@ -1664,7 +1651,7 @@ define_os_defaults(FILE *inFile) - get_binary_format(inFile); - # endif - } --#endif /* !WIN32 && !__UNIXOS2__*/ -+#endif /* !WIN32 */ - #if defined WIN32 - # ifdef CROSSCOMPILE - else if (sys == win32 && !CrossCompiling) -@@ -1688,8 +1675,6 @@ define_os_defaults(FILE *inFile) - #endif /* WIN32 */ - #ifdef CROSSCOMPILE - else if (sys == emx) --#endif --#if defined CROSSCOMPILE || defined __UNIXOS2__ - { - fprintf(inFile, "#define DefaultOSMajorVersion 4\n"); - fprintf(inFile, "#define DefaultOSMinorVersion 0\n"); -@@ -1703,8 +1688,8 @@ define_os_defaults(FILE *inFile) - } - - void --cppit(char *imakefile, char *template, char *masterc, -- FILE *outfd, char *outfname) -+cppit(const char *imakefile, const char *template, const char *masterc, -+ FILE *outfd, const char *outfname) - { - FILE *inFile; - -@@ -1721,8 +1706,11 @@ cppit(char *imakefile, char *template, c - fprintf(inFile, IncludeFmt, ImakeTmplSym) < 0 || - optional_include(inFile, "IMAKE_ADMIN_MACROS", "adminmacros") || - optional_include(inFile, "IMAKE_LOCAL_MACROS", "localmacros") || -- fflush(inFile) || -- fclose(inFile)) -+ fflush(inFile)) { -+ fclose(inFile); -+ LogFatal("Cannot write to %s.", masterc); -+ } -+ else if (fclose(inFile)) - LogFatal("Cannot write to %s.", masterc); - /* - * Fork and exec cpp -@@ -1737,8 +1725,8 @@ makeit(void) - doit(NULL, make_argv[0], make_argv); - } - --char * --CleanCppInput(char *imakefile) -+const char * -+CleanCppInput(const char *imakefile) - { - FILE *outFile = NULL; - FILE *inFile; -@@ -1792,28 +1780,29 @@ CleanCppInput(char *imakefile) - strcmp(ptoken, "pragma") && - strcmp(ptoken, "undef")) { - if (outFile == NULL) { --#ifdef HAS_MKSTEMP -+#ifdef HAVE_MKSTEMP - int fd; - #endif -- tmpImakefile = Strdup(tmpImakefile); --#ifndef HAS_MKSTEMP -- if (mktemp(tmpImakefile) == NULL || -- (outFile = fopen(tmpImakefile, "w+")) == NULL) { -+ char *tmpImakefileName = Strdup(tmpImakefileTemplate); -+#ifndef HAVE_MKSTEMP -+ if (mktemp(tmpImakefileName) == NULL || -+ (outFile = fopen(tmpImakefileName, "w+")) == NULL) { - LogFatal("Cannot open %s for write.", -- tmpImakefile); -+ tmpImakefileName); - } - #else -- fd=mkstemp(tmpImakefile); -+ fd=mkstemp(tmpImakefileName); - if (fd != -1) - outFile = fdopen(fd, "w"); - if (outFile == NULL) { - if (fd != -1) { -- unlink(tmpImakefile); close(fd); -+ unlink(tmpImakefileName); close(fd); - } - LogFatal("Cannot open %s for write.", -- tmpImakefile); -+ tmpImakefileName); - } - #endif -+ tmpImakefile = tmpImakefileName; - } - writetmpfile(outFile, punwritten, pbuf-punwritten, - tmpImakefile); -@@ -1838,7 +1827,7 @@ CleanCppInput(char *imakefile) - } - - void --CleanCppOutput(FILE *tmpfd, char *tmpfname) -+CleanCppOutput(FILE *tmpfd, const char *tmpfname) - { - char *input; - int blankline = 0; -@@ -1960,7 +1949,7 @@ isempty(char *line) - - /*ARGSUSED*/ - char * --ReadLine(FILE *tmpfd, char *tmpfname) -+ReadLine(FILE *tmpfd, const char *tmpfname) - { - static boolean initialized = FALSE; - static char *buf, *pline, *end; -@@ -1988,10 +1977,10 @@ ReadLine(FILE *tmpfd, char *tmpfname) - fseek(tmpfd, 0, 0); - #if defined(SYSV) || defined(WIN32) || defined(USE_FREOPEN) - tmpfd = freopen(tmpfname, "w+", tmpfd); --#ifdef WIN32 -+# ifdef WIN32 - if (! tmpfd) /* if failed try again */ - tmpfd = freopen(tmpfname, "w+", fp); --#endif -+# endif - if (! tmpfd) - LogFatal("cannot reopen %s\n", tmpfname); - #else /* !SYSV */ -@@ -1999,8 +1988,6 @@ ReadLine(FILE *tmpfd, char *tmpfname) - #endif /* !SYSV */ - initialized = TRUE; - fprintf (tmpfd, "# Makefile generated by imake - do not edit!\n"); -- fprintf (tmpfd, "# %s\n", -- "$Xorg: imake.c,v 1.6 2001/02/09 02:03:15 xorgcvs Exp $"); - } - - for (p1 = pline; p1 < end; p1++) { -@@ -2036,7 +2023,7 @@ ReadLine(FILE *tmpfd, char *tmpfname) - } - - void --writetmpfile(FILE *fd, char *buf, int cnt, char *fname) -+writetmpfile(FILE *fd, const char *buf, int cnt, const char *fname) - { - if (fwrite(buf, sizeof(char), cnt, fd) == -1) - LogFatal("Cannot write to %s.", fname); -@@ -2048,7 +2035,7 @@ Emalloc(int size) - char *p; - - if ((p = malloc(size)) == NULL) -- LogFatalI("Cannot allocate %d bytes", size); -+ LogFatal("Cannot allocate %d bytes", size); - return(p); - } - -@@ -2066,10 +2053,10 @@ KludgeOutputLine(char **pline) - break; - case ' ': /*May need a tab*/ - default: --#ifdef CROSSCOMPILE -+# ifdef CROSSCOMPILE - if (inline_syntax) --#endif --#if defined CROSSCOMPILE || defined INLINE_SYNTAX -+# endif -+# if defined CROSSCOMPILE || defined INLINE_SYNTAX - { - if (*p == '<' && p[1] == '<') { /* inline file close */ - InInline--; -@@ -2077,7 +2064,7 @@ KludgeOutputLine(char **pline) - break; - } - } --#endif -+# endif - /* - * The following cases should not be treated as beginning of - * rules: -@@ -2116,26 +2103,26 @@ KludgeOutputLine(char **pline) - quotechar = ']'; - break; - case '=': --#ifdef CROSSCOMPILE -+# ifdef CROSSCOMPILE - if (remove_cpp_leadspace) --#endif --#if defined CROSSCOMPILE || defined REMOVE_CPP_LEADSPACE -+# endif -+# if defined CROSSCOMPILE || defined REMOVE_CPP_LEADSPACE - { - if (!InRule && **pline == ' ') { - while (**pline == ' ') - (*pline)++; - } - } --#endif -+# endif - goto breakfor; --#if defined CROSSCOMPILE || defined INLINE_SYNTAX -+# if defined CROSSCOMPILE || defined INLINE_SYNTAX - case '<': - if (inline_syntax) { - if (p[1] == '<') /* inline file start */ - InInline++; - } - break; --#endif -+# endif - case ':': - if (p[1] == '=') - goto breakfor; -@@ -2159,7 +2146,7 @@ KludgeResetRule(void) - } - #endif - char * --Strdup(char *cp) -+Strdup(const char *cp) - { - char *new = Emalloc(strlen(cp) + 1); - |