Tcl Source Code

View Ticket
Login
Ticket UUID: 3280043
Title: win2k: unresolved DLL imports
Type: Bug Version: obsolete: 8.6b1.1
Submitter: stankok Created on: 2011-04-08 00:24:24
Subsystem: 52. Portability Support Assigned To: nijtmans
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2011-04-08 13:32:08
Resolution: Fixed Closed By: nijtmans
    Closed on: 2011-04-08 06:32:08
Description:
Functions getaddrinfo(), getnameinfo() and freeaddrinfo() were introduced in winXP, and are not present on win2k. 
Tcl relies on these functions in files generic/tclIOSock.c and generic/tclIOSock.c, resulting in unresolved imports from ws2_32.dll (see screenshot). 

The fix is to include header "wspiapi.h". Read section titled "Support for XXX on earlier versions of Windows" at the bottom of articles: 
getaddrinfo: http://msdn.microsoft.com/en-us/library/ms738520%28v=vs.85%29.aspx
getnameinfo: http://msdn.microsoft.com/en-us/library/ms738532%28v=vs.85%29.aspx
freeaddrinfo: http://msdn.microsoft.com/en-us/library/ms737931%28v=vs.85%29.aspx

Patch is trivial, but here it is:
diff -r orig/generic/tclIOSock.c src/generic/tclIOSock.c
15a16,19
> #if defined(_WIN32)
> #include <wspiapi.h>
> #endif
> 
diff -r orig/win/tclWinSock.c src/win/tclWinSock.c
51a52,53
> #include <wspiapi.h>
>
User Comments: nijtmans added on 2011-04-08 13:32:08:

allow_comments - 1

Fixed in trunk

Moved the #include to win/tclWinPort.h, and
added a test to configure.in whether this
include file actually esists.

stankok added on 2011-04-08 07:24:25:

File Added - 407640: win2k_getnameinfo_linking_issue.png

Attachments: