Since I build make myself I went ahead and applied this patch and it works
great. I'll let you guys decide if this should go into the official release,
but we are happy.
-Mike
-Original Message-
From: David Boyce [mailto:david.s.bo...@gmail.com]
Sent: Thursday, December 22, 2011 2:43 PM
To: RYTTING,MICHAEL (A-ColSprings,ex1)
Cc: bug-make@gnu.org
Subject: Re: make bug with ONESHELL and SHELLFLAGS
I believe the patch below would fix this. It's up to Paul of course whether he
considers it a bug and considers the patch worthy. The only concern I have with
it is that there may be places where the argv is assumed to be exactly 4 slots
wide (shell, flags, recipe, null) and only the first 3 slots are freed, but I
couldn't find any. Also this over-allocates new_argv a bit in the cause of
simplicity.
-David Boyce
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 - 1.215
+++ job.c 22 Dec 2011 21:31:48 -
@@ -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
On Thu, Dec 22, 2011 at 12:30 PM, michael_rytt...@agilent.com wrote:
Sorry if this has already been reported but I haven't found anything
searching through the archives.
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.
I am using
Michael Rytting
Agilent Technologies
michael_rytt...@agilent.com
719-590-3708
___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make
___
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make