A known bug in DBD::Informix.  It's easy to fix.  Upgrade to DBI-1.32 and
your DBD-Informix should then compile.

Christopher S. Cosby
SciCare Software Services
770.236.1128 

> -----Original Message-----
> From: [mailto:[EMAIL PROTECTED]] 
> Sent: Thursday, December 19, 2002 11:31 AM
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: Problem occurred when installing DBD::Informix on SCO
> 
> 
> Dear sir/madam,
> 
> I encountered some problem on installing DBD on SCO.
> My server environment as follow:
> ---------------------------------------------------
> OS: SCO_SV mis 3.2 5.0.6 i386
> 
> C Compiler:
> Reading specs from
> /usr/local/lib/gcc-lib/i486-pc-sco3.2v5.0/2.95/specs
> gcc version 2.95 19990728 (release)
> 
> Perl:
> # perl -V
> Summary of my perl5 (revision 5.0 version 6 subversion
> 0) configuration:
>   Platform:
>     osname=sco3.2v5.0, osvers=5.0.X,
> archname=i486-pc-sco3.2v5.0
>     uname='sco_sv localhost 3.2 5.0.5 i386 '
>     config_args=''
>     hint=recommended, useposix=true,
> d_sigaction=define
>     usethreads=undef use5005threads=undef
> useithreads=undef usemultiplicity=undef
>     useperlio=undef d_sfio=undef uselargefiles=define
>     use64bitint=undef use64bitall=undef
> uselongdouble=undef usesocks=undef
>   Compiler:
>     cc='/usr/local/bin/gcc', optimize='-O0',
> gccversion=
>     cppflags='-UM_XENIX -DPERL_SCO -DPERL_SCO5 -melf'
>     ccflags ='-UM_XENIX -DPERL_SCO -DPERL_SCO5 -melf'
>     stdchar='unsigned char', d_stdstdio=undef,
> usevfork=false
>     intsize=4, longsize=4, ptrsize=4, doublesize=8
>     d_longlong=undef, longlongsize=, d_longdbl=define,
> longdblsize=12
>     ivtype='long', ivsize=4, nvtype='double',
> nvsize=8, Off_t='off_t', lseeksize=4
>     alignbytes=4, usemymalloc=n, prototype=define
>   Linker and Libraries:
>     ld='ld', ldflags =' -L/usr/local/lib'
>     libpth=/lib /usr/lib /usr/ccs/lib /usr/local/lib
>     libs=-lsocket -lnsl -lndbm -ldbm -lld -lm -lc
> -lcrypt -lsec -lPW -lx
>     libc=, so=so, useshrplib=false, libperl=libperl.a
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef,
> ccdlflags='-Wl,-Bexport -L/usr/local/lib'
>     cccdlflags='-fpic', lddlflags='-G
> -L/usr/local/lib'
> 
> Characteristics of this binary (from libperl):
>   Compile-time options: USE_LARGE_FILES
>   Built under sco3.2v5.0
>   Compiled at Jul 27 2000 22:31:17
>   @INC:
>     /usr/lib/perl5/5.6.0/i486-pc-sco3.2v5.0
>     /usr/lib/perl5/5.6.0
>     /usr/lib/perl5/site_perl/5.6.0/i486-pc-sco3.2v5.0
>     /usr/lib/perl5/site_perl/5.6.0
>     /usr/lib/perl5/site_perl
>     .
> 
> # esql -V
> INFORMIX-ESQL Version 5.10.UC1
> Software Serial Number AAC#A674586
> 
> # tbstat -V
> RSAM Version AH5.07.UC3
> 
> # env | more
> CC=/usr/local/bin/gcc
> DBD_INFORMIX_ESQLLD_NO_G_OPTION=Y
> ENV=${_ENVFILE[(_=1)+(_$-=0)-_${-%%*i*}]}
> HOME=/
> HUSHLOGIN=FALSE
> HZ=100
> INFORMIXDIR=/usr/informix
> LOGNAME=root
> MAIL=/usr/spool/mail/root
> PATH=/bin:/etc:/usr/bin:/tcb/bin:/usr/local/bin:/usr/informix/bin
> SHELL=/bin/sh
> TERM=vt100
> TZ=CST-8
> _ENVFILE=/.kshrc
> -----------------------------------------------------------
> The problem in detail is as follow:
> Install DBI-1.14 -> Everything is fine..
> perl Makefile.PL
> make
> make test
> make install
> 
> Install DBD-Informix-1.04.PC1
> My procedures are:
> 1. perl Makefile.PL -> OK
> 2. make -> error
>    Informix.xs: In function
> `XS_DBD__Informix__dr_FETCH':
>    Informix.xs:102: invalid type argument of `->'  
> DBIc_DBISTATE(imp_drh)->get_attr(drh, keysv);
>    *** Error code 1 (bu21)
>    same error also occurred in compiling dbdimp.ec
> 3. Update Informix.xs and dbdimp.ec source code
>    replace DBIc_DBISTATE(imp_drh) with
> ((dbistate_t*)DBIc_DBISTATE(imp_drh))
> 4. make -> OK
> 5. make test -> Only 2% tests OK
> 
>    PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch
> -Iblib/lib -I/usr/lib/perl5/
>    5.6.0/i486-pc-sco3.2v5.0 -I/usr/lib/perl5/5.6.0 -e
> 'use Test::Harness qw(
>    &runtests $verbose); $verbose=0; runtests @ARGV;'
> t/*.t
>    t/t00basic..........install_driver(Informix)
> failed: Can't load 'blib/arch/auto/
>    DBD/Informix/Informix.so' for module DBD::Informix:
> dynamic linker: /usr/bin/perl:
>    relocation error: symbol not found: DBIc_DBISTATE
> at
> /usr/lib/perl5/5.6.0/i486-pc-sco3.2v5.0/DynaLoader.pm
> line 200.
>    at (eval 1) line 3
>    Almost all failed tests due to same above reasons
> 6. Try static build
>    make static -> OK
> 7. make perl -> error
>    Undefined                       first referenced
>    symbol                             in file
>    DBIc_DBISTATE                      
> blib/arch/auto/DBD/Informix/Informix.a(Informix.o)
>    perl: fatal error: Symbol referencing errors. No
> output written to perl
>    collect2: ld returned 1 exit status
>    *** Error code 1 (bu21)
>    *** Error code 1 (bu21)
> ---------------------------------------------------
> I can't find any source code containing DBIc_DBISTATE.
> Please give me advice to solve this problem!!
> 
> Best Regards,
> Brad Kao
> 
> 
> -----------------------------------------------------------------
> 每天都 Yahoo!奇摩 
> 寬頻上網- 盡情享受遊戲、音樂與電影的聲光世界
> adsl.yahoo.com.tw
> 




?????????????????????????????????????????????????????????????????????????


????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????




Reply via email to