delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2019/02/18/18:37:13

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:message-id:from:reply-to:to:subject
:references:in-reply-to:content-type; q=dns; s=default; b=r0HZ8b
9+Hj2fccKBCLnrgJD2nK63zizdBCEAks12jXZCFskCnV+xEuFHXHGp2EYx1tNhj2
AvCVELQE9mntWXaH0StodLh2rUHd47bghFmyTUz4I45Jy94u8zjitz2vbSnoOVBu
DyKcrrU56IYnxYcN+P2HrOy6m/6kN94fQkJSk=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:message-id:from:reply-to:to:subject
:references:in-reply-to:content-type; s=default; bh=6M06o7e8/M82
pz8jp1If5ZoPesE=; b=jgf/qRleAga9wuFh8sISQ/iCXkWmk43RUWmTZDGVkQnn
oDWaLRjcLQD7wpbO8kmjWYaylN84uFRV9wlEMw/ANe2LZNoD4CX4EPl7boen1LP2
PLYoIVvk8JycFK0RxJxK+rUNipqo2Afg/qviiR+rse2zx0n4odPLNb+J4leZals=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=forces, explain, searches, H*F:D*nl
X-HELO: lb2-smtp-cloud9.xs4all.net
Date: Tue, 19 Feb 2019 00:36:54 +0100
Message-ID: <ace4deb7780df96784a30781b03b9416@smtp-cloud9.xs4all.net>
From: Houder <houder AT xs4all DOT nl>
Reply-To: cygwin AT cygwin DOT com
To: cygwin AT cygwin DOT com
Subject: Re: antrun versus wsl versus cygwin
References: <q4bfgv$2i9q$1 AT blaine DOT gmane DOT org> <0f26a1aa-7c70-5201-5212-5f3df54a50fa AT gmail DOT com> <q4cm4s$1g33$1 AT blaine DOT gmane DOT org> <1968849310 DOT 20190218020001 AT yandex DOT ru> <q4dtmk$5gpb$1 AT blaine DOT gmane DOT org> <dcaadf0982c8bbdf27cb7f1301889c9f AT smtp-cloud8 DOT xs4all DOT net> <q4e7k5$5mhm$1 AT blaine DOT gmane DOT org>
In-Reply-to: <q4e7k5$5mhm$1@blaine.gmane.org>
User-Agent: mua.awk 0.99

On Mon, 18 Feb 2019 13:15:02, Franz Fehringer  wrote:

> Am 18.02.2019 um 11:42 schrieb Houder:
[snip]

> > Now show us the output of an antrun script, where the executable
> > is C:\Tools\Cygwin\bin\which and its argument: bash
> 
> <exec executable="C:\Tools\Cygwin\bin\which" failonerror="true">
>   <arg line="bash" />
> </exec>
> <exec executable="bash" failonerror="true">
>   <arg line="-c src/main/resources/build" />
> </exec>
> 
> gives
> 
> [exec] /usr/bin/bash
> [exec] W i n d o w s   S u b s y s t e m   f o r   L i n u x   h a s   n
> o   i n s t a l l e d   d i s t r i b u ti o n s .
> [exec]    D i s t r i b u t i o n s   c a n   b e   i n s t a l l e d
> b y   v i s i t i n g   t h e   M i c r o s o f t   S t o r e :
> [exec]    h t t p s : / / a k a . m s / w s l s t o r e
> 
> It is as if C:\Windows\System32 were hardcoded somewhere
> The ant exec documentation says
> "The <exec> task delegates to Runtime.exec which in turn apparently
> calls ::CreateProcess. It is the latter Win32 function that defines the
> exact semantics of the call. "

Erm, thinking this over ... you may be on the right track ...

After invoking the Windows executable (JVM or whatever) from Cygwin, "bash"
is started using CreateProcess()

    https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-createprocessa

Before it searches PATH, CreateProcess checks "the 32-bit Windows system
directory" for the presence of "bash.exe".

And we know that bash.exe from WSL is present in C:\Windows\System32. That
does explain why the output of bash from WSL is shown, does it not?
(reporting that a distribution is still to be installed).

The above also explains why renaming bash from WSL to "wslbash.exe" forces
CreateProcess() to search for the presence of bash.exe down the PATH.

Henri


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019