libtool-patches
[Top][All Lists]
Advanced

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

Re: Patches for Mingw/MSYS


From: Charles Wilson
Subject: Re: Patches for Mingw/MSYS
Date: Sun, 19 Jun 2005 15:28:27 -0400
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

Ralf Wildenhues wrote:

a) some setup where config.guess returns *msys* not *mingw*

But here's where you lose me (and remember, I'm a cygwin guy not MSYS or MINGW): from what I understand, MSYS is a development environment that is basically a fork from cygwin (e.g. there's a cygwin-like DLL providing POSIX services). But the REASON for MSYS to exist at all is simply this: to lie.

The idea, I thought, was for MSYS to lie about itself so that you can use "normal" unix configury tools which will all be told things by the underlying system, and report things to the user, and compile things, and link things, AS IF and FOR a "clean" win32 system. (Contrast this with "real" MINGW, which is ONLY a compiler: you can't run "configure" because you have no shell, only cmd.exe. You can't use autoconf because you have no m4. MINGW is only a compiler, a particular port of gcc that understands "dos-style" pathnames among other things. [MSYS's gcc is slightly different; it is, itself, dependent on the MSYS DLL, which provides understanding of both "unix-style" paths but also "dos-style" paths -- this latter bit is where it differs from cygwin's DLL]. By default MSYS's gcc produces pure-native-windows objects, but it can be teased, somehow, into producing MSYS-dll-dependent objects. Thus, it's a cross-compiler(MSYS-host to pure-native-target) that can be teased into being a "native"(e.g. MSYS-dependent) compiler)

That is, if I type "./configure && make" in the MSYS shell, what I GET should be a MINGW (pure-native-windows) binary. There is no case where I'd actually be ABLE to run libtool on a "MINGW" 'system' -- because MINGW is just a compiler, not a 'system'.

Only very rarely (and I don't know how Earnie manages to do this) would you actually want to build an "MSYS" binary -- e.g. "make MSYS tell the truth". Basically, only MSYS maintainers would want to do this.

So for the rest of us, I'm not sure there IS a difference between MINGW and MSYS -- that is, the ENVIRONMENT is the same: if you're running libtool, you've got a shell and m4 and stuff, so you're REALLY running under MSYS. The question is, what is your TARGET: MSYS-dll-dependent, or pure-native-windows.

Given the purpose of MSYS, the default target is pure-native-windows (what we'd usually call the "cross" target, in that the result runs on a pure-native system but the compiler runs under MSYS); the "unusual" target is the msys-dependent one (what we'd usually call the "native" target, in that the result runs under the same environment as the compiler).

--
Chuck




reply via email to

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