Bug #6779 MyODBC will not compile using MySQL 4.1.7
Submitted: 23 Nov 2004 20:40 Modified: 21 Oct 2005 14:19
Reporter: Steven Suson Email Updates:
Status: Closed Impact on me:
None 
Category:Connector / ODBC Severity:S1 (Critical)
Version:3.51.09 OS:Linux (Linux)
Assigned to: Peter Harvey CPU Architecture:Any

[23 Nov 2004 20:40] Steven Suson
Description:
Due to apparent changes in the MYSQL_FIELD structure, the int2str function, and a missing declaration of _dig_vec, several modules under driver do not compile. The build errors are shown below:

Making all in driver
make[1]: Entering directory `/usr/src/redhat/BUILD/MyODBC-3.51.09/driver'
make  all-am
make[2]: Entering directory `/usr/src/redhat/BUILD/MyODBC-3.51.09/driver'
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.   -isystem -I/usr/local//include  -O3 -DDBUG_OFF   -I/usr/include/mysql -g -pipe -march=i686 -MT catalog.lo -MD -MP -MF ".deps/catalog.Tpo" \
  -c -o catalog.lo `test -f 'catalog.c' || echo './'`catalog.c; \
then mv -f ".deps/catalog.Tpo" ".deps/catalog.Plo"; \
else rm -f ".deps/catalog.Tpo"; exit 1; \
fi
 gcc -DHAVE_CONFIG_H -I. -I. -I. -isystem -I/usr/local//include -O3 -DDBUG_OFF -I/usr/include/mysql -g -pipe -march=i686 -MT catalog.lo -MD -MP -MF .deps/catalog.Tpo -c catalog.c  -fPIC -DPIC -o .libs/catalog.o
catalog.c:247: warning: initialization makes pointer from integer without a cast
catalog.c:249: warning: initialization makes pointer from integer without a cast
catalog.c:251: warning: initialization makes pointer from integer without a cast
catalog.c:251: warning: initialization makes pointer from integer without a cast
catalog.c:253: warning: initialization makes pointer from integer without a cast
catalog.c:253: warning: initialization makes pointer from integer without a cast
catalog.c:255: warning: initialization makes pointer from integer without a cast
catalog.c:255: warning: initialization makes pointer from integer without a cast
catalog.c:568: warning: initialization makes pointer from integer without a cast
catalog.c:570: warning: initialization makes pointer from integer without a cast
catalog.c:572: warning: initialization makes pointer from integer without a cast
catalog.c:572: warning: initialization makes pointer from integer without a cast
catalog.c:574: warning: initialization makes pointer from integer without a cast
catalog.c:574: warning: initialization makes pointer from integer without a cast
catalog.c:576: warning: initialization makes pointer from integer without a cast
catalog.c:576: warning: initialization makes pointer from integer without a cast
catalog.c:578: warning: initialization makes pointer from integer without a cast
catalog.c:578: warning: initialization makes pointer from integer without a cast
catalog.c:580: warning: initialization makes pointer from integer without a cast
catalog.c:580: warning: initialization makes pointer from integer without a cast
catalog.c:581: warning: initialization makes pointer from integer without a cast
catalog.c:581: warning: initialization makes pointer from integer without a cast
catalog.c:583: warning: initialization makes pointer from integer without a cast
catalog.c:583: warning: initialization makes pointer from integer without a cast
catalog.c:584: warning: initialization makes pointer from integer without a cast
catalog.c:584: warning: initialization makes pointer from integer without a cast
catalog.c:585: warning: initialization makes pointer from integer without a cast
catalog.c:585: warning: initialization makes pointer from integer without a cast
catalog.c:587: warning: initialization makes pointer from integer without a cast
catalog.c:587: warning: initialization makes pointer from integer without a cast
catalog.c:589: warning: initialization makes pointer from integer without a cast
catalog.c:589: warning: initialization makes pointer from integer without a cast
catalog.c:591: warning: initialization makes pointer from integer without a cast
catalog.c:591: warning: initialization makes pointer from integer without a cast
catalog.c:593: warning: initialization makes pointer from integer without a cast
catalog.c:593: warning: initialization makes pointer from integer without a cast
catalog.c:594: warning: initialization makes pointer from integer without a cast
catalog.c:594: warning: initialization makes pointer from integer without a cast
catalog.c:596: warning: initialization makes pointer from integer without a cast
catalog.c:596: warning: initialization makes pointer from integer without a cast
catalog.c:598: warning: initialization makes pointer from integer without a cast
catalog.c:598: warning: initialization makes pointer from integer without a cast
catalog.c:858: warning: initialization makes pointer from integer without a cast
catalog.c:860: warning: initialization makes pointer from integer without a cast
catalog.c:862: warning: initialization makes pointer from integer without a cast
catalog.c:862: warning: initialization makes pointer from integer without a cast
catalog.c:864: warning: initialization makes pointer from integer without a cast
catalog.c:864: warning: initialization makes pointer from integer without a cast
catalog.c:866: warning: initialization makes pointer from integer without a cast
catalog.c:868: warning: initialization makes pointer from integer without a cast
catalog.c:868: warning: initialization makes pointer from integer without a cast
catalog.c:870: warning: initialization makes pointer from integer without a cast
catalog.c:870: warning: initialization makes pointer from integer without a cast
catalog.c:872: warning: initialization makes pointer from integer without a cast
catalog.c:872: warning: initialization makes pointer from integer without a cast
catalog.c:874: warning: initialization makes pointer from integer without a cast
catalog.c:874: warning: initialization makes pointer from integer without a cast
catalog.c:876: warning: initialization makes pointer from integer without a cast
catalog.c:876: warning: initialization makes pointer from integer without a cast
catalog.c:877: warning: initialization makes pointer from integer without a cast
catalog.c:877: warning: initialization makes pointer from integer without a cast
catalog.c:878: warning: initialization makes pointer from integer without a cast
catalog.c:878: warning: initialization makes pointer from integer without a cast
catalog.c:879: warning: initialization makes pointer from integer without a cast
catalog.c:879: warning: initialization makes pointer from integer without a cast
catalog.c: In function `SQLStatistics':
catalog.c:960: too few arguments to function `int2str'
catalog.c: At top level:
catalog.c:1075: warning: initialization makes pointer from integer without a cast
catalog.c:1077: warning: initialization makes pointer from integer without a cast
catalog.c:1079: warning: initialization makes pointer from integer without a cast
catalog.c:1079: warning: initialization makes pointer from integer without a cast
catalog.c:1081: warning: initialization makes pointer from integer without a cast
catalog.c:1083: warning: initialization makes pointer from integer without a cast
catalog.c:1083: warning: initialization makes pointer from integer without a cast
catalog.c:1085: warning: initialization makes pointer from integer without a cast
catalog.c:1085: warning: initialization makes pointer from integer without a cast
catalog.c:1087: warning: initialization makes pointer from integer without a cast
catalog.c:1238: warning: initialization makes pointer from integer without a cast
catalog.c:1240: warning: initialization makes pointer from integer without a cast
catalog.c:1242: warning: initialization makes pointer from integer without a cast
catalog.c:1242: warning: initialization makes pointer from integer without a cast
catalog.c:1244: warning: initialization makes pointer from integer without a cast
catalog.c:1244: warning: initialization makes pointer from integer without a cast
catalog.c:1246: warning: initialization makes pointer from integer without a cast
catalog.c:1248: warning: initialization makes pointer from integer without a cast
catalog.c:1248: warning: initialization makes pointer from integer without a cast
catalog.c:1250: warning: initialization makes pointer from integer without a cast
catalog.c:1250: warning: initialization makes pointer from integer without a cast
catalog.c:1252: warning: initialization makes pointer from integer without a cast
catalog.c:1371: warning: initialization makes pointer from integer without a cast
catalog.c:1371: warning: initialization makes pointer from integer without a cast
catalog.c:1373: warning: initialization makes pointer from integer without a cast
catalog.c:1374: warning: initialization makes pointer from integer without a cast
catalog.c:1375: warning: initialization makes pointer from integer without a cast
catalog.c:1375: warning: initialization makes pointer from integer without a cast
catalog.c:1377: warning: initialization makes pointer from integer without a cast
catalog.c:1377: warning: initialization makes pointer from integer without a cast
catalog.c:1379: warning: initialization makes pointer from integer without a cast
catalog.c:1379: warning: initialization makes pointer from integer without a cast
catalog.c:1381: warning: initialization makes pointer from integer without a cast
catalog.c:1381: warning: initialization makes pointer from integer without a cast
catalog.c:1383: warning: initialization makes pointer from integer without a cast
catalog.c:1383: warning: initialization makes pointer from integer without a cast
catalog.c:1385: warning: initialization makes pointer from integer without a cast
catalog.c:1385: warning: initialization makes pointer from integer without a cast
catalog.c:1589: warning: initialization makes pointer from integer without a cast
catalog.c:1591: warning: initialization makes pointer from integer without a cast
catalog.c:1593: warning: initialization makes pointer from integer without a cast
catalog.c:1594: warning: initialization makes pointer from integer without a cast
catalog.c:1595: warning: initialization makes pointer from integer without a cast
catalog.c:1596: warning: initialization makes pointer from integer without a cast
catalog.c:1597: warning: initialization makes pointer from integer without a cast
catalog.c:1597: warning: initialization makes pointer from integer without a cast
catalog.c:1599: warning: initialization makes pointer from integer without a cast
catalog.c:1702: warning: initialization makes pointer from integer without a cast
catalog.c:1704: warning: initialization makes pointer from integer without a cast
catalog.c:1706: warning: initialization makes pointer from integer without a cast
catalog.c:1707: warning: initialization makes pointer from integer without a cast
catalog.c:1708: warning: initialization makes pointer from integer without a cast
catalog.c:1709: warning: initialization makes pointer from integer without a cast
catalog.c:1710: warning: initialization makes pointer from integer without a cast
catalog.c:1712: warning: initialization makes pointer from integer without a cast
catalog.c:1713: warning: initialization makes pointer from integer without a cast
catalog.c:1714: warning: initialization makes pointer from integer without a cast
catalog.c:1715: warning: initialization makes pointer from integer without a cast
catalog.c:1716: warning: initialization makes pointer from integer without a cast
catalog.c:1717: warning: initialization makes pointer from integer without a cast
catalog.c:1718: warning: initialization makes pointer from integer without a cast
catalog.c:1718: warning: initialization makes pointer from integer without a cast
catalog.c:1720: warning: initialization makes pointer from integer without a cast
catalog.c:1720: warning: initialization makes pointer from integer without a cast
catalog.c:1722: warning: initialization makes pointer from integer without a cast
catalog.c:1722: warning: initialization makes pointer from integer without a cast
catalog.c:1724: warning: initialization makes pointer from integer without a cast
catalog.c:1726: warning: initialization makes pointer from integer without a cast
catalog.c:1728: warning: initialization makes pointer from integer without a cast
catalog.c:1728: warning: initialization makes pointer from integer without a cast
catalog.c:1988: warning: initialization makes pointer from integer without a cast
catalog.c:1989: warning: initialization makes pointer from integer without a cast
catalog.c:1990: warning: initialization makes pointer from integer without a cast
catalog.c:1991: warning: initialization makes pointer from integer without a cast
catalog.c:1991: warning: initialization makes pointer from integer without a cast
catalog.c:1992: warning: initialization makes pointer from integer without a cast
catalog.c:1992: warning: initialization makes pointer from integer without a cast
catalog.c:1993: warning: initialization makes pointer from integer without a cast
catalog.c:1993: warning: initialization makes pointer from integer without a cast
catalog.c:1994: warning: initialization makes pointer from integer without a cast
catalog.c:1994: warning: initialization makes pointer from integer without a cast
catalog.c:1995: warning: initialization makes pointer from integer without a cast
catalog.c:1995: warning: initialization makes pointer from integer without a cast
make[2]: *** [catalog.lo] Error 1
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.   -isystem -I/usr/local//include  -O3 -DDBUG_OFF   -I/usr/include/mysql -g -pipe -march=i686 -MT execute.lo -MD -MP -MF ".deps/execute.Tpo" \
  -c -o execute.lo `test -f 'execute.c' || echo './'`execute.c; \
then mv -f ".deps/execute.Tpo" ".deps/execute.Plo"; \
else rm -f ".deps/execute.Tpo"; exit 1; \
fi
 gcc -DHAVE_CONFIG_H -I. -I. -I. -isystem -I/usr/local//include -O3 -DDBUG_OFF -I/usr/include/mysql -g -pipe -march=i686 -MT execute.lo -MD -MP -MF .deps/execute.Tpo -c execute.c  -fPIC -DPIC -o .libs/execute.o
execute.c: In function `insert_param':
execute.c:331: too few arguments to function `int2str'
execute.c:335: too few arguments to function `int2str'
execute.c:340: too few arguments to function `int2str'
execute.c:344: too few arguments to function `int2str'
execute.c:349: too few arguments to function `int2str'
execute.c:353: too few arguments to function `int2str'
make[2]: *** [execute.lo] Error 1
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.   -isystem -I/usr/local//include  -O3 -DDBUG_OFF   -I/usr/include/mysql -g -pipe -march=i686 -MT info.lo -MD -MP -MF ".deps/info.Tpo" \
  -c -o info.lo `test -f 'info.c' || echo './'`info.c; \
then mv -f ".deps/info.Tpo" ".deps/info.Plo"; \
else rm -f ".deps/info.Tpo"; exit 1; \
fi
 gcc -DHAVE_CONFIG_H -I. -I. -I. -isystem -I/usr/local//include -O3 -DDBUG_OFF -I/usr/include/mysql -g -pipe -march=i686 -MT info.lo -MD -MP -MF .deps/info.Tpo -c info.c  -fPIC -DPIC -o .libs/info.o
info.c:865: warning: initialization makes pointer from integer without a cast
info.c:865: warning: initialization makes pointer from integer without a cast
info.c:867: warning: initialization makes pointer from integer without a cast
info.c:867: warning: initialization makes pointer from integer without a cast
info.c:869: warning: initialization makes pointer from integer without a cast
info.c:869: warning: initialization makes pointer from integer without a cast
info.c:870: warning: initialization makes pointer from integer without a cast
info.c:870: warning: initialization makes pointer from integer without a cast
info.c:872: warning: initialization makes pointer from integer without a cast
info.c:872: warning: initialization makes pointer from integer without a cast
info.c:874: warning: initialization makes pointer from integer without a cast
info.c:874: warning: initialization makes pointer from integer without a cast
info.c:876: warning: initialization makes pointer from integer without a cast
info.c:876: warning: initialization makes pointer from integer without a cast
info.c:878: warning: initialization makes pointer from integer without a cast
info.c:878: warning: initialization makes pointer from integer without a cast
info.c:880: warning: initialization makes pointer from integer without a cast
info.c:880: warning: initialization makes pointer from integer without a cast
info.c:882: warning: initialization makes pointer from integer without a cast
info.c:882: warning: initialization makes pointer from integer without a cast
info.c:884: warning: initialization makes pointer from integer without a cast
info.c:884: warning: initialization makes pointer from integer without a cast
info.c:886: warning: initialization makes pointer from integer without a cast
info.c:886: warning: initialization makes pointer from integer without a cast
info.c:888: warning: initialization makes pointer from integer without a cast
info.c:888: warning: initialization makes pointer from integer without a cast
info.c:890: warning: initialization makes pointer from integer without a cast
info.c:890: warning: initialization makes pointer from integer without a cast
info.c:891: warning: initialization makes pointer from integer without a cast
info.c:891: warning: initialization makes pointer from integer without a cast
info.c:892: warning: initialization makes pointer from integer without a cast
info.c:892: warning: initialization makes pointer from integer without a cast
info.c:894: warning: initialization makes pointer from integer without a cast
info.c:894: warning: initialization makes pointer from integer without a cast
info.c:896: warning: initialization makes pointer from integer without a cast
info.c:896: warning: initialization makes pointer from integer without a cast
info.c:897: warning: initialization makes pointer from integer without a cast
info.c:897: warning: initialization makes pointer from integer without a cast
info.c: In function `init_getfunctions':
info.c:1163: too few arguments to function `int2str'
info.c:1164: too few arguments to function `int2str'
info.c:1165: too few arguments to function `int2str'
info.c:1166: too few arguments to function `int2str'
info.c:1167: too few arguments to function `int2str'
info.c:1168: too few arguments to function `int2str'
info.c:1169: too few arguments to function `int2str'
info.c:1170: too few arguments to function `int2str'
info.c:1171: too few arguments to function `int2str'
info.c:1172: too few arguments to function `int2str'
info.c:1173: too few arguments to function `int2str'
info.c:1174: too few arguments to function `int2str'
info.c:1175: too few arguments to function `int2str'
info.c:1176: too few arguments to function `int2str'
info.c:1177: too few arguments to function `int2str'
info.c:1178: too few arguments to function `int2str'
info.c:1179: too few arguments to function `int2str'
info.c:1180: too few arguments to function `int2str'
info.c:1181: too few arguments to function `int2str'
info.c:1182: too few arguments to function `int2str'
info.c:1191: too few arguments to function `int2str'
info.c:1192: too few arguments to function `int2str'
info.c:1193: too few arguments to function `int2str'
info.c: In function `myodbc_ov_init':
info.c:1206: too few arguments to function `int2str'
info.c:1207: too few arguments to function `int2str'
info.c:1208: too few arguments to function `int2str'
info.c:1218: too few arguments to function `int2str'
info.c:1219: too few arguments to function `int2str'
info.c:1220: too few arguments to function `int2str'
make[2]: *** [info.lo] Error 1
if /bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.   -isystem -I/usr/local//include  -O3 -DDBUG_OFF   -I/usr/include/mysql -g -pipe -march=i686 -MT utility.lo -MD -MP -MF ".deps/utility.Tpo" \
  -c -o utility.lo `test -f 'utility.c' || echo './'`utility.c; \
then mv -f ".deps/utility.Tpo" ".deps/utility.Plo"; \
else rm -f ".deps/utility.Tpo"; exit 1; \
fi
 gcc -DHAVE_CONFIG_H -I. -I. -I. -isystem -I/usr/local//include -O3 -DDBUG_OFF -I/usr/include/mysql -g -pipe -march=i686 -MT utility.lo -MD -MP -MF .deps/utility.Tpo -c utility.c  -fPIC -DPIC -o .libs/utility.o
utility.c: In function `copy_binary_result':
utility.c:333: `_dig_vec' undeclared (first use in this function)
utility.c:333: (Each undeclared identifier is reported only once
utility.c:333: for each function it appears in.)
make[2]: *** [utility.lo] Error 1
make[2]: Target `all-am' not remade because of errors.
make[2]: Leaving directory `/usr/src/redhat/BUILD/MyODBC-3.51.09/driver'
make[1]: *** [all] Error 2

How to repeat:
Attempt to build with MySQL 4.1.7 installed.

Suggested fix:
Adapt MyODBC to MySQL 4.1.7
[21 Oct 2005 14:19] Mark Matthews
Fixed for MyODBC-3.51.10 and newer.