From: khan AT xraylith DOT wisc DOT edu (Mumit Khan) Subject: Re: [ANN] egcs-1.0.2, binutils-980303 for Cygwin32 b19 26 Mar 1998 18:27:34 -0800 Message-ID: <9803250504.AA00484.cygnus.gnu-win32@modi.xraylith.wisc.edu> References: <6qDI7l4ppfB AT mike DOT franken DOT de> To: mh AT mike DOT franken DOT de (Michael Hirmke) Cc: gnu-win32 AT cygnus DOT com 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".