GNOME Bugzilla – Bug 601840
Windows 2000: Glom startup fails: Cannot find freeaddrinfo()
Last modified: 2010-04-02 15:11:26 UTC
Created attachment 147693 [details] Instructions from Microsoft how to use GetAddrInfo() in old Windows 2000 After installing glom-setup-1.12.2-1.exe in Windows 2000, glom cannot be launched: it crashes on startup. System error message is "Cannot find procedure 'freeaddrinfo' in DLL 'WS2_32.DLL'". This error does not occur when using glom-setup-1.10.0-1.exe. microsoft.com tells us that Windows socket function FreeAddrInfo() was introduced with Windows XP and Windows Server 2003. Likewise GetAddrInfo(). Using it therefore breaks compatibility with Windows 2000. According to Microsoft there is a simple workaround for programmers wanting to continue supporting Windows 2000, see attachment and http://msdn.microsoft.com/en-us/library/ms738520(VS.85).aspx [getaddrinfo Function]. Thank you. Mark
Thanks for the bug report. I'd accept a small patch to support Windows 2000.
As far as I can tell (using grep) Glom doesn't call the Windows functions GetAddrInfo, FreeAddrInfo directly. The Windows 2000 incompatibility will be in one (or several) of the libraries used. Somebody with better access to the source codes of the various libraries used should check for these calls (i.e. run grep -i getaddrinfo on the source files) and forward this bug report to any libary that shows hits. The workaround supplied by Microsoft is as simple as including the extra header files Ws2tcpip.h and Wspiapi.h for object files that call the functions.
You can find out which library requires freeaddrinfo() with Dependency Walker: http://dependencywalker.com/
it's in glib. this was supposed to have been fixed already, but the fix wasn't quite right *** This bug has been marked as a duplicate of bug 611696 ***
Anyone know if the fix was implemented yet? If not, what's the latest version of GLib (assuming it worked before recently) that runs properly on Windows 2000?
Okay, I see bug #611696 now. Unfortunately Tor needs a "clean-room" wspiapi.h file in order to recompile his Win32 binaries.