What's such a big deal about MSVC

Tor Lillqvist tml@iki.fi
Sat Mar 3 01:28:00 GMT 2001


David A. Cobb writes:
 > I see several packages, GTK+/Win32 being on my mind at the moment, for
 > which the author advises they _must_ be compiled with MSVC.

Umm, no, GTK+ can be compiled either with gcc or MSVC. I use gcc when
building all of GLib, GTK+ and GIMP. The same goes for GTK+-using
code. The point you might be referring to is that, if you compile
GTK+-using code using gcc, and intend to use the prebuilt DLLs I
provide, you *must* use the -fnative-struct switch. Otherwise your
code will use different alignment for some struct fields, with
disastrous results. 

I want the same DLLs to be useable both from gcc- and MSVC-compiled
code, which is why they are compiled with this -fnative-struct switch.

(You most probably also should use -mno-cygwin when building code to
use the prebuilt GLib and GTK+ DLLs. As has been brought up on this
list countless times, unless you know exactly what is happening, you
will get into trouble if you mix different C runtimes in the same
program, in the application EXE and DLLs.)

As for rebuilding GLib and GTK+ yourself as Cygwin-using DLLs, that's
another matter. I have received some patches to GLib to enable this,
and added more stuff to make it possible to use the auto*/libtool
mechanism also to build GLib for "pure" Win32. I have sent a diff to
the gtk-devel list, but no comments so far. Also, some enhancements
are needed to libtool to make everyghin go smooth.

 > Part of the reason, evidently is some MSVC????.DLL that gets
 > included.

Msvcrt.dll is the current C library bundled with Windows. (Except with
the original Windows 95, but even for those still running that, you
will most probably get msvcrt.dll as soon as you install about any
recent software.)

 > So, what's the trick?  What funny backdoor is M$ exploiting with this?

You are being too paranoid here. Using msvcrt.dll on Windows is no
stranger than using the vendor-supplied proprietary C library on
Solaris or HP-UX.

 > In other words, what would it take to allow Cygwin to provide whatever
 > functionality this beast is giving?

You are misunderstanding. Cygwin isn't missing anything (in relation
to this issue). When starting my port of GIMP (thus first GLib and
GTK+) to Windows, I chose not to use Cygwin not because it would be
missing something (the port would have been a bit simpler if I could
have relied on Cygwin), but, as it seemed to be quite possible to do
without Cygwin, why then require the extra overhead?

Also, there is the licensing issue. GLib and GTK+ and licensed under
the LGPL, while Cygwin is GPL. I didn't want to restrict GLib and GTK+
on Windows to GPL programs.

--tml


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list