Subject: RE: Compiling apps to Mingw32 with cygwin
From: "Jon Leichter" <[email-masked]>
To: "Robert Collins" <[email-masked]>, "Earnie Boyd" <[email-masked]>
Cc: <[email-masked]>, <[email-masked]>
Date: Sun, 13 Jan 2002 10:30:51 -0800

First off... thanks again to both Robert and Earnie for taking part in this
discussion. I appreciate it a lot.

Recapping once again...

Robert says to use:

	$ ./configure --host=i686-pc-mingw32 --build=i686-pc-cygwin

	(no need to set CC if i686-pc-mingw32-gcc exists)

Earnie says to use:

	$ ./configure --host=i686-pc-mingw32 --build=i686-pc-mingw32

	(still need to explicitly set CC)

Both of you guys agree that using Cygwin GCC to generate MinGW binaries is
NOT a cross-compile, even though it's a lot like it. Because it's so close,
a cross-compile CAN be EMULATED.

Using Robert's invocation WOULD put configure in cross-compile mode. But
since using Cygwin GCC to generate MinGW is ALMOST like a cross-compile, it
will work out ok. In fact, one compelling reason to use Robert's method is
because one wants the configure script to use the correct build tools, e.g.
cp instead of copy, rm instead of del, etc. I tend to agree that the build
environment IS Cygwin for this very reason.

So here's a question. If configure is put into cross-compile mode (with
Robert's method), then wouldn't it be the case that configure would NOT
execute test binaries? If so, does that hurt the configuration process in
any way? Is this a problem?

If both Earnie's method and Robert's method work, which one is right? Which
method is more likely to break?

Jon

> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]]On Behalf
> Of Robert Collins
> Sent: Saturday, January 12, 2002 3:28 PM
> To: Earnie Boyd; Jon Leichter
> Cc: [email-masked]; [email-masked]
> Subject: Re: Compiling apps to Mingw32 with cygwin
>
> ----- Original Message -----
> From: "Earnie Boyd" <[email-masked]>
> > 1) `gcc -mno-cygwin' is not a cross compile.
> > 2) it is possible to emulate a cross build system using a scripted
> `gcc
> > -mno-cygwin' and symlinks.
> > 3) `gcc -mno-cygwin' switches the build environment from Cygwin to
> > MinGW.
>
> Earnie, on 3) I believe we have a terminology problem. gcc -mno-cygwin
> changes the _build target_ to mingw32, no the build _environment_.
>
> In the context of configure scripts the build _environment_ is the
> platform hosting the running script, and doing the compilation - that is
> cygwin.
>
> > > You said this was wrong. To be consisent with future behavior, it
> seems that
> > > I must specify build. So if you're suggesting that I'm not
> cross-compiling,
> > > then it would be:
> > >
> > >         $ env CC=mgcc
> ./configure --host=i686-pc-mingw32 --build=i686-pc-mingw32
> > >
> >
> > This is what I would do.
>
> IMO this is wrong (wrong build value) - see my comment earlier.
>
> Rob
>
>
> --
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> Bug reporting:         http://cygwin.com/bugs.html
> Documentation:         http://cygwin.com/docs.html
> FAQ:                   http://cygwin.com/faq/
>

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/