Re: Problems: Build MySQL ODBC Connector 5.1.5 with 64-Linux
Jess Balint <[email protected]>
| Newsgroups | gmane.comp.db.mysql.odbc |
|---|---|
| Message-ID | <[email protected]> |
Ida, Thanks for bringing this to our attention. I've attached a patch to get this to build. This patch will be included in the next release. Jess On Fri, Dec 05, 2008 at 03:25:28PM +0100, Ida Schonfeld wrote: > Hello, > > > > I wanted to build the sources from the MySQL ODBC connector 5.1.5.-0 but I have a problem with some function and type declarations. > > I configured the sources with the following options: > > ./configure -with-debug -disable-gui -with-unixODBC -with-unixODBC-libs=/usr/local/lib64 -with-unixODBC-includes=/usr/local/include -with-mysql-path=/usr > > > > The configuration is successful. But when I try to build the sources with make I get the errors like in make.log below. > > I'm using the unixODBC 2.2.14 as Driver Manager. It is build with 64 bit so that SQLULEN and SQLLEN are 8 bit while SQLINTEGER, etc are 4 bit. > > Is there maybe a Flag which I forgot to set for the configuration? Is really my only solution to correct all the function declarations and the Casting Errors manually? Is there maybe a new driver version planed for the next time? > > I added two extracts from the sqltypes.h and the sqlext.h. The SQL-Type definitions and the Line 1862 which causes the error. > > > > I'm working on an OpenSuse 10.2 (AMD64). I downloaded the sources from here (http://mysql.holywar.net/Downloads/Connector-ODBC/5.1/mysql-connector-odbc-5.1.5-0.src.rpm <http://mysql.holywar.net/Downloads/Connector-ODBC/5.1/mysql-connector-odbc-5.1.5-0.src.rpm> ) and I think this should be the newest version of the driver sources. > > > > > > > > Thanks for your help > > Ida Schönfeld > > > > > > make.log > > make[1]: Entering directory `/usr/src/packages/SOURCES/mysql-connector-odbc-5.1.5/util' > > if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../driver -I.. -I/usr/local/include -ggdb3 -DDBUG_ON -I/usr/include/mysql -fmessage-length=0 -D_FORTIFY_SOURCE=2 -g -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -fno-strict-aliasing -g -O2 -MT stringutil.lo -MD -MP -MF ".deps/stringutil.Tpo" -c -o stringutil.lo stringutil.c; \ > > then mv -f ".deps/stringutil.Tpo" ".deps/stringutil.Plo"; else rm -f ".deps/stringutil.Tpo"; exit 1; fi > > mkdir .libs > > gcc -DHAVE_CONFIG_H -I. -I. -I../driver -I.. -I/usr/local/include -ggdb3 -DDBUG_ON -I/usr/include/mysql -fmessage-length=0 -D_FORTIFY_SOURCE=2 -g -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -fno-strict-aliasing -g -O2 -MT stringutil.lo -MD -MP -MF .deps/stringutil.Tpo -c stringutil.c -fPIC -DPIC -o .libs/stringutil.o > > if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../driver -I.. -I/usr/local/include -ggdb3 -DDBUG_ON -I/usr/include/mysql -fmessage-length=0 -D_FORTIFY_SOURCE=2 -g -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -fno-strict-aliasing -g -O2 -MT installer.lo -MD -MP -MF ".deps/installer.Tpo" -c -o installer.lo installer.c; \ > > then mv -f ".deps/installer.Tpo" ".deps/installer.Plo"; else rm -f ".deps/installer.Tpo"; exit 1; fi > > [ . . . ] > > gcc -DHAVE_CONFIG_H -I. -I. -I. -I../util -I.. -DNONTHREADSAFE -I/usr/local/include -ggdb3 -DDBUG_ON -I/usr/include/mysql -fmessage-length=0 -D_FORTIFY_SOURCE=2 -g -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -fno-strict-aliasing -g -O2 -MT libmyodbc5_la-options.lo -MD -MP -MF .deps/libmyodbc5_la-options.Tpo -c options.c -fPIC -DPIC -o .libs/libmyodbc5_la-options.o > > options.c: In function 'MySQLSetConnectAttr': > > options.c:356: warning: cast from pointer to integer of different size > > if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -I../util -I.. -DNONTHREADSAFE -I/usr/local/include -ggdb3 -DDBUG_ON -I/usr/include/mysql -fmessage-length=0 -D_FORTIFY_SOURCE=2 -g -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -fno-strict-aliasing -g -O2 -MT libmyodbc5_la-prepare.lo -MD -MP -MF ".deps/libmyodbc5_la-prepare.Tpo" -c -o libmyodbc5_la-prepare.lo `test -f 'prepare.c' || echo './'`prepare.c; \ > > then mv -f ".deps/libmyodbc5_la-prepare.Tpo" ".deps/libmyodbc5_la-prepare.Plo"; else rm -f ".deps/libmyodbc5_la-prepare.Tpo"; exit 1; fi > > gcc -DHAVE_CONFIG_H -I. -I. -I. -I../util -I.. -DNONTHREADSAFE -I/usr/local/include -ggdb3 -DDBUG_ON -I/usr/include/mysql -fmessage-length=0 -D_FORTIFY_SOURCE=2 -g -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -fno-strict-aliasing -g -O2 -MT libmyodbc5_la-prepare.lo -MD -MP -MF .deps/libmyodbc5_la-prepare.Tpo -c prepare.c -fPIC -DPIC -o .libs/libmyodbc5_la-prepare.o > > prepare.c: In function 'my_SQLBindParameter': > > prepare.c:244: warning: cast to pointer from integer of different size > > prepare.c:271: warning: cast to pointer from integer of different size > > prepare.c:278: warning: cast to pointer from integer of different size > > prepare.c:296: warning: cast to pointer from integer of different size > > prepare.c:313: warning: cast to pointer from integer of different size > > prepare.c: In function 'SQLSetScrollOptions': > > prepare.c:492: warning: cast to pointer from integer of different size > > if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -I../util -I.. -DNONTHREADSAFE -I/usr/local/include -ggdb3 -DDBUG_ON -I/usr/include/mysql -fmessage-length=0 -D_FORTIFY_SOURCE=2 -g -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -fno-strict-aliasing -g -O2 -MT libmyodbc5_la-results.lo -MD -MP -MF ".deps/libmyodbc5_la-results.Tpo" -c -o libmyodbc5_la-results.lo `test -f 'results.c' || echo './'`results.c; \ > > then mv -f ".deps/libmyodbc5_la-results.Tpo" ".deps/libmyodbc5_la-results.Plo"; else rm -f ".deps/libmyodbc5_la-results.Tpo"; exit 1; fi > > gcc -DHAVE_CONFIG_H -I. -I. -I. -I../util -I.. -DNONTHREADSAFE -I/usr/local/include -ggdb3 -DDBUG_ON -I/usr/include/mysql -fmessage-length=0 -D_FORTIFY_SOURCE=2 -g -DPIC -fPIC -DUNDEF_HAVE_INITGROUPS -fno-strict-aliasing -g -O2 -MT libmyodbc5_la-results.lo -MD -MP -MF .deps/libmyodbc5_la-results.Tpo -c results.c -fPIC -DPIC -o .libs/libmyodbc5_la-results.o > > results.c: In function 'SQLBindCol': > > results.c:846: warning: cast to pointer from integer of different size > > results.c: At top level: > > results.c:1390: error: conflicting types for 'SQLExtendedFetch' > > /usr/local/include/sqlext.h:1862: error: previous declaration of 'SQLExtendedFetch' was here > > results.c: In function 'SQLFetchScroll': > > results.c:1423: warning: passing argument 4 of 'my_SQLExtendedFetch' from incompatible pointer type > > results.c: In function 'SQLFetch': > > results.c:1441: warning: passing argument 4 of 'my_SQLExtendedFetch' from incompatible pointer type > > make[2]: *** [libmyodbc5_la-results.lo] Error 1 > > make[2]: Leaving directory `/usr/src/packages/SOURCES/mysql-connector-odbc-5.1.5/driver' > > make[1]: *** [all] Error 2 > > make[1]: Leaving directory `/usr/src/packages/SOURCES/mysql-connector-odbc-5.1.5/driver' > > make: *** [all-recursive] Error 1 > > 11/25/08 14:16 done make > > exit status 2 > > > > sqltypes.h[...] > > typedef int SQLINTEGER; > > typedef unsigned int SQLUINTEGER; > > typedef long SQLLEN; > > typedef unsigned long SQLULEN; > > typedef unsigned long SQLSETPOSIROW; > > /* > > * These are not supprted on 64bit ODBC according to MS, removed, so use at your peril > > */ > > typedef SQLULEN SQLTRANSID; > > typedef SQLULEN SQLROWCOUNT; > > typedef SQLUINTEGER SQLROWSETSIZE; > > typedef SQLLEN SQLROWOFFSET; > > [...] > > Sqlext.h[...] > > SQLRETURN SQL_API SQLExtendedFetch( > > SQLHSTMT hstmt, > > SQLUSMALLINT fFetchType, > > SQLLEN irow, > > SQLULEN *pcrow, > > SQLUSMALLINT *rgfRowStatus); > > [...] > -- MySQL ODBC Mailing List For list archives: http://lists.mysql.com/myodbc To unsubscribe: http://lists.mysql.com/[email protected]
myodbc_unixODBC-2.2.14.diff
(text/plain, 6.1 KB)
=== modified file 'driver/myutil.h'
--- driver/myutil.h 2008-10-28 18:52:50 +0000
+++ driver/myutil.h 2008-12-05 18:53:22 +0000
@@ -203,7 +203,7 @@
SQLLEN cbValueMax,
SQLLEN *pcbValue);
SQLRETURN SQL_API my_SQLExtendedFetch(SQLHSTMT hstmt, SQLUSMALLINT fFetchType,
- SQLROWOFFSET irow, SQLULEN *pcrow,
+ SQLLEN irow, SQLULEN *pcrow,
SQLUSMALLINT FAR *rgfRowStatus, my_bool upd_status);
SQLRETURN SQL_API my_SQLSetPos(SQLHSTMT hstmt, SQLSETPOSIROW irow,
SQLUSMALLINT fOption, SQLUSMALLINT fLock);
=== modified file 'driver/results.c'
--- driver/results.c 2008-10-28 18:52:50 +0000
+++ driver/results.c 2008-12-05 18:54:52 +0000
@@ -1181,7 +1181,7 @@
*/
SQLRETURN SQL_API my_SQLExtendedFetch( SQLHSTMT hstmt,
SQLUSMALLINT fFetchType,
- SQLROWOFFSET irow,
+ SQLLEN irow,
SQLULEN *pcrow,
SQLUSMALLINT FAR *rgfRowStatus,
my_bool upd_status )
@@ -1384,8 +1384,8 @@
SQLRETURN SQL_API SQLExtendedFetch( SQLHSTMT hstmt,
SQLUSMALLINT fFetchType,
- SQLROWOFFSET irow,
- SQLROWSETSIZE *pcrow,
+ SQLLEN irow,
+ SQLULEN *pcrow,
SQLUSMALLINT FAR *rgfRowStatus )
{
SQLRETURN rc;
@@ -1396,7 +1396,7 @@
rc= my_SQLExtendedFetch(hstmt, fFetchType, irow, &rows, rgfRowStatus, 1);
if (pcrow)
- *pcrow= (SQLROWSETSIZE)rows;
+ *pcrow= (SQLULEN) rows;
return rc;
}
=== modified file 'test/my_bulk.c'
--- test/my_bulk.c 2008-08-22 22:12:25 +0000
+++ test/my_bulk.c 2008-12-05 18:55:33 +0000
@@ -91,7 +91,7 @@
{
SQLINTEGER nData;
SQLLEN nlen;
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
ok_sql(hstmt, "DROP TABLE IF EXISTS t_mul_pkdel");
ok_sql(hstmt, "CREATE TABLE t_mul_pkdel (a INT NOT NULL, b INT,"
=== modified file 'test/my_cursor.c'
--- test/my_cursor.c 2008-10-09 23:06:10 +0000
+++ test/my_cursor.c 2008-12-05 18:56:15 +0000
@@ -465,7 +465,7 @@
SQLCHAR szData[20];
SQLINTEGER nData;
SQLLEN pcbValue, nlen;
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
ok_sql(hstmt, "DROP TABLE IF EXISTS t_pos_column_ignore");
@@ -905,7 +905,7 @@
SQLINTEGER nData;
SQLLEN nlen;
SQLCHAR szData[255];
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
ok_sql(hstmt, "DROP TABLE IF EXISTS tmysql_setpos_del");
@@ -978,7 +978,7 @@
SQLINTEGER nData;
SQLLEN nlen;
SQLCHAR szData[255];
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
ok_sql(hstmt, "DROP TABLE IF EXISTS tmysql_setpos_del1");
@@ -1038,7 +1038,7 @@
SQLINTEGER nData = 500;
SQLLEN nlen;
SQLCHAR szData[255]={0};
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
ok_sql(hstmt, "DROP TABLE IF EXISTS tmysql_setpos");
@@ -1146,7 +1146,7 @@
SQLINTEGER nData= 500;
SQLLEN nlen;
SQLCHAR szData[255]={0};
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
ok_sql(hstmt, "DROP TABLE IF EXISTS tmysql_setpos_add");
@@ -1359,7 +1359,7 @@
DECLARE_TEST(tmysql_pos_update_ex)
{
SQLHSTMT hstmt1;
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
SQLLEN rows;
SQLCHAR cursor[30], sql[255], data[]= "tmysql_pos_update_ex";
@@ -1483,7 +1483,7 @@
DECLARE_TEST(tmysql_pos_update_ex3)
{
SQLHSTMT hstmt1;
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
SQLCHAR cursor[30], sql[255];
@@ -1523,7 +1523,7 @@
DECLARE_TEST(tmysql_pos_update_ex4)
{
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLLEN nlen= SQL_NTS;
SQLCHAR data[]= "venu", szData[20];
SQLUSMALLINT rgfRowStatus;
@@ -1572,7 +1572,7 @@
DECLARE_TEST(tmysql_pos_dyncursor)
{
SQLHSTMT hstmt1;
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
SQLCHAR buff[100];
SQLLEN rows;
@@ -1632,7 +1632,7 @@
SQLINTEGER nData= 500;
SQLLEN nlen;
SQLCHAR szData[255]={0};
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
ok_sql(hstmt, "DROP TABLE IF EXISTS tmysql_t1, tmysql_t2");
@@ -1704,7 +1704,7 @@
SQLINTEGER nData= 500;
SQLLEN nlen;
SQLCHAR szData[255]={0};
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
ok_sql(hstmt, "DROP TABLE IF EXISTS tmysql_setpos1");
@@ -1785,7 +1785,7 @@
SQLINTEGER nData= 500;
SQLLEN nlen;
SQLCHAR szData[255]= {0};
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
ok_sql(hstmt, "DROP TABLE IF EXISTS t_alias_setpos_pkdel");
@@ -1848,7 +1848,7 @@
SQLINTEGER nData= 500;
SQLLEN nlen;
SQLCHAR szData[255]= {0};
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
ok_sql(hstmt, "DROP TABLE IF EXISTS t_alias_setpos_del");
@@ -1909,7 +1909,7 @@
SQLINTEGER nData= 500;
SQLLEN nlen;
SQLCHAR szData[255]= {0};
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
ok_sql(hstmt, "DROP TABLE IF EXISTS tmysql_setpos_pkdel2");
@@ -2091,7 +2091,7 @@
SQLINTEGER nData= 500;
SQLLEN nlen;
SQLCHAR szData[255]={0};
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
ok_sql(hstmt, "DROP TABLE IF EXISTS my_setpos_upd_pk_order");
@@ -2177,7 +2177,7 @@
{
SQLINTEGER nData;
SQLCHAR szData[255];
- SQLROWSETSIZE pcrow;
+ SQLULEN pcrow;
SQLUSMALLINT rgfRowStatus;
SQLLEN rows;
=== modified file 'test/my_result.c'
--- test/my_result.c 2008-08-22 22:12:25 +0000
+++ test/my_result.c 2008-12-05 18:56:36 +0000
@@ -1473,7 +1473,7 @@
{
SQLRETURN rc;
SQLHSTMT hstmt1;
- SQLROWSETSIZE pcrow[4];
+ SQLULEN pcrow[4];
SQLUSMALLINT rgfRowStatus[6];
SQLINTEGER nData= 555;
SQLCHAR szData[255] = "setpos-update";