Re: Re: Patch for generator - allow compiling against multiple gtk versions

From: Date: Sat, 27 Jan 2007 13:14:34 +0000
Subject: Re: Re: Patch for generator - allow compiling against multiple gtk versions
References: 1 2 3  Groups: php.gtk.dev 
Request: Send a blank email to php-gtk-dev+get-3595@lists.php.net to get a copy of this message
Steph Fox wrote:
Another little snippet is from Tor's site (http://www.gimp.org/~tml/gimp/win32/downloads.html) where he states that his distributed development DLLs use the MSCVRT runtime: "Specifically, this means that you should not use newer versions of the Microsoft compiler than Visual C 6 without knowing exactly what you are doing." (He also mentions GTK+ 2.8 vs Win98, so Madeleine's off the hook!) According to dependency walker, the DLLs in the libglade dev pack and on the GTK FTP homepage are also both built with VC6, even for the 2.10 series. This obviously affects the hoped-for shift to V8 for XP distros, but it's good news for the win98 crowd. Kind of.
Actually, that's not entirely true. The stuff that Tor provides (and is on the ftp server) isn't BUILT with MSVC at all (and at this point I can't get it to build with MSVC even though there are makefiles for it...although I HAVE managed to get most of the dependencies built with it...glib is being a pain - seems to be some bugs in the new stuff that still elude me... if someone with a little more C experience would give me a hand ;) ) - it's actually built with MinGW with a compile flag to make the binaries compatible with MSVC stuff. But the headers are different, the runtime is hooked in using Anders Norlander w32api and not Microsoft's offical stuff. So far this hasn't caused problems but at some point MinGW is planning on moving away from using Microsoft's MSCVRT runtime and using/distributing their own. This becomes even more of a headache because PHP is NOT set up to compile with MinGW at all and doing so would mean a LOT of work. The actual reason that Tor and Gtk moved away from MSVC to MinGW was licensing - the license for redistributing the MSVCRT7.1 and 8.0.dll's is a bit goofy. So what does this mean? At some point there will be runtime mixing unless PHP-Gtk2 starts distributing their own gtk runtime compiled on MSVC or figures out how to compile php on MinGW.
Win98/ME/NT4 will need VC6, PHP version 5.2.0 and GTK version 2.6.10 - that means the *only* changing element for them will be the PHP-GTK source as it matures. Actual releases will consist of the updated php-gtk2.dll and any php-gtk extensions that will work within those constraints, and there's absolutely no reason to make those users download everything else every time. It might be okay to use later PHP extensions (see Frank's earlier note) but I'm very much inclined to say 'just make do with this until you can upgrade your OS or move to *nix', because there's no reason to expect win32 API usage in extensions to remain portable now, and we don't have a good way to monitor that shift. Thoughts? - Steph
I think that yes, if you keep support for the Win98/ME/NT4 you'll need to leave them on the last supported php, the last supported gtk, and php-gtk2 with only 2.6 support built in (hence the generator patch). But it would be nice for those on newer platforms to have newer stuff built with a newer runtime. Thanks, Elizabeth Smith

« previous php.gtk.dev (#3595) next »