Ganesan M wrote:

> Hello all,
> 
> I am trying to get DBD::Informix installed on SCO_SV scosysv 3.2 5.0.6 i386.
> perl, v5.6.1 built for i386-sco
> INFORMIX-ESQL Version 5.10.UD1
> DBI & DBD 1.00.


SCO UNIX System V Release 3.2 Version 5.0.x has rather limited and restrictive shared 
library support, and ESQL/C Version 5.xx makes no pretense at providing shared 
libraries 
on any platforms, let alone one as difficult to manage as SCO.

Consequently, I'm not hugely surprised to find that there are problems.

I strongly recommend (at least considering) a static build of Perl with DBD::Informix.


> When I tried `perl Makefile.PL`
> 
> I got the following error.
> 
> Uh oh!  We're on a machine which does not use the C compiler to
> create shared libraries.  Please consider recompiling Perl using
> the C compiler to create shared libraries; it makes life much
> easier for everyone!
> 
> Unfortunately, you are also using a version of ESQL/C which
> cannot tell us which libraries it needs.  We'll assume that
> esqlld can sort things out for you.  Contact the DBD::Informix
> maintenance team if it doesn't.


Well, let it not be said that you were unwarned.


> I kinda ignored and tried 'make'
> and I got the following error
> 
>         LD_RUN_PATH="" INFORMIXC='/usr/bin/perl esqlld'
> ESQLLD='ld -G -L/usr/loc
> al/lib' ./esql  -G -L/usr/local/lib Informix.o dbdimp.o dbdattr.o sqltoken.o
> sql
> type.o ixblob.o decsci.o odbctype.o link.o esqlcver.o esqlc_v5.o  -o
> blib/arch/a
> uto/DBD/Informix/Informix.so
> 
>        ld: ERROR: Illegal option -- g


OK - so that isn't the way to create shared libraries -- what is?


> I also found the following in Makefile.
> # -G option is used to tell the C compiler to
> # create a shared object.  Unfortunately, the esql script interprets the
> # -G option as 'add debugging' (a case-insensitive version of -g) so it
> # does not get relayed to the actual loader (cc) program.  Hence, use
> # INFORMIXC to define the loader and the LDDLFLAGS via the back door.
> 
> How do I define these via backdoor?
> I would really appreciate any help on this.


Set DBD_INFORMIX_DEBUG_ESQLLD=1 in the environment and see what it does (or look at 
the 
source code).  However, I fear that you may be on a hiding to nothing.  You can also 
look 
very hard at what DBI does as it builds DBI.so, and similar techniques may work for 
the 
DBD::Informix modules themselves.  What will probably still trip you up is the 
addition of 
the non-shared Informix ESQL/C library or libraries.





-- 
Jonathan Leffler ([EMAIL PROTECTED], [EMAIL PROTECTED]) #include <disclaimer.h>
Guardian of DBD::Informix 1.00.PC2 -- http://dbi.perl.org/

Reply via email to