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/