make(1): prepare job.c, main.c, parse.c, suff.c for WARNS=6
In job.c, GCC 5 complains about the macro FILENO that it has type unsigned int, which is then passed as the argument of dup2, which expects a simple int. Maybe this workaround from 1995 is not necessary anymore, or maybe it is but can be restricted to the few affected platforms. This leaves meta.c and the filemon files to be converted. I didn't do them since they are not well covered by the unit tests.
This commit is contained in:
parent
c5aeb8a719
commit
883ec9be11
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: job.c,v 1.260 2020/10/05 19:27:47 rillig Exp $ */
|
/* $NetBSD: job.c,v 1.261 2020/10/05 21:37:07 rillig Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
|
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
|
||||||
@ -143,7 +143,7 @@
|
|||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
|
|
||||||
/* "@(#)job.c 8.2 (Berkeley) 3/19/94" */
|
/* "@(#)job.c 8.2 (Berkeley) 3/19/94" */
|
||||||
MAKE_RCSID("$NetBSD: job.c,v 1.260 2020/10/05 19:27:47 rillig Exp $");
|
MAKE_RCSID("$NetBSD: job.c,v 1.261 2020/10/05 21:37:07 rillig Exp $");
|
||||||
|
|
||||||
# define STATIC static
|
# define STATIC static
|
||||||
|
|
||||||
@ -290,7 +290,7 @@ static char *shellArgv = NULL; /* Custom shell args */
|
|||||||
|
|
||||||
STATIC Job *job_table; /* The structures that describe them */
|
STATIC Job *job_table; /* The structures that describe them */
|
||||||
STATIC Job *job_table_end; /* job_table + maxJobs */
|
STATIC Job *job_table_end; /* job_table + maxJobs */
|
||||||
static int wantToken; /* we want a token */
|
static unsigned int wantToken; /* we want a token */
|
||||||
static int lurking_children = 0;
|
static int lurking_children = 0;
|
||||||
static int make_suspended = 0; /* non-zero if we've seen a SIGTSTP (etc) */
|
static int make_suspended = 0; /* non-zero if we've seen a SIGTSTP (etc) */
|
||||||
|
|
||||||
@ -300,7 +300,7 @@ static int make_suspended = 0; /* non-zero if we've seen a SIGTSTP (etc) */
|
|||||||
*/
|
*/
|
||||||
static struct pollfd *fds = NULL;
|
static struct pollfd *fds = NULL;
|
||||||
static Job **jobfds = NULL;
|
static Job **jobfds = NULL;
|
||||||
static int nfds = 0;
|
static nfds_t nfds = 0;
|
||||||
static void watchfd(Job *);
|
static void watchfd(Job *);
|
||||||
static void clearfd(Job *);
|
static void clearfd(Job *);
|
||||||
static int readyfd(Job *);
|
static int readyfd(Job *);
|
||||||
@ -314,7 +314,7 @@ static Job childExitJob; /* child exit pseudo-job */
|
|||||||
#define CHILD_EXIT "."
|
#define CHILD_EXIT "."
|
||||||
#define DO_JOB_RESUME "R"
|
#define DO_JOB_RESUME "R"
|
||||||
|
|
||||||
static const int npseudojobs = 2; /* number of pseudo-jobs */
|
enum { npseudojobs = 2 }; /* number of pseudo-jobs */
|
||||||
|
|
||||||
#define TARG_FMT "%s %s ---\n" /* Default format */
|
#define TARG_FMT "%s %s ---\n" /* Default format */
|
||||||
#define MESSAGE(fp, gn) \
|
#define MESSAGE(fp, gn) \
|
||||||
@ -1648,10 +1648,10 @@ JobDoOutput(Job *job, Boolean finish)
|
|||||||
{
|
{
|
||||||
Boolean gotNL = FALSE; /* true if got a newline */
|
Boolean gotNL = FALSE; /* true if got a newline */
|
||||||
Boolean fbuf; /* true if our buffer filled up */
|
Boolean fbuf; /* true if our buffer filled up */
|
||||||
int nr; /* number of bytes read */
|
size_t nr; /* number of bytes read */
|
||||||
int i; /* auxiliary index into outBuf */
|
size_t i; /* auxiliary index into outBuf */
|
||||||
int max; /* limit for i (end of current data) */
|
size_t max; /* limit for i (end of current data) */
|
||||||
int nRead; /* (Temporary) number of bytes read */
|
ssize_t nRead; /* (Temporary) number of bytes read */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read as many bytes as will fit in the buffer.
|
* Read as many bytes as will fit in the buffer.
|
||||||
@ -1670,7 +1670,7 @@ end_loop:
|
|||||||
}
|
}
|
||||||
nr = 0;
|
nr = 0;
|
||||||
} else {
|
} else {
|
||||||
nr = nRead;
|
nr = (size_t)nRead;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1693,7 +1693,7 @@ end_loop:
|
|||||||
* TRUE.
|
* TRUE.
|
||||||
*/
|
*/
|
||||||
max = job->curPos + nr;
|
max = job->curPos + nr;
|
||||||
for (i = job->curPos + nr - 1; i >= job->curPos; i--) {
|
for (i = job->curPos + nr - 1; i >= job->curPos && i != (size_t)-1; i--) {
|
||||||
if (job->outBuf[i] == '\n') {
|
if (job->outBuf[i] == '\n') {
|
||||||
gotNL = TRUE;
|
gotNL = TRUE;
|
||||||
break;
|
break;
|
||||||
@ -1892,7 +1892,7 @@ Job_CatchOutput(void)
|
|||||||
{
|
{
|
||||||
int nready;
|
int nready;
|
||||||
Job *job;
|
Job *job;
|
||||||
int i;
|
unsigned int i;
|
||||||
|
|
||||||
(void)fflush(stdout);
|
(void)fflush(stdout);
|
||||||
|
|
||||||
@ -1926,9 +1926,9 @@ Job_CatchOutput(void)
|
|||||||
|
|
||||||
Job_CatchChildren();
|
Job_CatchChildren();
|
||||||
if (nready == 0)
|
if (nready == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (i = npseudojobs*nfds_per_job(); i < nfds; i++) {
|
for (i = npseudojobs * nfds_per_job(); i < nfds; i++) {
|
||||||
if (!fds[i].revents)
|
if (!fds[i].revents)
|
||||||
continue;
|
continue;
|
||||||
job = jobfds[i];
|
job = jobfds[i];
|
||||||
@ -1947,7 +1947,7 @@ Job_CatchOutput(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (--nready == 0)
|
if (--nready == 0)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1991,7 +1991,7 @@ Shell_Init(void)
|
|||||||
shellErrFlag = NULL;
|
shellErrFlag = NULL;
|
||||||
}
|
}
|
||||||
if (!shellErrFlag) {
|
if (!shellErrFlag) {
|
||||||
int n = strlen(commandShell->exit) + 2;
|
size_t n = strlen(commandShell->exit) + 2;
|
||||||
|
|
||||||
shellErrFlag = bmake_malloc(n);
|
shellErrFlag = bmake_malloc(n);
|
||||||
if (shellErrFlag) {
|
if (shellErrFlag) {
|
||||||
@ -2032,8 +2032,8 @@ Job_Init(void)
|
|||||||
{
|
{
|
||||||
Job_SetPrefix();
|
Job_SetPrefix();
|
||||||
/* Allocate space for all the job info */
|
/* Allocate space for all the job info */
|
||||||
job_table = bmake_malloc(maxJobs * sizeof *job_table);
|
job_table = bmake_malloc((size_t)maxJobs * sizeof *job_table);
|
||||||
memset(job_table, 0, maxJobs * sizeof *job_table);
|
memset(job_table, 0, (size_t)maxJobs * sizeof *job_table);
|
||||||
job_table_end = job_table + maxJobs;
|
job_table_end = job_table + maxJobs;
|
||||||
wantToken = 0;
|
wantToken = 0;
|
||||||
|
|
||||||
@ -2065,9 +2065,9 @@ Job_Init(void)
|
|||||||
|
|
||||||
/* Preallocate enough for the maximum number of jobs. */
|
/* Preallocate enough for the maximum number of jobs. */
|
||||||
fds = bmake_malloc(sizeof(*fds) *
|
fds = bmake_malloc(sizeof(*fds) *
|
||||||
(npseudojobs + maxJobs) * nfds_per_job());
|
(npseudojobs + (size_t)maxJobs) * nfds_per_job());
|
||||||
jobfds = bmake_malloc(sizeof(*jobfds) *
|
jobfds = bmake_malloc(sizeof(*jobfds) *
|
||||||
(npseudojobs + maxJobs) * nfds_per_job());
|
(npseudojobs + (size_t)maxJobs) * nfds_per_job());
|
||||||
|
|
||||||
/* These are permanent entries and take slots 0 and 1 */
|
/* These are permanent entries and take slots 0 and 1 */
|
||||||
watchfd(&tokenWaitJob);
|
watchfd(&tokenWaitJob);
|
||||||
@ -2521,10 +2521,10 @@ watchfd(Job *job)
|
|||||||
static void
|
static void
|
||||||
clearfd(Job *job)
|
clearfd(Job *job)
|
||||||
{
|
{
|
||||||
int i;
|
size_t i;
|
||||||
if (job->inPollfd == NULL)
|
if (job->inPollfd == NULL)
|
||||||
Punt("Unwatching unwatched job");
|
Punt("Unwatching unwatched job");
|
||||||
i = job->inPollfd - fds;
|
i = (size_t)(job->inPollfd - fds);
|
||||||
nfds--;
|
nfds--;
|
||||||
#if defined(USE_FILEMON) && !defined(USE_FILEMON_DEV)
|
#if defined(USE_FILEMON) && !defined(USE_FILEMON_DEV)
|
||||||
if (useMeta) {
|
if (useMeta) {
|
||||||
@ -2638,7 +2638,7 @@ Boolean
|
|||||||
Job_TokenWithdraw(void)
|
Job_TokenWithdraw(void)
|
||||||
{
|
{
|
||||||
char tok, tok1;
|
char tok, tok1;
|
||||||
int count;
|
ssize_t count;
|
||||||
|
|
||||||
wantToken = 0;
|
wantToken = 0;
|
||||||
DEBUG3(JOB, "Job_TokenWithdraw(%d): aborting %d, running %d\n",
|
DEBUG3(JOB, "Job_TokenWithdraw(%d): aborting %d, running %d\n",
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: job.h,v 1.54 2020/09/28 00:13:03 rillig Exp $ */
|
/* $NetBSD: job.h,v 1.55 2020/10/05 21:37:07 rillig Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
|
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
|
||||||
@ -154,7 +154,7 @@ typedef struct Job {
|
|||||||
|
|
||||||
char job_suspended;
|
char job_suspended;
|
||||||
|
|
||||||
short flags; /* Flags to control treatment of job */
|
int flags; /* Flags to control treatment of job */
|
||||||
#define JOB_IGNERR 0x001 /* Ignore non-zero exits */
|
#define JOB_IGNERR 0x001 /* Ignore non-zero exits */
|
||||||
#define JOB_SILENT 0x002 /* no output */
|
#define JOB_SILENT 0x002 /* no output */
|
||||||
#define JOB_SPECIAL 0x004 /* Target is a special one. i.e. run it locally
|
#define JOB_SPECIAL 0x004 /* Target is a special one. i.e. run it locally
|
||||||
@ -170,7 +170,7 @@ typedef struct Job {
|
|||||||
#define JOB_BUFSIZE 1024
|
#define JOB_BUFSIZE 1024
|
||||||
/* Buffer for storing the output of the job, line by line. */
|
/* Buffer for storing the output of the job, line by line. */
|
||||||
char outBuf[JOB_BUFSIZE + 1];
|
char outBuf[JOB_BUFSIZE + 1];
|
||||||
int curPos; /* Current position in outBuf. */
|
size_t curPos; /* Current position in outBuf. */
|
||||||
|
|
||||||
#ifdef USE_META
|
#ifdef USE_META
|
||||||
struct BuildMon bm;
|
struct BuildMon bm;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: main.c,v 1.369 2020/10/05 19:27:47 rillig Exp $ */
|
/* $NetBSD: main.c,v 1.370 2020/10/05 21:37:07 rillig Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1988, 1989, 1990, 1993
|
* Copyright (c) 1988, 1989, 1990, 1993
|
||||||
@ -122,7 +122,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* "@(#)main.c 8.3 (Berkeley) 3/19/94" */
|
/* "@(#)main.c 8.3 (Berkeley) 3/19/94" */
|
||||||
MAKE_RCSID("$NetBSD: main.c,v 1.369 2020/10/05 19:27:47 rillig Exp $");
|
MAKE_RCSID("$NetBSD: main.c,v 1.370 2020/10/05 21:37:07 rillig Exp $");
|
||||||
#if defined(MAKE_NATIVE) && !defined(lint)
|
#if defined(MAKE_NATIVE) && !defined(lint)
|
||||||
__COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 "
|
__COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 "
|
||||||
"The Regents of the University of California. "
|
"The Regents of the University of California. "
|
||||||
@ -443,7 +443,7 @@ MainParseArgJobs(const char *argvalue)
|
|||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
forceJobs = TRUE;
|
forceJobs = TRUE;
|
||||||
maxJobs = strtol(argvalue, &p, 0);
|
maxJobs = (int)strtol(argvalue, &p, 0);
|
||||||
if (*p != '\0' || maxJobs < 1) {
|
if (*p != '\0' || maxJobs < 1) {
|
||||||
(void)fprintf(stderr,
|
(void)fprintf(stderr,
|
||||||
"%s: illegal argument to -j -- must be positive integer!\n",
|
"%s: illegal argument to -j -- must be positive integer!\n",
|
||||||
@ -1073,7 +1073,7 @@ main(int argc, char **argv)
|
|||||||
* on each program execution.
|
* on each program execution.
|
||||||
*/
|
*/
|
||||||
gettimeofday(&rightnow, NULL);
|
gettimeofday(&rightnow, NULL);
|
||||||
srandom(rightnow.tv_sec + rightnow.tv_usec);
|
srandom((unsigned int)(rightnow.tv_sec + rightnow.tv_usec));
|
||||||
|
|
||||||
if ((progname = strrchr(argv[0], '/')) != NULL)
|
if ((progname = strrchr(argv[0], '/')) != NULL)
|
||||||
progname++;
|
progname++;
|
||||||
@ -1419,7 +1419,7 @@ main(int argc, char **argv)
|
|||||||
|
|
||||||
(void)Var_Subst("${.MAKE.JOBS}", VAR_GLOBAL, VARE_WANTRES, &value);
|
(void)Var_Subst("${.MAKE.JOBS}", VAR_GLOBAL, VARE_WANTRES, &value);
|
||||||
/* TODO: handle errors */
|
/* TODO: handle errors */
|
||||||
n = strtol(value, NULL, 0);
|
n = (int)strtol(value, NULL, 0);
|
||||||
if (n < 1) {
|
if (n < 1) {
|
||||||
(void)fprintf(stderr, "%s: illegal value for .MAKE.JOBS -- must be positive integer!\n",
|
(void)fprintf(stderr, "%s: illegal value for .MAKE.JOBS -- must be positive integer!\n",
|
||||||
progname);
|
progname);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: parse.c,v 1.368 2020/10/05 19:27:47 rillig Exp $ */
|
/* $NetBSD: parse.c,v 1.369 2020/10/05 21:37:07 rillig Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1988, 1989, 1990, 1993
|
* Copyright (c) 1988, 1989, 1990, 1993
|
||||||
@ -131,7 +131,7 @@
|
|||||||
#include "pathnames.h"
|
#include "pathnames.h"
|
||||||
|
|
||||||
/* "@(#)parse.c 8.3 (Berkeley) 3/19/94" */
|
/* "@(#)parse.c 8.3 (Berkeley) 3/19/94" */
|
||||||
MAKE_RCSID("$NetBSD: parse.c,v 1.368 2020/10/05 19:27:47 rillig Exp $");
|
MAKE_RCSID("$NetBSD: parse.c,v 1.369 2020/10/05 21:37:07 rillig Exp $");
|
||||||
|
|
||||||
/* types and constants */
|
/* types and constants */
|
||||||
|
|
||||||
@ -143,7 +143,7 @@ typedef struct IFile {
|
|||||||
Boolean fromForLoop; /* simulated .include by the .for loop */
|
Boolean fromForLoop; /* simulated .include by the .for loop */
|
||||||
int lineno; /* current line number in file */
|
int lineno; /* current line number in file */
|
||||||
int first_lineno; /* line number of start of text */
|
int first_lineno; /* line number of start of text */
|
||||||
int cond_depth; /* 'if' nesting when file opened */
|
unsigned int cond_depth; /* 'if' nesting when file opened */
|
||||||
Boolean depending; /* state of doing_depend on EOF */
|
Boolean depending; /* state of doing_depend on EOF */
|
||||||
char *P_str; /* point to base of string buffer */
|
char *P_str; /* point to base of string buffer */
|
||||||
char *P_ptr; /* point to next char of string buffer */
|
char *P_ptr; /* point to next char of string buffer */
|
||||||
@ -454,7 +454,7 @@ static struct loadedfile *
|
|||||||
loadfile(const char *path, int fd)
|
loadfile(const char *path, int fd)
|
||||||
{
|
{
|
||||||
struct loadedfile *lf;
|
struct loadedfile *lf;
|
||||||
static long pagesize = 0;
|
static unsigned long pagesize = 0;
|
||||||
ssize_t result;
|
ssize_t result;
|
||||||
size_t bufpos;
|
size_t bufpos;
|
||||||
|
|
||||||
@ -477,8 +477,8 @@ loadfile(const char *path, int fd)
|
|||||||
if (load_getsize(fd, &lf->len)) {
|
if (load_getsize(fd, &lf->len)) {
|
||||||
/* found a size, try mmap */
|
/* found a size, try mmap */
|
||||||
if (pagesize == 0)
|
if (pagesize == 0)
|
||||||
pagesize = sysconf(_SC_PAGESIZE);
|
pagesize = (unsigned long)sysconf(_SC_PAGESIZE);
|
||||||
if (pagesize <= 0) {
|
if (pagesize == 0 || pagesize == (unsigned long)-1) {
|
||||||
pagesize = 0x1000;
|
pagesize = 0x1000;
|
||||||
}
|
}
|
||||||
/* round size up to a page */
|
/* round size up to a page */
|
||||||
@ -540,7 +540,7 @@ loadfile(const char *path, int fd)
|
|||||||
if (result == 0) {
|
if (result == 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
bufpos += result;
|
bufpos += (size_t)result;
|
||||||
}
|
}
|
||||||
assert(bufpos <= lf->len);
|
assert(bufpos <= lf->len);
|
||||||
lf->len = bufpos;
|
lf->len = bufpos;
|
||||||
@ -709,7 +709,7 @@ Parse_Error(int type, const char *fmt, ...)
|
|||||||
lineno = 0;
|
lineno = 0;
|
||||||
} else {
|
} else {
|
||||||
fname = curFile->fname;
|
fname = curFile->fname;
|
||||||
lineno = curFile->lineno;
|
lineno = (size_t)curFile->lineno;
|
||||||
}
|
}
|
||||||
|
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
@ -2113,7 +2113,7 @@ ParseAddCmd(GNode *gn, char *cmd)
|
|||||||
Parse_Error(PARSE_WARNING,
|
Parse_Error(PARSE_WARNING,
|
||||||
"duplicate script for target \"%s\" ignored",
|
"duplicate script for target \"%s\" ignored",
|
||||||
gn->name);
|
gn->name);
|
||||||
ParseErrorInternal(gn->fname, gn->lineno, PARSE_WARNING,
|
ParseErrorInternal(gn->fname, (size_t)gn->lineno, PARSE_WARNING,
|
||||||
"using previous script for \"%s\" defined here",
|
"using previous script for \"%s\" defined here",
|
||||||
gn->name);
|
gn->name);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: suff.c,v 1.176 2020/10/05 19:27:47 rillig Exp $ */
|
/* $NetBSD: suff.c,v 1.177 2020/10/05 21:37:07 rillig Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1988, 1989, 1990, 1993
|
* Copyright (c) 1988, 1989, 1990, 1993
|
||||||
@ -129,7 +129,7 @@
|
|||||||
#include "dir.h"
|
#include "dir.h"
|
||||||
|
|
||||||
/* "@(#)suff.c 8.4 (Berkeley) 3/21/94" */
|
/* "@(#)suff.c 8.4 (Berkeley) 3/21/94" */
|
||||||
MAKE_RCSID("$NetBSD: suff.c,v 1.176 2020/10/05 19:27:47 rillig Exp $");
|
MAKE_RCSID("$NetBSD: suff.c,v 1.177 2020/10/05 21:37:07 rillig Exp $");
|
||||||
|
|
||||||
#define SUFF_DEBUG0(text) DEBUG0(SUFF, text)
|
#define SUFF_DEBUG0(text) DEBUG0(SUFF, text)
|
||||||
#define SUFF_DEBUG1(fmt, arg1) DEBUG1(SUFF, fmt, arg1)
|
#define SUFF_DEBUG1(fmt, arg1) DEBUG1(SUFF, fmt, arg1)
|
||||||
@ -1619,7 +1619,7 @@ SuffFindArchiveDeps(GNode *gn, SrcList *slst)
|
|||||||
/*
|
/*
|
||||||
* Use first matching suffix...
|
* Use first matching suffix...
|
||||||
*/
|
*/
|
||||||
sd.name_len = eoarch - gn->name;
|
sd.name_len = (size_t)(eoarch - gn->name);
|
||||||
sd.name_end = eoarch;
|
sd.name_end = eoarch;
|
||||||
ln = Lst_Find(ms->parents, SuffSuffIsSuffix, &sd);
|
ln = Lst_Find(ms->parents, SuffSuffIsSuffix, &sd);
|
||||||
|
|
||||||
@ -2099,7 +2099,7 @@ Suff_SetNull(const char *name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (suffNull != NULL) {
|
if (suffNull != NULL) {
|
||||||
suffNull->flags &= ~SUFF_NULL;
|
suffNull->flags &= ~(unsigned)SUFF_NULL;
|
||||||
}
|
}
|
||||||
s->flags |= SUFF_NULL;
|
s->flags |= SUFF_NULL;
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user