Unix Technical Forum

DBD::Informix 2003.04 and Perl 5.8.1

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 ...


Go Back   Unix Technical Forum > Database Server Software > Informix

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 04-20-2008, 07:41 AM
Ben Thompson
 
Posts: n/a
Default DBD::Informix 2003.04 and Perl 5.8.1

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.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 04-20-2008, 07:41 AM
Andrew Hamm
 
Posts: n/a
Default Re: DBD::Informix 2003.04 and Perl 5.8.1

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.


Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 04-20-2008, 07:42 AM
Ben Thompson
 
Posts: n/a
Default Re: DBD::Informix 2003.04 and Perl 5.8.1

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.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 04-20-2008, 07:42 AM
Ben Thompson
 
Posts: n/a
Default Re: DBD::Informix 2003.04 and Perl 5.8.1

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.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 04-20-2008, 07:42 AM
Jonathan Leffler
 
Posts: n/a
Default Re: DBD::Informix 2003.04 and Perl 5.8.1 - line 2064 dbdimp.ec isa known problem (and the solution is below)

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/
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 08:38 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com