Subject: Re: Perl module DBD::ODBC 0.39 wont compile on CYGWIN
From: "Gerrit P. Haase" <[email-masked]>
To: "Paul A. Chernoch" <[email-masked]>
Cc: [email-masked]
Date: Tue, 26 Mar 2002 00:41:33 +0100

Hallo Paul,

Am 2002-03-25 um 23:33 schriebst du:

> DBD::ODBC Version 0.38 builds and passes the tests, but 0.39 wont even 
> compile. Here are the error messages:

> $ make
> cp ODBC.pm blib/lib/DBD/ODBC.pm
> /usr/bin/perl -p -e "s/~DRIVER~/ODBC/g" < 
> /usr/lib/perl5/site_perl/5.6.1/cygwin-multi/auto/DBI/Driver.xst > ODBC.xsi
> /usr/bin/perl -I/usr/lib/perl5/5.6.1/cygwin-multi -I/usr/lib/perl5/5.6.1 
> /usr/lib/perl5/5.6.1/ExtUtils/xsubpp  -typemap
> /usr/lib/perl5/5.6.1/ExtUtils/typemap ODBC.xs > ODBC.xsc && mv ODBC.xsc ODBC.c
> gcc -c -I. -I/usr/lib/perl5/site_perl/5.6.1/cygwin-multi/auto/DBI 
> -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -I/usr/local/include 
> -DUSEIMPORTLIB -O2   -DVERSION=\"0.39\" 
> -DXS_VERSION=\"0.39\"  -I/usr/lib/perl5/5.6.1/cygwin-multi/CORE  ODBC.c
> gcc -c -I. -I/usr/lib/perl5/site_perl/5.6.1/cygwin-multi/auto/DBI 
> -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -I/usr/local/include 
> -DUSEIMPORTLIB -O2   -DVERSION=\"0.39\" 
> -DXS_VERSION=\"0.39\"  -I/usr/lib/perl5/5.6.1/cygwin-multi/CORE  dbdimp.c
> dbdimp.c: In function `odbc_db_login6':
> dbdimp.c:211: `SQL_ATTR_ODBC_VERSION' undeclared (first use in this function)
> dbdimp.c:211: (Each undeclared identifier is reported only once
> dbdimp.c:211: for each function it appears in.)
> dbdimp.c:211: `SQL_IS_INTEGER' undeclared (first use in this function)
> dbdimp.c: At top level:
> dbdimp.c:1644: warning: `_dbd_rebind_ph' was declared implicitly `extern' 
> and later `static'
> dbdimp.c:1190: warning: previous declaration of `_dbd_rebind_ph'
> make: *** [dbdimp.o] Error 1

> When I look, the undeclared symbols are really, truly undefined. 
> SQL_ATTR_ODBC_VERSION does not even appear to exist in version 0.38.

Siebenschlaefer@LORELEY /usr/include
$ grep -r SQL_IS_INTEGER *
w32api/sqlext.h:#define SQL_IS_INTEGER (-6)

Siebenschlaefer@LORELEY /usr/include
$ grep -r SQL_ATTR_ODBC_VERSION *
w32api/sqlext.h:#define SQL_ATTR_ODBC_VERSION 200

> (BTW, as far as I can tell, the patch file used some time ago by CYGWIN 
> users to fix the Makefile.pl has been fully incorporated into more recent 
> builds, so I know that is not the problem.)

It seems that there was no Cygwin user working on this module;)
Try to include <sqlext.h>, ah at first take a look at this old patch,
look how Eric Fifer solved the issue (windows.h needs to be included
but immediatly after that WIN32 is undefined):
http://testers.cpan.org/search?request=dist&dist=DBD-ODBC&macid=130

Gerrit
-- 
=^..^=

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/