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.
:) I got as far as having everything built except the gtk and gdk binaries once.... but it's years since I even tried. I'll try again when I get my shiny new box, I know a bit more now than I did back then. I also think if we still need to start from scratch the javascript approach Wez made for PHP is simpler - and faster - than the MSVS project approach...
Small note: Tor doesn't make the stuff on the win32/glade site, I've found updated .dlls there before now.
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.
I wouldn't even bother trying it. The whole point of using MSVCR* in the first place is that it's native. Although, having done a little more reading today, I have to say it seems MSVCR80 is about as native to WinXP as I am to Iceland...
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.
I agree. But Tor's right about MSCVRT dependancy...
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.
I've been reading scary stuff:
http://www.microsoft.com/about/legal/useterms/default.aspx. This might explain why I only have msvcr71.dll twice on my laptop - once in C:/Windows (i.e. I likely put it there myself) and once as part of the OpenOffice distro - and NO copies of msvcr80.dll. I'd kind of assumed, since that's the C runtime, that it might be part of my OS - same as msvcrt.dll in days of yore.
Also, the VC8 version you currently have on board doesn't support x64. You need the fully paid-up license for that. Nice, eh? - given that part of the reason for looking into it (from PHP perspective) was it gave Windows users the chance to build their own binaries for free...
I think, let's wait and see what Edin does next. If he doesn't move to VC8 there's no point in us trying to, and it's going to mean a lot of work on the GTK+ side.
- Steph
Thanks,
Elizabeth Smith
-- PHP-GTK Development Mailing List (http://gtk.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php