Re: Depending on C99 (Re: GtkBindingSignal changes)



Roger Leigh writes:
 > The last time I checked, anyone could download the latest MS
 > compiler from the MS website,

Note, though, that at least the freely downloadable "Visual C toolkit
2003" compiler is only marginally usable by itself for something like
building GTK+. It doesn't include any Win32 headers. I haven't checked
the very new "Visual C++ 2005 Express Edition" (which is "free for one
year") yet. You would need the Platform SDK, too. And because of the C
runtime issues (see below) the binaries you would produce would be
incompatible with the ones I build and distribute from ftp.gtk.org.

The newer compilers produce code that link to compiler version
-specific C runtimes (msvcr70.dll, msvcr71.dll, msvcr80.dll
etc). GTK+, GLib, etc use msvcrt.dll (which is part of the operating
system). If an application using msvcr80.dll passes a file descriptor
to g_io_channel_win32_new_fd(), it won't work. (File descriptors are C
runtime specific numbers.) There are presumably other cases where the
GTK+ and GLib API/ABI makes an implicit assumption that the caller
uses the same C runtime as the library.

 > Why not just make proper C99 support the minimum requirement?

BTW, are we discussing compilers used for building GTK+/GLib/etc here,
or compilers used for building software that *uses* GTK+/GLib/etc?

--tml




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]