Fix compile issues with Windows and VMS.

* main.c (initialize_stopchar_map): isblank() is not part of C89.
Install bits for space and tab directly.
* makeint.h: Don't define vfork; autoconf handles this for us.
* vmsjobs.c: Rename NEXT_TOKEN to V_NEXT_TOKEN to avoid conflicts.
* dir.c (print_dir_data_base): Visual Studio C doesn't have int64_t.
* w32/subproc/sub_proc.c (process_begin): Missing arg to memset().
* build_w32.bat: Don't use obsolete Visual Studio flags.
This commit is contained in:
Paul Smith 2016-05-01 15:34:42 -04:00
parent 45200a42d3
commit 6f7fb050b4
6 changed files with 12 additions and 14 deletions

View file

@ -149,7 +149,7 @@ if "%COMPILER%" == "gcc" goto GccCompile
:: MSVC Compile :: MSVC Compile
echo on echo on
cl.exe /nologo /MT /W4 /GX /YX %OPTS% /I %OUTDIR% /I . /I glob /I w32/include /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR%OUTDIR% /Fp%OUTDIR%\%MAKE%.pch /Fo%OUTDIR%\%1.obj /Fd%OUTDIR%\%MAKE%.pdb %EXTRAS% /c %1.c cl.exe /nologo /MT /W4 /EHsc %OPTS% /I %OUTDIR% /I . /I glob /I w32/include /D WINDOWS32 /D WIN32 /D _CONSOLE /D HAVE_CONFIG_H /FR%OUTDIR% /Fp%OUTDIR%\%MAKE%.pch /Fo%OUTDIR%\%1.obj /Fd%OUTDIR%\%MAKE%.pdb %EXTRAS% /c %1.c
@echo off @echo off
echo %OUTDIR%\%1.obj >>%OUTDIR%\link.sc echo %OUTDIR%\%1.obj >>%OUTDIR%\link.sc
goto :EOF goto :EOF

8
dir.c
View file

@ -1082,9 +1082,9 @@ print_dir_data_base (void)
else if (dir->contents->dirfiles.ht_vec == 0) else if (dir->contents->dirfiles.ht_vec == 0)
{ {
#ifdef WINDOWS32 #ifdef WINDOWS32
printf (_("# %s (key %s, mtime %I64d): could not be opened.\n"), printf (_("# %s (key %s, mtime %ull): could not be opened.\n"),
dir->name, dir->contents->path_key, dir->name, dir->contents->path_key,
(int64_t)dir->contents->mtime); (unsigned long long)dir->contents->mtime);
#else /* WINDOWS32 */ #else /* WINDOWS32 */
#ifdef VMS_INO_T #ifdef VMS_INO_T
printf (_("# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"), printf (_("# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"),
@ -1119,9 +1119,9 @@ print_dir_data_base (void)
} }
} }
#ifdef WINDOWS32 #ifdef WINDOWS32
printf (_("# %s (key %s, mtime %I64d): "), printf (_("# %s (key %s, mtime %ull): "),
dir->name, dir->contents->path_key, dir->name, dir->contents->path_key,
(int64_t)dir->contents->mtime); (unsigned long long)dir->contents->mtime);
#else /* WINDOWS32 */ #else /* WINDOWS32 */
#ifdef VMS_INO_T #ifdef VMS_INO_T
printf (_("# %s (device %d, inode [%d,%d,%d]): "), printf (_("# %s (device %d, inode [%d,%d,%d]): "),

7
main.c
View file

@ -663,6 +663,9 @@ initialize_stopchar_map ()
stopchar_map[(int)'-'] = MAP_USERFUNC; stopchar_map[(int)'-'] = MAP_USERFUNC;
stopchar_map[(int)'_'] = MAP_USERFUNC; stopchar_map[(int)'_'] = MAP_USERFUNC;
stopchar_map[(int)' '] = MAP_BLANK;
stopchar_map[(int)'\t'] = MAP_BLANK;
stopchar_map[(int)'/'] = MAP_DIRSEP; stopchar_map[(int)'/'] = MAP_DIRSEP;
#if defined(VMS) #if defined(VMS)
stopchar_map[(int)':'] |= MAP_DIRSEP; stopchar_map[(int)':'] |= MAP_DIRSEP;
@ -674,9 +677,7 @@ initialize_stopchar_map ()
for (i = 1; i <= UCHAR_MAX; ++i) for (i = 1; i <= UCHAR_MAX; ++i)
{ {
if (isblank (i)) if (isspace (i) && NONE_SET (stopchar_map[i], MAP_BLANK))
stopchar_map[i] |= MAP_BLANK;
else if (isspace (i))
/* Don't mark blank characters as newline characters. */ /* Don't mark blank characters as newline characters. */
stopchar_map[i] |= MAP_NEWLINE; stopchar_map[i] |= MAP_NEWLINE;
else if (isalnum (i)) else if (isalnum (i))

View file

@ -137,9 +137,6 @@ extern int errno;
#ifdef HAVE_VFORK_H #ifdef HAVE_VFORK_H
# include <vfork.h> # include <vfork.h>
#endif #endif
#if !HAVE_WORKING_VFORK
# define vfork fork
#endif
#ifdef HAVE_LIMITS_H #ifdef HAVE_LIMITS_H
# include <limits.h> # include <limits.h>

View file

@ -264,14 +264,14 @@ tryToSetupYAst(void)
{ token->cmd_errno = ERANGE; return x; }} { token->cmd_errno = ERANGE; return x; }}
/* Check if we are out of space for more tokens */ /* Check if we are out of space for more tokens */
#define NEXT_TOKEN { if (cmd_tkn_index < MAX_DCL_TOKENS) \ #define V_NEXT_TOKEN { if (cmd_tkn_index < MAX_DCL_TOKENS) \
cmd_tokens[++cmd_tkn_index] = NULL; \ cmd_tokens[++cmd_tkn_index] = NULL; \
else { token.cmd_errno = E2BIG; break; } \ else { token.cmd_errno = E2BIG; break; } \
token.length = 0;} token.length = 0;}
#define UPDATE_TOKEN {cmd_tokens[cmd_tkn_index] = strdup(token.text); \ #define UPDATE_TOKEN {cmd_tokens[cmd_tkn_index] = strdup(token.text); \
NEXT_TOKEN;} V_NEXT_TOKEN;}
#define EOS_ERROR(x) { if (*x == 0) { token->cmd_errno = ERANGE; break; }} #define EOS_ERROR(x) { if (*x == 0) { token->cmd_errno = ERANGE; break; }}

View file

@ -677,7 +677,7 @@ process_begin(
/* /*
* Set up inherited stdin, stdout, stderr for child * Set up inherited stdin, stdout, stderr for child
*/ */
memset(&startInfo, sizeof(startInfo)); memset(&startInfo, '\0', sizeof(startInfo));
GetStartupInfo(&startInfo); GetStartupInfo(&startInfo);
startInfo.dwFlags = STARTF_USESTDHANDLES; startInfo.dwFlags = STARTF_USESTDHANDLES;
startInfo.lpReserved = 0; startInfo.lpReserved = 0;