bug-make
[Top][All Lists]
Advanced

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

Re: Crash on Windows when SHELL is assigned


From: Orgad Shaneh
Subject: Re: Crash on Windows when SHELL is assigned
Date: Tue, 6 Jun 2017 22:08:08 +0300

On Tue, Jun 6, 2017 at 9:43 PM, Eli Zaretskii <address@hidden> wrote:
>> From: Orgad Shaneh <address@hidden>
>> Date: Tue, 6 Jun 2017 20:49:26 +0300
>> Cc: address@hidden
>>
>> > Can you tell why this is a problem?  There's no equivalent of PATHEXT
>> > on Posix systems, and no one coded anything like that for Windows.  Is
>> > it really such a serious problem?  If so, in what use cases?
>>
>> Ah, the PATH lookup I referred to is in #ifdef WINDOWS32.
>
> Yes, but every search along PATH looks for file names, and the file
> name on Windows would be with an extension.

Most things work find out of the box. The only problem I found was
with SHELL lookup.

Like I said, cmd and cmd.exe are both compared against in
find_and_set_default_shell. At least .exe extension should be
attempted apart from the name provided by the user.

>> I have a script that calls make with SHELL=sh, and I don't want to
>> adapt it (and make it sh.exe) specifically for Windows.
>
> Is that really the only adaptation for Windows you needed to make?
> IME, there are a lot of adaptations needed anyway.

Not really, but I do try to minimize customizations. That's something
that I'd expect to just work.

>> Sorry, I forgot to mention that I refer to command-line argument (make
>> SHELL=sh. You can replace sh with anything that doesn't exist like
>> make SHELL=fsdfsdf. SHELL=cmd is an exception, since it is handled
>> separately, and BTW it does support cmd and cmd.exe). You don't even
>> need a Makefile to reproduce the crash.
>
> OK, I see it.  Please try the patch below; if it gives satisfactory
> results, I will push it to the Make repository for the next release.
>
> --- variable.c~0        2016-05-21 23:22:32.000000000 +0300
> +++ variable.c  2017-06-06 21:36:11.552875000 +0300
> @@ -1389,6 +1389,9 @@ do_variable_definition (const floc *floc
>          }
>      }
>    else
> +    v = NULL;
> +
> +  if (!v)
>  #endif
>
>    /* If we are defining variables inside an $(eval ...), we might have a

Yes, it works. Thanks a lot.

- Orgad



reply via email to

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