Thread safe driver is available on some platforms.
authorHiroshi Inoue <inoue@tpf.co.jp>
Thu, 7 Nov 2002 10:24:33 +0000 (10:24 +0000)
committerHiroshi Inoue <inoue@tpf.co.jp>
Thu, 7 Nov 2002 10:24:33 +0000 (10:24 +0000)
README.unix
configure.ac
win32.mak

index 518658390455034d5d5ff66e5109e8e6c9024c8d..8943e492f10ea67923987626bf5d437894599690 100644 (file)
@@ -21,6 +21,7 @@ The configure script will accept the following useful options:
 --with-iodbc
 --with-unixodbc
 --with-odbcinst=DIR
+--enable-pthreads (thread-safe driver on some platforms)
 --help
 
 Building a distribution
index 437565f9bb76d49e1961ec6aeadaeb1f26cd1e7f..37aac8a4eb8e2ac44938801564f328de2b38fbd0 100644 (file)
@@ -7,6 +7,9 @@ AM_CONFIG_HEADER([config.h])
 AM_MAINTAINER_MODE
 
 
+AC_DEFINE(DRIVER_CURSOR_IMPLEMENT, 1,
+   [Define to 1 to build with driver cursors option)])
+
 PGAC_ARG_BOOL(with, unixodbc, no,
               [  --with-unixodbc         build ODBC driver for unixODBC],
               [AC_DEFINE(WITH_UNIXODBC, 1,
@@ -24,6 +27,27 @@ fi
 AM_CONDITIONAL(with_unixodbc, [test $with_unixodbc = yes])
 AM_CONDITIONAL(with_iodbc, [test $with_iodbc = yes])
 
+# to implement the thread-safe driver
+PGAC_ARG_BOOL(enable, pthreads, no,
+    [  --enable-pthreads         build pthread implementation if possible],
+    [AC_DEFINE(POSIX_MULTITHREAD_SUPPORT, 1,
+   [Define to 1 to build with pthreads support (--enable-pthreads)])
+     AC_DEFINE(_REENTRANT, 1,
+   [Define _REENTRANT for several plaforms])
+     AC_CHECK_LIB(c_r, gethostbyname)
+     AC_CHECK_LIB(nsl, gethostbyname_r, [],
+   [AC_CHECK_FUNCS(getipnodebyname gethostbyname_r, break)])
+     if test "$ac_cv_func_gethostbyname_r" = yes || test "$ac_cv_lib_nsl_gethostbyname_r" = yes; then
+   AC_TRY_COMPILE([#include <netdb.h>],
+   [ gethostbyname_r((char *) 0, (struct hostent *) 0, (char *) 0, 0, (int *) 0);],
+        [AC_DEFINE(PGS_REENTRANT_API_1, 1, [Define if you have 5 parameter gethostbyname_r])],
+        [AC_DEFINE(PGS_REENTRANT_API_2, 1, [Define if you have 6 parameter gethostbyname_r])])
+     fi
+     AC_CHECK_FUNCS(localtime_r strtok_r)
+     AC_CHECK_LIB(pthreads, pthread_create, [],
+       [AC_CHECK_LIB(pthread, pthread_create)])
+    ])
+
 # Allow for overriding the default location of the odbcinst.ini
 # file which is normally ${sysconfdir} (i.e., ${prefix}/etc).
 PGAC_ARG_REQ(with, odbcinst,
index ac66e495f588f765b8b19cec543ee07273fa42e7..b5c7953b390bd7d7bf1a36b21b2b3e08d096ce1e 100644 (file)
--- a/win32.mak
+++ b/win32.mak
@@ -98,9 +98,9 @@ CLEAN :
 
 CPP=cl.exe
 !IF "$(CFG)" == "MultibyteRelease"
-CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "DRIVER_CURSOR_IMPLEMENT" $(ADD_DEFINES) /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "DRIVER_CURSOR_IMPLEMENT" /D "WIN_MULTITHREAD_SUPPORT" $(ADD_DEFINES) /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 !ELSE
-CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "DRIVER_CURSOR_IMPLEMENT" $(ADD_DEFINES) /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "DRIVER_CURSOR_IMPLEMENT" /D "WIN_MULTITHREAD_SUPPORT" $(ADD_DEFINES) /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 !ENDIF
 
 .c{$(INTDIR)}.obj::
@@ -237,9 +237,9 @@ CLEAN :
 
 CPP=cl.exe
 !IF "$(CFG)" == "MultibyteDebug" 
-CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "DRIVER_CURSOR_IMPLEMENT" $(ADD_DEFINES) /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "DRIVER_CURSOR_IMPLEMENT" /D "WIN_MULTITHREAD_SUPPORT" $(ADD_DEFINES) /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
 !ELSE
-CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "DRIVER_CURSOR_IMPLEMENT" $(ADD_DEFINES) /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "DRIVER_CURSOR_IMPLEMENT" /D "WIN_MULTITHREAD_SUPPORT" $(ADD_DEFINES) /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
 !ENDIF
 
 .c{$(INTDIR)}.obj::