Solaris /bin/sh can't handle multiple options ("-e -c").

This commit is contained in:
Paul Smith 2013-09-29 13:31:32 -04:00
parent 38066b6f19
commit d0944ee2e8
3 changed files with 21 additions and 3 deletions

View file

@ -1,5 +1,9 @@
2013-09-29 Paul Smith <psmith@gnu.org>
* scripts/variables/SHELL: Solaris /bin/sh can't handle options in
multiple words; skip that test.
* scripts/targets/ONESHELL: Ditto.
* scripts/variables/GNUMAKEFLAGS: Verify that GNUMAKEFLAGS is
cleared and options are not duplicated.

View file

@ -4,6 +4,10 @@ $description = "Test the behaviour of the .ONESHELL target.";
$details = "";
# Some shells (*shakes fist at Solaris*) cannot handle multiple flags in
# separate arguments.
my $t = `/bin/sh -e -c true 2>/dev/null`;
my $multi_ok = $? == 0;
# Simple
@ -19,7 +23,8 @@ all:
# Simple but use multi-word SHELLFLAGS
run_make_test(q!
if ($multi_ok) {
run_make_test(q!
.ONESHELL:
.SHELLFLAGS = -e -c
all:
@ -29,6 +34,7 @@ all:
'', 'a=$$
[ 0"$a" -eq "$$" ] || echo fail
');
}
# Again, but this time with inner prefix chars

View file

@ -71,12 +71,20 @@ all: ; \@$script
'', $out);
# Do it again but add spaces to SHELLFLAGS
$flags = '-x -c';
run_make_test(qq!
# Some shells (*shakes fist at Solaris*) cannot handle multiple flags in
# separate arguments.
my $t = `/bin/sh -e -c true 2>/dev/null`;
my $multi_ok = $? == 0;
if ($multi_ok) {
$flags = '-x -c';
run_make_test(qq!
.SHELLFLAGS = $flags
all: ; \@$script
!,
'', $out);
}
# We can't just use "false" because on different systems it provides a
# different exit code--once again Solaris: false exits with 255 not 1