DBD::Informix 2003.04 and Perl 5.8.1
Posted in 2004
Topics: Connectivity: ESQL/C, 4GL & Embedded SQL, Platform-Specific Issues
I know this has been asked before in a post on 29th September 2003, but
with nearly a year having passed I was wondering if there was any update
on this.
Can DBD::Informix be made to work with Perl 5.8.1? The following
illustrates the problem:
linux:/usr/src/DBD-Informix-2003.04 # make
INFORMIXC="/usr/bin/perl esqlcc" ESQLCC="cc" esql -c -shared-I/opt/informix/incl/esql
-I/usr/lib/perl5/5.8.1/i586-linux-thread-multi/auto/DBI
-I/usr/lib/perl5/site_perl/5.8.1/i586-linux-thread-multi/auto/DBI
-I/usr/lib/perl5/vendor_perl/5.8.1/i586-linux-thread-multi/auto/DBI
-I/usr/lib/perl5/site_perl/5.8.1/i586-linux-thread-multi/auto/DBI
-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -march=i586 -mcpu=i686
-fmessage-length=0 -Wall -pipe -DVERSION=\\"2003.04\\"
-DXS_VERSION=\\"2003.04\\" -fPIC
-I/usr/lib/perl5/5.8.1/i586-linux-thread-multi/CORE -DESQLC_VERSION=953
-DNDEBUG dbdimp.ec
dbdimp.ec: In function `decgen':
dbdimp.ec:1918: warning: unused variable `sf'
dbdimp.ec: In function `dbd_ix_st_fetch':
dbdimp.ec:2064: error: parse error before '}' token
make: *** [dbdimp.o] Error 1
My system specs are as follows:
OS: SuSE Linux 9.0, DBI 1.43, DBD::Informix 2003.04, Perl 5.81, IDS
9.40.UC3, Client SDK 2.81.TC3.
In the past I resolved this by sticking to SuSE 8.2 which comes with
Perl 5.8.0 (which works) but I have a specific hardware device that
works much better with SuSE 9.0.
Ben.
Ben Thompson wrote: > Can DBD::Informix be made to work with Perl 5.8.1? The following > illustrates the problem: I can't really answer that, but the error message makes me think the C compiler can't cope with a bit of syntax - are you using a recent enough version of gcc perhaps? However, I want to ask - why 5.8.1 specifically? I'm using 5.8.5 and it's a piece of cake. Any new release of 5.8 will be a maintenance release and can be moved to quite freely. 5.10.0 *might* require a bit of caution .... Anyway, if you are 1/2 decent with C then dive into the source files as indicated by that error and try to nutt out what's going on. Often it's a matter of having the correct gcc, appropriate include files, a correct plat-form specific version of CSDK etc. When there's something breaking during a build, it's generally a simple matter of doing a little tweak or applying a more appropreate set of command line flags to gcc; you'll find these flags written into Makefiles and the esqlc script amongst other places.
Andrew Hamm wrote: > However, I want to ask - why 5.8.1 specifically? I'm using 5.8.5 and it's a > piece of cake. Any new release of 5.8 will be a maintenance release and can > be moved to quite freely. 5.10.0 *might* require a bit of caution .... I am only using 5.8.1 because this is what comes with SuSE 9.0. I was trying to avoid having to remove all the RPMs and rebuild from source. If the answer is "forget 5.8.1, use 5.8.5" then that's what I shall have to do. And no, I am hopeless with C so hacking the source isn't an option for me. Ben.
Ben Thompson wrote: > I am only using 5.8.1 because this is what comes with SuSE 9.0. I was > trying to avoid having to remove all the RPMs and rebuild from source. > If the answer is "forget 5.8.1, use 5.8.5" then that's what I shall have > to do. Following up to my own post, it works with SuSE 9.1 and Perl 5.8.3 on another box, which is great. I take it Perl 5.8.1 is a dead loss then as far as DBD::Informix is concerned. Ben.
Related threads
- sql to count nulls (I think)
- Large Databases
- Is there an ODBC driver for Windows 2003 64 bits?
- Re: informix market share
- Re: IDS 7.30 do not start - NT