URL: <http://savannah.gnu.org/bugs/?35397>
Summary: make bug with ONESHELL and SHELLFLAGS Project: make Submitted by: boyski Submitted on: Sun 29 Jan 2012 08:22:36 PM GMT Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Component Version: 3.82 Operating System: Any Fixed Release: None Triage Status: None _______________________________________________________ Details: In a thread from the bug-make mailing list (http://lists.gnu.org/archive/html/bug-make/2011-12/msg00039.html) a bug was reported and the following patch was provided and reported to work fine. I 'm filing this report to ensure the issue gets proper review and disposition before the upcoming release. The original report said: ==================================================== SHELL = /bin/bash .SHELLFLAGS = -e –o pipefail -c Works .ONESHELL: SHELL = /bin/bash .SHELLFLAGS = -e –o pipefail –c Doesn’t. When the ONESHELL target is set .SHELLFLAGS must be set to a single value, i.e. –ec. ==================================================== Index: job.c =================================================================== RCS file: /sources/make/make/job.c,v retrieving revision 1.215 diff -u -r1.215 job.c --- job.c 15 Nov 2011 21:12:54 -0000 1.215 +++ job.c 22 Dec 2011 21:31:48 -0000 @@ -2960,12 +2960,21 @@ *t = '\0'; } - new_argv = xmalloc (4 * sizeof (char *)); - new_argv[0] = xstrdup(shell); - new_argv[1] = xstrdup(shellflags ? shellflags : ""); - new_argv[2] = line; - new_argv[3] = NULL; - return new_argv; + { + char *sfcopy; + char *sftok; + int n = 0; + + sfcopy = xstrdup(shellflags ? shellflags : ""); + new_argv = xmalloc ((4 + sflags_len/2) * sizeof (char *)); + new_argv[n++] = xstrdup(shell); + for (sftok = strtok(sfcopy, " "); sftok; sftok = strtok(NULL, " ")) + new_argv[n++] = xstrdup(sftok); + new_argv[n++] = line; + new_argv[n] = NULL; + free(sfcopy); + return new_argv; + } } new_line = alloca ((shell_len*2) + 1 + sflags_len + 1 _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?35397> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make