Mail Archives: cygwin/1998/03/26/18:27:34
mh AT mike DOT franken DOT de (Michael Hirmke) writes:
> I followed the discussion about cygwin, mingw and egcs for some time
> now, but I'd like to get a summary about what purpose serves each of
> these packages. From the discussions I got a somewhat limited impression
> on how to use them, but that's not enough.
> Can anyone give such a summary or perhaps just point to an existing one ?
Michael,
Here's my take on the various pieces. Others please comment/correct.
- cygwin: The GPL'd POSIX emulation layer on Win32 developed by Cygnus
Solutions. It provides an easy vehicle to port code developed on Unix
with little or no source code changes, plus gives you the POSIX
interface. All code linked with Cygwin32 DLL falls under GPL, and must
in terms comply with GPL as a result.
- mingw: Brainchild of Colin Peters. It's a set of replacement headers for
ANSI API (stuff you expect in /usr/include), and the startup files for
GCC to "hook" your programs into using CRTDLL or MSVCRT, the runtimes
supplied by Microsoft. Gain? No copyright/licensing restrictions, since
you don't link with Cygwin32 DLL, but you lose all the POSIX stuff and
Unix-style API on top of what Win32 provides.
These two systems, cygwin and mingw, are exclusive of each other, and
you can't use both in the same "program". All cygwin applications MUST
use CYGWIN.DLL for most its services, whereas all mingw applications
MUST use either CRTDLL.DLL or MSVCRT.DLL for its servcies. Both depend
on and share the following however:
- compiler toos: GNU FSF or EGCS compilers, binary utilities such
assembler, linker, dlltool, winders, etc.
- windows32api: Scott Christley's Windows32api headers and export
definitions that produce all the export libraries (such as kernel32)
using dlltool.
- GNU debugger, etc.
- EGCS: EGCS is a "rapid" GCC development project, and most of the new
and experimental changes eventually will make into FSF GCC (eg.,
GCC-2.8.x).
I usually include binutils (gas, ld, etc) into my egcs distributions, so
you can think of egcs as the development toolchain, whereas cygwin and
mingw provide you with a OS runtime on top of MS Win32 system.
Now it gets more complex as egcs built for either cygwin or mingw can
produce code for the other (sort of cross-compilation), but that's not
important in this case.
If you have more questions, feel free to email.
Regards,
Mumit
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".
- Raw text -