diff --git a/.cvsignore b/.cvsignore index 94b0d33..ba74027 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -unixODBC-2.2.12.tar.gz +unixODBC-2.2.14.tar.gz diff --git a/conffile.h b/conffile.h new file mode 100644 index 0000000..124f0cc --- /dev/null +++ b/conffile.h @@ -0,0 +1,24 @@ +/* + * Kluge to support multilib installation of both 32- and 64-bit RPMS: + * we need to arrange that header files that appear in both RPMs are + * identical. Hence, this file is architecture-independent and calls + * in an arch-dependent file that will appear in just one RPM. + * + * Note: this may well fail if user tries to use gcc's -I- option. + * But that option is deprecated anyway. + */ +#if defined(__x86_64__) +#include "CONFFILE_x86_64.h" +#elif defined(__ia64__) +#include "CONFFILE_ia64.h" +#elif defined(__i386__) +#include "CONFFILE_i386.h" +#elif defined(__ppc64__) || defined(__powerpc64__) +#include "CONFFILE_ppc64.h" +#elif defined(__ppc__) || defined(__powerpc__) +#include "CONFFILE_ppc.h" +#elif defined(__s390x__) +#include "CONFFILE_s390x.h" +#elif defined(__s390__) +#include "CONFFILE_s390.h" +#endif diff --git a/export-symbols.patch b/export-symbols.patch new file mode 100644 index 0000000..9ea9d06 --- /dev/null +++ b/export-symbols.patch @@ -0,0 +1,40 @@ +Fix some unknown symbols. (This patch was originally for 2.2.11, +do we still need it?) + + +diff -Naur unixODBC-2.2.14.orig/DriverManager/DriverManager.exp unixODBC-2.2.14/DriverManager/DriverManager.exp +--- unixODBC-2.2.14.orig/DriverManager/DriverManager.exp 2008-05-22 05:10:54.000000000 -0400 ++++ unixODBC-2.2.14/DriverManager/DriverManager.exp 2009-02-15 18:44:46.000000000 -0500 +@@ -153,6 +153,8 @@ + SQLTablesA + SQLTransact + ODBCSharedTraceFlag ++dm_log_write ++__post_internal_error + uodbc_open_stats + uodbc_close_stats + uodbc_get_stats +diff -Naur unixODBC-2.2.14.orig/cur/Makefile.am unixODBC-2.2.14/cur/Makefile.am +--- unixODBC-2.2.14.orig/cur/Makefile.am 2008-06-17 06:18:39.000000000 -0400 ++++ unixODBC-2.2.14/cur/Makefile.am 2009-02-15 18:44:46.000000000 -0500 +@@ -10,7 +10,7 @@ + libodbccr_la_LDFLAGS = \ + -no-undefined \ + -version-info @LIB_VERSION@ \ +- -export-symbols @srcdir@/cur.exp -export-dynamic ++ -export-symbols @srcdir@/cur.exp -export-dynamic ../DriverManager/libodbc.la + + libodbccr_la_SOURCES = \ + SQLAllocHandle.c \ +diff -Naur unixODBC-2.2.14.orig/cur/Makefile.in unixODBC-2.2.14/cur/Makefile.in +--- unixODBC-2.2.14.orig/cur/Makefile.in 2008-11-19 11:11:15.000000000 -0500 ++++ unixODBC-2.2.14/cur/Makefile.in 2009-02-15 18:44:46.000000000 -0500 +@@ -272,7 +272,7 @@ + libodbccr_la_LDFLAGS = \ + -no-undefined \ + -version-info @LIB_VERSION@ \ +- -export-symbols @srcdir@/cur.exp -export-dynamic ++ -export-symbols @srcdir@/cur.exp -export-dynamic ../DriverManager/libodbc.la + + libodbccr_la_SOURCES = \ + SQLAllocHandle.c \ diff --git a/keep-typedefs.patch b/keep-typedefs.patch new file mode 100644 index 0000000..7f577f2 --- /dev/null +++ b/keep-typedefs.patch @@ -0,0 +1,18 @@ +Upstream has decided to deprecate these typedefs, but experience so far +says that removing them just breaks code to little purpose. + + +diff -Naur unixODBC-2.2.14.orig/include/sqltypes.h unixODBC-2.2.14/include/sqltypes.h +--- unixODBC-2.2.14.orig/include/sqltypes.h 2008-10-31 12:21:53.000000000 -0400 ++++ unixODBC-2.2.14/include/sqltypes.h 2009-02-16 13:28:50.000000000 -0500 +@@ -170,6 +170,10 @@ + typedef SQLUINTEGER SQLROWSETSIZE; + typedef SQLLEN SQLROWOFFSET; + */ ++typedef SQLULEN SQLROWCOUNT; ++typedef SQLULEN SQLROWSETSIZE; ++typedef SQLULEN SQLTRANSID; ++typedef SQLLEN SQLROWOFFSET; + #endif + #else + typedef long SQLINTEGER; diff --git a/libtool-config.patch b/libtool-config.patch new file mode 100644 index 0000000..a3d6919 --- /dev/null +++ b/libtool-config.patch @@ -0,0 +1,55 @@ +unixODBC doesn't actually succeed if you try to build with the system libltdl. +Take out code that expects libltdl to exist locally. + + +diff -Naur unixODBC-2.2.14.orig/Makefile.am unixODBC-2.2.14/Makefile.am +--- unixODBC-2.2.14.orig/Makefile.am 2008-09-02 08:29:31.000000000 -0400 ++++ unixODBC-2.2.14/Makefile.am 2009-02-15 22:27:55.000000000 -0500 +@@ -3,7 +3,6 @@ + log \ + lst \ + ini \ +- libltdl \ + odbcinst \ + DriverManager \ + odbcinstQ \ +diff -Naur unixODBC-2.2.14.orig/configure.in unixODBC-2.2.14/configure.in +--- unixODBC-2.2.14.orig/configure.in 2008-11-19 11:08:40.000000000 -0500 ++++ unixODBC-2.2.14/configure.in 2009-02-16 00:45:22.000000000 -0500 +@@ -165,27 +165,12 @@ + INCLTDL="" + LIBLTDL="" + +-AC_MSG_CHECKING( Have we enabled using RTLD_GROUP ) +-if test "x$rtldgroup" = "xtrue"; then +-AC_MSG_RESULT( yes ) +-AC_LIBLTDL_CONVENIENCE +-else +-AC_MSG_RESULT( no ); +-AC_LIBLTDL_CONVENIENCE_G +-fi +- + dnl Check for dlopen support + AC_LIBTOOL_DLOPEN + +-dnl for cygwin support +-AC_LIBTOOL_WIN32_DLL +- + dnl Configure libtool + AM_PROG_LIBTOOL + +-dnl Configure libltdl +-AC_CONFIG_SUBDIRS(libltdl) +- + use_builtin_libtool="no" + + dnl override the libtool lines if we use the system libs +@@ -517,7 +502,7 @@ + AM_CONDITIONAL(DRIVERS, test "x$drivers" = "xtrue" ) + AM_CONDITIONAL(FDB, test "x$fdb" = "xtrue" ) + AM_CONDITIONAL(QNX, test "x$qnx" = "xtrue" ) +-AM_CONDITIONAL(WITHLT, test "x$use_builtin_libtool" = "xyes" ) ++AM_CONDITIONAL(WITHLT, test "x$use_builtin_libtool" = "xno" ) + AM_CONDITIONAL(ODBCTRACE, test "x$odbctrace" = "xtrue" ) + + dnl This blows up due to what I think is a bug in automake 1.6.3 diff --git a/multilib-config.patch b/multilib-config.patch index f2757fa..d9912c9 100644 --- a/multilib-config.patch +++ b/multilib-config.patch @@ -3,16 +3,26 @@ machine. Force it to use the location reported by /etc/profile.d/qt.sh which we invoke in the specfile (yeah, a crude hack...) -diff -Naur unixODBC-2.2.12.orig/qt.m4 unixODBC-2.2.12/qt.m4 ---- unixODBC-2.2.12.orig/qt.m4 2006-05-16 13:42:26.000000000 -0400 -+++ unixODBC-2.2.12/qt.m4 2007-04-20 12:32:55.000000000 -0400 -@@ -207,30 +207,7 @@ +diff -Naur unixODBC-2.2.14.orig/qt.m4 unixODBC-2.2.14/qt.m4 +--- unixODBC-2.2.14.orig/qt.m4 2008-06-30 11:13:44.000000000 -0400 ++++ unixODBC-2.2.14/qt.m4 2008-11-25 12:01:47.000000000 -0500 +@@ -230,40 +230,7 @@ # Ensure we have the lib dir... if test "x$qt_libraries" = "x" ; then - # see if it is relative to the includes - qt_tree="$qt_includes" -- while test "x$qt_tree" != "x" ; do +- +- # +- # the cygwin dirhame only strips up to the first / +- # +- +- case $host_os in +- cygwin*) empty_dir="x/" ;; +- *) empty_dir="x" ;; +- esac +- +- while test "x$qt_tree" != $empty_dir ; do - # first go around will fail... - if expr "$QTVERSION" '>=' "040000" > /dev/null ; then - if ls $qt_tree/lib/libQt* > /dev/null 2> /dev/null ; then diff --git a/nortldglobal.patch b/nortldglobal.patch deleted file mode 100644 index 2c59576..0000000 --- a/nortldglobal.patch +++ /dev/null @@ -1,22 +0,0 @@ -Although we want to use the latest libltdl, there is one patch that must -be made to avoid problems in Perl::ODBC: don't use RTLD_GLOBAL in the -call to dlopen(). - - -diff -Naur unixODBC-2.2.11.save/libltdl/ltdl.c unixODBC-2.2.11/libltdl/ltdl.c ---- unixODBC-2.2.11.save/libltdl/ltdl.c 2005-09-29 16:18:17.000000000 -0400 -+++ unixODBC-2.2.11/libltdl/ltdl.c 2005-09-29 16:45:11.000000000 -0400 -@@ -1107,7 +1107,12 @@ - lt_user_data loader_data; - const char *filename; - { -- lt_module module = dlopen (filename, LT_GLOBAL | LT_LAZY_OR_NOW); -+/* -+ * this need takeing out, otherwise things like perl break -+ * lt_module module = dlopen (filename, LT_GLOBAL | LT_LAZY_OR_NOW); -+ */ -+ -+ lt_module module = dlopen (filename, LT_LAZY_OR_NOW ); - - if (!module) - { diff --git a/odbcinst.ini b/odbcinst.ini index 6972214..f19c0d1 100644 --- a/odbcinst.ini +++ b/odbcinst.ini @@ -1,19 +1,20 @@ -# Example driver definitinions -# +# Example driver definitions +# Note: on a 64-bit machine, change /usr/lib to /usr/lib64 # -# Included in the unixODBC package +# Driver from the postgresql-odbc package +# Setup from the unixODBC package [PostgreSQL] Description = ODBC for PostgreSQL -Driver = /usr/lib/libodbcpsql.so +Driver = /usr/lib/psqlodbc.so Setup = /usr/lib/libodbcpsqlS.so FileUsage = 1 -# Driver from the MyODBC package +# Driver from the mysql-connector-odbc package # Setup from the unixODBC package -#[MySQL] -#Description = ODBC for MySQL -#Driver = /usr/lib/libmyodbc.so -#Setup = /usr/lib/libodbcmyS.so -#FileUsage = 1 +[MySQL] +Description = ODBC for MySQL +Driver = /usr/lib/libmyodbc5.so +Setup = /usr/lib/libodbcmyS.so +FileUsage = 1 diff --git a/parserupdate.patch b/parserupdate.patch deleted file mode 100644 index 7cd349c..0000000 --- a/parserupdate.patch +++ /dev/null @@ -1,17 +0,0 @@ -Force bison invocation to include -d flag so that yac.h is rebuilt. -The copy supplied in the 2.2.11 distribution does not have the same -symbol numbering that's generated by current Bison, and so the lexer -is out-of-step with the grammar if it just uses that version. This -results in complete failure of the sqp library, leading to reported -problems with text-file driver (bz #162676). - - -diff -Naur unixODBC-2.2.11.orig/sqp/Makefile.am unixODBC-2.2.11/sqp/Makefile.am ---- unixODBC-2.2.11.orig/sqp/Makefile.am 2004-09-13 08:30:29.000000000 -0400 -+++ unixODBC-2.2.11/sqp/Makefile.am 2005-09-29 15:19:52.000000000 -0400 -@@ -1,3 +1,5 @@ -+AM_YFLAGS = -d -+ - if HAVE_FLEX - - noinst_LTLIBRARIES = libsqplc.la diff --git a/so-version-bump.patch b/so-version-bump.patch new file mode 100644 index 0000000..f902f73 --- /dev/null +++ b/so-version-bump.patch @@ -0,0 +1,253 @@ +Set the major .so version to 2 for all unixODBC shared libraries, to reflect +the incompatible ABI changes in 2.2.14. + + +diff -Naur unixODBC-2.2.14.orig/configure.in unixODBC-2.2.14/configure.in +--- unixODBC-2.2.14.orig/configure.in 2008-11-19 11:08:40.000000000 -0500 ++++ unixODBC-2.2.14/configure.in 2009-02-16 11:56:53.000000000 -0500 +@@ -546,7 +546,7 @@ + dnl This is the unixODBC source tree + AC_DEFINE(UNIXODBC_SOURCE) + +-LIB_VERSION="1:0:0" ++LIB_VERSION="2:0:0" + AC_SUBST(LIB_VERSION) + + AC_OUTPUT( Makefile \ +diff -Naur unixODBC-2.2.14.orig/DRVConfig/Mimer/Makefile.am unixODBC-2.2.14/DRVConfig/Mimer/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/Mimer/Makefile.am 2008-06-17 06:14:07.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/Mimer/Makefile.am 2009-02-16 11:59:31.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-libmimerS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libmimerS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/DRVConfig/MiniSQL/Makefile.am unixODBC-2.2.14/DRVConfig/MiniSQL/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/MiniSQL/Makefile.am 2008-06-17 06:14:17.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/MiniSQL/Makefile.am 2009-02-16 11:59:27.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-libodbcminiS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libodbcminiS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/DRVConfig/MySQL/Makefile.am unixODBC-2.2.14/DRVConfig/MySQL/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/MySQL/Makefile.am 2008-06-17 06:14:23.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/MySQL/Makefile.am 2009-02-16 11:59:50.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-libodbcmyS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libodbcmyS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/DRVConfig/Oracle/Makefile.am unixODBC-2.2.14/DRVConfig/Oracle/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/Oracle/Makefile.am 2008-06-17 06:14:29.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/Oracle/Makefile.am 2009-02-16 11:59:07.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-liboraodbcS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++liboraodbcS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/DRVConfig/PostgreSQL/Makefile.am unixODBC-2.2.14/DRVConfig/PostgreSQL/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/PostgreSQL/Makefile.am 2008-06-17 06:14:35.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/PostgreSQL/Makefile.am 2009-02-16 11:59:01.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-libodbcpsqlS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libodbcpsqlS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/DRVConfig/drvcfg1/Makefile.am unixODBC-2.2.14/DRVConfig/drvcfg1/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/drvcfg1/Makefile.am 2008-06-17 06:14:40.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/drvcfg1/Makefile.am 2009-02-16 12:00:00.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-libodbcdrvcfg1S_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libodbcdrvcfg1S_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/DRVConfig/drvcfg2/Makefile.am unixODBC-2.2.14/DRVConfig/drvcfg2/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/drvcfg2/Makefile.am 2008-06-17 06:14:45.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/drvcfg2/Makefile.am 2009-02-16 11:58:39.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-libodbcdrvcfg2S_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libodbcdrvcfg2S_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/DRVConfig/esoob/Makefile.am unixODBC-2.2.14/DRVConfig/esoob/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/esoob/Makefile.am 2008-06-17 06:14:50.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/esoob/Makefile.am 2009-02-16 11:59:41.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-libesoobS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libesoobS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/DRVConfig/nn/Makefile.am unixODBC-2.2.14/DRVConfig/nn/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/nn/Makefile.am 2008-06-17 06:14:56.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/nn/Makefile.am 2009-02-16 11:59:18.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-libodbcnnS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libodbcnnS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/DRVConfig/oplodbc/Makefile.am unixODBC-2.2.14/DRVConfig/oplodbc/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/oplodbc/Makefile.am 2008-06-17 06:15:01.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/oplodbc/Makefile.am 2009-02-16 11:58:56.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-liboplodbcS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++liboplodbcS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/DRVConfig/sapdb/Makefile.am unixODBC-2.2.14/DRVConfig/sapdb/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/sapdb/Makefile.am 2008-06-17 06:15:07.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/sapdb/Makefile.am 2009-02-16 11:59:12.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-libsapdbS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libsapdbS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/DRVConfig/tds/Makefile.am unixODBC-2.2.14/DRVConfig/tds/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/tds/Makefile.am 2008-06-17 06:15:20.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/tds/Makefile.am 2009-02-16 11:59:36.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-libtdsS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libtdsS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/DRVConfig/txt/Makefile.am unixODBC-2.2.14/DRVConfig/txt/Makefile.am +--- unixODBC-2.2.14.orig/DRVConfig/txt/Makefile.am 2008-06-17 06:15:31.000000000 -0400 ++++ unixODBC-2.2.14/DRVConfig/txt/Makefile.am 2009-02-16 11:59:55.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include $(LTDLINCL) + +-libodbctxtS_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libodbctxtS_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/Drivers/MiniSQL/Makefile.am unixODBC-2.2.14/Drivers/MiniSQL/Makefile.am +--- unixODBC-2.2.14.orig/Drivers/MiniSQL/Makefile.am 2008-06-17 06:16:11.000000000 -0400 ++++ unixODBC-2.2.14/Drivers/MiniSQL/Makefile.am 2009-02-16 12:00:22.000000000 -0500 +@@ -196,6 +196,6 @@ + sqlFreeEnv.c \ + sqlFreeStmt.c + +-libodbcmini_la_LDFLAGS = -no-undefined -version-info 1:0:0 \ ++libodbcmini_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) \ + -L@msql_libraries@ -lmsql -module + +diff -Naur unixODBC-2.2.14.orig/Drivers/Postgre7.1/Makefile.am unixODBC-2.2.14/Drivers/Postgre7.1/Makefile.am +--- unixODBC-2.2.14.orig/Drivers/Postgre7.1/Makefile.am 2008-06-17 12:09:03.000000000 -0400 ++++ unixODBC-2.2.14/Drivers/Postgre7.1/Makefile.am 2009-02-16 12:02:30.000000000 -0500 +@@ -3,7 +3,7 @@ + INCLUDES = -I@top_srcdir@/include + + libodbcpsql_la_LDFLAGS = \ +- -version-info 2:0:0 \ ++ -version-info $(LIB_VERSION) \ + -no-undefined \ + $(LIBSOCKET) $(LIBNSL) \ + -export-dynamic \ +diff -Naur unixODBC-2.2.14.orig/Drivers/PostgreSQL/Makefile.am unixODBC-2.2.14/Drivers/PostgreSQL/Makefile.am +--- unixODBC-2.2.14.orig/Drivers/PostgreSQL/Makefile.am 2008-06-17 06:16:48.000000000 -0400 ++++ unixODBC-2.2.14/Drivers/PostgreSQL/Makefile.am 2009-02-16 12:00:05.000000000 -0500 +@@ -4,7 +4,7 @@ + + libodbcpsql_la_LDFLAGS = \ + -no-undefined \ +- -version-info 1:0:0 \ ++ -version-info $(LIB_VERSION) \ + $(LIBSOCKET) $(LIBNSL) \ + -module + +diff -Naur unixODBC-2.2.14.orig/Drivers/nn/Makefile.am unixODBC-2.2.14/Drivers/nn/Makefile.am +--- unixODBC-2.2.14.orig/Drivers/nn/Makefile.am 2008-06-17 06:16:54.000000000 -0400 ++++ unixODBC-2.2.14/Drivers/nn/Makefile.am 2009-02-16 12:00:16.000000000 -0500 +@@ -2,7 +2,7 @@ + + INCLUDES = -I@top_srcdir@/include -I. + +-libnn_la_LDFLAGS = -no-undefined -version-info 1:0:0 -module ++libnn_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) -module + + DEFS = -DUNIXODBC @DEFS@ + +diff -Naur unixODBC-2.2.14.orig/Drivers/template/Makefile.am unixODBC-2.2.14/Drivers/template/Makefile.am +--- unixODBC-2.2.14.orig/Drivers/template/Makefile.am 2008-06-17 06:17:03.000000000 -0400 ++++ unixODBC-2.2.14/Drivers/template/Makefile.am 2009-02-16 12:00:11.000000000 -0500 +@@ -4,7 +4,7 @@ + + DEFS = -DUNIXODBC @DEFS@ + +-libtemplate_la_LDFLAGS = -no-undefined -version-info 1:0:0 ++libtemplate_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION) + + EXTRA_DIST = \ + driver.h \ +diff -Naur unixODBC-2.2.14.orig/odbcinstQ/Makefile.am unixODBC-2.2.14/odbcinstQ/Makefile.am +--- unixODBC-2.2.14.orig/odbcinstQ/Makefile.am 2008-06-30 09:21:04.000000000 -0400 ++++ unixODBC-2.2.14/odbcinstQ/Makefile.am 2009-02-16 12:00:29.000000000 -0500 +@@ -1,6 +1,6 @@ + libodbcinstQ_la_LDFLAGS = \ + -no-undefined \ +- -version-info 1:0:0 \ ++ -version-info $(LIB_VERSION) \ + -export-dynamic \ + -export-symbols @srcdir@/odbcinstQ.exp \ + -module +diff -Naur unixODBC-2.2.14.orig/odbcinstQ4/Makefile.am unixODBC-2.2.14/odbcinstQ4/Makefile.am +--- unixODBC-2.2.14.orig/odbcinstQ4/Makefile.am 2008-11-18 08:32:58.000000000 -0500 ++++ unixODBC-2.2.14/odbcinstQ4/Makefile.am 2009-02-16 12:00:36.000000000 -0500 +@@ -1,6 +1,6 @@ + libodbcinstQ4_la_LDFLAGS = \ + -no-undefined \ +- -version-info 1:0:0 \ ++ -version-info $(LIB_VERSION) \ + -export-dynamic \ + -export-symbols @srcdir@/odbcinstQ4.exp \ + -module diff --git a/sources b/sources index 0380244..1f136e9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -9a116aad4059c31d231b626ffdf1869a unixODBC-2.2.12.tar.gz +f47c2efb28618ecf5f33319140a7acd0 unixODBC-2.2.14.tar.gz diff --git a/unixODBC-2.2.11-stricmp.patch b/unixODBC-2.2.11-stricmp.patch deleted file mode 100644 index b952801..0000000 --- a/unixODBC-2.2.11-stricmp.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff -Naur unixODBC-2.2.12.orig/DriverManager/DriverManager.exp unixODBC-2.2.12/DriverManager/DriverManager.exp ---- unixODBC-2.2.12.orig/DriverManager/DriverManager.exp 2005-03-09 04:06:42.000000000 -0500 -+++ unixODBC-2.2.12/DriverManager/DriverManager.exp 2008-07-28 20:50:14.000000000 -0400 -@@ -153,6 +153,8 @@ - SQLTablesA - SQLTransact - ODBCSharedTraceFlag -+dm_log_write -+__post_internal_error - uodbc_open_stats - uodbc_close_stats - uodbc_get_stats -diff -Naur unixODBC-2.2.12.orig/cur/Makefile.am unixODBC-2.2.12/cur/Makefile.am ---- unixODBC-2.2.12.orig/cur/Makefile.am 2005-10-18 13:07:31.000000000 -0400 -+++ unixODBC-2.2.12/cur/Makefile.am 2008-07-28 20:50:14.000000000 -0400 -@@ -9,7 +9,7 @@ - - libodbccr_la_LDFLAGS = \ - -version-info @LIB_VERSION@ \ -- -export-symbols @srcdir@/cur.exp -export-dynamic -+ -export-symbols @srcdir@/cur.exp -export-dynamic ../DriverManager/libodbc.la - - libodbccr_la_SOURCES = \ - SQLAllocHandle.c \ -diff -Naur unixODBC-2.2.12.orig/cur/Makefile.in unixODBC-2.2.12/cur/Makefile.in ---- unixODBC-2.2.12.orig/cur/Makefile.in 2006-08-31 08:24:23.000000000 -0400 -+++ unixODBC-2.2.12/cur/Makefile.in 2008-07-28 20:50:14.000000000 -0400 -@@ -252,7 +252,7 @@ - - libodbccr_la_LDFLAGS = \ - -version-info @LIB_VERSION@ \ -- -export-symbols @srcdir@/cur.exp -export-dynamic -+ -export-symbols @srcdir@/cur.exp -export-dynamic ../DriverManager/libodbc.la - - libodbccr_la_SOURCES = \ - SQLAllocHandle.c \ -diff -Naur unixODBC-2.2.12.orig/sqp/sqpStoreDataType.c unixODBC-2.2.12/sqp/sqpStoreDataType.c ---- unixODBC-2.2.12.orig/sqp/sqpStoreDataType.c 2004-07-26 04:34:47.000000000 -0400 -+++ unixODBC-2.2.12/sqp/sqpStoreDataType.c 2008-07-28 20:50:14.000000000 -0400 -@@ -8,6 +8,13 @@ - - #include "sqp.h" - #include -+#ifndef WIN32 -+#ifndef HAVE_STRICMP -+#define stricmp(s1,s2) strcasecmp(s1,s2) -+#define strnicmp(s1,s2,n) strncasecmp(s1,s2,n) -+#endif -+#endif -+ - - void sqpStoreDataType( char *pszType, int nPrecision, int nScale ) - { diff --git a/unixODBC.spec b/unixODBC.spec index e7da3e3..c7b3b82 100644 --- a/unixODBC.spec +++ b/unixODBC.spec @@ -1,7 +1,7 @@ Summary: A complete ODBC driver manager for Linux Name: unixODBC -Version: 2.2.12 -Release: 9%{?dist} +Version: 2.2.14 +Release: 1%{?dist} Group: System Environment/Libraries URL: http://www.unixODBC.org/ # Programs are GPL, libraries are LGPL, except News Server library is GPL. @@ -11,28 +11,28 @@ Source: http://www.unixODBC.org/%{name}-%{version}.tar.gz Source1: odbcinst.ini Source2: ODBCConfig.desktop Source3: DataManager.desktop +Source4: conffile.h Patch1: depcomp.patch Patch2: multilib-config.patch -Patch4: parserupdate.patch -Patch5: nortldglobal.patch -Patch6: unixODBC-2.2.11-stricmp.patch +Patch3: warning-cleanup.patch +Patch6: export-symbols.patch +Patch7: libtool-config.patch +Patch8: so-version-bump.patch +Patch9: keep-typedefs.patch Conflicts: iodbc BuildRequires: libX11-devel libXt-devel libXext-devel BuildRequires: qt3-devel readline-devel -BuildRequires: automake autoconf libtool bison flex +BuildRequires: automake autoconf libtool libtool-ltdl-devel bison flex BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %description -Install unixODBC if you want to access databases through ODBC. This -package includes low-level drivers for MySQL, PostgreSQL, and local files. -However, the included drivers are not as up-to-date as the ones distributed -separately. It is recommended that you install and use the MyODBC package -if you need a driver for MySQL, and/or the postgresql-odbc package for -PostgreSQL. +Install unixODBC if you want to access databases through ODBC. +You will also need the mysql-connector-odbc package if you want to access +a MySQL database, and/or the postgresql-odbc package for PostgreSQL. %package devel -Summary: Development files for programs which will use the unixODBC library. +Summary: Development files for programs which will use the unixODBC library Group: Development/Libraries Requires: %{name} = %{version}-%{release} @@ -42,7 +42,7 @@ drivers. If you want to develop programs that will access data through ODBC, you need to install this package. %package kde -Summary: KDE driver manager components for ODBC. +Summary: KDE driver manager components for ODBC Group: System Environment/Libraries Requires: %{name} = %{version}-%{release} @@ -54,25 +54,17 @@ This package contains components for the ODBCConfig and DataManager %setup -q %patch1 -p1 %patch2 -p1 -%patch4 -p1 +%patch3 -p1 %patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 -# 2.2.8 includes a libtool that is too old for some of our architectures. -# Blow it away and replace with build system's libtool. (We intend to use -# the installed libtool anyway, but this makes sure they match.) -rm -rf config.guess config.sub ltmain.sh libltdl -cp -r /usr/share/libtool/* . - -# Use newer install-sh and mkinstalldirs, too -if [ -f libltdl/install-sh ]; then - cp -f libltdl/install-sh . -fi -if [ -f libltdl/mkinstalldirs ]; then - cp -f libltdl/mkinstalldirs . -fi - -# libltdl patch has to be applied after the above -%patch5 -p1 +# Blow away the embedded libtool and replace with build system's libtool. +# (We will use the installed libtool anyway, but this makes sure they match.) +rm -rf config.guess config.sub install-sh ltmain.sh libltdl +# this hack is so we can build with either libtool 2.2 or 1.5 +libtoolize --install || libtoolize %build # pick up qt path @@ -85,13 +77,13 @@ export QTDIR= aclocal automake --add-missing autoconf -pushd libltdl -aclocal -automake -autoconf -popd -%configure --with-gnu-ld=yes --enable-threads=yes --enable-gui=yes --enable-static=yes --enable-drivers +# unixODBC 2.2.14 is not aliasing-safe +CFLAGS="%{optflags} -fno-strict-aliasing" +CXXFLAGS="$CFLAGS" +export CFLAGS CXXFLAGS + +%configure --with-gnu-ld=yes --enable-threads=yes --enable-gui=yes --enable-drivers --enable-ltdllib make all %install @@ -112,13 +104,33 @@ cp DataManager/ODBC.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/odbc.xpm cp DataManagerII/LinuxODBC.xpm $RPM_BUILD_ROOT/usr/share/pixmaps cp DataManagerII/ODBC.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/odbc.xpm +# multilib header hacks +# we only apply this to known Red Hat multilib arches, per bug #181335 +case `uname -i` in + i386 | x86_64 | ppc | ppc64 | s390 | s390x | sparc | sparcv9 | sparc64 ) + mv $RPM_BUILD_ROOT/usr/include/unixodbc_conf.h $RPM_BUILD_ROOT/usr/include/unixodbc_conf_`uname -i`.h + rm -f unixodbc_conf.h + sed s/CONFFILE/unixodbc_conf/ %{SOURCE4} >unixodbc_conf.h + install -m 644 unixodbc_conf.h $RPM_BUILD_ROOT/usr/include/ + ;; + *) + ;; +esac + +# remove obsolete Postgres drivers from the package (but not the setup code) +rm -f $RPM_BUILD_ROOT%{_libdir}/libodbcpsql.so* + # copy text driver documentation into main doc directory -mkdir -p doc/Drivers/txt -cp -pr Drivers/txt/doc/* doc/Drivers/txt +# currently disabled because upstream no longer includes text driver +# mkdir -p doc/Drivers/txt +# cp -pr Drivers/txt/doc/* doc/Drivers/txt # don't want to install doc Makefiles as docs find doc -name 'Makefile*' | xargs rm +# we do not want to ship static libraries +rm -f $RPM_BUILD_ROOT%{_libdir}/*.a + # remove unpackaged files from the buildroot rm -f $RPM_BUILD_ROOT%{_libdir}/*.la rm -f $RPM_BUILD_ROOT%{_libdir}/libltdl.* @@ -129,11 +141,11 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.so.*" | sed "s|^$RPM_BUILD_ROOT||" | gre find $RPM_BUILD_ROOT%{_libdir} -name "*.so" | sed "s|^$RPM_BUILD_ROOT||" | grep -v /libodbcinstQ > devel-so-list # move these to main package, they're often dlopened... -for lib in libodbc.so libodbcinst.so libodbcpsql.so libodbcpsqlS.so libodbcmyS.so +for lib in libodbc.so libodbcinst.so libodbcpsqlS.so libodbcmyS.so do - echo "%{_libdir}/$lib" >> base-so-list - grep -v "/$lib$" devel-so-list > devel-so-list.x - mv -f devel-so-list.x devel-so-list + echo "%{_libdir}/$lib" >> base-so-list + grep -v "/$lib$" devel-so-list > devel-so-list.x + mv -f devel-so-list.x devel-so-list done %clean @@ -152,7 +164,6 @@ rm -rf $RPM_BUILD_ROOT %files devel -f devel-so-list %defattr(-,root,root) %{_includedir}/* -%{_libdir}/*.a %files kde %defattr(-,root,root) @@ -174,6 +185,17 @@ rm -rf $RPM_BUILD_ROOT %postun -p /sbin/ldconfig %changelog +* Fri Feb 20 2009 Tom Lane 2.2.14-1 +- Update to unixODBC 2.2.14. Note this involves an ABI break and a consequent + soname version bump, because upstream fixed some mistakes in the widths of + some API datatypes for 64-bit platforms. Also, the formerly embedded + mysql, postgresql, and text drivers have been removed. (For mysql and + postgresql, use the separate mysql-connector-odbc and postgresql-odbc + packages, which are far more up to date. The text driver is not currently + shipped by upstream at all, but might get revived as a separate SRPM later.) +- Stop shipping .a library files, per distro policy. +- Fixes for libtool 2.2. + * Mon Jul 28 2008 Tom Lane 2.2.12-9 - Fix build failure caused by new default patch fuzz = 0 policy in rawhide. diff --git a/warning-cleanup.patch b/warning-cleanup.patch new file mode 100644 index 0000000..8f80eaf --- /dev/null +++ b/warning-cleanup.patch @@ -0,0 +1,1713 @@ +This patch fixes a boatload of bugs in 2.2.14, some but not all of which +would manifest only on 64-bit platforms. All changes were identified by +examining compiler warnings on a Fedora 9 64-bit build. +Submitted upstream 2009-02-16. + + +diff -Naur unixODBC-2.2.14.orig/DataManager/classISQL.cpp unixODBC-2.2.14/DataManager/classISQL.cpp +--- unixODBC-2.2.14.orig/DataManager/classISQL.cpp 2007-02-12 06:49:33.000000000 -0500 ++++ unixODBC-2.2.14/DataManager/classISQL.cpp 2009-02-15 18:34:44.000000000 -0500 +@@ -180,7 +180,7 @@ + txtSQL->hide(); + + txtResults->append( qsHorizSep ); +- qsHorizSep.sprintf( "\n\n%d rows affected", nRowsAffected ); ++ qsHorizSep.sprintf( "\n\n%ld rows affected", (long) nRowsAffected ); + txtResults->append( qsHorizSep ); + + txtResults->setAutoUpdate( TRUE ); +diff -Naur unixODBC-2.2.14.orig/DataManagerII/classBrowse.cpp unixODBC-2.2.14/DataManagerII/classBrowse.cpp +--- unixODBC-2.2.14.orig/DataManagerII/classBrowse.cpp 2007-02-12 06:49:33.000000000 -0500 ++++ unixODBC-2.2.14/DataManagerII/classBrowse.cpp 2009-02-15 18:34:44.000000000 -0500 +@@ -243,7 +243,7 @@ + if (SQL_SUCCEEDED(nReturn)) + addStatus( QString().sprintf("%s: %d row(s) completed", shortDesc.upper().ascii(), nRowsAffected) ) ; + else +- addStatus( QString().sprintf("%s: %d row(s), ERROR rc=%d, %d row(s) affected", shortDesc.upper().ascii(), listRows.count(), nReturn, nRowsAffected) ) ; ++ addStatus( QString().sprintf("%s: %ld row(s), ERROR rc=%d, %ld row(s) affected", shortDesc.upper().ascii(), (long) listRows.count(), nReturn, (long) nRowsAffected) ) ; + + return nRowsAffected ; + } +@@ -293,7 +293,7 @@ + return ; + + // Confirm delete with user +- if (!OkWithUser( "table row delete", QString().sprintf("Do you want to delete the following %d row(s)?\nROWS: ", listRows.count()) + qsRowsSelected )) ++ if (!OkWithUser( "table row delete", QString().sprintf("Do you want to delete the following %ld row(s)?\nROWS: ", (long) listRows.count()) + qsRowsSelected )) + return ; + + // Double check the action to be sure user knows about duplicates that might be affected +@@ -327,7 +327,7 @@ + return ; + + // Confirm delete with user +- if (!OkWithUser( "table row insert", QString().sprintf("Do you want to insert the following %d row(s)?\nROWS: ", listRows.count()) + qsRowsSelected )) ++ if (!OkWithUser( "table row insert", QString().sprintf("Do you want to insert the following %ld row(s)?\nROWS: ", (long) listRows.count()) + qsRowsSelected )) + return ; + + // Build SQL statement with parameter markers +@@ -556,7 +556,7 @@ + tableData->setNumRows( nRows ); + + // Update the status +- addStatus( QString().sprintf( "RUN: %d rows and %d columns affected", nRows, nColumns ) ) ; ++ addStatus( QString().sprintf( "RUN: %ld rows and %d columns affected", (long) nRows, nColumns ) ) ; + } + + void classBrowse::ExecHeader( SQLHSTMT hStmt, SWORD nColumns ) +diff -Naur unixODBC-2.2.14.orig/DataManagerII/classISQL.cpp unixODBC-2.2.14/DataManagerII/classISQL.cpp +--- unixODBC-2.2.14.orig/DataManagerII/classISQL.cpp 2007-04-17 11:16:14.000000000 -0400 ++++ unixODBC-2.2.14/DataManagerII/classISQL.cpp 2009-02-15 18:34:44.000000000 -0500 +@@ -322,7 +322,7 @@ + txtSQL->hide(); + txtResults->setAutoUpdate( TRUE ); + txtResults->repaint(); +- addStatus( QString().sprintf( "RUN: %d rows and %d columns affected", nRowsAffected, nColumns ) ) ; ++ addStatus( QString().sprintf( "RUN: %ld rows and %d columns affected", (long) nRowsAffected, nColumns ) ) ; + } + + #ifdef QT_V4LAYOUT +diff -Naur unixODBC-2.2.14.orig/DriverManager/SQLColAttributesW.c unixODBC-2.2.14/DriverManager/SQLColAttributesW.c +--- unixODBC-2.2.14.orig/DriverManager/SQLColAttributesW.c 2008-09-01 12:38:34.000000000 -0400 ++++ unixODBC-2.2.14/DriverManager/SQLColAttributesW.c 2009-02-15 18:34:44.000000000 -0500 +@@ -368,7 +368,7 @@ + { + if ( CHECK_SQLCOLATTRIBUTE( statement -> connection )) + { +- SQLCHAR *as1; ++ SQLCHAR *as1 = NULL; + + /* + * map to the ODBC3 function +@@ -460,7 +460,7 @@ + } + else + { +- SQLCHAR *as1; ++ SQLCHAR *as1 = NULL; + + switch( field_identifier ) + { +diff -Naur unixODBC-2.2.14.orig/DriverManager/SQLConnect.c unixODBC-2.2.14/DriverManager/SQLConnect.c +--- unixODBC-2.2.14.orig/DriverManager/SQLConnect.c 2008-09-29 10:02:43.000000000 -0400 ++++ unixODBC-2.2.14/DriverManager/SQLConnect.c 2009-02-15 18:34:44.000000000 -0500 +@@ -827,7 +827,7 @@ + return hand; + } + +-static odbc_dlclose( void *handle ) ++static void odbc_dlclose( void *handle ) + { + struct lib_count *list, *prev; + +diff -Naur unixODBC-2.2.14.orig/DriverManager/SQLCopyDesc.c unixODBC-2.2.14/DriverManager/SQLCopyDesc.c +--- unixODBC-2.2.14.orig/DriverManager/SQLCopyDesc.c 2004-03-30 08:20:11.000000000 -0500 ++++ unixODBC-2.2.14/DriverManager/SQLCopyDesc.c 2009-02-15 18:34:44.000000000 -0500 +@@ -279,7 +279,7 @@ + * get the count from the source field + */ + +- ret == SQLGETDESCFIELD( src_descriptor -> connection, ++ ret = SQLGETDESCFIELD( src_descriptor -> connection, + src_descriptor -> driver_desc, + 0, + SQL_DESC_COUNT, +@@ -298,7 +298,7 @@ + { + if ( header_fields[ i ].field_type == SQL_INTEGER ) + { +- ret == SQLGETDESCFIELD( src_descriptor -> connection, ++ ret = SQLGETDESCFIELD( src_descriptor -> connection, + src_descriptor -> driver_desc, + 0, + header_fields[ i ].field_identifier, +@@ -308,7 +308,7 @@ + } + else if ( header_fields[ i ].field_type == SQL_SMALLINT ) + { +- ret == SQLGETDESCFIELD( src_descriptor -> connection, ++ ret = SQLGETDESCFIELD( src_descriptor -> connection, + src_descriptor -> driver_desc, + 0, + header_fields[ i ].field_identifier, +@@ -318,7 +318,7 @@ + } + if ( header_fields[ i ].field_type == SQL_VARCHAR ) + { +- ret == SQLGETDESCFIELD( src_descriptor -> connection, ++ ret = SQLGETDESCFIELD( src_descriptor -> connection, + src_descriptor -> driver_desc, + 0, + header_fields[ i ].field_identifier, +@@ -331,7 +331,7 @@ + { + if ( header_fields[ i ].field_type == SQL_INTEGER ) + { +- ret == SQLSETDESCFIELD( target_descriptor -> connection, ++ ret = SQLSETDESCFIELD( target_descriptor -> connection, + target_descriptor -> driver_desc, + 0, + header_fields[ i ].field_identifier, +@@ -340,7 +340,7 @@ + } + else if ( header_fields[ i ].field_type == SQL_SMALLINT ) + { +- ret == SQLSETDESCFIELD( target_descriptor -> connection, ++ ret = SQLSETDESCFIELD( target_descriptor -> connection, + target_descriptor -> driver_desc, + 0, + header_fields[ i ].field_identifier, +@@ -349,7 +349,7 @@ + } + else if ( header_fields[ i ].field_type == SQL_VARCHAR ) + { +- ret == SQLSETDESCFIELD( target_descriptor -> connection, ++ ret = SQLSETDESCFIELD( target_descriptor -> connection, + target_descriptor -> driver_desc, + 0, + header_fields[ i ].field_identifier, +@@ -376,7 +376,7 @@ + { + if ( rec_fields[ i ].field_type == SQL_INTEGER ) + { +- ret == SQLGETDESCFIELD( src_descriptor -> connection, ++ ret = SQLGETDESCFIELD( src_descriptor -> connection, + src_descriptor -> driver_desc, + rec, + rec_fields[ i ].field_identifier, +@@ -386,7 +386,7 @@ + } + else if ( rec_fields[ i ].field_type == SQL_SMALLINT ) + { +- ret == SQLGETDESCFIELD( src_descriptor -> connection, ++ ret = SQLGETDESCFIELD( src_descriptor -> connection, + src_descriptor -> driver_desc, + rec, + rec_fields[ i ].field_identifier, +@@ -396,7 +396,7 @@ + } + if ( rec_fields[ i ].field_type == SQL_VARCHAR ) + { +- ret == SQLGETDESCFIELD( src_descriptor -> connection, ++ ret = SQLGETDESCFIELD( src_descriptor -> connection, + src_descriptor -> driver_desc, + rec, + rec_fields[ i ].field_identifier, +@@ -409,7 +409,7 @@ + { + if ( rec_fields[ i ].field_type == SQL_INTEGER ) + { +- ret == SQLSETDESCFIELD( target_descriptor -> connection, ++ ret = SQLSETDESCFIELD( target_descriptor -> connection, + target_descriptor -> driver_desc, + rec, + rec_fields[ i ].field_identifier, +@@ -418,7 +418,7 @@ + } + else if ( rec_fields[ i ].field_type == SQL_SMALLINT ) + { +- ret == SQLSETDESCFIELD( target_descriptor -> connection, ++ ret = SQLSETDESCFIELD( target_descriptor -> connection, + target_descriptor -> driver_desc, + rec, + rec_fields[ i ].field_identifier, +@@ -427,7 +427,7 @@ + } + else if ( rec_fields[ i ].field_type == SQL_VARCHAR ) + { +- ret == SQLSETDESCFIELD( target_descriptor -> connection, ++ ret = SQLSETDESCFIELD( target_descriptor -> connection, + target_descriptor -> driver_desc, + rec, + rec_fields[ i ].field_identifier, +diff -Naur unixODBC-2.2.14.orig/DriverManager/SQLDriverConnect.c unixODBC-2.2.14/DriverManager/SQLDriverConnect.c +--- unixODBC-2.2.14.orig/DriverManager/SQLDriverConnect.c 2008-09-29 10:02:44.000000000 -0400 ++++ unixODBC-2.2.14/DriverManager/SQLDriverConnect.c 2009-02-15 18:34:44.000000000 -0500 +@@ -366,7 +366,8 @@ + memcpy( *keyword, ptr, len ); + (*keyword)[ len ] = '\0'; + +- (**cp != ';') && (*cp)++; ++ if (**cp != ';') ++ (*cp)++; + ptr = *cp; + + if ( strcmp( *keyword, "DRIVER" ) == 0 ) +diff -Naur unixODBC-2.2.14.orig/DriverManager/SQLDriversW.c unixODBC-2.2.14/DriverManager/SQLDriversW.c +--- unixODBC-2.2.14.orig/DriverManager/SQLDriversW.c 2008-09-29 10:02:45.000000000 -0400 ++++ unixODBC-2.2.14/DriverManager/SQLDriversW.c 2009-02-15 18:34:44.000000000 -0500 +@@ -298,7 +298,7 @@ + * enumerate the driver attributes + */ + +- sprintf( szIniName, "%s/odbcinst.ini", odbcinst_system_file_path( b1 ), odbcinst_system_file_name( b2 )); ++ sprintf( szIniName, "%s/odbcinst.ini", odbcinst_system_file_path( b1 ) ); + + memset( buffer, '\0', sizeof( buffer )); + #ifdef __OS2__ +diff -Naur unixODBC-2.2.14.orig/DriverManager/SQLGetDiagField.c unixODBC-2.2.14/DriverManager/SQLGetDiagField.c +--- unixODBC-2.2.14.orig/DriverManager/SQLGetDiagField.c 2008-09-29 10:02:45.000000000 -0400 ++++ unixODBC-2.2.14/DriverManager/SQLGetDiagField.c 2009-02-15 18:34:44.000000000 -0500 +@@ -314,7 +314,7 @@ + else if ( __get_connection( head ) -> unicode_driver && + CHECK_SQLGETDIAGFIELDW( __get_connection( head ))) + { +- SQLWCHAR *s1; ++ SQLWCHAR *s1 = NULL; + + if ( buffer_length > 0 ) + { +diff -Naur unixODBC-2.2.14.orig/DriverManager/SQLSetPos.c unixODBC-2.2.14/DriverManager/SQLSetPos.c +--- unixODBC-2.2.14.orig/DriverManager/SQLSetPos.c 2003-10-30 13:20:46.000000000 -0500 ++++ unixODBC-2.2.14/DriverManager/SQLSetPos.c 2009-02-15 18:34:44.000000000 -0500 +@@ -144,11 +144,11 @@ + { + sprintf( statement -> msg, "\n\t\tEntry:\ + \n\t\t\tStatement = %p\ +- \n\t\t\tIrow = %d\ ++ \n\t\t\tIrow = %ld\ + \n\t\t\tFoption = %d\ + \n\t\t\tFlock = %d", + statement, +- irow, ++ (long) irow, + foption, + flock ); + +diff -Naur unixODBC-2.2.14.orig/DriverManager/__attribute.c unixODBC-2.2.14/DriverManager/__attribute.c +--- unixODBC-2.2.14.orig/DriverManager/__attribute.c 2008-10-17 05:23:51.000000000 -0400 ++++ unixODBC-2.2.14/DriverManager/__attribute.c 2009-02-15 18:34:44.000000000 -0500 +@@ -1227,6 +1227,7 @@ + + default: + as = NULL; ++ msg = NULL; + break; + } + +@@ -1288,6 +1289,7 @@ + + default: + as = NULL; ++ msg = NULL; + break; + } + +diff -Naur unixODBC-2.2.14.orig/DriverManager/__info.c unixODBC-2.2.14/DriverManager/__info.c +--- unixODBC-2.2.14.orig/DriverManager/__info.c 2008-09-29 10:02:45.000000000 -0400 ++++ unixODBC-2.2.14/DriverManager/__info.c 2009-02-15 18:34:44.000000000 -0500 +@@ -3062,13 +3062,13 @@ + { + if ( strlen((char*) instr ) > LOG_MESSAGE_LEN ) + { +- sprintf((char*) ostr, "[%.*s...][length = %d (SQL_NTS)]", +- LOG_MESSAGE_LEN, instr, strlen((char*) instr )); ++ sprintf((char*) ostr, "[%.*s...][length = %ld (SQL_NTS)]", ++ LOG_MESSAGE_LEN, instr, (long) strlen((char*) instr )); + } + else + { +- sprintf((char*) ostr, "[%s][length = %d (SQL_NTS)]", +- instr, strlen((char*) instr )); ++ sprintf((char*) ostr, "[%s][length = %ld (SQL_NTS)]", ++ instr, (long) strlen((char*) instr )); + } + + } +diff -Naur unixODBC-2.2.14.orig/Drivers/Postgre7.1/dlg_specific.c unixODBC-2.2.14/Drivers/Postgre7.1/dlg_specific.c +--- unixODBC-2.2.14.orig/Drivers/Postgre7.1/dlg_specific.c 2001-12-04 11:46:19.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/Postgre7.1/dlg_specific.c 2009-02-15 18:34:43.000000000 -0500 +@@ -21,10 +21,11 @@ + #endif + + #ifndef WIN32 ++# include ++# include + # ifdef UNIXODBC + # include + # else +-# include + # include "gpps.h" + # define SQLGetPrivateProfileString(a,b,c,d,e,f) GetPrivateProfileString(a,b,c,d,e,f) + # define SQLWritePrivateProfileString(a,b,c,d) WritePrivateProfileString(a,b,c,d) +diff -Naur unixODBC-2.2.14.orig/Drivers/Postgre7.1/options.c unixODBC-2.2.14/Drivers/Postgre7.1/options.c +--- unixODBC-2.2.14.orig/Drivers/Postgre7.1/options.c 2005-09-12 09:09:41.000000000 -0400 ++++ unixODBC-2.2.14/Drivers/Postgre7.1/options.c 2009-02-15 18:34:43.000000000 -0500 +@@ -221,12 +221,12 @@ + + if (stmt) { + SC_set_error(stmt, STMT_NOT_IMPLEMENTED_ERROR, "Unknown statement option (Set)"); +- sprintf(option, "fOption=%d, vParam=%ld", fOption, vParam); ++ sprintf(option, "fOption=%d, vParam=%ld", fOption, (long) vParam); + SC_log_error(func, option, stmt); + } + if (conn) { + CC_set_error(conn, STMT_NOT_IMPLEMENTED_ERROR, "Unknown statement option (Set)"); +- sprintf(option, "fOption=%d, vParam=%ld", fOption, vParam); ++ sprintf(option, "fOption=%d, vParam=%ld", fOption, (long) vParam); + CC_log_error(func, option, conn); + } + +diff -Naur unixODBC-2.2.14.orig/Drivers/Postgre7.1/socket.c unixODBC-2.2.14/Drivers/Postgre7.1/socket.c +--- unixODBC-2.2.14.orig/Drivers/Postgre7.1/socket.c 2004-09-22 05:13:39.000000000 -0400 ++++ unixODBC-2.2.14/Drivers/Postgre7.1/socket.c 2009-02-15 18:34:43.000000000 -0500 +@@ -188,7 +188,7 @@ + /* + * cope with different path for debian distrib + */ +- ++int + SOCK_connect_to_unix(SocketClass *self, unsigned short port, char *path ) + { + if ( strlen( path ) > 0 ) +diff -Naur unixODBC-2.2.14.orig/Drivers/Postgre7.1/tuple.c unixODBC-2.2.14/Drivers/Postgre7.1/tuple.c +--- unixODBC-2.2.14.orig/Drivers/Postgre7.1/tuple.c 2001-10-17 12:40:10.000000000 -0400 ++++ unixODBC-2.2.14/Drivers/Postgre7.1/tuple.c 2009-02-15 18:34:43.000000000 -0500 +@@ -49,7 +49,7 @@ + { + char buffer[15]; + +- sprintf(buffer,"%ld", value); ++ sprintf(buffer,"%ld", (long) value); + + tuple_field->len = strlen(buffer)+1; + /* +1 ... is this correct (better be on the save side-...) */ +diff -Naur unixODBC-2.2.14.orig/Drivers/PostgreSQL/options.c unixODBC-2.2.14/Drivers/PostgreSQL/options.c +--- unixODBC-2.2.14.orig/Drivers/PostgreSQL/options.c 2005-09-12 09:09:41.000000000 -0400 ++++ unixODBC-2.2.14/Drivers/PostgreSQL/options.c 2009-02-15 18:34:43.000000000 -0500 +@@ -232,13 +232,13 @@ + if (stmt) { + stmt->errornumber = STMT_NOT_IMPLEMENTED_ERROR; + stmt->errormsg = "Unknown statement option (Set)"; +- sprintf(option, "fOption=%d, vParam=%ld", fOption, vParam); ++ sprintf(option, "fOption=%d, vParam=%ld", fOption, (long) vParam); + SC_log_error(func, option, stmt); + } + if (conn) { + conn->errornumber = STMT_NOT_IMPLEMENTED_ERROR; + conn->errormsg = "Unknown statement option (Set)"; +- sprintf(option, "fOption=%d, vParam=%ld", fOption, vParam); ++ sprintf(option, "fOption=%d, vParam=%ld", fOption, (long) vParam); + CC_log_error(func, option, conn); + } + +diff -Naur unixODBC-2.2.14.orig/Drivers/PostgreSQL/socket.c unixODBC-2.2.14/Drivers/PostgreSQL/socket.c +--- unixODBC-2.2.14.orig/Drivers/PostgreSQL/socket.c 2003-02-18 13:46:49.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/PostgreSQL/socket.c 2009-02-15 18:34:43.000000000 -0500 +@@ -191,7 +191,7 @@ + /* + * cope with different path for debian distrib + */ +- ++int + SOCK_connect_to_unix(SocketClass *self, unsigned short port, char *path ) + { + if ( strlen( path ) > 0 ) +diff -Naur unixODBC-2.2.14.orig/Drivers/PostgreSQL/tuple.c unixODBC-2.2.14/Drivers/PostgreSQL/tuple.c +--- unixODBC-2.2.14.orig/Drivers/PostgreSQL/tuple.c 2001-10-17 12:40:11.000000000 -0400 ++++ unixODBC-2.2.14/Drivers/PostgreSQL/tuple.c 2009-02-15 18:34:43.000000000 -0500 +@@ -49,7 +49,7 @@ + { + char buffer[15]; + +- sprintf(buffer,"%ld", value); ++ sprintf(buffer,"%ld", (long) value); + + tuple_field->len = strlen(buffer)+1; + /* +1 ... is this correct (better be on the save side-...) */ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLAllocConnect.c unixODBC-2.2.14/Drivers/template/SQLAllocConnect.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLAllocConnect.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLAllocConnect.c 2009-02-15 18:34:44.000000000 -0500 +@@ -26,7 +26,7 @@ + if( SQL_NULL_HENV == hEnv ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hEnv->szSqlMsg, "hEnv = $%08lX phDbc = $%08lX", hEnv, phDbc ); ++ sprintf((char*) hEnv->szSqlMsg, "hEnv = $%08lX phDbc = $%08lX", (long) hEnv, (long) phDbc ); + logPushMsg( hEnv->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hEnv->szSqlMsg ); + + if( SQL_NULL_HDBC == phDbc ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLAllocStmt.c unixODBC-2.2.14/Drivers/template/SQLAllocStmt.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLAllocStmt.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLAllocStmt.c 2009-02-15 18:34:44.000000000 -0500 +@@ -25,7 +25,7 @@ + return SQL_INVALID_HANDLE; + } + +- sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", hDbc ); ++ sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", (long) hDbc ); + logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hDbc->szSqlMsg ); + + if( NULL == phStmt ) +@@ -45,7 +45,7 @@ + } + + /* initialize memory */ +- sprintf((char*) hDbc->szSqlMsg, "*phstmt = $%08lX", *phStmt ); ++ sprintf((char*) hDbc->szSqlMsg, "*phstmt = $%08lX", (long) *phStmt ); + logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hDbc->szSqlMsg ); + + memset( *phStmt, 0, sizeof(DRVSTMT) ); /* SAFETY */ +@@ -55,7 +55,7 @@ + (*phStmt)->pNext = NULL; + (*phStmt)->pPrev = NULL; + (*phStmt)->pszQuery = NULL; +- sprintf((char*)(*phStmt)->szCursorName, "CUR_%08lX", *phStmt ); ++ sprintf((char*)(*phStmt)->szCursorName, "CUR_%08lX", (long) *phStmt ); + + /* ADD TO DBCs STATEMENT LIST */ + +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLBindCol.c unixODBC-2.2.14/Drivers/template/SQLBindCol.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLBindCol.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLBindCol.c 2009-02-15 18:34:44.000000000 -0500 +@@ -26,7 +26,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt=$%08lX nCol=%5d", hStmt, nCol ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt=$%08lX nCol=%5d", (long) hStmt, nCol ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO,(char*) hStmt->szSqlMsg ); + + if ( hStmt->hStmtExtras->nRows == 0 ) +@@ -37,7 +37,7 @@ + + if ( nCol < 1 || nCol > hStmt->hStmtExtras->nCols ) + { +- sprintf((char*) hStmt->szSqlMsg, "SQL_ERROR Column %d is out of range. Range is 1 - %s", nCol, hStmt->hStmtExtras->nCols ); ++ sprintf((char*) hStmt->szSqlMsg, "SQL_ERROR Column %d is out of range. Range is 1 - %d", nCol, hStmt->hStmtExtras->nCols ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + return SQL_ERROR; + } +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLBindParameter.c unixODBC-2.2.14/Drivers/template/SQLBindParameter.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLBindParameter.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLBindParameter.c 2009-02-15 18:34:43.000000000 -0500 +@@ -30,7 +30,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt=$%08lX nParameterNumber=%d nIOType=%d nBufferType=%d nParamType=%d nParamLength=%d nScale=%d pData=$%08lX nBufferLength=%d *pnLengthOrIndicator=$%08lX",hStmt,nParameterNumber,nIOType,nBufferType,nParamType,nParamLength,nScale,pData,nBufferLength, *pnLengthOrIndicator ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt=$%08lX nParameterNumber=%d nIOType=%d nBufferType=%d nParamType=%d nParamLength=%ld nScale=%d pData=$%08lX nBufferLength=%ld *pnLengthOrIndicator=$%08lX",(long) hStmt,nParameterNumber,nIOType,nBufferType,nParamType,(long) nParamLength,nScale,(long) pData,(long) nBufferLength, *pnLengthOrIndicator ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLBrowseConnect.c unixODBC-2.2.14/Drivers/template/SQLBrowseConnect.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLBrowseConnect.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLBrowseConnect.c 2009-02-15 18:34:44.000000000 -0500 +@@ -26,7 +26,7 @@ + if ( hDbc == NULL ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", hDbc ); ++ sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", (long) hDbc ); + logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hDbc->szSqlMsg ); + + logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not currently supported" ); +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLBulkOperations.c unixODBC-2.2.14/Drivers/template/SQLBulkOperations.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLBulkOperations.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLBulkOperations.c 2009-02-15 18:34:44.000000000 -0500 +@@ -21,7 +21,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /* OK */ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLCancel.c unixODBC-2.2.14/Drivers/template/SQLCancel.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLCancel.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLCancel.c 2009-02-15 18:34:44.000000000 -0500 +@@ -20,7 +20,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLCloseCursor.c unixODBC-2.2.14/Drivers/template/SQLCloseCursor.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLCloseCursor.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLCloseCursor.c 2009-02-15 18:34:44.000000000 -0500 +@@ -20,7 +20,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLColAttributes.c unixODBC-2.2.14/Drivers/template/SQLColAttributes.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLColAttributes.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLColAttributes.c 2009-02-15 18:34:44.000000000 -0500 +@@ -27,7 +27,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************** +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLColumnPrivileges.c unixODBC-2.2.14/Drivers/template/SQLColumnPrivileges.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLColumnPrivileges.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLColumnPrivileges.c 2009-02-15 18:34:44.000000000 -0500 +@@ -28,7 +28,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLColumns.c unixODBC-2.2.14/Drivers/template/SQLColumns.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLColumns.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLColumns.c 2009-02-15 18:34:44.000000000 -0500 +@@ -76,7 +76,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + if ( szTableName == NULL || szTableName[0] == '\0' ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLConnect.c unixODBC-2.2.14/Drivers/template/SQLConnect.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLConnect.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLConnect.c 2009-02-15 18:34:44.000000000 -0500 +@@ -31,7 +31,7 @@ + if( SQL_NULL_HDBC == hDbc ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hDbc->szSqlMsg, "hDbc=$%08lX 3zDataSource=(%s)", hDbc, szDataSource ); ++ sprintf((char*) hDbc->szSqlMsg, "hDbc=$%08lX 3zDataSource=(%s)", (long) hDbc, szDataSource ); + logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hDbc->szSqlMsg ); + + if( hDbc->bConnected == 1 ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLDescribeCol.c unixODBC-2.2.14/Drivers/template/SQLDescribeCol.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLDescribeCol.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLDescribeCol.c 2009-02-15 18:34:44.000000000 -0500 +@@ -38,7 +38,7 @@ + } + if ( nCol < 1 || nCol > hStmt->hStmtExtras->nCols ) + { +- sprintf((char*) hStmt->szSqlMsg, "SQL_ERROR Column %d is out of range. Range is 1 - %s", nCol, hStmt->hStmtExtras->nCols ); ++ sprintf((char*) hStmt->szSqlMsg, "SQL_ERROR Column %d is out of range. Range is 1 - %d", nCol, hStmt->hStmtExtras->nCols ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + return SQL_ERROR; + } +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLDescribeParam.c unixODBC-2.2.14/Drivers/template/SQLDescribeParam.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLDescribeParam.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLDescribeParam.c 2009-02-15 18:34:44.000000000 -0500 +@@ -33,7 +33,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLDisconnect.c unixODBC-2.2.14/Drivers/template/SQLDisconnect.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLDisconnect.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLDisconnect.c 2009-02-15 18:34:44.000000000 -0500 +@@ -20,7 +20,7 @@ + if( NULL == hDbc ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", hDbc ); ++ sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", (long) hDbc ); + logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, (char*)hDbc->szSqlMsg ); + + if( hDbc->bConnected == 0 ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLDriverConnect.c unixODBC-2.2.14/Drivers/template/SQLDriverConnect.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLDriverConnect.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLDriverConnect.c 2009-02-15 18:34:43.000000000 -0500 +@@ -41,7 +41,7 @@ + if( NULL == hDbc ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", hDbc ); ++ sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", (long) hDbc ); + logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hDbc->szSqlMsg ); + + +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLExecDirect.c unixODBC-2.2.14/Drivers/template/SQLExecDirect.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLExecDirect.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLExecDirect.c 2009-02-15 18:34:44.000000000 -0500 +@@ -23,7 +23,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /* prepare command */ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLExecute.c unixODBC-2.2.14/Drivers/template/SQLExecute.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLExecute.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLExecute.c 2009-02-15 18:34:43.000000000 -0500 +@@ -24,7 +24,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + if( hStmt->pszQuery == NULL ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLExtendedFetch.c unixODBC-2.2.14/Drivers/template/SQLExtendedFetch.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLExtendedFetch.c 2007-11-29 07:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLExtendedFetch.c 2009-02-15 18:34:44.000000000 -0500 +@@ -24,7 +24,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLFetch.c unixODBC-2.2.14/Drivers/template/SQLFetch.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLFetch.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLFetch.c 2009-02-15 18:34:44.000000000 -0500 +@@ -22,7 +22,7 @@ + if ( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + if ( hStmt->hStmtExtras->nRows < 1 ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLFetchScroll.c unixODBC-2.2.14/Drivers/template/SQLFetchScroll.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLFetchScroll.c 2007-11-29 07:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLFetchScroll.c 2009-02-15 18:34:44.000000000 -0500 +@@ -22,7 +22,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLForeignKeys.c unixODBC-2.2.14/Drivers/template/SQLForeignKeys.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLForeignKeys.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLForeignKeys.c 2009-02-15 18:34:43.000000000 -0500 +@@ -32,7 +32,7 @@ + if( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLFreeConnect.c unixODBC-2.2.14/Drivers/template/SQLFreeConnect.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLFreeConnect.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLFreeConnect.c 2009-02-15 18:34:44.000000000 -0500 +@@ -24,7 +24,7 @@ + if( NULL == hDbc ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", hDbc ); ++ sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", (long) hDbc ); + logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, (char*)hDbc->szSqlMsg ); + + if( hDbc->bConnected ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLFreeEnv.c unixODBC-2.2.14/Drivers/template/SQLFreeEnv.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLFreeEnv.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLFreeEnv.c 2009-02-15 18:34:44.000000000 -0500 +@@ -23,7 +23,7 @@ + if( hEnv == SQL_NULL_HENV ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hEnv->szSqlMsg, "hEnv = $%08lX", hEnv ); ++ sprintf((char*) hEnv->szSqlMsg, "hEnv = $%08lX", (long) hEnv ); + logPushMsg( hEnv->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hEnv->szSqlMsg ); + + if ( hEnv->hFirstDbc != NULL ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLFreeStmt.c unixODBC-2.2.14/Drivers/template/SQLFreeStmt.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLFreeStmt.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLFreeStmt.c 2009-02-15 18:34:44.000000000 -0500 +@@ -21,7 +21,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /********* +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLGetConnectAttr.c unixODBC-2.2.14/Drivers/template/SQLGetConnectAttr.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLGetConnectAttr.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLGetConnectAttr.c 2009-02-15 18:34:43.000000000 -0500 +@@ -26,7 +26,7 @@ + if( NULL == hDbc ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", hDbc ); ++ sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", (long) hDbc ); + logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hDbc->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLGetConnectOption.c unixODBC-2.2.14/Drivers/template/SQLGetConnectOption.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLGetConnectOption.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLGetConnectOption.c 2009-02-15 18:34:44.000000000 -0500 +@@ -22,7 +22,7 @@ + if( NULL == hDbc ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", hDbc ); ++ sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", (long) hDbc ); + logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hDbc->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLGetCursorName.c unixODBC-2.2.14/Drivers/template/SQLGetCursorName.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLGetCursorName.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLGetCursorName.c 2009-02-15 18:34:44.000000000 -0500 +@@ -25,7 +25,7 @@ + if ( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + if ( NULL == szCursor ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLGetStmtAttr.c unixODBC-2.2.14/Drivers/template/SQLGetStmtAttr.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLGetStmtAttr.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLGetStmtAttr.c 2009-02-15 18:34:44.000000000 -0500 +@@ -25,7 +25,7 @@ + if ( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLGetStmtOption.c unixODBC-2.2.14/Drivers/template/SQLGetStmtOption.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLGetStmtOption.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLGetStmtOption.c 2009-02-15 18:34:44.000000000 -0500 +@@ -22,7 +22,7 @@ + if ( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLGetTypeInfo.c unixODBC-2.2.14/Drivers/template/SQLGetTypeInfo.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLGetTypeInfo.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLGetTypeInfo.c 2009-02-15 18:34:44.000000000 -0500 +@@ -21,7 +21,7 @@ + if ( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLMoreResults.c unixODBC-2.2.14/Drivers/template/SQLMoreResults.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLMoreResults.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLMoreResults.c 2009-02-15 18:34:44.000000000 -0500 +@@ -20,7 +20,7 @@ + if ( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLNativeSql.c unixODBC-2.2.14/Drivers/template/SQLNativeSql.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLNativeSql.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLNativeSql.c 2009-02-15 18:34:44.000000000 -0500 +@@ -25,7 +25,7 @@ + if ( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLNumParams.c unixODBC-2.2.14/Drivers/template/SQLNumParams.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLNumParams.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLNumParams.c 2009-02-15 18:34:44.000000000 -0500 +@@ -21,7 +21,7 @@ + if ( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLNumResultCols.c unixODBC-2.2.14/Drivers/template/SQLNumResultCols.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLNumResultCols.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLNumResultCols.c 2009-02-15 18:34:44.000000000 -0500 +@@ -21,7 +21,7 @@ + if ( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + if ( hStmt->hStmtExtras->nRows < 1 ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLParamData.c unixODBC-2.2.14/Drivers/template/SQLParamData.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLParamData.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLParamData.c 2009-02-15 18:34:43.000000000 -0500 +@@ -21,7 +21,7 @@ + if ( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLParamOptions.c unixODBC-2.2.14/Drivers/template/SQLParamOptions.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLParamOptions.c 2007-02-12 06:49:35.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLParamOptions.c 2009-02-15 18:34:44.000000000 -0500 +@@ -22,7 +22,7 @@ + if ( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLPrepare.c unixODBC-2.2.14/Drivers/template/SQLPrepare.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLPrepare.c 2001-12-13 08:00:32.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLPrepare.c 2009-02-15 18:34:43.000000000 -0500 +@@ -22,7 +22,7 @@ + if ( NULL == hStmt ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + if ( szSqlStr == NULL ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLPrimaryKeys.c unixODBC-2.2.14/Drivers/template/SQLPrimaryKeys.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLPrimaryKeys.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLPrimaryKeys.c 2009-02-15 18:34:44.000000000 -0500 +@@ -26,7 +26,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLProcedureColumns.c unixODBC-2.2.14/Drivers/template/SQLProcedureColumns.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLProcedureColumns.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLProcedureColumns.c 2009-02-15 18:34:44.000000000 -0500 +@@ -29,7 +29,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLProcedures.c unixODBC-2.2.14/Drivers/template/SQLProcedures.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLProcedures.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLProcedures.c 2009-02-15 18:34:44.000000000 -0500 +@@ -27,7 +27,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLPutData.c unixODBC-2.2.14/Drivers/template/SQLPutData.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLPutData.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLPutData.c 2009-02-15 18:34:44.000000000 -0500 +@@ -25,7 +25,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLRowCount.c unixODBC-2.2.14/Drivers/template/SQLRowCount.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLRowCount.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLRowCount.c 2009-02-15 18:34:44.000000000 -0500 +@@ -21,7 +21,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + if ( NULL == pnRowCount ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLSetCursorName.c unixODBC-2.2.14/Drivers/template/SQLSetCursorName.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLSetCursorName.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLSetCursorName.c 2009-02-15 18:34:44.000000000 -0500 +@@ -22,7 +22,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + if ( NULL == szCursor || 0 == isalpha(*szCursor) ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLSetParam.c unixODBC-2.2.14/Drivers/template/SQLSetParam.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLSetParam.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLSetParam.c 2009-02-15 18:34:44.000000000 -0500 +@@ -24,7 +24,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + if ( NULL == hStmt->pszQuery ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLSetPos.c unixODBC-2.2.14/Drivers/template/SQLSetPos.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLSetPos.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLSetPos.c 2009-02-15 18:34:44.000000000 -0500 +@@ -23,7 +23,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /* OK */ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLSetScrollOptions.c unixODBC-2.2.14/Drivers/template/SQLSetScrollOptions.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLSetScrollOptions.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLSetScrollOptions.c 2009-02-15 18:34:44.000000000 -0500 +@@ -24,7 +24,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLSetStmtAttr.c unixODBC-2.2.14/Drivers/template/SQLSetStmtAttr.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLSetStmtAttr.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLSetStmtAttr.c 2009-02-15 18:34:44.000000000 -0500 +@@ -24,7 +24,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLSetStmtOption.c unixODBC-2.2.14/Drivers/template/SQLSetStmtOption.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLSetStmtOption.c 2007-11-29 07:00:36.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLSetStmtOption.c 2009-02-15 18:34:44.000000000 -0500 +@@ -22,7 +22,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************ +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLSpecialColumns.c unixODBC-2.2.14/Drivers/template/SQLSpecialColumns.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLSpecialColumns.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLSpecialColumns.c 2009-02-15 18:34:44.000000000 -0500 +@@ -41,7 +41,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLStatistics.c unixODBC-2.2.14/Drivers/template/SQLStatistics.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLStatistics.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLStatistics.c 2009-02-15 18:34:44.000000000 -0500 +@@ -62,7 +62,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + if ( szTableName == NULL ) +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLTablePrivileges.c unixODBC-2.2.14/Drivers/template/SQLTablePrivileges.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLTablePrivileges.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLTablePrivileges.c 2009-02-15 18:34:44.000000000 -0500 +@@ -26,7 +26,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLTables.c unixODBC-2.2.14/Drivers/template/SQLTables.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLTables.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLTables.c 2009-02-15 18:34:44.000000000 -0500 +@@ -57,7 +57,7 @@ + if( hStmt == SQL_NULL_HSTMT ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt ); ++ sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long) hStmt ); + logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg ); + + /************************** +diff -Naur unixODBC-2.2.14.orig/Drivers/template/SQLTransact.c unixODBC-2.2.14/Drivers/template/SQLTransact.c +--- unixODBC-2.2.14.orig/Drivers/template/SQLTransact.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/SQLTransact.c 2009-02-15 18:34:44.000000000 -0500 +@@ -23,7 +23,7 @@ + if ( hDbc == SQL_NULL_HDBC ) + return SQL_INVALID_HANDLE; + +- sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", hDbc ); ++ sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", (long) hDbc ); + logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hDbc->szSqlMsg ); + + +diff -Naur unixODBC-2.2.14.orig/Drivers/template/_GetData.c unixODBC-2.2.14/Drivers/template/_GetData.c +--- unixODBC-2.2.14.orig/Drivers/template/_GetData.c 2001-12-13 08:00:33.000000000 -0500 ++++ unixODBC-2.2.14/Drivers/template/_GetData.c 2009-02-15 18:34:44.000000000 -0500 +@@ -89,7 +89,7 @@ + break; + + case SQL_C_FLOAT: +- sscanf( pSourceData, "%g", pTarget ); ++ sscanf( pSourceData, "%g", (float *) pTarget ); + if ( NULL != pnLengthOrIndicator ) + *pnLengthOrIndicator = sizeof( float ); + break; +diff -Naur unixODBC-2.2.14.orig/cur/SQLAllocHandle.c unixODBC-2.2.14/cur/SQLAllocHandle.c +--- unixODBC-2.2.14.orig/cur/SQLAllocHandle.c 2005-07-08 08:11:23.000000000 -0400 ++++ unixODBC-2.2.14/cur/SQLAllocHandle.c 2009-02-15 18:34:44.000000000 -0500 +@@ -148,4 +148,6 @@ + } + break; + } ++ ++ return SQL_ERROR; + } +diff -Naur unixODBC-2.2.14.orig/cur/SQLEndTran.c unixODBC-2.2.14/cur/SQLEndTran.c +--- unixODBC-2.2.14.orig/cur/SQLEndTran.c 2001-10-17 12:40:15.000000000 -0400 ++++ unixODBC-2.2.14/cur/SQLEndTran.c 2009-02-15 18:34:44.000000000 -0500 +@@ -54,6 +54,7 @@ + /* + * the driver manager will not call this + */ ++ return SQL_ERROR; + break; + + case SQL_HANDLE_DBC: +diff -Naur unixODBC-2.2.14.orig/cur/SQLError.c unixODBC-2.2.14/cur/SQLError.c +--- unixODBC-2.2.14.orig/cur/SQLError.c 2008-01-02 10:10:33.000000000 -0500 ++++ unixODBC-2.2.14/cur/SQLError.c 2009-02-15 18:34:44.000000000 -0500 +@@ -160,4 +160,6 @@ + + return SQL_NO_DATA; + } ++ ++ return SQL_ERROR; + } +diff -Naur unixODBC-2.2.14.orig/cur/SQLExtendedFetch.c unixODBC-2.2.14/cur/SQLExtendedFetch.c +--- unixODBC-2.2.14.orig/cur/SQLExtendedFetch.c 2008-01-22 12:51:54.000000000 -0500 ++++ unixODBC-2.2.14/cur/SQLExtendedFetch.c 2009-02-15 18:34:44.000000000 -0500 +@@ -612,7 +612,7 @@ + } + else if ( ret == SQL_FETCH_PART_ROWSET ) + { +- cl_statement -> rowset_position == CL_AFTER_END; ++ cl_statement -> rowset_position = CL_AFTER_END; + ret = SQL_SUCCESS; + } + break; +diff -Naur unixODBC-2.2.14.orig/cur/SQLFreeHandle.c unixODBC-2.2.14/cur/SQLFreeHandle.c +--- unixODBC-2.2.14.orig/cur/SQLFreeHandle.c 2004-07-24 13:55:38.000000000 -0400 ++++ unixODBC-2.2.14/cur/SQLFreeHandle.c 2009-02-15 18:34:44.000000000 -0500 +@@ -122,5 +122,7 @@ + */ + return SQL_ERROR; + } ++ ++ return SQL_ERROR; + } + +diff -Naur unixODBC-2.2.14.orig/cur/SQLGetStmtAttr.c unixODBC-2.2.14/cur/SQLGetStmtAttr.c +--- unixODBC-2.2.14.orig/cur/SQLGetStmtAttr.c 2005-10-27 13:54:49.000000000 -0400 ++++ unixODBC-2.2.14/cur/SQLGetStmtAttr.c 2009-02-15 18:34:44.000000000 -0500 +@@ -110,7 +110,7 @@ + break; + + case SQL_ATTR_ROWS_FETCHED_PTR: +- *(( SQLUINTEGER ** ) value ) = cl_statement -> rows_fetched_ptr; ++ *(( SQLULEN ** ) value ) = cl_statement -> rows_fetched_ptr; + break; + + case SQL_ATTR_FETCH_BOOKMARK_PTR: +diff -Naur unixODBC-2.2.14.orig/cur/SQLGetStmtOption.c unixODBC-2.2.14/cur/SQLGetStmtOption.c +--- unixODBC-2.2.14.orig/cur/SQLGetStmtOption.c 2005-10-27 13:54:49.000000000 -0400 ++++ unixODBC-2.2.14/cur/SQLGetStmtOption.c 2009-02-15 18:34:44.000000000 -0500 +@@ -100,7 +100,7 @@ + break; + + case SQL_ATTR_ROWS_FETCHED_PTR: +- *(( SQLUINTEGER ** ) value ) = cl_statement -> rows_fetched_ptr; ++ *(( SQLULEN ** ) value ) = cl_statement -> rows_fetched_ptr; + break; + + case SQL_ATTR_USE_BOOKMARKS: +diff -Naur unixODBC-2.2.14.orig/cur/SQLSetStmtAttr.c unixODBC-2.2.14/cur/SQLSetStmtAttr.c +--- unixODBC-2.2.14.orig/cur/SQLSetStmtAttr.c 2005-10-27 13:54:49.000000000 -0400 ++++ unixODBC-2.2.14/cur/SQLSetStmtAttr.c 2009-02-15 18:34:44.000000000 -0500 +@@ -142,7 +142,7 @@ + break; + + case SQL_ATTR_ROWS_FETCHED_PTR: +- cl_statement -> rows_fetched_ptr = ( SQLUINTEGER * ) value; ++ cl_statement -> rows_fetched_ptr = ( SQLULEN * ) value; + break; + + case SQL_ATTR_SIMULATE_CURSOR: +diff -Naur unixODBC-2.2.14.orig/cur/SQLSetStmtOption.c unixODBC-2.2.14/cur/SQLSetStmtOption.c +--- unixODBC-2.2.14.orig/cur/SQLSetStmtOption.c 2005-10-27 13:54:49.000000000 -0400 ++++ unixODBC-2.2.14/cur/SQLSetStmtOption.c 2009-02-15 18:34:44.000000000 -0500 +@@ -145,7 +145,7 @@ + break; + + case SQL_ATTR_ROWS_FETCHED_PTR: +- cl_statement -> rows_fetched_ptr = ( SQLUINTEGER * ) value; ++ cl_statement -> rows_fetched_ptr = ( SQLULEN * ) value; + break; + + case SQL_ATTR_USE_BOOKMARKS: +diff -Naur unixODBC-2.2.14.orig/cur/cursorlibrary.h unixODBC-2.2.14/cur/cursorlibrary.h +--- unixODBC-2.2.14.orig/cur/cursorlibrary.h 2007-11-29 07:00:36.000000000 -0500 ++++ unixODBC-2.2.14/cur/cursorlibrary.h 2009-02-15 18:34:44.000000000 -0500 +@@ -75,7 +75,7 @@ + SQLUINTEGER rowset_size; + SQLUINTEGER simulate_cursor; + SQLUINTEGER use_bookmarks; +- SQLUINTEGER *rows_fetched_ptr; ++ SQLULEN *rows_fetched_ptr; + SQLUSMALLINT *row_status_ptr; + SQLCHAR cursor_name[ MAX_CURSOR_NAME + 1 ]; + CLBCOL *bound_columns; +diff -Naur unixODBC-2.2.14.orig/exe/isql.c unixODBC-2.2.14/exe/isql.c +--- unixODBC-2.2.14.orig/exe/isql.c 2008-06-16 07:03:43.000000000 -0400 ++++ unixODBC-2.2.14/exe/isql.c 2009-02-15 18:34:43.000000000 -0500 +@@ -1450,11 +1450,11 @@ + printf( (char*)szSepLine ); + + SQLRowCount( hStmt, &nRowsAffected ); +- printf( "SQLRowCount returns %d\n", nRowsAffected ); ++ printf( "SQLRowCount returns %ld\n", (long) nRowsAffected ); + + if ( nRows ) + { +- printf( "%d rows fetched\n", nRows ); ++ printf( "%ld rows fetched\n", (long) nRows ); + } + } + +diff -Naur unixODBC-2.2.14.orig/exe/iusql.c unixODBC-2.2.14/exe/iusql.c +--- unixODBC-2.2.14.orig/exe/iusql.c 2008-09-01 11:10:40.000000000 -0400 ++++ unixODBC-2.2.14/exe/iusql.c 2009-02-15 18:34:43.000000000 -0500 +@@ -742,7 +742,7 @@ + strcat((char*) szSepLine,(char*) szColumn ); + + /* HDR */ +- sprintf((char*) szColumn, "| %-*s", max( nMaxLength, strlen((char*)szColumnName) ), (char*)szColumnName ); ++ sprintf((char*) szColumn, "| %-*s", (int) max( nMaxLength, strlen((char*)szColumnName) ), (char*)szColumnName ); + strcat((char*) szHdrLine,(char*) szColumn ); + } + strcat((char*) szSepLine, "+\n" ); +@@ -817,7 +817,7 @@ + } + else + { +- sprintf((char*) szColumn, "| %-*s", max( nMaxLength, strlen((char*) szColumnName) ), "" ); ++ sprintf((char*) szColumn, "| %-*s", (int) max( nMaxLength, strlen((char*) szColumnName) ), "" ); + } + fputs((char*) szColumn, stdout ); + } +@@ -841,11 +841,11 @@ + printf( (char*)szSepLine ); + + SQLRowCount( hStmt, &nRowsAffected ); +- printf( "SQLRowCount returns %d\n", nRowsAffected ); ++ printf( "SQLRowCount returns %ld\n", (long) nRowsAffected ); + + if ( nRows ) + { +- printf( "%d rows fetched\n", nRows ); ++ printf( "%ld rows fetched\n", (long) nRows ); + } + } + +diff -Naur unixODBC-2.2.14.orig/exe/odbc-config.c unixODBC-2.2.14/exe/odbc-config.c +--- unixODBC-2.2.14.orig/exe/odbc-config.c 2008-05-20 08:58:17.000000000 -0400 ++++ unixODBC-2.2.14/exe/odbc-config.c 2009-02-15 18:34:43.000000000 -0500 +@@ -160,7 +160,7 @@ + + static void ulen( void ) + { +- printf( "-DSIZEOF_SQLULEN=%d\n", sizeof( SQLULEN )); ++ printf( "-DSIZEOF_SQLULEN=%d\n", (int) sizeof( SQLULEN )); + } + + int main( int argc, char **argv ) +diff -Naur unixODBC-2.2.14.orig/exe/odbcinst.c unixODBC-2.2.14/exe/odbcinst.c +--- unixODBC-2.2.14.orig/exe/odbcinst.c 2008-11-19 10:27:34.000000000 -0500 ++++ unixODBC-2.2.14/exe/odbcinst.c 2009-02-15 18:34:43.000000000 -0500 +@@ -456,7 +456,7 @@ + printf( "unixODBC " VERSION "\n" ); + + *szFileName = '\0'; +- sprintf( szFileName, "%s/odbcinst.ini", odbcinst_system_file_path( b1 ), odbcinst_system_file_name( b2 )); ++ sprintf( szFileName, "%s/odbcinst.ini", odbcinst_system_file_path( b1 ) ); + printf( "DRIVERS............: %s\n", szFileName ); + + *szFileName = '\0'; +@@ -471,9 +471,9 @@ + _odbcinst_UserINI( szFileName, FALSE ); + printf( "USER DATA SOURCES..: %s\n", szFileName ); + +- printf( "SQLULEN Size.......: %d\n", sizeof( SQLULEN )); +- printf( "SQLLEN Size........: %d\n", sizeof( SQLLEN )); +- printf( "SQLSETPOSIROW Size.: %d\n", sizeof( SQLSETPOSIROW )); ++ printf( "SQLULEN Size.......: %d\n", (int) sizeof( SQLULEN )); ++ printf( "SQLLEN Size........: %d\n", (int) sizeof( SQLLEN )); ++ printf( "SQLSETPOSIROW Size.: %d\n", (int) sizeof( SQLSETPOSIROW )); + } + + int main( int argc, char *argv[] ) +diff -Naur unixODBC-2.2.14.orig/extras/snprintf.c unixODBC-2.2.14/extras/snprintf.c +--- unixODBC-2.2.14.orig/extras/snprintf.c 2008-05-13 09:02:28.000000000 -0400 ++++ unixODBC-2.2.14/extras/snprintf.c 2009-02-15 18:34:43.000000000 -0500 +@@ -533,7 +533,7 @@ + return result; + } + +-static LDOUBLE pow10 (int exponent) ++static LDOUBLE mypow10 (int exponent) + { + LDOUBLE result = 1; + +@@ -546,7 +546,7 @@ + return result; + } + +-static long round (LDOUBLE value) ++static long myround (LDOUBLE value) + { + long intpart; + +@@ -607,12 +607,12 @@ + /* We "cheat" by converting the fractional part to integer by + * multiplying by a factor of 10 + */ +- fracpart = round ((pow10 (max)) * (ufvalue - intpart)); ++ fracpart = myround ((mypow10 (max)) * (ufvalue - intpart)); + +- if (fracpart >= pow10 (max)) ++ if (fracpart >= mypow10 (max)) + { + intpart++; +- fracpart -= pow10 (max); ++ fracpart -= mypow10 (max); + } + + #ifdef DEBUG_SNPRINTF +diff -Naur unixODBC-2.2.14.orig/odbcinst/SQLGetInstalledDrivers.c unixODBC-2.2.14/odbcinst/SQLGetInstalledDrivers.c +--- unixODBC-2.2.14.orig/odbcinst/SQLGetInstalledDrivers.c 2008-09-04 07:08:59.000000000 -0400 ++++ unixODBC-2.2.14/odbcinst/SQLGetInstalledDrivers.c 2009-02-15 18:34:44.000000000 -0500 +@@ -27,7 +27,7 @@ + #ifdef VMS + sprintf( szIniName, "%s:%s", odbcinst_system_file_path( b1 ), odbcinst_system_file_name( b2 ) ); + #else +- sprintf( szIniName, "%s/%d", odbcinst_system_file_path( b1 ), odbcinst_system_file_name( b2 ) ); ++ sprintf( szIniName, "%s/%s", odbcinst_system_file_path( b1 ), odbcinst_system_file_name( b2 ) ); + #endif + + #ifdef __OS2__ +diff -Naur unixODBC-2.2.14.orig/odbcinstQ/CStatDetails.cpp unixODBC-2.2.14/odbcinstQ/CStatDetails.cpp +--- unixODBC-2.2.14.orig/odbcinstQ/CStatDetails.cpp 2008-06-30 09:20:44.000000000 -0400 ++++ unixODBC-2.2.14/odbcinstQ/CStatDetails.cpp 2009-02-15 18:34:44.000000000 -0500 +@@ -70,11 +70,11 @@ + nHandles = uodbc_get_stats( hStats, aPIDs[nPID].value.l_value, aHandles, MAXHANDLES ); + if ( nHandles > 0 ) + { +- qs.sprintf( "%d", aPIDs[nPID].value.l_value ); ++ qs.sprintf( "%ld", aPIDs[nPID].value.l_value ); + pTable->setText( nPID, 0, qs ); + for ( nHandle = 0; nHandle < MAXHANDLES; nHandle++ ) + { +- qs.sprintf( "%d", aHandles[nHandle].value.l_value ); ++ qs.sprintf( "%ld", aHandles[nHandle].value.l_value ); + pTable->setText( nPID, nHandle + 1, qs ); + } + } +diff -Naur unixODBC-2.2.14.orig/odbcinstQ/CStatSummary.cpp unixODBC-2.2.14/odbcinstQ/CStatSummary.cpp +--- unixODBC-2.2.14.orig/odbcinstQ/CStatSummary.cpp 2008-06-30 09:20:44.000000000 -0400 ++++ unixODBC-2.2.14/odbcinstQ/CStatSummary.cpp 2009-02-15 18:34:44.000000000 -0500 +@@ -95,22 +95,22 @@ + if ( aStats[3].value.l_value > nSliderMax ) + nSliderMax = aStats[3].value.l_value; + +- qs.sprintf( "%d", aStats[0].value.l_value ); ++ qs.sprintf( "%ld", aStats[0].value.l_value ); + pEnv->setText( qs ); + pEnvSlider->setMinValue( 0-nSliderMax ); + pEnvSlider->setValue( 0-aStats[0].value.l_value ); + +- qs.sprintf( "%d", aStats[1].value.l_value ); ++ qs.sprintf( "%ld", aStats[1].value.l_value ); + pCon->setText( qs ); + pConSlider->setMinValue( 0-nSliderMax ); + pConSlider->setValue( 0-aStats[1].value.l_value ); + +- qs.sprintf( "%d", aStats[2].value.l_value ); ++ qs.sprintf( "%ld", aStats[2].value.l_value ); + pSta->setText( qs ); + pStaSlider->setMinValue( 0-nSliderMax ); + pStaSlider->setValue( 0-aStats[2].value.l_value ); + +- qs.sprintf( "%d", aStats[3].value.l_value ); ++ qs.sprintf( "%ld", aStats[3].value.l_value ); + pDes->setText( qs ); + pDesSlider->setMinValue( 0-nSliderMax ); + pDesSlider->setValue( 0-aStats[3].value.l_value ); +diff -Naur unixODBC-2.2.14.orig/odbctest/attr.cpp unixODBC-2.2.14/odbctest/attr.cpp +--- unixODBC-2.2.14.orig/odbctest/attr.cpp 2007-11-29 07:00:37.000000000 -0500 ++++ unixODBC-2.2.14/odbctest/attr.cpp 2009-02-15 18:34:44.000000000 -0500 +@@ -1314,47 +1314,47 @@ + { + case SQL_ATTR_FETCH_BOOKMARK_PTR: + vptr = hand-> bookmark_ptr; +- txt.sprintf( " Value: %x", vptr ); ++ txt.sprintf( " Value: %p", vptr ); + break; + + case SQL_ATTR_PARAM_BIND_OFFSET_PTR: + vptr = hand-> param_bind_offset_ptr; +- txt.sprintf( " Value: %x", vptr ); ++ txt.sprintf( " Value: %p", vptr ); + break; + + case SQL_ATTR_PARAM_OPERATION_PTR: + vptr = hand-> param_opt_ptr; +- txt.sprintf( " Value: %x", vptr ); ++ txt.sprintf( " Value: %p", vptr ); + break; + + case SQL_ATTR_PARAM_STATUS_PTR: + vptr = hand-> param_status_ptr; +- txt.sprintf( " Value: %x", vptr ); ++ txt.sprintf( " Value: %p", vptr ); + break; + + case SQL_ATTR_PARAMS_PROCESSED_PTR: + vptr = hand-> params_processed_ptr; +- txt.sprintf( " Value: %x", vptr ); ++ txt.sprintf( " Value: %p", vptr ); + break; + + case SQL_ATTR_ROW_BIND_OFFSET_PTR: + vptr = hand-> row_bind_offset_ptr; +- txt.sprintf( " Value: %x", vptr ); ++ txt.sprintf( " Value: %p", vptr ); + break; + + case SQL_ATTR_ROW_OPERATION_PTR: + vptr = hand-> row_operation_ptr; +- txt.sprintf( " Value: %x", vptr ); ++ txt.sprintf( " Value: %p", vptr ); + break; + + case SQL_ATTR_ROW_STATUS_PTR: + vptr = hand-> row_status_ptr; +- txt.sprintf( " Value: %x", vptr ); ++ txt.sprintf( " Value: %p", vptr ); + break; + + case SQL_ATTR_ROWS_FETCHED_PTR: + vptr = hand-> rows_fetched_ptr; +- txt.sprintf( " Value: %x", vptr ); ++ txt.sprintf( " Value: %p", vptr ); + break; + } + } +@@ -1735,7 +1735,7 @@ + { + void *ival; + memcpy( &ival, buf, sizeof( ival )); +- txt.sprintf( " ValuePtr = 0x%08X", ival ); ++ txt.sprintf( " ValuePtr = 0x%08lX", (long) ival ); + odbctest -> out_win -> insertLineLimited( txt ); + } + else +diff -Naur unixODBC-2.2.14.orig/odbctest/desc.cpp unixODBC-2.2.14/odbctest/desc.cpp +--- unixODBC-2.2.14.orig/odbctest/desc.cpp 2007-02-12 06:49:37.000000000 -0500 ++++ unixODBC-2.2.14/odbctest/desc.cpp 2009-02-15 18:34:44.000000000 -0500 +@@ -382,7 +382,7 @@ + { + if ( field_ident_struct[ diag_info -> currentItem() ].data_type == SQL_CHAR ) + { +- txt.sprintf( " ValuePtr: %s", buf ); ++ txt.sprintf( " ValuePtr: %s", (char *) buf ); + } + else if ( field_ident_struct[ diag_info -> currentItem() ].data_type == SQL_IS_POINTER ) + { +@@ -775,7 +775,7 @@ + } + else + { +- txt.sprintf( " *LengthPtr: %d", length_val ); ++ txt.sprintf( " *LengthPtr: %ld", (long) length_val ); + } + odbctest -> out_win -> insertLineLimited( txt ); + } +diff -Naur unixODBC-2.2.14.orig/odbctest/env.cpp unixODBC-2.2.14/odbctest/env.cpp +--- unixODBC-2.2.14.orig/odbctest/env.cpp 2007-02-12 06:49:37.000000000 -0500 ++++ unixODBC-2.2.14/odbctest/env.cpp 2009-02-15 18:34:44.000000000 -0500 +@@ -470,7 +470,7 @@ + + server_name = new SQLCHAR[ bl1 ]; + +- txt.sprintf( " ServerName: %p", bl1 ); ++ txt.sprintf( " ServerName: %p", server_name ); + } + odbctest -> out_win -> insertLineLimited( txt ); + +@@ -500,7 +500,7 @@ + + description = new SQLCHAR[ bl1 ]; + +- txt.sprintf( " Description: %p", bl1 ); ++ txt.sprintf( " Description: %p", description ); + } + odbctest -> out_win -> insertLineLimited( txt ); + +@@ -728,7 +728,7 @@ + + server_name = new SQLCHAR[ bl1 ]; + +- txt.sprintf( " ServerName: %p", bl1 ); ++ txt.sprintf( " ServerName: %p", server_name ); + } + odbctest -> out_win -> insertLineLimited( txt ); + +@@ -758,7 +758,7 @@ + + description = new SQLCHAR[ bl1 ]; + +- txt.sprintf( " Description: %p", bl1 ); ++ txt.sprintf( " Description: %p", description ); + } + odbctest -> out_win -> insertLineLimited( txt ); + +diff -Naur unixODBC-2.2.14.orig/odbctest/odbctest.h unixODBC-2.2.14/odbctest/odbctest.h +--- unixODBC-2.2.14.orig/odbctest/odbctest.h 2007-02-12 06:49:37.000000000 -0500 ++++ unixODBC-2.2.14/odbctest/odbctest.h 2009-02-15 18:34:44.000000000 -0500 +@@ -103,7 +103,7 @@ + SQLUINTEGER *row_bind_offset_ptr, row_bind_offset; + SQLUSMALLINT *row_operation_ptr, row_operation; + SQLUSMALLINT *row_status_ptr, row_status; +- SQLUINTEGER *rows_fetched_ptr, rows_fetched; ++ SQLULEN *rows_fetched_ptr, rows_fetched; + + private: + int type; +diff -Naur unixODBC-2.2.14.orig/odbctest/results.cpp unixODBC-2.2.14/odbctest/results.cpp +--- unixODBC-2.2.14.orig/odbctest/results.cpp 2007-04-17 11:16:17.000000000 -0400 ++++ unixODBC-2.2.14/odbctest/results.cpp 2009-02-15 18:34:44.000000000 -0500 +@@ -815,7 +815,7 @@ + } + else + { +- txt.sprintf( " *Strlen_or_Ind Ptr: %d", strlen_or_ind ); ++ txt.sprintf( " *Strlen_or_Ind Ptr: %ld", (long) strlen_or_ind ); + } + odbctest -> out_win -> insertLineLimited( txt ); + } +@@ -945,7 +945,7 @@ + long val; + + memcpy( &val, buf, sizeof( val )); +- txt.sprintf( " *Target Value Ptr: %d (0x%x)", val, val ); ++ txt.sprintf( " *Target Value Ptr: %ld (0x%lx)", val, val ); + break; + } + +@@ -964,7 +964,7 @@ + long val; + + memcpy( &val, buf, sizeof( val )); +- txt.sprintf( " *Target Value Ptr: %d (0x%x)", val, val ); ++ txt.sprintf( " *Target Value Ptr: %ld (0x%lx)", val, val ); + break; + } + +@@ -1433,7 +1433,7 @@ + } + else + { +- txt.sprintf( " *Column Size Ptr: %d", column_size ); ++ txt.sprintf( " *Column Size Ptr: %ld", (long) column_size ); + } + odbctest -> out_win -> insertLineLimited( txt ); + } +@@ -1596,7 +1596,7 @@ + } + else + { +- txt.sprintf( " *RowCountPtr: %d", num_rows ); ++ txt.sprintf( " *RowCountPtr: %ld", (long) num_rows ); + } + odbctest -> out_win -> insertLineLimited( txt ); + +@@ -2047,7 +2047,7 @@ + + if ( buf ) + { +- txt.sprintf( " *CharacterAttributePtr: %s", buf ); ++ txt.sprintf( " *CharacterAttributePtr: %s", (char *) buf ); + odbctest -> out_win -> insertLineLimited( txt ); + } + } +@@ -2055,7 +2055,7 @@ + { + if ( numeric_ptr ) + { +- txt.sprintf( " *NumericAttributePtr: %d", numeric_value ); ++ txt.sprintf( " *NumericAttributePtr: %ld", (long) numeric_value ); + odbctest -> out_win -> insertLineLimited( txt ); + } + } +@@ -2311,7 +2311,7 @@ + + if ( buf ) + { +- txt.sprintf( " *rgbDesc: %s", buf ); ++ txt.sprintf( " *rgbDesc: %s", (char *) buf ); + odbctest -> out_win -> insertLineLimited( txt ); + } + } +@@ -2319,7 +2319,7 @@ + { + if ( numeric_ptr ) + { +- txt.sprintf( " *pfDesc: %d", numeric_value ); ++ txt.sprintf( " *pfDesc: %ld", (long) numeric_value ); + odbctest -> out_win -> insertLineLimited( txt ); + } + } +@@ -2554,7 +2554,7 @@ + SQLHANDLE in_handle = SQL_NULL_HANDLE; + SQLSMALLINT fetch_orentation; + SQLINTEGER fetch_offset; +- SQLUINTEGER row_count, *row_count_ptr; ++ SQLULEN row_count, *row_count_ptr; + SQLUSMALLINT *row_status_array; + int index; + +@@ -2616,7 +2616,7 @@ + odbctest -> out_win -> insertLineLimited( " Out:" ); + if ( row_count_ptr ) + { +- txt.sprintf( " *RowCountPtr: %d", row_count); ++ txt.sprintf( " *RowCountPtr: %ld", (long) row_count); + odbctest -> out_win -> insertLineLimited( txt ); + } + if ( row_status_array ) +diff -Naur unixODBC-2.2.14.orig/odbctest/stmt.cpp unixODBC-2.2.14/odbctest/stmt.cpp +--- unixODBC-2.2.14.orig/odbctest/stmt.cpp 2007-02-13 01:14:21.000000000 -0500 ++++ unixODBC-2.2.14/odbctest/stmt.cpp 2009-02-15 18:34:44.000000000 -0500 +@@ -1307,7 +1307,7 @@ + else + { + decimal_digits_ptr = &decimal_digits; +- txt.sprintf( " DecimalDigitsPtr: %p", decimal_digits ); ++ txt.sprintf( " DecimalDigitsPtr: %p", decimal_digits_ptr ); + } + odbctest -> out_win -> insertLineLimited( txt ); + decimal_digits = -9999; +@@ -1366,7 +1366,7 @@ + } + else + { +- txt.sprintf( " *ParamSizePtr: %d", param_size ); ++ txt.sprintf( " *ParamSizePtr: %ld", (long) param_size ); + } + odbctest -> out_win -> insertLineLimited( txt ); + } +@@ -1518,7 +1518,7 @@ + { + if ( value_ptr ) + { +- txt.sprintf( " *ValuePtr: %d", value ); ++ txt.sprintf( " *ValuePtr: %ld", (long) value ); + odbctest -> out_win -> insertLineLimited( txt ); + } + } +@@ -1712,13 +1712,13 @@ + data_ptr_var = NULL; + else + data_ptr_var = (SQLPOINTER) s->latin1(); +- txt.sprintf( " DataPtr: %s", data_ptr_var ); ++ txt.sprintf( " DataPtr: %p", data_ptr_var ); + odbctest -> out_win -> insertLineLimited( txt ); + } + else + { + data_ptr_var = ( SQLPOINTER ) data_str; +- txt.sprintf( " DataPtr: %s", data_ptr_var ); ++ txt.sprintf( " DataPtr: %s", (char *) data_ptr_var ); + odbctest -> out_win -> insertLineLimited( txt ); + } + +diff -Naur unixODBC-2.2.14.orig/samples/helper.c unixODBC-2.2.14/samples/helper.c +--- unixODBC-2.2.14.orig/samples/helper.c 2001-12-13 08:00:34.000000000 -0500 ++++ unixODBC-2.2.14/samples/helper.c 2009-02-15 18:34:43.000000000 -0500 +@@ -96,7 +96,7 @@ + { + sprintf(qbuf, "create table \"%s\" " + "(a INTEGER PRIMARY KEY, b %s(%ld))", +- table_name, type, length); ++ table_name, type, (long) length); + } + else + { +@@ -728,7 +728,7 @@ + if (SQL_SUCCEEDED(ret)) + { + sprintf(cbuf, "** error: %s:%d:%ld:%s **\n", +- state, i, native, text); ++ state, i, (long) native, text); + szLogPrintf( srv_info, FALSE, cbuf); + } + }