bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNU make 4.2.90 release candidate available


From: Eli Zaretskii
Subject: Re: GNU make 4.2.90 release candidate available
Date: Wed, 28 Aug 2019 19:01:39 +0300

> From: Paul Smith <address@hidden>
> Cc: address@hidden
> Date: Wed, 28 Aug 2019 11:25:25 -0400
> 
>    $string = `sh -c "$make_path -f null.mk $redir"`;
>    if ($string =~ /(.*): \*\*\* No targets\.  Stop\./) {
>      $make_name = $1;
>    }
>    else {
>      $make_path =~ /^(?:.*$pathsep)?(.+)$/;
>      $make_name = $1;
>    }
> 
> I don't know why we use sh -c here instead of just invoking the command
> normally via Perl ``... but that certainly fails for you since you have
> no sh, so it goes to the else part and tries to grab the filename.
> 
> You can either try removing the sh -c and just running make directly
> and grabbing the name from the output, or you can fix the else-part to
> remove a .exe if it exists.

Thanks.  Does the below look right?  I'm mainly worried about the
redir part, although this did work for me on Windows.  (Perl is
largely a read-only language for me.)

diff --git a/tests/run_make_tests.pl b/tests/run_make_tests.pl
index 7e969a9..55bae33 100644
--- a/tests/run_make_tests.pl
+++ b/tests/run_make_tests.pl
@@ -436,7 +436,7 @@ sub set_more_defaults
 
    my $redir = '2>&1';
    $redir = '' if os_name eq 'VMS';
-   $string = `sh -c "$make_path -f null.mk $redir"`;
+   $string = `$make_path -f null.mk $redir`;
    if ($string =~ /(.*): \*\*\* No targets\.  Stop\./) {
      $make_name = $1;
    }

With this change, I'm down to 236 failed tests.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]