Subject: Cygnus b19 gcc and Mingw32
From: [email-masked] (Colin Peters)

6 Mar 1998 22:10:44 -0800
Message-ID: <[email-masked]>
Mime-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
To: "GNU-Win32" <[email-masked]>

I have just downloaded and installed Cygnus GNU-Win32 b19 on my machine,
with hopes of producing a Mingw32 add-on for Cygwin32. Unfortunately it
doesn't look as simple as I would have hoped.

The main problem is that the library libgcc.a supplied with Cygwin32, which
supplies 'builtin' type functions, doesn't supply some of the builtins that
mingw32 would need. Instead they are supplied by the cygwin library
(libcygwin.a). Specifically __main, which is called by the compiler at the
beginning of the main function, and which does such things as initializing
the global C++ objects in the program, is no longer included in libgcc.a,
but is an export of the cygwin DLL. It seems to me that do_global_ctors and
do_global_dtors have disappeared altogether.

I can't say I think this is a good idea, although it saves a tiny bit of
code in each executable. Builtin calls like that should stay in libgcc,
especially given the small size of those particular builtins. Of course I
have an ulterior motive, it makes it more difficult for me (or for Cygnus
for that matter) to eliminate the dependency on cygwin.dll from programs. I
think a change like this is a move away from the idea of making Cygnus gcc a
vanilla Win32 compiler with a Cygwin32 option.

This all makes it unlikely that I will be able to release a version of
Mingw32 as an add-on for Cygwin32 in the near future. Instead I will be
concentrating on a more polished version for EGCS and Jan-Jaap's
distribution of gcc 2.8.0 including all the changes from Mingw32 0.1.4. It
should be possible to take that version and integrate it into a Cygwin32
installation, but its not something I can do right now (I would have to
figure out what to download and what to set up to recompile a Mingw32
version of libgcc.a or add __main to libmingw32.a). Once I get Mingw32
cleaned up and a new release made I will be looking into it again.

Colin.

-- Colin Peters - colin at fu.is.saga-u.ac.jp
-- Saga Univ. Dept. of Information Science
-- http://www.geocities.com/Tokyo/Towers/6162/index.html
-- http://www.fu.is.saga-u.ac.jp/~colin/index.html

-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".