[CLN-list] Re: CLN vs weird mixture of Cygwin and MinGW

Sheplyakov Alexei varg at theor.jinr.ru
Mon Aug 21 10:34:15 CEST 2006


Hello,

On Tue, Aug 15, 2006 at 06:39:44PM -0700, Richard Haney wrote:

> > > uname -s = CYGWIN_NT-5.1
> > 
> > You are trying to make win32 libraries with a mix of Cygwin and MinGW
> > tools. While it is certainly possible build win32 libraries/binaries
> > with such a setup, it is a little bit tricky, [...]
> 
> Among the executables (".exe"s as well as scripts) in /bin and in
> /cygdrive/c/Dev-Cpp/bin , the only ones that could clash are the two
> versions of rm.exe that I mentioned.  The /usr/bin and /usr/local/bin
> directories are not used.
In fact, some tools from that directories *are* used, (e.g.
/usr/bin/install)

> I chose to re-order those directories in PATH because of the conflict
> with versions of rm.exe ,
Aha, I see! Otherwise you can't remove files created by Cygwin's bash
[and other utilites] (at least because of different pathname conventions 
used by Cygwin and win32).

> So, I'm wondering about what bugs/limitations may be lurking in msys,
> which I have not tried much.
Unlike Cygwin, Msys does not try to provide complete *NIX-like 
environment. Instead it creates a *minimal* environment for running
configure scripts. Some people prefer Cygwin for this reason, but 
IMHO if you need a *NIX-like environment running some kind of *NIX 
natively is much better option :).

> > If you insist on using Cygwin+MinGW, you need at least to
> > 
> > 1) give the configure script proper --build and --host arguments,
> >    e.g.,
> > 
> >    --build=i586-mingw32msvc --host=i586-mingw32msvc
 
> So why not i686 in place of i586 , since configure seems to think my
> computer is a i686 (whatever that is, precisely)?
This is just what 

gcc -dumpmachine

prints on my system. On your system it might be different, but it should
contain "mingw32" string somewhere.


> 3. The "--disable-shared" option for configure seems desirable
> in a cygwin/mingw environment, and in fact it seems a good idea
> for a distributed version of CLN to make "--disable-shared"
> an automatic default in such an environment.
If you give appropriate --host and --build arguments (or just
use Msys) --disable-shared option will be automagically added.
This option is already specified for MinGW, and people already asked
why shared libraries are disabled (see mail by Ralf Wildenhues).

> Also, the "msvc" seems to stand for "Microsoft Visual C/C++",
> or does that refer to a Microsoft DLL with the same string
> "msvc" in its name?
AFAIK "msvc" is due to name of m$'ish C runtime libraries (msvcrt.dll
and friends) which are used by executables produced by MinGW version
of GNU compilers.

> Are there only a limited list of possible values for --build=... and
> --host=... ?
Auto* tools use system names of form CPU-VENDOR-OS (so called 
"canonical name"). But in reality, such a naming scheme appears
to be [to put it mildly] somewhat sloppy.

> Where are they defined (and/or described in human-readable form)?
These name are defined in the config.guess script (which is called
by the configure), but the logic is [unnecessary] complicated. 
Basically, the canonical name is determined from the output of uname(1)
and compiler's idea about target processor/OS name 
(as in gcc -dumpmachine).

Best regards,
 Alexei.

-- 
All science is either physics or stamp collecting.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 827 bytes
Desc: Digital signature
Url : http://www.cebix.net/pipermail/cln-list/attachments/20060821/5e2727c1/attachment.pgp


More information about the CLN-list mailing list