Keith MARSHALL wrote:
With Cygwin, you are running a POSIX emulation layer on top of the Win32 OS,
so your app gets all of the initialisation support you'd expect from a true
POSIX system. There is no need for us to concern ourselves with the details
of how this happens; some very clever people have set it up for us, so that
it just works. The aspects of it that are relevant to this discussion are:
1) The environment that is passed to your app is again a *verbatim* copy of
that which was defined in the bash shell.
2) When you access command line arguments in argv, they are again *verbatim*
copies of what you typed on the command line.
So, what's the difference from the cmd.exe case? The *significant* difference
is that when your app refers to any file system entity, the reference no longer
needs to be specified in native Win32 format; it can just as well be in Cygwin's
POSIX compatible format, and the emulation layer will take care of mapping it to
the proper file system entity, without you needing to even know or care how.
STOP READING. Or better yet, read point (1) under MSYS. The above is
completely untrue disinformation until you read the later point.
Also the part about copying the environment verbatim is, I am 99% sure,
also untrue. IIRC (and you could check on Cygwin's list if needed), at
least $PATH is assumed to be in POSIX format and is converted to Windows
format when launching a native application.
1) Cygwin's bash.exe assumes that the execed process will know how to use the
Cygwin POSIX emulation layer to map Cygwin specific entity references to
their native counterparts; if this isn't the case, as in the case of a Win32
native app, then the onus falls squarely on the user to ensure that all
references, and file system references, are specified in the proper *native*
format; there is no assistance provided to perform the translation.
...and this is not true either. Cygwin "knows" when it is launching
another Cygwin application vs. a native application. In fact, it has to,
because there are certain semantics (either signal handling or something
about return codes, I forget which) that require a 'wrapper process'
when running a native application under Cygwin.
Everything said about MSYS seems to match *actual* Cygwin behavior, but
if you want to be sure, ask on Cygwin's list.
--
Matthew
Don't read this. What did I just tell you? Why are you still reading?
_______________________________________________
Autoconf mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/autoconf