This is a discussion on DBD::Informix 2003.04 and Perl 5.8.1 within the Informix forums, part of the Database Server Software category; --> I know this has been asked before in a post on 29th September 2003, but with nearly a year ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| 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. |
| ||||
| Ben Thompson wrote: > 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. Unused variables aren't too much of a problem. The parse error is due to the presence of this at line 2064 in dbdimp.ec: (void)SvOK_off(sv); This is a known defect - fixed by changing the line to read: sv_setsv(sv, &PL_sv_undef); Answering some later questions - no, Perl 5.8.1 isn't a dead loss, though it is no longer recommended. Personally, I don't use the system supplied Perl on any machine - but then I'm not working in production environments. I'd be very leery of installing extra modules into the system version of Perl, so I'd have to mess around with a private Perl library directory and appropriate environment variables or wrappers. -- Jonathan Leffler #include <disclaimer.h> Email: jleffler@earthlink.net, jleffler@us.ibm.com Guardian of DBD::Informix v2003.04 -- http://dbi.perl.org/ |