RE: Compile error in dbdimp.c. v 3.0007
"Martin J. Evans" <[email protected]>
| Newsgroups | gmane.comp.db.mysql.perl |
|---|---|
| Organization | Easysoft Ltd |
| Message-ID | <[email protected]> |
Edit the file dbdimp.c. On line 2390 you will see:
my_ulonglong rows= 0;
Move this line up to where the other variables are declared i.e. line 2350
e.g.
{
D_imp_sth(h);
D_imp_dbh_from_sth;
STRLEN slen;
bool bind_type_guessing;
char *sbuf = SvPV(statement, slen);
char *table;
char *salloc;
int htype;
my_ulonglong rows= 0; /* MOVED LINE FROM BELOW */
Martin
--
Martin J. Evans
Easysoft Ltd, UK
http://www.easysoft.com
On 19-Sep-2006 Guillermo Gozalbes wrote:
> I can't compile the latest version of DBD:mysql downloaded from CPAN.
>
> -
> cpan> install DBD:mysql
> CPAN: Storable loaded ok
> Going to read /root/.cpan/Metadata
> Database was generated on Tue, 19 Sep 2006 04:32:30 GMT
> Running install for module DBD::mysql
> Running make for C/CA/CAPTTOFU/DBD-mysql-3.0007.tar.gz
> CPAN: Digest::SHA loaded ok
>
> CPAN: Module::Signature security checks disabled because Module::Signature
> not installed. Please consider installing the Module::Signature module.
> You may also need to be able to connect over the Internet to the public
> keyservers like pgp.mit.edu (port 11371).
>
> CPAN: Compress::Zlib loaded ok
> Checksum for /root/.cpan/sources/authors/id/C/CA/CAPTTOFU/DBD-
> mysql-3.0007.tar.gz ok
> Scanning cache /root/.cpan/build for sizes
> DBD-mysql-3.0007/
> DBD-mysql-3.0007/ChangeLog
> DBD-mysql-3.0007/constants.h
> DBD-mysql-3.0007/dbdimp.c
> DBD-mysql-3.0007/dbdimp.h
> DBD-mysql-3.0007/eg/
> DBD-mysql-3.0007/eg/prepare_memory_usage.pl
> DBD-mysql-3.0007/eg/proc_example1.pl
> DBD-mysql-3.0007/eg/proc_example2.pl
> DBD-mysql-3.0007/eg/proc_example3.pl
> DBD-mysql-3.0007/INSTALL.html
> DBD-mysql-3.0007/lib/
> DBD-mysql-3.0007/lib/Bundle/
> DBD-mysql-3.0007/lib/Bundle/DBD/
> DBD-mysql-3.0007/lib/Bundle/DBD/mysql.pm
> DBD-mysql-3.0007/lib/DBD/
> DBD-mysql-3.0007/lib/DBD/mysql/
> DBD-mysql-3.0007/lib/DBD/mysql/GetInfo.pm
> DBD-mysql-3.0007/lib/DBD/mysql/INSTALL.pod
> DBD-mysql-3.0007/lib/DBD/mysql.pm
> DBD-mysql-3.0007/lib/Mysql/
> DBD-mysql-3.0007/lib/Mysql/Statement.pm
> DBD-mysql-3.0007/lib/Mysql.pm
> DBD-mysql-3.0007/Makefile.PL
> DBD-mysql-3.0007/Makefile.PL.embedded
> DBD-mysql-3.0007/MANIFEST
> DBD-mysql-3.0007/MANIFEST.SKIP
> DBD-mysql-3.0007/META.yml
> DBD-mysql-3.0007/myld
> DBD-mysql-3.0007/mysql.xs
> DBD-mysql-3.0007/README
> DBD-mysql-3.0007/t/
> DBD-mysql-3.0007/t/00base.t
> DBD-mysql-3.0007/t/10dsnlist.t
> DBD-mysql-3.0007/t/20createdrop.t
> DBD-mysql-3.0007/t/30insertfetch.t
> DBD-mysql-3.0007/t/35limit.t
> DBD-mysql-3.0007/t/35prepare.t
> DBD-mysql-3.0007/t/40bindparam.t
> DBD-mysql-3.0007/t/40bindparam2.t
> DBD-mysql-3.0007/t/40blobs.t
> DBD-mysql-3.0007/t/40listfields.t
> DBD-mysql-3.0007/t/40nulls.t
> DBD-mysql-3.0007/t/40numrows.t
> DBD-mysql-3.0007/t/41bindparam.t
> DBD-mysql-3.0007/t/41blobs_prepare.t
> DBD-mysql-3.0007/t/42bindparam.t
> DBD-mysql-3.0007/t/50chopblanks.t
> DBD-mysql-3.0007/t/50commit.t
> DBD-mysql-3.0007/t/60leaks.t
> DBD-mysql-3.0007/t/dbdadmin.t
> DBD-mysql-3.0007/t/insertid.t
> DBD-mysql-3.0007/t/lib.pl
> DBD-mysql-3.0007/t/mysql.dbtest
> DBD-mysql-3.0007/t/param_values.t
> DBD-mysql-3.0007/t/._prepare_noerror.t
> DBD-mysql-3.0007/t/prepare_noerror.t
> DBD-mysql-3.0007/t/texecute.t
> DBD-mysql-3.0007/TODO
> Removing previously used /root/.cpan/build/DBD-mysql-3.0007
>
> CPAN.pm: Going to build C/CA/CAPTTOFU/DBD-mysql-3.0007.tar.gz
>
> I will use the following settings for compiling and testing:
>
> cflags (mysql_config) = -I/usr/include/mysql -DBIG_JOINS=1
> embedded (mysql_config) =
> libs (mysql_config) = -L/usr/lib -lmysqlclient -lz -lcrypt -lnsl
> -lm
> mysql_config (guessed ) = mysql_config
> nocatchstderr (default ) = 0
> nofoundrows (default ) = 0
> ssl (guessed ) = 0
> Use of uninitialized value in printf at Makefile.PL line 172, <PIPE> line
> 103.
> test_user ( ) =
> testdb (default ) = test
> testhost (default ) =
> testpassword (default ) =
> testsocket (default ) =
> testuser (default ) =
>
> To change these settings, see 'perl Makefile.PL --help' and
> 'perldoc INSTALL'.
>
> Checking if your kit is complete...
> Looks good
> Using DBI 1.46 (for perl 5.008004 on i386-linux-thread-multi) installed in
> /usr/lib/perl5/auto/DBI/
> Writing Makefile for DBD::mysql
> CPAN: YAML loaded ok
> cp lib/DBD/mysql.pm blib/lib/DBD/mysql.pm
> cp lib/DBD/mysql/GetInfo.pm blib/lib/DBD/mysql/GetInfo.pm
> cp lib/Mysql.pm blib/lib/Mysql.pm
> cp lib/DBD/mysql/INSTALL.pod blib/lib/DBD/mysql/INSTALL.pod
> cp lib/Mysql/Statement.pm blib/lib/Mysql/Statement.pm
> cp lib/Bundle/DBD/mysql.pm blib/lib/Bundle/DBD/mysql.pm
> cc -c -I/usr/lib/perl5/auto/DBI/ -I/usr/include/mysql -DBIG_JOINS=1
> -DDBD_MYSQL_INSERT_ID_IS_GOOD -g -D_REENTRANT -D_GNU_SOURCE
> -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -I/usr/local/include
> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"3.0007\"
> -DXS_VERSION=\"3.0007\" -fPIC "-I/usr/lib/perl/5.8/CORE" dbdimp.c
> dbdimp.c: In function `mysql_st_internal_execute':
> dbdimp.c:2390: parse error before `rows'
> dbdimp.c:2467: `rows' undeclared (first use in this function)
> dbdimp.c:2467: (Each undeclared identifier is reported only once
> dbdimp.c:2467: for each function it appears in.)
> make: *** [dbdimp.o] Error 1
> /usr/bin/make -- NOT OK
> Running make test
> Can't test without successful make
> Running make install
> make had returned bad status, install seems impossible
> Failed during this command:
> CAPTTOFU/DBD-mysql-3.0007.tar.gz : make NO
>
> -
>
> In line 2390 of dbdimp.c i see the "rows" variable declaration in the code
> but not in declaration space. This is correct in C?
>
> How can solve it?
> I need to move the declaration to the top of function?
>
> Normally in install dbd:mysql using CPAN install.
>
> How i can find the patched package .gz?
>
> Regards,
>
> --
> --
> Guillermo Gozalbes
> Versus Soft S.L.
--
MySQL Perl Mailing List
For list archives: http://lists.mysql.com/perl
To unsubscribe: http://lists.mysql.com/[email protected]