aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/055_nx-X11_imake-Werror-format-security.full.patch
diff options
context:
space:
mode:
authorOrion Poplawski <orion@cora.nwra.com>2015-02-09 15:51:26 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2015-02-09 15:52:21 +0100
commit95dbaa6149b496a6851fc6422f54dd8393217269 (patch)
tree7af4dc662fd810f7fabad6309a2dd5d56883ce74 /debian/patches/055_nx-X11_imake-Werror-format-security.full.patch
parent0b711de48cdb04f4328eff75f82b97f9a07cbfbf (diff)
downloadnx-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.patch1090
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);
-