delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1998/03/26/18:27:34

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".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019