From ad1ceed1df79f6680622ffc8fc32a878dcc3a8af Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Thu, 7 Nov 2002 10:24:33 +0000 Subject: [PATCH] Thread safe driver is available on some platforms. --- README.unix | 1 + configure.ac | 24 ++++++++++++++++++++++++ win32.mak | 8 ++++---- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/README.unix b/README.unix index 5186583..8943e49 100644 --- a/README.unix +++ b/README.unix @@ -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 diff --git a/configure.ac b/configure.ac index 437565f..37aac8a 100644 --- a/configure.ac +++ b/configure.ac @@ -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 ], + [ 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, diff --git a/win32.mak b/win32.mak index ac66e49..b5c7953 100644 --- 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:: -- 2.39.5