With the newest gnulib, a build of m4 from git fails: make[2]: Entering directory '/tmp/m4/src' CC m4.o CC builtin.o builtin.c: In function 'm4_syscmd': builtin.c:968:44: warning: passing argument 3 of 'execute' from incompatible pointer type [-Wincompatible-pointer-types] status = execute (ARG (0), SYSCMD_SHELL, (char **) prog_args, false, ^ In file included from builtin.c:27:0: ../lib/execute.h:48:12: note: expected 'const char * const*' but argument is of type 'char **' extern int execute (const char *progname, ^ builtin.c:968:12: error: too few arguments to function 'execute' status = execute (ARG (0), SYSCMD_SHELL, (char **) prog_args, false, ^ In file included from builtin.c:27:0: ../lib/execute.h:48:12: note: declared here extern int execute (const char *progname, ^ builtin.c: In function 'm4_esyscmd': builtin.c:1011:50: warning: passing argument 3 of 'create_pipe_in' from incompatible pointer type [-Wincompatible-pointer-types] child = create_pipe_in (ARG (0), SYSCMD_SHELL, (char **) prog_args, ^ In file included from builtin.c:31:0: ../lib/spawn-pipe.h:113:14: note: expected 'const char * const*' but argument is of type 'char **' extern pid_t create_pipe_in (const char *progname, ^ builtin.c:1011:11: error: too few arguments to function 'create_pipe_in' child = create_pipe_in (ARG (0), SYSCMD_SHELL, (char **) prog_args, ^ In file included from builtin.c:31:0: ../lib/spawn-pipe.h:113:14: note: declared here extern pid_t create_pipe_in (const char *progname, ^ make[2]: *** [Makefile:1949: builtin.o] Error 1
This is due to the recent changes in the gnulib modules 'execute' and 'spawn-pipe' (see gnulib/NEWS). This patch fixes it. Can you please apply it? Thanks.
>From c6f796b82d5ef7fdd30d3a3aa17cf4dbc06d32ad Mon Sep 17 00:00:00 2001 From: Bruno Haible <br...@clisp.org> Date: Sun, 13 Dec 2020 01:46:46 +0100 Subject: [PATCH] Update after gnulib changed. * src/builtin.c (m4_syscmd): Update 'execute' invocation. (m4_esyscmd): Update 'create_pipe_in' invocation. * po/POTFILES.in: Remove lib/w32spawn.h. Add lib/openat-die.c, lib/os2-spawn.c. --- po/POTFILES.in | 3 ++- src/builtin.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index 7685034..5a5004d 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -25,13 +25,14 @@ lib/error.c lib/execute.c lib/getopt.c lib/obstack.c +lib/openat-die.c +lib/os2-spawn.c lib/quotearg.c lib/siglist.h lib/spawn-pipe.c lib/strsignal.c lib/verror.c lib/version-etc.c -lib/w32spawn.h lib/wait-process.c lib/xalloc-die.c src/builtin.c diff --git a/src/builtin.c b/src/builtin.c index 9c43b72..d118b21 100644 --- a/src/builtin.c +++ b/src/builtin.c @@ -965,7 +965,7 @@ m4_syscmd (struct obstack *obs MAYBE_UNUSED, int argc, token_data **argv) #endif prog_args[2] = cmd; errno = 0; - status = execute (ARG (0), SYSCMD_SHELL, (char **) prog_args, false, + status = execute (ARG (0), SYSCMD_SHELL, prog_args, NULL, false, false, false, false, true, false, &sig_status); if (sig_status) { @@ -1008,7 +1008,7 @@ m4_esyscmd (struct obstack *obs, int argc, token_data **argv) #endif prog_args[2] = cmd; errno = 0; - child = create_pipe_in (ARG (0), SYSCMD_SHELL, (char **) prog_args, + child = create_pipe_in (ARG (0), SYSCMD_SHELL, prog_args, NULL, NULL, false, true, false, &fd); if (child == -1) { -- 2.7.4