mirror of
https://github.com/mirror/make.git
synced 2025-03-13 19:30:41 +08:00
Adjust output strings to be aligned
Change error and fatal messages to start with lowercase and not end with a period. Note a few very common messages were left as-is, just in case some other tools parse them. Also modify the test known-good-output to satisfy the messages.
This commit is contained in:
parent
a0d1e76d60
commit
c2792d6129
8
src/ar.c
8
src/ar.c
@ -63,7 +63,7 @@ ar_parse_name (const char *name, char **arname_p, char **memname_p)
|
|||||||
p = strchr (*arname_p, '(');
|
p = strchr (*arname_p, '(');
|
||||||
/* This is never called unless ar_name() is true so p cannot be NULL. */
|
/* This is never called unless ar_name() is true so p cannot be NULL. */
|
||||||
if (!p)
|
if (!p)
|
||||||
OS (fatal, NILF, "Internal: ar_parse_name: bad name '%s'", *arname_p);
|
OS (fatal, NILF, "INTERNAL: ar_parse_name: bad name '%s'", *arname_p);
|
||||||
*(p++) = '\0';
|
*(p++) = '\0';
|
||||||
p[strlen (p) - 1] = '\0';
|
p[strlen (p) - 1] = '\0';
|
||||||
*memname_p = p;
|
*memname_p = p;
|
||||||
@ -148,7 +148,7 @@ ar_touch (const char *name)
|
|||||||
switch (ar_member_touch (arname, memname))
|
switch (ar_member_touch (arname, memname))
|
||||||
{
|
{
|
||||||
case -1:
|
case -1:
|
||||||
OS (error, NILF, _("touch: Archive '%s' does not exist"), arname);
|
OS (error, NILF, _("touch: archive '%s' does not exist"), arname);
|
||||||
break;
|
break;
|
||||||
case -2:
|
case -2:
|
||||||
OS (error, NILF, _("touch: '%s' is not a valid archive"), arname);
|
OS (error, NILF, _("touch: '%s' is not a valid archive"), arname);
|
||||||
@ -158,14 +158,14 @@ ar_touch (const char *name)
|
|||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
OSS (error, NILF,
|
OSS (error, NILF,
|
||||||
_("touch: Member '%s' does not exist in '%s'"), memname, arname);
|
_("touch: member '%s' does not exist in '%s'"), memname, arname);
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
val = 0;
|
val = 0;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
OS (error, NILF,
|
OS (error, NILF,
|
||||||
_("touch: Bad return code from ar_member_touch on '%s'"), name);
|
_("touch: bad return code from ar_member_touch on '%s'"), name);
|
||||||
}
|
}
|
||||||
|
|
||||||
free (arname);
|
free (arname);
|
||||||
|
@ -399,11 +399,11 @@ parse_int (const char *ptr, const size_t len, const int base, uintmax_t max,
|
|||||||
|
|
||||||
if (*ptr < '0' || *ptr > maxchar)
|
if (*ptr < '0' || *ptr > maxchar)
|
||||||
OSSS (fatal, NILF,
|
OSSS (fatal, NILF,
|
||||||
_("Invalid %s for archive %s member %s"), type, archive, name);
|
_("invalid %s for archive %s member %s"), type, archive, name);
|
||||||
nv = (val * base) + (*ptr - '0');
|
nv = (val * base) + (*ptr - '0');
|
||||||
if (nv < val || nv > max)
|
if (nv < val || nv > max)
|
||||||
OSSS (fatal, NILF,
|
OSSS (fatal, NILF,
|
||||||
_("Invalid %s for archive %s member %s"), type, archive, name);
|
_("invalid %s for archive %s member %s"), type, archive, name);
|
||||||
val = nv;
|
val = nv;
|
||||||
++ptr;
|
++ptr;
|
||||||
}
|
}
|
||||||
|
@ -376,7 +376,7 @@ chop_commands (struct commands *cmds)
|
|||||||
|
|
||||||
if (nlines == USHRT_MAX)
|
if (nlines == USHRT_MAX)
|
||||||
ON (fatal, &cmds->fileinfo,
|
ON (fatal, &cmds->fileinfo,
|
||||||
_("Recipe has too many lines (limit %hu)"), nlines);
|
_("recipe has too many lines (limit %hu)"), nlines);
|
||||||
|
|
||||||
if (nlines == max)
|
if (nlines == max)
|
||||||
{
|
{
|
||||||
@ -618,11 +618,11 @@ delete_target (struct file *file, const char *on_behalf_of)
|
|||||||
{
|
{
|
||||||
if (on_behalf_of)
|
if (on_behalf_of)
|
||||||
OSS (error, NILF,
|
OSS (error, NILF,
|
||||||
_("*** [%s] Archive member '%s' may be bogus; not deleted"),
|
_("*** [%s] archive member '%s' may be bogus; not deleted"),
|
||||||
on_behalf_of, file->name);
|
on_behalf_of, file->name);
|
||||||
else
|
else
|
||||||
OS (error, NILF,
|
OS (error, NILF,
|
||||||
_("*** Archive member '%s' may be bogus; not deleted"),
|
_("*** archive member '%s' may be bogus; not deleted"),
|
||||||
file->name);
|
file->name);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -636,9 +636,9 @@ delete_target (struct file *file, const char *on_behalf_of)
|
|||||||
{
|
{
|
||||||
if (on_behalf_of)
|
if (on_behalf_of)
|
||||||
OSS (error, NILF,
|
OSS (error, NILF,
|
||||||
_("*** [%s] Deleting file '%s'"), on_behalf_of, file->name);
|
_("*** [%s] deleting file '%s'"), on_behalf_of, file->name);
|
||||||
else
|
else
|
||||||
OS (error, NILF, _("*** Deleting file '%s'"), file->name);
|
OS (error, NILF, _("*** deleting file '%s'"), file->name);
|
||||||
if (unlink (file->name) < 0
|
if (unlink (file->name) < 0
|
||||||
&& errno != ENOENT) /* It disappeared; so what. */
|
&& errno != ENOENT) /* It disappeared; so what. */
|
||||||
perror_with_name ("unlink: ", file->name);
|
perror_with_name ("unlink: ", file->name);
|
||||||
|
@ -193,7 +193,7 @@ recursively_expand_for_file (struct variable *v, struct file *file)
|
|||||||
if (!v->exp_count)
|
if (!v->exp_count)
|
||||||
/* Expanding V causes infinite recursion. Lose. */
|
/* Expanding V causes infinite recursion. Lose. */
|
||||||
OS (fatal, *expanding_var,
|
OS (fatal, *expanding_var,
|
||||||
_("Recursive variable '%s' references itself (eventually)"),
|
_("recursive variable '%s' references itself (eventually)"),
|
||||||
v->name);
|
v->name);
|
||||||
--v->exp_count;
|
--v->exp_count;
|
||||||
}
|
}
|
||||||
|
14
src/file.c
14
src/file.c
@ -269,19 +269,19 @@ rehash_file (struct file *from_file, const char *to_hname)
|
|||||||
if (to_file->cmds->fileinfo.filenm != 0)
|
if (to_file->cmds->fileinfo.filenm != 0)
|
||||||
error (&from_file->cmds->fileinfo,
|
error (&from_file->cmds->fileinfo,
|
||||||
l + strlen (to_file->cmds->fileinfo.filenm) + INTSTR_LENGTH,
|
l + strlen (to_file->cmds->fileinfo.filenm) + INTSTR_LENGTH,
|
||||||
_("Recipe was specified for file '%s' at %s:%lu,"),
|
_("recipe was specified for file '%s' at %s:%lu,"),
|
||||||
from_file->name, from_file->cmds->fileinfo.filenm,
|
from_file->name, from_file->cmds->fileinfo.filenm,
|
||||||
from_file->cmds->fileinfo.lineno);
|
from_file->cmds->fileinfo.lineno);
|
||||||
else
|
else
|
||||||
error (&from_file->cmds->fileinfo, l,
|
error (&from_file->cmds->fileinfo, l,
|
||||||
_("Recipe for file '%s' was found by implicit rule search,"),
|
_("recipe for file '%s' was found by implicit rule search,"),
|
||||||
from_file->name);
|
from_file->name);
|
||||||
l += strlen (to_hname);
|
l += strlen (to_hname);
|
||||||
error (&from_file->cmds->fileinfo, l,
|
error (&from_file->cmds->fileinfo, l,
|
||||||
_("but '%s' is now considered the same file as '%s'."),
|
_("but '%s' is now considered the same file as '%s'"),
|
||||||
from_file->name, to_hname);
|
from_file->name, to_hname);
|
||||||
error (&from_file->cmds->fileinfo, l,
|
error (&from_file->cmds->fileinfo, l,
|
||||||
_("Recipe for '%s' will be ignored in favor of the one for '%s'."),
|
_("recipe for '%s' will be ignored in favor of the one for '%s'"),
|
||||||
from_file->name, to_hname);
|
from_file->name, to_hname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -410,7 +410,7 @@ remove_intermediates (int sig)
|
|||||||
{
|
{
|
||||||
if (sig)
|
if (sig)
|
||||||
OS (error, NILF,
|
OS (error, NILF,
|
||||||
_("*** Deleting intermediate file '%s'"), f->name);
|
_("*** deleting intermediate file '%s'"), f->name);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (! doneany)
|
if (! doneany)
|
||||||
@ -949,7 +949,7 @@ file_timestamp_cons (const char *fname, time_t stamp, long int ns)
|
|||||||
ts = s <= OLD_MTIME ? ORDINARY_MTIME_MIN : ORDINARY_MTIME_MAX;
|
ts = s <= OLD_MTIME ? ORDINARY_MTIME_MIN : ORDINARY_MTIME_MAX;
|
||||||
file_timestamp_sprintf (buf, ts);
|
file_timestamp_sprintf (buf, ts);
|
||||||
OSS (error, NILF,
|
OSS (error, NILF,
|
||||||
_("%s: Timestamp out of range; substituting %s"), f, buf);
|
_("%s: timestamp out of range: substituting %s"), f, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ts;
|
return ts;
|
||||||
@ -1199,7 +1199,7 @@ print_file_data_base (void)
|
|||||||
do{ \
|
do{ \
|
||||||
if (_p->_n && _p->_n[0] && !strcache_iscached (_p->_n)) \
|
if (_p->_n && _p->_n[0] && !strcache_iscached (_p->_n)) \
|
||||||
error (NULL, strlen (_p->name) + CSTRLEN (# _n) + strlen (_p->_n), \
|
error (NULL, strlen (_p->name) + CSTRLEN (# _n) + strlen (_p->_n), \
|
||||||
_("%s: Field '%s' not cached: %s"), _p->name, # _n, _p->_n); \
|
_("%s: field '%s' not cached: %s"), _p->name, # _n, _p->_n); \
|
||||||
}while(0)
|
}while(0)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1184,7 +1184,7 @@ func_error (char *o, char **argv, const char *funcname)
|
|||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
OS (fatal, *expanding_var, "Internal error: func_error: '%s'", funcname);
|
OS (fatal, *expanding_var, "INTERNAL: func_error: '%s'", funcname);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The warning function expands to the empty string. */
|
/* The warning function expands to the empty string. */
|
||||||
@ -1669,7 +1669,7 @@ windows32_openpipe (int *pipedes, int errfd, pid_t *pid_p, char **command_argv,
|
|||||||
if (hIn == INVALID_HANDLE_VALUE)
|
if (hIn == INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
ON (error, NILF,
|
ON (error, NILF,
|
||||||
_("windows32_openpipe: DuplicateHandle(In) failed (e=%lu)\n"), e);
|
_("windows32_openpipe: DuplicateHandle(In) failed (e=%lu)"), e);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1693,14 +1693,14 @@ windows32_openpipe (int *pipedes, int errfd, pid_t *pid_p, char **command_argv,
|
|||||||
if (hErr == INVALID_HANDLE_VALUE)
|
if (hErr == INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
ON (error, NILF,
|
ON (error, NILF,
|
||||||
_("windows32_openpipe: DuplicateHandle(Err) failed (e=%lu)\n"), e);
|
_("windows32_openpipe: DuplicateHandle(Err) failed (e=%lu)"), e);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! CreatePipe (&hChildOutRd, &hChildOutWr, &saAttr, 0))
|
if (! CreatePipe (&hChildOutRd, &hChildOutWr, &saAttr, 0))
|
||||||
{
|
{
|
||||||
ON (error, NILF, _("CreatePipe() failed (e=%lu)\n"), GetLastError());
|
ON (error, NILF, _("CreatePipe() failed (e=%lu)"), GetLastError());
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1708,7 +1708,7 @@ windows32_openpipe (int *pipedes, int errfd, pid_t *pid_p, char **command_argv,
|
|||||||
|
|
||||||
if (!hProcess)
|
if (!hProcess)
|
||||||
{
|
{
|
||||||
O (error, NILF, _("windows32_openpipe(): process_init_fd() failed\n"));
|
O (error, NILF, _("windows32_openpipe(): process_init_fd() failed"));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2706,17 +2706,17 @@ define_new_function (const floc *flocp, const char *name,
|
|||||||
len = e - name;
|
len = e - name;
|
||||||
|
|
||||||
if (len == 0)
|
if (len == 0)
|
||||||
O (fatal, flocp, _("Empty function name"));
|
O (fatal, flocp, _("empty function name"));
|
||||||
if (*name == '.' || *e != '\0')
|
if (*name == '.' || *e != '\0')
|
||||||
OS (fatal, flocp, _("Invalid function name: %s"), name);
|
OS (fatal, flocp, _("invalid function name: %s"), name);
|
||||||
if (len > 255)
|
if (len > 255)
|
||||||
OS (fatal, flocp, _("Function name too long: %s"), name);
|
OS (fatal, flocp, _("function name too long: %s"), name);
|
||||||
if (min > 255)
|
if (min > 255)
|
||||||
ONS (fatal, flocp,
|
ONS (fatal, flocp,
|
||||||
_("Invalid minimum argument count (%u) for function %s"), min, name);
|
_("invalid minimum argument count (%u) for function %s"), min, name);
|
||||||
if (max > 255 || (max && max < min))
|
if (max > 255 || (max && max < min))
|
||||||
ONS (fatal, flocp,
|
ONS (fatal, flocp,
|
||||||
_("Invalid maximum argument count (%u) for function %s"), max, name);
|
_("invalid maximum argument count (%u) for function %s"), max, name);
|
||||||
|
|
||||||
ent = xmalloc (sizeof (struct function_table_entry));
|
ent = xmalloc (sizeof (struct function_table_entry));
|
||||||
ent->name = strcache_add (name);
|
ent->name = strcache_add (name);
|
||||||
|
@ -1110,7 +1110,7 @@ free_child (struct child *child)
|
|||||||
output_close (&child->output);
|
output_close (&child->output);
|
||||||
|
|
||||||
if (!jobserver_tokens)
|
if (!jobserver_tokens)
|
||||||
ONS (fatal, NILF, "INTERNAL: Freeing child %p (%s) but no tokens left",
|
ONS (fatal, NILF, "INTERNAL: freeing child %p (%s) but no tokens left",
|
||||||
child, child->file->name);
|
child, child->file->name);
|
||||||
|
|
||||||
/* If we're using the jobserver and this child is not the only outstanding
|
/* If we're using the jobserver and this child is not the only outstanding
|
||||||
@ -2242,7 +2242,7 @@ child_execute_job (struct childbase *child, int good_stdin, char **argv)
|
|||||||
if (save_fdin >= 0)
|
if (save_fdin >= 0)
|
||||||
{
|
{
|
||||||
if (dup2 (save_fdin, FD_STDIN) != FD_STDIN)
|
if (dup2 (save_fdin, FD_STDIN) != FD_STDIN)
|
||||||
O (fatal, NILF, _("Could not restore stdin"));
|
O (fatal, NILF, _("could not restore stdin"));
|
||||||
else
|
else
|
||||||
close (save_fdin);
|
close (save_fdin);
|
||||||
}
|
}
|
||||||
@ -2250,7 +2250,7 @@ child_execute_job (struct childbase *child, int good_stdin, char **argv)
|
|||||||
if (save_fdout >= 0)
|
if (save_fdout >= 0)
|
||||||
{
|
{
|
||||||
if (dup2 (save_fdout, FD_STDOUT) != FD_STDOUT)
|
if (dup2 (save_fdout, FD_STDOUT) != FD_STDOUT)
|
||||||
O (fatal, NILF, _("Could not restore stdout"));
|
O (fatal, NILF, _("could not restore stdout"));
|
||||||
else
|
else
|
||||||
close (save_fdout);
|
close (save_fdout);
|
||||||
}
|
}
|
||||||
@ -2258,7 +2258,7 @@ child_execute_job (struct childbase *child, int good_stdin, char **argv)
|
|||||||
if (save_fderr >= 0)
|
if (save_fderr >= 0)
|
||||||
{
|
{
|
||||||
if (dup2 (save_fderr, FD_STDERR) != FD_STDERR)
|
if (dup2 (save_fderr, FD_STDERR) != FD_STDERR)
|
||||||
O (fatal, NILF, _("Could not restore stderr"));
|
O (fatal, NILF, _("could not restore stderr"));
|
||||||
else
|
else
|
||||||
close (save_fderr);
|
close (save_fderr);
|
||||||
}
|
}
|
||||||
|
12
src/load.c
12
src/load.c
@ -57,7 +57,7 @@ load_object (const floc *flocp, int noerror, const char *ldname,
|
|||||||
if (! global_dl)
|
if (! global_dl)
|
||||||
{
|
{
|
||||||
const char *err = dlerror ();
|
const char *err = dlerror ();
|
||||||
OS (fatal, flocp, _("Failed to open global symbol table: %s"), err);
|
OS (fatal, flocp, _("failed to open global symbol table: %s"), err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,14 +96,14 @@ load_object (const floc *flocp, int noerror, const char *ldname,
|
|||||||
symp = (load_func_t) dlsym (dlp, "plugin_is_GPL_compatible");
|
symp = (load_func_t) dlsym (dlp, "plugin_is_GPL_compatible");
|
||||||
if (! symp)
|
if (! symp)
|
||||||
OS (fatal, flocp,
|
OS (fatal, flocp,
|
||||||
_("Loaded object %s is not declared to be GPL compatible"),
|
_("loaded object %s is not declared to be GPL compatible"),
|
||||||
ldname);
|
ldname);
|
||||||
|
|
||||||
symp = (load_func_t) dlsym (dlp, symname);
|
symp = (load_func_t) dlsym (dlp, symname);
|
||||||
if (! symp)
|
if (! symp)
|
||||||
{
|
{
|
||||||
const char *err = dlerror ();
|
const char *err = dlerror ();
|
||||||
OSSS (fatal, flocp, _("Failed to load symbol %s from %s: %s"),
|
OSSS (fatal, flocp, _("failed to load symbol %s from %s: %s"),
|
||||||
symname, ldname, err);
|
symname, ldname, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,7 +148,7 @@ load_file (const floc *flocp, struct file *file, int noerror)
|
|||||||
|
|
||||||
++fp;
|
++fp;
|
||||||
if (fp == ep)
|
if (fp == ep)
|
||||||
OS (fatal, flocp, _("Empty symbol name for load: %s"), ldname);
|
OS (fatal, flocp, _("empty symbol name for load: %s"), ldname);
|
||||||
|
|
||||||
/* Make a copy of the ldname part. */
|
/* Make a copy of the ldname part. */
|
||||||
memcpy (new, ldname, l);
|
memcpy (new, ldname, l);
|
||||||
@ -248,7 +248,7 @@ load_file (const floc *flocp, struct file *file UNUSED, int noerror)
|
|||||||
{
|
{
|
||||||
if (! noerror)
|
if (! noerror)
|
||||||
O (fatal, flocp,
|
O (fatal, flocp,
|
||||||
_("The 'load' operation is not supported on this platform"));
|
_("'load' is not supported on this platform"));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -256,7 +256,7 @@ load_file (const floc *flocp, struct file *file UNUSED, int noerror)
|
|||||||
int
|
int
|
||||||
unload_file (const char *name UNUSED)
|
unload_file (const char *name UNUSED)
|
||||||
{
|
{
|
||||||
O (fatal, NILF, "INTERNAL: Cannot unload when load is not supported");
|
O (fatal, NILF, "INTERNAL: cannot unload when load is not supported");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* MAKE_LOAD */
|
#endif /* MAKE_LOAD */
|
||||||
|
27
src/main.c
27
src/main.c
@ -1824,7 +1824,7 @@ main (int argc, char **argv, char **envp)
|
|||||||
goto job_setup_complete;
|
goto job_setup_complete;
|
||||||
|
|
||||||
/* Oops: we have jobserver-auth but it's invalid :(. */
|
/* Oops: we have jobserver-auth but it's invalid :(. */
|
||||||
O (error, NILF, _("warning: jobserver unavailable: using -j1. Add '+' to parent make rule."));
|
O (error, NILF, _("warning: jobserver unavailable: using -j1 (add '+' to parent make rule)"));
|
||||||
arg_job_slots = 1;
|
arg_job_slots = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1832,7 +1832,7 @@ main (int argc, char **argv, char **envp)
|
|||||||
the master make of a new jobserver group. */
|
the master make of a new jobserver group. */
|
||||||
else if (!restarts)
|
else if (!restarts)
|
||||||
ON (error, NILF,
|
ON (error, NILF,
|
||||||
_("warning: -j%d forced in submake: resetting jobserver mode."),
|
_("warning: -j%d forced in submake: resetting jobserver mode"),
|
||||||
argv_slots);
|
argv_slots);
|
||||||
|
|
||||||
/* We can't use our parent's jobserver, so reset. */
|
/* We can't use our parent's jobserver, so reset. */
|
||||||
@ -2082,7 +2082,7 @@ main (int argc, char **argv, char **envp)
|
|||||||
Make us the master of a new jobserver group. */
|
Make us the master of a new jobserver group. */
|
||||||
if (!restarts)
|
if (!restarts)
|
||||||
ON (error, NILF,
|
ON (error, NILF,
|
||||||
_("warning: -j%d forced in makefile: resetting jobserver mode."),
|
_("warning: -j%d forced in makefile: resetting jobserver mode"),
|
||||||
arg_job_slots);
|
arg_job_slots);
|
||||||
|
|
||||||
/* We can't use our parent's jobserver, so reset. */
|
/* We can't use our parent's jobserver, so reset. */
|
||||||
@ -2178,8 +2178,8 @@ main (int argc, char **argv, char **envp)
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
O (error, NILF,
|
O (error, NILF,
|
||||||
_("Parallel jobs (-j) are not supported on this platform."));
|
_("parallel jobs (-j) are not supported on this platform"));
|
||||||
O (error, NILF, _("Resetting to single job (-j1) mode."));
|
O (error, NILF, _("resetting to single job (-j1) mode"));
|
||||||
arg_job_slots = INVALID_JOB_SLOTS;
|
arg_job_slots = INVALID_JOB_SLOTS;
|
||||||
job_slots = 1;
|
job_slots = 1;
|
||||||
}
|
}
|
||||||
@ -2242,7 +2242,7 @@ main (int argc, char **argv, char **envp)
|
|||||||
#ifndef MAKE_SYMLINKS
|
#ifndef MAKE_SYMLINKS
|
||||||
if (check_symlink_flag)
|
if (check_symlink_flag)
|
||||||
{
|
{
|
||||||
O (error, NILF, _("Symbolic links not supported: disabling -L."));
|
O (error, NILF, _("symbolic links not supported: disabling -L"));
|
||||||
check_symlink_flag = 0;
|
check_symlink_flag = 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -2520,8 +2520,7 @@ main (int argc, char **argv, char **envp)
|
|||||||
/* The update failed and this makefile was not
|
/* The update failed and this makefile was not
|
||||||
from the MAKEFILES variable, so we care. */
|
from the MAKEFILES variable, so we care. */
|
||||||
OS (error, &d->floc,
|
OS (error, &d->floc,
|
||||||
_("Failed to remake makefile '%s'."),
|
_("failed to remake makefile '%s'"), d->file->name);
|
||||||
d->file->name);
|
|
||||||
mtime = file_mtime_no_search (d->file);
|
mtime = file_mtime_no_search (d->file);
|
||||||
any_remade |= (mtime != NONEXISTENT_MTIME
|
any_remade |= (mtime != NONEXISTENT_MTIME
|
||||||
&& mtime != makefile_mtimes[i]);
|
&& mtime != makefile_mtimes[i]);
|
||||||
@ -2540,11 +2539,11 @@ main (int argc, char **argv, char **envp)
|
|||||||
/* An included makefile. We don't need to die, but we
|
/* An included makefile. We don't need to die, but we
|
||||||
do want to complain. */
|
do want to complain. */
|
||||||
OS (error, &d->floc,
|
OS (error, &d->floc,
|
||||||
_("Included makefile '%s' was not found."), dnm);
|
_("included makefile '%s' was not found"), dnm);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* A normal makefile. We must die later. */
|
/* A normal makefile. We must die later. */
|
||||||
OS (error, NILF, _("Makefile '%s' was not found"), dnm);
|
OS (error, NILF, _("makefile '%s' was not found"), dnm);
|
||||||
any_failed = 1;
|
any_failed = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2692,7 +2691,7 @@ main (int argc, char **argv, char **envp)
|
|||||||
}
|
}
|
||||||
if (bad)
|
if (bad)
|
||||||
O (fatal, NILF,
|
O (fatal, NILF,
|
||||||
_("Couldn't change back to original directory"));
|
_("couldn't change back to original directory"));
|
||||||
}
|
}
|
||||||
|
|
||||||
++restarts;
|
++restarts;
|
||||||
@ -2898,7 +2897,7 @@ main (int argc, char **argv, char **envp)
|
|||||||
/* If we detected some clock skew, generate one last warning */
|
/* If we detected some clock skew, generate one last warning */
|
||||||
if (clock_skew_detected)
|
if (clock_skew_detected)
|
||||||
O (error, NILF,
|
O (error, NILF,
|
||||||
_("warning: Clock skew detected. Your build may be incomplete."));
|
_("warning: clock skew detected: your build may be incomplete"));
|
||||||
|
|
||||||
/* Exit. */
|
/* Exit. */
|
||||||
die (makefile_status);
|
die (makefile_status);
|
||||||
@ -3715,7 +3714,7 @@ clean_jobserver (int status)
|
|||||||
{
|
{
|
||||||
if (status != 2)
|
if (status != 2)
|
||||||
ON (error, NILF,
|
ON (error, NILF,
|
||||||
"INTERNAL: Exiting with %u jobserver tokens (should be 0)!",
|
"INTERNAL: exiting with %u jobserver tokens (should be 0)!",
|
||||||
jobserver_tokens);
|
jobserver_tokens);
|
||||||
else
|
else
|
||||||
/* Don't write back the "free" token */
|
/* Don't write back the "free" token */
|
||||||
@ -3733,7 +3732,7 @@ clean_jobserver (int status)
|
|||||||
|
|
||||||
if (tokens != master_job_slots)
|
if (tokens != master_job_slots)
|
||||||
ONN (error, NILF,
|
ONN (error, NILF,
|
||||||
"INTERNAL: Exiting with %u jobserver tokens available; should be %u!",
|
"INTERNAL: exiting with %u jobserver tokens available; should be %u!",
|
||||||
tokens, master_job_slots);
|
tokens, master_job_slots);
|
||||||
|
|
||||||
reset_jobserver ();
|
reset_jobserver ();
|
||||||
|
@ -249,7 +249,7 @@ setup_tmpfile (struct output *out)
|
|||||||
/* If we failed to create a temp file, disable output sync going forward. */
|
/* If we failed to create a temp file, disable output sync going forward. */
|
||||||
error:
|
error:
|
||||||
O (error, NILF,
|
O (error, NILF,
|
||||||
_("cannot open output-sync lock file, suppressing output-sync."));
|
_("cannot open output-sync lock file: suppressing output-sync"));
|
||||||
|
|
||||||
output_close (out);
|
output_close (out);
|
||||||
output_sync = OUTPUT_SYNC_NONE;
|
output_sync = OUTPUT_SYNC_NONE;
|
||||||
@ -280,7 +280,7 @@ output_dump (struct output *out)
|
|||||||
if (!osync_acquire ())
|
if (!osync_acquire ())
|
||||||
{
|
{
|
||||||
O (error, NILF,
|
O (error, NILF,
|
||||||
_("warning: Cannot acquire output lock, disabling output sync."));
|
_("warning: cannot acquire output lock: disabling output sync"));
|
||||||
osync_clear ();
|
osync_clear ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1827,7 +1827,7 @@ record_target_var (struct nameseq *filenames, char *defn,
|
|||||||
current_variable_set_list = f->variables;
|
current_variable_set_list = f->variables;
|
||||||
v = try_variable_definition (flocp, defn, origin, 1);
|
v = try_variable_definition (flocp, defn, origin, 1);
|
||||||
if (!v)
|
if (!v)
|
||||||
O (fatal, flocp, _("Malformed target-specific variable definition"));
|
O (fatal, flocp, _("malformed target-specific variable definition"));
|
||||||
current_variable_set_list = global;
|
current_variable_set_list = global;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
10
src/remake.c
10
src/remake.c
@ -101,7 +101,7 @@ check_also_make (const struct file *file)
|
|||||||
for (ad = file->also_make; ad; ad = ad->next)
|
for (ad = file->also_make; ad; ad = ad->next)
|
||||||
if (ad->file->last_mtime == NONEXISTENT_MTIME)
|
if (ad->file->last_mtime == NONEXISTENT_MTIME)
|
||||||
OS (error, file->cmds ? &file->cmds->fileinfo : NILF,
|
OS (error, file->cmds ? &file->cmds->fileinfo : NILF,
|
||||||
_("warning: pattern recipe did not update peer target '%s'."),
|
_("warning: pattern recipe did not update peer target '%s'"),
|
||||||
ad->file->name);
|
ad->file->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -529,7 +529,7 @@ update_file_1 (struct file *file, unsigned int depth)
|
|||||||
int ns = FILE_TIMESTAMP_NS (this_mtime);
|
int ns = FILE_TIMESTAMP_NS (this_mtime);
|
||||||
if (ns != 0)
|
if (ns != 0)
|
||||||
OS (error, NILF,
|
OS (error, NILF,
|
||||||
_("*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"),
|
_("*** warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"),
|
||||||
file->name);
|
file->name);
|
||||||
this_mtime += FILE_TIMESTAMPS_PER_S - 1 - ns;
|
this_mtime += FILE_TIMESTAMPS_PER_S - 1 - ns;
|
||||||
}
|
}
|
||||||
@ -612,7 +612,7 @@ update_file_1 (struct file *file, unsigned int depth)
|
|||||||
|
|
||||||
if (is_updating (d->file))
|
if (is_updating (d->file))
|
||||||
{
|
{
|
||||||
OSS (error, NILF, _("Circular %s <- %s dependency dropped."),
|
OSS (error, NILF, _("circular %s <- %s dependency dropped"),
|
||||||
file->name, d->file->name);
|
file->name, d->file->name);
|
||||||
|
|
||||||
if (lastd == 0)
|
if (lastd == 0)
|
||||||
@ -1177,7 +1177,7 @@ check_dep (struct file *file, unsigned int depth,
|
|||||||
|
|
||||||
if (is_updating (d->file))
|
if (is_updating (d->file))
|
||||||
{
|
{
|
||||||
OSS (error, NILF, _("Circular %s <- %s dependency dropped."),
|
OSS (error, NILF, _("circular %s <- %s dependency dropped"),
|
||||||
file->name, d->file->name);
|
file->name, d->file->name);
|
||||||
if (ld == 0)
|
if (ld == 0)
|
||||||
{
|
{
|
||||||
@ -1513,7 +1513,7 @@ f_mtime (struct file *file, int search)
|
|||||||
else
|
else
|
||||||
sprintf (from_now_string, "%.2g", from_now);
|
sprintf (from_now_string, "%.2g", from_now);
|
||||||
OSS (error, NILF,
|
OSS (error, NILF,
|
||||||
_("Warning: File '%s' has modification time %s s in the future"),
|
_("warning: file '%s' has modification time %s s in the future"),
|
||||||
file->name, from_now_string);
|
file->name, from_now_string);
|
||||||
clock_skew_detected = 1;
|
clock_skew_detected = 1;
|
||||||
}
|
}
|
||||||
|
@ -616,7 +616,7 @@ print_rule_data_base (void)
|
|||||||
/* This can happen if a fatal error was detected while reading the
|
/* This can happen if a fatal error was detected while reading the
|
||||||
makefiles and thus count_implicit_rule_limits wasn't called yet. */
|
makefiles and thus count_implicit_rule_limits wasn't called yet. */
|
||||||
if (num_pattern_rules != 0)
|
if (num_pattern_rules != 0)
|
||||||
ONN (fatal, NILF, _("BUG: num_pattern_rules is wrong! %u != %u"),
|
ONN (fatal, NILF, "INTERNAL: num_pattern_rules is wrong! %u != %u",
|
||||||
num_pattern_rules, rules);
|
num_pattern_rules, rules);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,7 +83,7 @@ if ($parallel_jobs) {
|
|||||||
|
|
||||||
# TEST 8: Test circular dependency check; PR/1671
|
# TEST 8: Test circular dependency check; PR/1671
|
||||||
|
|
||||||
run_make_test(undef, "d", "ok\n$make_name: Circular d <- d dependency dropped.\noops\n");
|
run_make_test(undef, "d", "ok\n$make_name: circular d <- d dependency dropped\noops\n");
|
||||||
|
|
||||||
# TEST 8: I don't grok why this is different than the above, but it is...
|
# TEST 8: I don't grok why this is different than the above, but it is...
|
||||||
#
|
#
|
||||||
|
@ -177,7 +177,7 @@ all: hello.tsk
|
|||||||
%.o:$r %.c; \$(info hello.c)
|
%.o:$r %.c; \$(info hello.c)
|
||||||
%.o:$r %.f %.tsk; \$(info hello.f)
|
%.o:$r %.f %.tsk; \$(info hello.f)
|
||||||
", '-r',
|
", '-r',
|
||||||
"#MAKE#: Circular hello.o <- hello.tsk dependency dropped.\nhello.f\nhello.tsk\n#MAKE#: Nothing to be done for 'all'.");
|
"#MAKE#: circular hello.o <- hello.tsk dependency dropped\nhello.f\nhello.tsk\n#MAKE#: Nothing to be done for 'all'.");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -432,9 +432,9 @@ all:; @echo hello
|
|||||||
include inc_b.mk
|
include inc_b.mk
|
||||||
%_a.mk %_b.mk:; exit 1
|
%_a.mk %_b.mk:; exit 1
|
||||||
!,
|
!,
|
||||||
'', "exit 1\n#MAKEFILE#:4: Failed to remake makefile 'inc_b.mk'.\n", 512);
|
'', "exit 1\n#MAKEFILE#:4: failed to remake makefile 'inc_b.mk'", 512);
|
||||||
|
|
||||||
run_make_test(undef, '-k', "exit 1\n#MAKEFILE#:4: Failed to remake makefile 'inc_b.mk'.\n", 512);
|
run_make_test(undef, '-k', "exit 1\n#MAKEFILE#:4: failed to remake makefile 'inc_b.mk'", 512);
|
||||||
|
|
||||||
# It seems wrong to me that this gives a different error message, but at
|
# It seems wrong to me that this gives a different error message, but at
|
||||||
# least it doesn't keep going.
|
# least it doesn't keep going.
|
||||||
@ -446,7 +446,7 @@ include inc_a.mk
|
|||||||
!,
|
!,
|
||||||
'', "exit 1\n#MAKEFILE#:3: inc_a.mk: $ERR_no_such_file\n#MAKE#: *** [#MAKEFILE#:5: inc_a.mk] Error 1\n", 512);
|
'', "exit 1\n#MAKEFILE#:3: inc_a.mk: $ERR_no_such_file\n#MAKE#: *** [#MAKEFILE#:5: inc_a.mk] Error 1\n", 512);
|
||||||
|
|
||||||
run_make_test(undef, '-k', "exit 1\n#MAKEFILE#:3: inc_a.mk: $ERR_no_such_file\n#MAKE#: *** [#MAKEFILE#:5: inc_a.mk] Error 1\n#MAKEFILE#:3: Failed to remake makefile 'inc_a.mk'.\n", 512);
|
run_make_test(undef, '-k', "exit 1\n#MAKEFILE#:3: inc_a.mk: $ERR_no_such_file\n#MAKE#: *** [#MAKEFILE#:5: inc_a.mk] Error 1\n#MAKEFILE#:3: failed to remake makefile 'inc_a.mk'", 512);
|
||||||
|
|
||||||
# Check the default makefiles... this requires us to invoke make with no
|
# Check the default makefiles... this requires us to invoke make with no
|
||||||
# arguments. Also check MAKEFILES
|
# arguments. Also check MAKEFILES
|
||||||
|
@ -14,7 +14,7 @@ if (!$parallel_jobs) {
|
|||||||
|
|
||||||
# Shorthand
|
# Shorthand
|
||||||
my $np = '--no-print-directory';
|
my $np = '--no-print-directory';
|
||||||
my $j1err = "warning: jobserver unavailable: using -j1. Add '+' to parent make rule.";
|
my $j1err = "warning: jobserver unavailable: using -j1 (add '+' to parent make rule)";
|
||||||
|
|
||||||
# Simple test of MAKEFLAGS settings
|
# Simple test of MAKEFLAGS settings
|
||||||
run_make_test(q!
|
run_make_test(q!
|
||||||
@ -42,7 +42,7 @@ recurse: ; @echo $@: "/$(SHOW)/"; $(MAKE) -j3 -f #MAKEFILE# recurse2
|
|||||||
recurse2: ; @echo $@: "/$(SHOW)/"; $(MAKE) -f #MAKEFILE# all
|
recurse2: ; @echo $@: "/$(SHOW)/"; $(MAKE) -f #MAKEFILE# all
|
||||||
all:;@echo $@: "/$(SHOW)/"
|
all:;@echo $@: "/$(SHOW)/"
|
||||||
!,
|
!,
|
||||||
"-j2 $np", "recurse: /-j2 --jobserver-auth=<auth> $np/\n#MAKE#[1]: warning: -j3 forced in submake: resetting jobserver mode.\nrecurse2: /-j3 --jobserver-auth=<auth> $np/\nall: /-j3 --jobserver-auth=<auth> $np/\n");
|
"-j2 $np", "recurse: /-j2 --jobserver-auth=<auth> $np/\n#MAKE#[1]: warning: -j3 forced in submake: resetting jobserver mode\nrecurse2: /-j3 --jobserver-auth=<auth> $np/\nall: /-j3 --jobserver-auth=<auth> $np/\n");
|
||||||
|
|
||||||
# Test override of -jN with -j
|
# Test override of -jN with -j
|
||||||
run_make_test(q!
|
run_make_test(q!
|
||||||
@ -51,7 +51,7 @@ recurse: ; @echo $@: "/$(SHOW)/"; $(MAKE) -j -f #MAKEFILE# recurse2
|
|||||||
recurse2: ; @echo $@: "/$(SHOW)/"; $(MAKE) -f #MAKEFILE# all
|
recurse2: ; @echo $@: "/$(SHOW)/"; $(MAKE) -f #MAKEFILE# all
|
||||||
all:;@echo $@: "/$(SHOW)/"
|
all:;@echo $@: "/$(SHOW)/"
|
||||||
!,
|
!,
|
||||||
"-j2 $np", "recurse: /-j2 --jobserver-auth=<auth> $np/\n#MAKE#[1]: warning: -j0 forced in submake: resetting jobserver mode.\nrecurse2: /-j $np/\nall: /-j $np/\n");
|
"-j2 $np", "recurse: /-j2 --jobserver-auth=<auth> $np/\n#MAKE#[1]: warning: -j0 forced in submake: resetting jobserver mode\nrecurse2: /-j $np/\nall: /-j $np/\n");
|
||||||
|
|
||||||
# Don't put --jobserver-auth into a re-exec'd MAKEFLAGS.
|
# Don't put --jobserver-auth into a re-exec'd MAKEFLAGS.
|
||||||
# We can't test this directly because there's no way a makefile can
|
# We can't test this directly because there's no way a makefile can
|
||||||
@ -76,7 +76,7 @@ inc.mk:
|
|||||||
#> @echo 'MAKEFLAGS = $(MAKEFLAGS)'
|
#> @echo 'MAKEFLAGS = $(MAKEFLAGS)'
|
||||||
> @echo 'FOO = bar' > $@
|
> @echo 'FOO = bar' > $@
|
||||||
!,
|
!,
|
||||||
"$np -j2", "#MAKE#[1]: warning: -j2 forced in submake: resetting jobserver mode.\nall\n");
|
"$np -j2", "#MAKE#[1]: warning: -j2 forced in submake: resetting jobserver mode\nall\n");
|
||||||
|
|
||||||
unlink('inc.mk');
|
unlink('inc.mk');
|
||||||
|
|
||||||
@ -118,7 +118,7 @@ recurse: ; @echo hi
|
|||||||
!,
|
!,
|
||||||
'-w -j2', "#MAKE#: Entering directory '#PWD#'
|
'-w -j2', "#MAKE#: Entering directory '#PWD#'
|
||||||
#MAKE#[1]: Entering directory '#PWD#'
|
#MAKE#[1]: Entering directory '#PWD#'
|
||||||
#MAKE#[1]: warning: -j1 forced in submake: resetting jobserver mode.
|
#MAKE#[1]: warning: -j1 forced in submake: resetting jobserver mode
|
||||||
hi
|
hi
|
||||||
#MAKE#[1]: Leaving directory '#PWD#'
|
#MAKE#[1]: Leaving directory '#PWD#'
|
||||||
#MAKE#: Leaving directory '#PWD#'\n");
|
#MAKE#: Leaving directory '#PWD#'\n");
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# -*-perl-*-
|
||||||
|
|
||||||
$description = "\
|
$description = "\
|
||||||
The following test creates a makefile to test the presence
|
The following test creates a makefile to test the presence
|
||||||
of multiple rules for one target. One file can be the
|
of multiple rules for one target. One file can be the
|
||||||
@ -21,8 +23,8 @@ print MAKEFILE <<EOF;
|
|||||||
objects = foo.o bar.o
|
objects = foo.o bar.o
|
||||||
foo.o : defs.h
|
foo.o : defs.h
|
||||||
bar.o : defs.h test.h
|
bar.o : defs.h test.h
|
||||||
extradeps =
|
extradeps =
|
||||||
\$(objects) : config.h \$(extradeps)
|
\$(objects) : config.h \$(extradeps)
|
||||||
\t\@echo EXTRA EXTRA
|
\t\@echo EXTRA EXTRA
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
@ -36,7 +38,7 @@ if ($vos)
|
|||||||
{
|
{
|
||||||
$error_code = 3307;
|
$error_code = 3307;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$error_code = 512;
|
$error_code = 512;
|
||||||
}
|
}
|
||||||
@ -78,9 +80,9 @@ all: hello.c; $(info $@ from $^)
|
|||||||
hello.c: ; $(info 1 $@)
|
hello.c: ; $(info 1 $@)
|
||||||
src/hello.c: ; $(info 2 $@)
|
src/hello.c: ; $(info 2 $@)
|
||||||
!, '',
|
!, '',
|
||||||
"#MAKEFILE#:4: Recipe was specified for file 'hello.c' at #MAKEFILE#:4,
|
"#MAKEFILE#:4: recipe was specified for file 'hello.c' at #MAKEFILE#:4,
|
||||||
#MAKEFILE#:4: but 'hello.c' is now considered the same file as 'src/hello.c'.
|
#MAKEFILE#:4: but 'hello.c' is now considered the same file as 'src/hello.c'
|
||||||
#MAKEFILE#:4: Recipe for 'hello.c' will be ignored in favor of the one for 'src/hello.c'.
|
#MAKEFILE#:4: recipe for 'hello.c' will be ignored in favor of the one for 'src/hello.c'
|
||||||
2 src/hello.c
|
2 src/hello.c
|
||||||
all from src/hello.c
|
all from src/hello.c
|
||||||
#MAKE#: 'all' is up to date.\n");
|
#MAKE#: 'all' is up to date.\n");
|
||||||
|
@ -475,7 +475,7 @@ unlink('1.all', '1.q', '1.r');
|
|||||||
run_make_test(q!
|
run_make_test(q!
|
||||||
%a %b : ; touch $*a
|
%a %b : ; touch $*a
|
||||||
!,
|
!,
|
||||||
'gta', "touch gta\n#MAKEFILE#:2: warning: pattern recipe did not update peer target 'gtb'.\n");
|
'gta', "touch gta\n#MAKEFILE#:2: warning: pattern recipe did not update peer target 'gtb'\n");
|
||||||
unlink(qw(gta));
|
unlink(qw(gta));
|
||||||
|
|
||||||
# We don't warn if we didn't update the file
|
# We don't warn if we didn't update the file
|
||||||
@ -497,7 +497,7 @@ all:;
|
|||||||
include gta
|
include gta
|
||||||
%a %b : ; touch $*a
|
%a %b : ; touch $*a
|
||||||
!,
|
!,
|
||||||
'', "touch gta\n#MAKEFILE#:4: warning: pattern recipe did not update peer target 'gtb'.\n#MAKE#: 'all' is up to date.");
|
'', "touch gta\n#MAKEFILE#:4: warning: pattern recipe did not update peer target 'gtb'\n#MAKE#: 'all' is up to date.");
|
||||||
unlink(qw(gta));
|
unlink(qw(gta));
|
||||||
|
|
||||||
run_make_test(q!
|
run_make_test(q!
|
||||||
@ -505,7 +505,7 @@ run_make_test(q!
|
|||||||
%.o: %.c; touch $@
|
%.o: %.c; touch $@
|
||||||
foo.y: ; touch $@
|
foo.y: ; touch $@
|
||||||
!,
|
!,
|
||||||
'foo.o', "touch foo.y\ntouch foo.c\n#MAKEFILE#:2: warning: pattern recipe did not update peer target 'foo.h'.\ntouch foo.o\nrm foo.c");
|
'foo.o', "touch foo.y\ntouch foo.c\n#MAKEFILE#:2: warning: pattern recipe did not update peer target 'foo.h'\ntouch foo.o\nrm foo.c");
|
||||||
unlink(qw(foo.y foo.c foo.o));
|
unlink(qw(foo.y foo.c foo.o));
|
||||||
|
|
||||||
if (0) {
|
if (0) {
|
||||||
|
@ -185,9 +185,9 @@ foo: $$@.o ;
|
|||||||
# Not creating libcat.a here prevents segfault,
|
# Not creating libcat.a here prevents segfault,
|
||||||
libcat.a: ; @touch $@
|
libcat.a: ; @touch $@
|
||||||
!,
|
!,
|
||||||
'', q!#MAKEFILE#:16: Recipe was specified for file '-lcat' at #MAKEFILE#:16,
|
'', q!#MAKEFILE#:16: recipe was specified for file '-lcat' at #MAKEFILE#:16,
|
||||||
#MAKEFILE#:16: but '-lcat' is now considered the same file as 'libcat.a'.
|
#MAKEFILE#:16: but '-lcat' is now considered the same file as 'libcat.a'
|
||||||
#MAKEFILE#:16: Recipe for '-lcat' will be ignored in favor of the one for 'libcat.a'.!);
|
#MAKEFILE#:16: recipe for '-lcat' will be ignored in favor of the one for 'libcat.a'!);
|
||||||
unlink('libcat.a');
|
unlink('libcat.a');
|
||||||
|
|
||||||
# SV 28456 : Don't reset $$< for default recipes
|
# SV 28456 : Don't reset $$< for default recipes
|
||||||
@ -454,9 +454,9 @@ all: hello.c; $(info $@ from $^)
|
|||||||
hello.c: $$(info second expansion of hello.c prereqs); $(info 1 $@)
|
hello.c: $$(info second expansion of hello.c prereqs); $(info 1 $@)
|
||||||
src/hello.c: $$(info second expansion of src/hello.c prereqs); $(info 2 $@)
|
src/hello.c: $$(info second expansion of src/hello.c prereqs); $(info 2 $@)
|
||||||
!, '',
|
!, '',
|
||||||
"#MAKEFILE#:5: Recipe was specified for file 'hello.c' at #MAKEFILE#:5,
|
"#MAKEFILE#:5: recipe was specified for file 'hello.c' at #MAKEFILE#:5,
|
||||||
#MAKEFILE#:5: but 'hello.c' is now considered the same file as 'src/hello.c'.
|
#MAKEFILE#:5: but 'hello.c' is now considered the same file as 'src/hello.c'
|
||||||
#MAKEFILE#:5: Recipe for 'hello.c' will be ignored in favor of the one for 'src/hello.c'.
|
#MAKEFILE#:5: recipe for 'hello.c' will be ignored in favor of the one for 'src/hello.c'
|
||||||
second expansion of src/hello.c prereqs
|
second expansion of src/hello.c prereqs
|
||||||
second expansion of hello.c prereqs
|
second expansion of hello.c prereqs
|
||||||
2 src/hello.c
|
2 src/hello.c
|
||||||
|
@ -183,7 +183,7 @@ else
|
|||||||
default:;: $(ELT)
|
default:;: $(ELT)
|
||||||
endif
|
endif
|
||||||
!,
|
!,
|
||||||
'--no-print-directory -j2 --jobserver-style=pipe', "#MAKE#[2]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.\n: 2\n: 1");
|
'--no-print-directory -j2 --jobserver-style=pipe', "#MAKE#[2]: warning: jobserver unavailable: using -j1 (add '+' to parent make rule)\n: 2\n: 1");
|
||||||
}
|
}
|
||||||
|
|
||||||
# This crashes if we use vfork and don't reset environ properly
|
# This crashes if we use vfork and don't reset environ properly
|
||||||
|
@ -26,7 +26,8 @@ run_make_test(undef, '', "#MAKE#: Nothing to be done for 'all'.");
|
|||||||
run_make_test(undef, '-B', 'cp bar.x foo');
|
run_make_test(undef, '-B', 'cp bar.x foo');
|
||||||
|
|
||||||
# Put the timestamp for foo into the future; it should still be remade.
|
# Put the timestamp for foo into the future; it should still be remade.
|
||||||
|
# There are clock skew errors printed here but they will be cleared by
|
||||||
|
# the comparison code.
|
||||||
utouch(1000, 'foo');
|
utouch(1000, 'foo');
|
||||||
run_make_test(undef, '', "#MAKE#: Nothing to be done for 'all'.");
|
run_make_test(undef, '', "#MAKE#: Nothing to be done for 'all'.");
|
||||||
run_make_test(undef, '-B', 'cp bar.x foo');
|
run_make_test(undef, '-B', 'cp bar.x foo');
|
||||||
|
@ -19,7 +19,8 @@ run_make_test(undef, '', "#MAKE#: 'a.x' is up to date.");
|
|||||||
run_make_test(undef, '-W b.x', 'echo >> a.x');
|
run_make_test(undef, '-W b.x', 'echo >> a.x');
|
||||||
|
|
||||||
# Put the timestamp for a.x into the future; it should still be remade.
|
# Put the timestamp for a.x into the future; it should still be remade.
|
||||||
|
# There are clock skew errors printed here but they will be cleared by
|
||||||
|
# the comparison code.
|
||||||
utouch(1000, 'a.x');
|
utouch(1000, 'a.x');
|
||||||
run_make_test(undef, '', "#MAKE#: 'a.x' is up to date.");
|
run_make_test(undef, '', "#MAKE#: 'a.x' is up to date.");
|
||||||
run_make_test(undef, '-W b.x', 'echo >> a.x');
|
run_make_test(undef, '-W b.x', 'echo >> a.x');
|
||||||
@ -50,6 +51,8 @@ touch baz.x');
|
|||||||
# Now run with -W bar.x
|
# Now run with -W bar.x
|
||||||
|
|
||||||
# Tweak foo.x's timestamp so the update will change it.
|
# Tweak foo.x's timestamp so the update will change it.
|
||||||
|
# There are clock skew errors printed here but they will be cleared by
|
||||||
|
# the comparison code.
|
||||||
&utouch(1000, 'foo.x');
|
&utouch(1000, 'foo.x');
|
||||||
|
|
||||||
run_make_test(undef, '-W bar.x', "restarts=\ntouch foo.x\nrestarts=1\ntouch baz.x");
|
run_make_test(undef, '-W bar.x', "restarts=\ntouch foo.x\nrestarts=1\ntouch baz.x");
|
||||||
|
@ -108,7 +108,7 @@ ifile: no-such-file; exit 1
|
|||||||
'-k',
|
'-k',
|
||||||
"#MAKEFILE#:2: ifile: $ERR_no_such_file
|
"#MAKEFILE#:2: ifile: $ERR_no_such_file
|
||||||
#MAKE#: *** No rule to make target 'no-such-file', needed by 'ifile'.
|
#MAKE#: *** No rule to make target 'no-such-file', needed by 'ifile'.
|
||||||
#MAKEFILE#:2: Failed to remake makefile 'ifile'.\n",
|
#MAKEFILE#:2: failed to remake makefile 'ifile'",
|
||||||
512);
|
512);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ all: a_ b_ ; @echo $@
|
|||||||
a_: b_
|
a_: b_
|
||||||
b_: a_
|
b_: a_
|
||||||
',
|
',
|
||||||
'--shuffle=reverse', "#MAKE#: Circular a_ <- b_ dependency dropped.\na_\nb_\nall");
|
'--shuffle=reverse', "#MAKE#: circular a_ <- b_ dependency dropped\na_\nb_\nall");
|
||||||
|
|
||||||
# Check if order-only dependencies get reordered.
|
# Check if order-only dependencies get reordered.
|
||||||
run_make_test('
|
run_make_test('
|
||||||
|
@ -8,7 +8,7 @@ run_make_test('
|
|||||||
.DELETE_ON_ERROR:
|
.DELETE_ON_ERROR:
|
||||||
all: ; exit 1 > $@
|
all: ; exit 1 > $@
|
||||||
',
|
',
|
||||||
'', "exit 1 > all\n#MAKE#: *** [#MAKEFILE#:3: all] Error 1\n#MAKE#: *** Deleting file 'all'", 512);
|
'', "exit 1 > all\n#MAKE#: *** [#MAKEFILE#:3: all] Error 1\n#MAKE#: *** deleting file 'all'", 512);
|
||||||
|
|
||||||
run_make_test('
|
run_make_test('
|
||||||
.DELETE_ON_ERROR:
|
.DELETE_ON_ERROR:
|
||||||
@ -16,7 +16,7 @@ all: foo.x ;
|
|||||||
%.x : %.q ; echo > $@
|
%.x : %.q ; echo > $@
|
||||||
%.q : ; exit 1 > $@
|
%.q : ; exit 1 > $@
|
||||||
',
|
',
|
||||||
'', "exit 1 > foo.q\n#MAKE#: *** [#MAKEFILE#:5: foo.q] Error 1\n#MAKE#: *** Deleting file 'foo.q'", 512);
|
'', "exit 1 > foo.q\n#MAKE#: *** [#MAKEFILE#:5: foo.q] Error 1\n#MAKE#: *** deleting file 'foo.q'", 512);
|
||||||
|
|
||||||
# This tells the test driver that the perl test script executed properly.
|
# This tells the test driver that the perl test script executed properly.
|
||||||
1;
|
1;
|
||||||
|
@ -912,12 +912,12 @@ sub convert_answer_zos
|
|||||||
my ($log) = @_;
|
my ($log) = @_;
|
||||||
|
|
||||||
# z/OS emits "Error 143" or "SIGTERM" instead of terminated
|
# z/OS emits "Error 143" or "SIGTERM" instead of terminated
|
||||||
$log =~ s/Error 143/Terminated/gm;
|
$log =~ s/Error 143/Terminated/igm;
|
||||||
$log =~ s/SIGTERM/Terminated/gm;
|
$log =~ s/SIGTERM/Terminated/igm;
|
||||||
|
|
||||||
# z/OS error messages have a prefix
|
# z/OS error messages have a prefix
|
||||||
$log =~ s/EDC5129I No such file or directory\./No such file or directory/gm;
|
$log =~ s/EDC5129I No such file or directory\./No such file or directory/igm;
|
||||||
$log =~ s/FSUM7351 not found/not found/gm;
|
$log =~ s/FSUM7351 not found/not found/igm;
|
||||||
|
|
||||||
return $log;
|
return $log;
|
||||||
}
|
}
|
||||||
@ -929,8 +929,8 @@ sub compare_answer
|
|||||||
|
|
||||||
# For make, get rid of any time skew error before comparing--too bad this
|
# For make, get rid of any time skew error before comparing--too bad this
|
||||||
# has to go into the "generic" driver code :-/
|
# has to go into the "generic" driver code :-/
|
||||||
$log =~ s/^.*modification time .*in the future.*\n//gm;
|
$log =~ s/^.*modification time .*in the future.*\n//igm;
|
||||||
$log =~ s/^.*Clock skew detected.*\n//gm;
|
$log =~ s/^.*clock skew detected.*\n//igm;
|
||||||
return 1 if ($log eq $kgo);
|
return 1 if ($log eq $kgo);
|
||||||
|
|
||||||
# Get rid of newline differences, forever
|
# Get rid of newline differences, forever
|
||||||
|
Loading…
Reference in New Issue
Block a user