[#1010862] Will not run on Windows 2000 and older, missing symbols

View Trackers | Bugs | Download .csv | Monitor

Date:
2010-08-05 18:20
Priority:
3
State:
Open
Submitted by:
Darrell Walisser (mediak)
Assigned to:
Nobody (None)
Category:
Group:
Resolution:
None
Category:
Group:
Resolution:
None
Summary:
Will not run on Windows 2000 and older, missing symbols

Detailed description
psqlODBC version: 8.04 0200

Attempting to use the driver under Windows 2000 in ODBC driver manager yields this:

"The setup routines for the PostgreSQL ANSI ODBC driver could not be loaded due to system error code 127"

then another dialog:

"Driver's ConfigDSN, ConfigDriver, or ConfigTranslator failed"
"Could not load the setup or translator library"


I turns out that the psqlodbc*.dll is missing these symbols in WS_32.dll: freeaddrinfo, getaddrinfo, getnameinfo

This article explains why they are missing, these were added in XP but there is a trick to make them work in earlier versions. Basically this could be fixed with a recompile. I could not compile with VS6 but I am having a go with Visual Studio Express 2008 (I usually use mingw for all Windows development so this may not work).

http://msdn.microsoft.com/en-us/library/ms737931%28VS.85%29.aspx

Followup

Message
Date: 2010-09-23 03:56
Sender: Hiroshi Inoue

Though I did nothing in my environment, you had better
include Wspiapi.h in socket.c according to the following
patch so as to make sure the support of the backward-
compatibility version of getaddrinfo() family.

*** ../psqlodbc/socket.c 2010-05-26 20:41:50.870000000 +0900
--- ./socket.c 2010-09-23 00:30:24.388000000 +0900
***************
*** 33,38 ****
--- 33,39 ----

#ifdef WIN32
#include <time.h>
+ #include <Wspiapi.h>
#else
#include <stdlib.h>
#include <string.h> /* for memset */
Date: 2010-09-22 20:17
Sender: Cesare Leonardi

I've tried 8.4.0202 as suggested by Hiroshi, installing over 8.4.0100, and for me it works, even with SSL.
I've done only basic tests so far.

Hiroshi, can i ask you how do you have resolved the WS_32.dll problem? With Win2000 i'm facing error with this DLL with an increasing number of open source programs. Clearly it's an obsolete os that many developer cannot test anymore, so i can try to propose your solution (i.e. to qemu).
What compiler are you using?

Thank you for your work.

Cesare.
Date: 2010-09-22 15:36
Sender: Hiroshi Inoue

Could you please try the drivers on testing for 8.4.0202 at
http://www.ne.jp/asahi/inocchichichi/entrance/psqlodbc/
?
Date: 2010-09-19 21:14
Sender: Cesare Leonardi

I can confirm this bug: 8.04 0200 under Win2000 SP4 gives the same error as Darrel and also for me the previous 0100 works. At least one step further, since SSL is not activable, but it's another story...

Cesare.
Date: 2010-08-05 18:43
Sender: Darrell Walisser

I discovered that rolling back to 804_0100 solves the
problem, for now. I hope this works as well as 0804_0200.

Attached Files:

Changes:

No Changes Have Been Made to This Item

Powered By FusionForge