RE: [INTERNALS-WIN] RE: [PHP-DEV] Differences in VC6 and VC9 Windows builds and MSSQL Driver.

[email protected] ("Andi Gutmans")
Newsgroups php.internals.win
Message-ID <[email protected]>
> -----Original Message-----
> From: Uwe Schindler [mailto:[email protected]]
> Sent: Friday, January 02, 2009 2:08 PM
> To: 'William A. Rowe, Jr.'; 'Elizabeth M Smith'
> Cc: 'Uwe Schindler'; [email protected]
> Subject: RE: [INTERNALS-WIN] RE: [PHP-DEV] Differences in VC6 and VC9
Windows
> builds and MSSQL Driver.
> 
> > > On a side note... would you advocate linking against a 10 year old
> > glibc?
> >
> > It is???  01/19/2008 1:30a prod rev 6.1.8638.18000 file rev
7.0.6001.18000
> > properly titled "Windows NT CRT DLL".
> >
> > Spend some time in depends.exe walking through the Vista/2008 server
> > shipping files.  If MS trusts it, so do I.
> 
> To note: all binaries coming with recent windows versions (that are
not
> .NET), e.g. explorer.exe, paint.exe and so on, are linked against the
good
> old msvcrt.dll. And because of this, msvcrt.dll is the only CRT, that
is
> distributed with every windows version (since 98 or so).
> 
> And as you can see, the version of the latest msvcrt.dll is rather new
and
> is so officially supported by MS.

I can't remember the details now but about 1.5 years ago we looked into
this in great detail.
I agree with the analysis that the main problem is when you pass
resources from one CRT to another but I don't concur with the assumption
that there's not much to gain from moving to the new CRT.

One thing we found is that there were some important improvements/fixes
esp. on the POSIX compatibility layer in the later CRTs. Unfortunately I
can't remember all the details now. There are all sorts of differences
including significantly faster (and more flexible) locale operations,
some filesystem POSIX APIs were improved in their implementations, etc.
In addition there were some old bugs fixed like for example close() on a
socket with VC6 doesn't fail (we never quite could figured out what it
did), w/ VC8 it crashed so we knew we had to move to closesocket() -
just an example of a bug we found as part of the CRTs evolving.  We
didn't find a significant difference between VC8 and VC9 so I think
moving right to VC9 makes sense (can't remember if CRTs are different or
not).

Anyway I realize these are just a couple of issues I remember and it
doesn't solve the issue of synchronization various vendors + projects.
However, I do think there's an assumption being made here that the
better compiler is the main incentive for moving to a new version. I can
definitely say that we found there were some real differences in API
implementations too and not just the compiler generating faster
binaries.

Andi
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.