ID: 47963 Comment by: aheckmann at m-s dot de Reported By: cranderson at att dot net Status: No Feedback Bug Type: *Configuration Issues Operating System: Windows 2000 PHP Version: 5.3.0RC1 New Comment:
I have the same problem/error on Windows 2000 using the VC6 and the VC9 builds of 5.3.0. "The procedure entry point getaddrinfo could not be located in the dynamic link library WS2_32.dll." In my opinion the above already mentioned document from microsoft describes the solution to fix the problem for older windows versions that don't have the getaddrinfo function with an inline function: Support for getaddrinfo on older versions of Windows The getaddrinfo function was added to the Ws2_32.dll on Windows XP and later. To execute an application that uses this function on earlier versions of Windows, then you need to include the Ws2tcpip.h and Wspiapi.h files. When the Wspiapi.h include file is added, the getaddrinfo function is defined to the WspiapiGetAddrInfo inline function in the Wspiapi.h file. At runtime, the WspiapiGetAddrInfo function is implemented in such a way that if the Ws2_32.dll or the Wship6.dll (the file containing getaddrinfo in the IPv6 Technology Preview for Windows 2000) does not include getaddrinfo, then a version of getaddrinfo is implemented inline based on code in the Wspiapi.h header file. This inline code will be used on older Windows platforms that do not natively support the getaddrinfo function. http://msdn.microsoft.com/en-us/library/ms738520%28VS.85%29.aspx Will this be fixed, or is Win2k support dropped for php 5.3.x? Thanks Previous Comments: ------------------------------------------------------------------------ [2009-04-22 01:00:00] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". ------------------------------------------------------------------------ [2009-04-16 20:19:36] cranderson at att dot net Hi, Sorry about the delay getting back to this issue (taxes crap). Anyway, the offending file in Win2000 Server/Pro and family is ws2_32.dll. This file is part of service pack 4. It is NOT related to VC6/9, etc. (I have VC9 installed so that I can run the Apache distro from Apache Lounge.) It does not have the getaddrinfo function. This link: http://msdn.microsoft.com/en-us/library/ms738520(VS.85).aspx describes the problem in detail. Unfortunately, anything less than XP service pack 2 will exhibit this behavior and will be unable to load PHP 5.3. Microsoft is not going to update ws3_32.dll since it would involve tearing out winsock and supporting files. The file is always in use by the OS, so I was unable to overwrite the DLL with a copy from 2003 server - maybe safe mode but I don't have the nerve. Carl ------------------------------------------------------------------------ [2009-04-14 11:04:26] matt...@php.net I haven't used that tool before, so not exactly sure what I'm supposed to check, sorry. :-/ But anyway, selecting WS2_32.DLL under PHP.EXE > PHP5TS.DLL, the *addrinfo functions aren't in the bottom pane on 2000, and in the upper pane, freeaddrinfo/getaddrinfo are red instead of green on XP. Additionally, on 2000, the log area says "Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module." Is that even close to anything you wanted to know...? A little lost in this area, but if you give me instructions, hopefully I can help. :-) (I'll be away for a bit now...) ------------------------------------------------------------------------ [2009-04-14 10:23:51] paj...@php.net Ok, I can't get a windows 2000 easily. But reading again the error, it has nothing to do with the headers (we use them correctly or it will not even compile) but with the fact that your ws2 dll does not expose or contain getaddrinfo. Can you send verify it using depends.exe please? ------------------------------------------------------------------------ [2009-04-14 10:12:22] matt...@php.net Yes, confirmed. I knew it worked with XP SP3, and since I can't get to that 2000 system now, I just installed the 2008 runtime on an old 2000 laptop (same service pack and all) and tried the latest 5.3 snap. The OP's error is the one I'm seeing. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/47963 -- Edit this bug report at http://bugs.php.net/?id=47963&edit=1