FAQ
Thanks for getting back to me so fast. We went back and tried to eliminate a few variables and went through the readme files once again. I did a clean compile of Perl 5.8.6 and all modules. We still get the same error. Here are the answers to your questions:

* Version of Perl (5.8.6)
5.8.6
* Version of DBI (1. 48 - you said current)
1.48
* Version of DBD::Informix (2005.01 - you said current)
2005.01
* Version of CSDK or ESQL/C (e.g. 2.90.FC1 - the letters and numbers
can be important)
2.81.HC2.HPUX
* Version of IDS (or SE, XPS, OnLine) - though that is not going to
material this time.
Not sure what you are asking here, sorry.
* Hardware platform (HP-UX, probably PA-RISC rather than Itanium,
32-bit or 64-bit).
64 bit PA-RISC
* O/S Version.
11.11 (11.i)
* Which C compiler you're using - version number\
GCC 3.4.2
* Output of 'perl -V'
XXX:/home/edi/wlsedi/perl/DBD-Informix-2005.01# perl -V
Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
Platform:
osname=hpux, osvers=11.11, archname=PA-RISC2.0
uname='hp-ux l02 b.11.11 u 9000800 135901537 unlimited-user license '
config_args='-Dcc=gcc -d'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-D_HPUX_SOURCE -mpa-risc-2-0 -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-g -O',
cppflags='-D_HPUX_SOURCE -D_HPUX_SOURCE -mpa-risc-2-0 -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include'
ccversion='', gccversion='3.4.2', gccosandvers='hpux11.11'
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='/usr/bin/ld', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
libs=-lnsl -lnm -lndbm -lmalloc -ldld -lm -lcrypt -lsec -lc
perllibs=-lnsl -lnm -lmalloc -ldld -lm -lcrypt -lsec -lc
libc=/lib/libc.sl, so=sl, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-B,deferred '
cccdlflags='-fPIC', lddlflags='-b -L/usr/local/lib'


Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING USE_LARGE_FILES
Built under hpux
Compiled at Apr 6 2005 12:52:28
@INC:
/opt/perl5/lib/5.8.6/PA-RISC2.0
/opt/perl5/lib/5.8.6
/opt/perl5/lib/site_perl/5.8.6/PA-RISC2.0
/opt/perl5/lib/site_perl/5.8.6
/opt/perl5/lib/site_perl
* Did you build this perl or is it one supplied with the o/s.
New biild
* Did you build this perl on this machine.
Yes
* Output of 'perl Makefile.PL'.
Don't have that. Could re-install if necessary.
* Have you built any programs with the CSDK you have installed?
No, this is a new client for us.
* What happened when you tried to build esqlbasic as directed in the
README file?
XXX:/home/edi/wlsedi/perl/perl-5.8.6# esql -o esqlbasic.ec
(Bundled) cc: warning 480: The +Ofastaccess option is available only with the C/ANSI C product; ignored.
ld: Unsatisfied symbol "main" in file <no file>
1 errors.

I suspect the issue is with our SDK client. I am not sure where it needs to be installed. We have database connectivity on this machine via ODBC. I understand that may be an alternative. Our database servers are remote. I have conulted our DBAs and they just are not familiar with the SDK client, etc.

Thanks for any help you can offer. Please let me know if you need addtional details.

Cory


Cory Cox
Analysis and Information Systems
1-800-228-2240 ext 2695

Search Discussions

  • Jonathan Leffler at Apr 7, 2005 at 6:08 pm
    Dear Cory,
    On Apr 7, 2005 6:01 AM, Cory Cox wrote:
    Thanks for getting back to me so fast. We went back and tried to eliminate a few variables and went through the readme files once again. I did a clean compile of Perl 5.8.6 and all modules. We still get the same error. Here are the answers to your questions:

    * Version of Perl (5.8.6)
    5.8.6
    * Version of DBI (1. 48 - you said current)
    1.48
    * Version of DBD::Informix (2005.01 - you said current)
    2005.01
    * Version of CSDK or ESQL/C (e.g. 2.90.FC1 - the letters and numbers
    can be important)
    2.81.HC2.HPUX
    2.81.HC2 is interesting. It is a 32-bit CSDK capable of connecting to
    64-bit servers via shared memory -- at least, that's my understanding
    of it. The H is what indicates that; it is also peculiar to HP-UX.
    It is originally ported to HP-UX 10.20, as I understand it.

    I think this should be OK for use with a 32-bit Perl (see below).

    * Version of IDS (or SE, XPS, OnLine) - though that is not going to
    material this time.
    Not sure what you are asking here, sorry.
    What do you get if you run 'onstat -V'? Is the IDS server running on
    the HP machine - or is it in fact somewhere else?

    For example, (give or take some spaces) I get:
    $ onstat -V
    IBM Informix Dynamic Server Version 10.00.UC1 Software Serial Number AAA#B000000
    $

    The bit that is interesting is 10.00.UC1 in this case.
    * Hardware platform (HP-UX, probably PA-RISC rather than Itanium,
    32-bit or 64-bit).
    64 bit PA-RISC
    * O/S Version.
    11.11 (11.i)
    * Which C compiler you're using - version number\
    GCC 3.4.2
    * Output of 'perl -V'
    XXX:/home/edi/wlsedi/perl/DBD-Informix-2005.01# perl -V
    Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
    Platform:
    osname=hpux, osvers=11.11, archname=PA-RISC2.0
    uname='hp-ux l02 b.11.11 u 9000800 135901537 unlimited-user license '
    config_args='-Dcc=gcc -d'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    The two 64-bit defines here say '32-bit Perl'.
    usemymalloc=n, bincompat5005=undef
    Compiler:
    cc='gcc', ccflags ='-D_HPUX_SOURCE -mpa-risc-2-0 -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-g -O',
    cppflags='-D_HPUX_SOURCE -D_HPUX_SOURCE -mpa-risc-2-0 -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion='', gccversion='3.4.2', gccosandvers='hpux11.11'
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    OK - this counts as a 32-bit Perl; longsize and ptrsize would have to
    be 8 for it to count as a 64-bit Perl. In this context, I think
    that's correct - the code generated by Perl should be compatible with
    the code generated by ESQL/C and in the ESQL/C libraries. We may yet
    have to do some verification on that - analyzing the binaries and
    object files and shared libraries with the file command.

    For example, on Solaris 8, I can do:

    $ gcc -m64 -c file.c -o file-64.o
    $ gcc -m32 -c file.c -o file-32.o
    $ file file-??.o
    file-32.o: ELF 32-bit MSB relocatable SPARC Version 1
    file-64.o: ELF 64-bit MSB relocatable SPARCV9 Version 1
    $

    This identifies the difference between 32-bit and 64-bit object files
    very clearly.

    We may need to establish how you create 64-bit binaries for your
    platform. OTOH, you seem to have a 32-bit Perl and a 32-bit CSDK, so
    we should be able to get the two to work together.
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
    Linker and Libraries:
    ld='/usr/bin/ld', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
    libs=-lnsl -lnm -lndbm -lmalloc -ldld -lm -lcrypt -lsec -lc
    perllibs=-lnsl -lnm -lmalloc -ldld -lm -lcrypt -lsec -lc
    libc=/lib/libc.sl, so=sl, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
    Dynamic Linking:
    dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-B,deferred '
    cccdlflags='-fPIC', lddlflags='-b -L/usr/local/lib'

    Characteristics of this binary (from libperl):
    Compile-time options: DEBUGGING USE_LARGE_FILES
    Built under hpux
    Compiled at Apr 6 2005 12:52:28
    @INC:
    /opt/perl5/lib/5.8.6/PA-RISC2.0
    /opt/perl5/lib/5.8.6
    /opt/perl5/lib/site_perl/5.8.6/PA-RISC2.0
    /opt/perl5/lib/site_perl/5.8.6
    /opt/perl5/lib/site_perl
    * Did you build this perl or is it one supplied with the o/s.
    New biild
    * Did you build this perl on this machine.
    Yes
    That's good - it usually makes things easier.
    * Output of 'perl Makefile.PL'.
    Don't have that. Could re-install if necessary.
    This is the output of 'perl Makefile.PL' for DBD::Informix - I don't
    really need to see any other 'perl Makefile.PL' output. But please
    run:

    DBD_INFORMIX_DEBUG_ESQLTEST=yes perl Makefile.PL 2>&1 | tee dbdix.log

    I'd like to see the resulting dbdix.log file.
    * Have you built any programs with the CSDK you have installed?
    No, this is a new client for us.
    OK - let's debug CSDK before we attempt to go very much further (I'd
    still like the dbdix.log file, though)..
    * What happened when you tried to build esqlbasic as directed in the
    README file?
    XXX:/home/edi/wlsedi/perl/perl-5.8.6# esql -o esqlbasic.ec
    (Bundled) cc: warning 480: The +Ofastaccess option is available only with the C/ANSI C product; ignored.
    ld: Unsatisfied symbol "main" in file <no file>
    1 errors.
    You need to use GCC, not the (Bundled) cc.

    And I misled you on the command line, I fear (but the README etc has it right).

    Rerun with (one line):

    INFORMIXC="gcc -mpa-risc-2-0" esql -o esqlbasic -DESQLC_VERSION=953
    esqlbasic.ec esqlc_v6.ec

    Or:

    export INFORMIXC="gcc -mpa-risc-2-0"
    esql -o esqlbasic -DESQLC_VERSION=953 esqlbasic.ec esqlc_v6.ec

    We're likely to find more problems as we go - but I think we need to
    get your CSDK to build a working program (esqlbasic) before we go any
    further.

    Did you make a local copy of $INFORMIXDIR/bin/esql? If so, we should
    ensure that's what you run (added "./"):

    export INFORMIXC="gcc -mpa-risc-2-0"
    ./esql -o esqlbasic -DESQLC_VERSION=953 esqlbasic.ec esqlc_v6.ec

    You only need to do the export once, of course, unless you add or
    subtract options.
    We may end up adding flags to INFORMIXC as we progress.

    One check that might be worth doing:

    file $INFORMIXDIR/lib/esql/checkapi.o esqlbasic.o

    (If you don't have esqlbasic.o, recompile with -c instead of '-o esqlbasic').

    If the output is not the same apart from the file name, we've got
    problems - we need to make the object files match.
    I suspect the issue is with our SDK client. I am not sure where it needs to be installed.
    We have database connectivity on this machine via ODBC. I understand that may be
    an alternative. Our database servers are remote. I have conulted our DBAs and they
    just are not familiar with the SDK client, etc.
    Agreed - getting CSDK to work with GCC is step 1. Then we can take it
    from there.
    Thanks for any help you can offer. Please let me know if you need addtional details.

    Cory


    Cory Cox
    Analysis and Information Systems
    1-800-228-2240 ext 2695
    For any dbi-dev people listening, this is why I have the code in 'perl
    Makefile.PL' to ensure that the basic software DBD::Informix that is
    supposed to use actually works. This isn't sniping at Cory - he's
    somewhat the victim in the middle of this. But, being able to
    disentangle the basic problem that CSDK - the Informix connectivity
    product - is having issues (mainly because it assumes you'll use the
    HP C compiler and not GCC), rather than it being a Perl + DBI issue,
    is a key part of sorting these things out cleanly.

    --
    Jonathan Leffler <jonathan.leffler@gmail.com> #include <disclaimer.h>
    Guardian of DBD::Informix - v2005.01 - http://dbi.perl.org
    "I don't suffer from insanity - I enjoy every minute of it."
  • Cory Cox at Apr 7, 2005 at 8:20 pm
    Jonathan,

    Q1
    * Version of IDS (or SE, XPS, OnLine) - though that is not going to
    material this time.
    Not sure what you are asking here, sorry.
    What do you get if you run 'onstat -V'? Is the IDS server running on
    the HP machine - or is it in fact somewhere else?

    For example, (give or take some spaces) I get:
    $ onstat -V
    IBM Informix Dynamic Server Version 10.00.UC1 Software Serial Number AAA#B000000
    $

    The bit that is interesting is 10.00.UC1 in this case.

    Q1A - The database server is running on another machine on the network.

    Q2

    This is the output of 'perl Makefile.PL' for DBD::Informix - I don't
    really need to see any other 'perl Makefile.PL' output. But please
    run:

    DBD_INFORMIX_DEBUG_ESQLTEST=yes perl Makefile.PL 2>&1 | tee dbdix.log

    I'd like to see the resulting dbdix.log file.

    Q2A:
    l02:/home/edi/wlsedi/perl/DBD-Informix-2005.01# DBD_INFORMIX_DEBUG_ESQLTEST=yes sudo perl Makefile.PL 2>&1 | tee dbdix.log
    *** ExtUtils::AutoInstall version 0.61
    *** Checking for dependencies...
    [Core Features]
    - DBI ...loaded. (1.48 >= 1.38)
    [High Resolution Timing]
    - Time::HiRes ...loaded. (1.66)
    [POD Format Testing]
    - Test::Pod ...loaded. (1.20)
    *** ExtUtils::AutoInstall configuration finished.
    Subroutine main::WriteMakefile redefined at /opt/perl5/lib/site_perl/5.8.6/ExtUtils/AutoInstall.pm line 487.

    Configuring IBM Informix Database Driver for Perl DBI Version 2005.01 (2005-03-14) (aka DBD::Informix)
    You are using DBI version 1.48 and Perl version 5.008006
    Remember to actually read the README file!

    Perl: perl v5.008006 PA-RISC2.0 dl_hpux.xs
    System: hp-ux l02 b.11.11 u 9000800 135901537 unlimited-user license
    Using INFORMIXDIR=/home/harbinger/tle/6_0/odbcHPUX and ESQL/C compiler esql
    Using IBM Informix CSDK Version 2.81, IBM Informix-ESQL Version 9.53.FC1 from /home/harbinger/tle/6_0/odbcHPUX

    Beware: DBD::Informix is not yet aware of all the new IUS data types.

    Assert macro will be disabled!

    lib/DBD/Informix/Defaults.pm written OK
    esqlvrsn.h written OK
    esqlinfo.h written OK

    Testing whether your Informix test environment will work...
    ccflag = <<-D_HPUX_SOURCE>>
    ccflag = <<-mpa-risc-2-0>>
    ccflag = <<-DDEBUGGING>>
    ccflag = <<-fno-strict-aliasing>>
    ccflag = <<-pipe>>
    ccflag = <<-I/usr/local/include>>
    ccflag = <<-D_LARGEFILE_SOURCE>>
    ccflag = <<-D_FILE_OFFSET_BITS=64>>
    cppflag = <<-DESQLC_VERSION=953>>
    cppflag = <<-DNDEBUG>>
    cppflag = <<-DUSE_REAL_MALLOC>>
    +ec+ <<esql>>
    +ec+ <<-c>>
    +ec+ <<-D_HPUX_SOURCE>>
    +ec+ <<-mpa-risc-2-0>>
    +ec+ <<-DDEBUGGING>>
    +ec+ <<-fno-strict-aliasing>>
    +ec+ <<-pipe>>
    +ec+ <<-I/usr/local/include>>
    +ec+ <<-D_LARGEFILE_SOURCE>>
    +ec+ <<-D_FILE_OFFSET_BITS=64>>
    +ec+ <<-DESQLC_VERSION=953>>
    +ec+ <<-DNDEBUG>>
    +ec+ <<-DUSE_REAL_MALLOC>>
    +ec+ <<esqltest.ec>>
    + setenv INFORMIXC = /opt/perl5/bin/perl esqlcc
    + setenv ESQLCC = gcc
    + <<esql -c -D_HPUX_SOURCE -mpa-risc-2-0 -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DESQLC_VERSION=953 -DNDEBUG -DUSE_REAL_MALLOC esqltest.ec>>
    gcc: +Ofastaccess: No such file or directory
    gcc: +DS2.0: No such file or directory
    gcc: +DA2.0W: No such file or directory
    . esqlc.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/datetime.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/ifxtypes.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/decimal.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/decimal.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/locator.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/int8.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlca.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlda.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlstype.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqltypes.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/varchar.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlhdr.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlda.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlca.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/collct.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/locator.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/datetime.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/value.h
    .... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/blob.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqliapi.h
    .. esqltype.h
    . /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/stdio.h
    .. /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/stdarg.h
    .. /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/sys/stdsyms.h
    .. /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/sys/types.h
    ... /usr/include/sys/_inttypes.h
    ... /usr/include/machine/vmtypes.h
    ... /usr/include/sys/_fd_macros.h
    .. /usr/include/sys/_null.h
    .. /usr/include/sys/_size_t.h
    . /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/stdlib.h
    .. /usr/include/sys/_wchar_t.h
    .. /usr/include/sys/wait.h
    ... /usr/include/sys/resource.h
    .... /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/sys/time.h
    ..... /usr/include/sys/sigevent.h
    .... /usr/include/sys/_rlimit_body.h
    ... /usr/include/sys/signal.h
    .... /usr/include/sys/siginfo.h
    .... /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/sys/newsig.h
    ..... /usr/include/machine/save_state.h
    .... /usr/include/machine/save_state.h
    .... /usr/include/machine/frame.h
    .... /usr/include/sys/syscall.h
    ..... /usr/include/sys/scall_define.h
    ..... /usr/include/machine/sys/syscall.h
    .... /usr/include/machine/sys/sigcontext.h
    .. /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/pwd.h
    .. /usr/include/errno.h
    ... /usr/include/sys/errno.h
    . /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/string.h
    .. /usr/include/sys/_null.h
    . esqlperl.h
    .. ixblob.h
    Failed to compile esqltest.ec to esqltest.o
    # Looks like your test died before it could output anything.

    Q3

    export INFORMIXC="gcc -mpa-risc-2-0"
    esql -o esqlbasic -DESQLC_VERSION=953 esqlbasic.ec esqlc_v6.ec

    QA3

    l02:/home/edi/wlsedi/perl/DBD-Informix-2005.01# sudo esql -c esqlbasic -DESQLC_VERSION=953 esqlbasic.ec esqlc_v6.ec
    gcc: +Ofastaccess: No such file or directory
    gcc: +DS2.0: No such file or directory
    gcc: +DA2.0W: No such file or directory
    gcc: esqlbasic: No such file or directory
    . /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlhdr.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/ifxtypes.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlda.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlca.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/collct.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/int8.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/locator.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/datetime.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/decimal.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/value.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/blob.h
    . /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqliapi.h
    . /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/stdio.h
    .. /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/stdarg.h
    .. /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/sys/stdsyms.h
    .. /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/sys/types.h
    ... /usr/include/sys/_inttypes.h
    ... /usr/include/machine/vmtypes.h
    ... /usr/include/sys/_fd_macros.h
    .. /usr/include/sys/_null.h
    .. /usr/include/sys/_size_t.h
    . /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/stdlib.h
    .. /usr/include/sys/_wchar_t.h
    .. /usr/include/sys/wait.h
    ... /usr/include/sys/resource.h
    .... /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/sys/time.h
    ..... /usr/include/sys/sigevent.h
    .... /usr/include/sys/_rlimit_body.h
    ... /usr/include/sys/signal.h
    .... /usr/include/sys/siginfo.h
    .... /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/sys/newsig.h
    ..... /usr/include/machine/save_state.h
    .... /usr/include/machine/save_state.h
    .... /usr/include/machine/frame.h
    .... /usr/include/sys/syscall.h
    ..... /usr/include/sys/scall_define.h
    ..... /usr/include/machine/sys/syscall.h
    .... /usr/include/machine/sys/sigcontext.h
    .. /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/pwd.h
    .. /usr/include/errno.h
    ... /usr/include/sys/errno.h
    . /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/string.h
    .. /usr/include/sys/_null.h
    . /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlhdr.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/ifxtypes.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlda.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlca.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/collct.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/int8.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/locator.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/datetime.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/decimal.h
    .. /home/harbinger/tle/6_0/odbcHPUX/incl/esql/value.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/blob.h
    . /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqliapi.h
    . /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/string.h
    .. /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/sys/stdsyms.h
    .. /usr/include/sys/_inttypes.h
    .. /usr/include/sys/_null.h
    .. /usr/include/sys/_size_t.h
    . /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/stdlib.h
    .. /usr/include/sys/_wchar_t.h
    .. /usr/include/sys/wait.h
    ... /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/sys/types.h
    .... /usr/include/machine/vmtypes.h
    .... /usr/include/sys/_fd_macros.h
    ... /usr/include/sys/resource.h
    .... /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/sys/time.h
    ..... /usr/include/sys/sigevent.h
    .... /usr/include/sys/_rlimit_body.h
    ... /usr/include/sys/signal.h
    .... /usr/include/sys/siginfo.h
    .... /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/sys/newsig.h
    ..... /usr/include/machine/save_state.h
    .... /usr/include/machine/save_state.h
    .... /usr/include/machine/frame.h
    .... /usr/include/sys/syscall.h
    ..... /usr/include/sys/scall_define.h
    ..... /usr/include/machine/sys/syscall.h
    .... /usr/include/machine/sys/sigcontext.h
    .. /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/pwd.h
    ... /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/stdio.h
    .... /usr/local/lib/gcc/hppa2.0w-hp-hpux11.11/3.4.2/include/stdarg.h
    .... /usr/include/sys/_null.h
    .. /usr/include/errno.h
    ... /usr/include/sys/errno.h
    . esqlperl.h
    .. esqlc.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/datetime.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/decimal.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/locator.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlca.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlda.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqlstype.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/sqltypes.h
    ... /home/harbinger/tle/6_0/odbcHPUX/incl/esql/varchar.h
    ... esqltype.h
    .. ixblob.h

    Q4

    l02:/home/edi/wlsedi/perl/DBD-Informix-2005.01# file $INFORMIXDIR/lib/esql/checkapi.o esqlbasic.o
    /home/harbinger/tle/6_0/odbcHPUX/lib/esql/checkapi.o: ELF-64 relocatable object file - PA-RISC 2.0 (LP64)
    esqlbasic.o: PA-RISC2.0 relocatable object

    I hope this helps.

    Cory













    -----Original Message-----
    From: Jonathan Leffler
    Sent: Thursday, April 07, 2005 1:09 PM
    To: Cory Cox
    Cc: dbi-users@perl.org; Guardian of DBD::Informix
    Subject: Re: Install Issues With Perl DBD For Informix


    Dear Cory,
    On Apr 7, 2005 6:01 AM, Cory Cox wrote:
    Thanks for getting back to me so fast. We went back and tried to eliminate a few variables and went through the readme files once again. I did a clean compile of Perl 5.8.6 and all modules. We still get the same error. Here are the answers to your questions:

    * Version of Perl (5.8.6)
    5.8.6
    * Version of DBI (1. 48 - you said current)
    1.48
    * Version of DBD::Informix (2005.01 - you said current)
    2005.01
    * Version of CSDK or ESQL/C (e.g. 2.90.FC1 - the letters and numbers
    can be important)
    2.81.HC2.HPUX
    2.81.HC2 is interesting. It is a 32-bit CSDK capable of connecting to
    64-bit servers via shared memory -- at least, that's my understanding
    of it. The H is what indicates that; it is also peculiar to HP-UX.
    It is originally ported to HP-UX 10.20, as I understand it.

    I think this should be OK for use with a 32-bit Perl (see below).

    * Version of IDS (or SE, XPS, OnLine) - though that is not going to
    material this time.
    Not sure what you are asking here, sorry.
    What do you get if you run 'onstat -V'? Is the IDS server running on
    the HP machine - or is it in fact somewhere else?

    For example, (give or take some spaces) I get:
    $ onstat -V
    IBM Informix Dynamic Server Version 10.00.UC1 Software Serial Number AAA#B000000
    $

    The bit that is interesting is 10.00.UC1 in this case.
    * Hardware platform (HP-UX, probably PA-RISC rather than Itanium,
    32-bit or 64-bit).
    64 bit PA-RISC
    * O/S Version.
    11.11 (11.i)
    * Which C compiler you're using - version number\
    GCC 3.4.2
    * Output of 'perl -V'
    XXX:/home/edi/wlsedi/perl/DBD-Informix-2005.01# perl -V
    Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
    Platform:
    osname=hpux, osvers=11.11, archname=PA-RISC2.0
    uname='hp-ux l02 b.11.11 u 9000800 135901537 unlimited-user license '
    config_args='-Dcc=gcc -d'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    The two 64-bit defines here say '32-bit Perl'.
    usemymalloc=n, bincompat5005=undef
    Compiler:
    cc='gcc', ccflags ='-D_HPUX_SOURCE -mpa-risc-2-0 -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-g -O',
    cppflags='-D_HPUX_SOURCE -D_HPUX_SOURCE -mpa-risc-2-0 -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion='', gccversion='3.4.2', gccosandvers='hpux11.11'
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    OK - this counts as a 32-bit Perl; longsize and ptrsize would have to
    be 8 for it to count as a 64-bit Perl. In this context, I think
    that's correct - the code generated by Perl should be compatible with
    the code generated by ESQL/C and in the ESQL/C libraries. We may yet
    have to do some verification on that - analyzing the binaries and
    object files and shared libraries with the file command.

    For example, on Solaris 8, I can do:

    $ gcc -m64 -c file.c -o file-64.o
    $ gcc -m32 -c file.c -o file-32.o
    $ file file-??.o
    file-32.o: ELF 32-bit MSB relocatable SPARC Version 1
    file-64.o: ELF 64-bit MSB relocatable SPARCV9 Version 1
    $

    This identifies the difference between 32-bit and 64-bit object files
    very clearly.

    We may need to establish how you create 64-bit binaries for your
    platform. OTOH, you seem to have a 32-bit Perl and a 32-bit CSDK, so
    we should be able to get the two to work together.
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
    Linker and Libraries:
    ld='/usr/bin/ld', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
    libs=-lnsl -lnm -lndbm -lmalloc -ldld -lm -lcrypt -lsec -lc
    perllibs=-lnsl -lnm -lmalloc -ldld -lm -lcrypt -lsec -lc
    libc=/lib/libc.sl, so=sl, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
    Dynamic Linking:
    dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-B,deferred '
    cccdlflags='-fPIC', lddlflags='-b -L/usr/local/lib'

    Characteristics of this binary (from libperl):
    Compile-time options: DEBUGGING USE_LARGE_FILES
    Built under hpux
    Compiled at Apr 6 2005 12:52:28
    @INC:
    /opt/perl5/lib/5.8.6/PA-RISC2.0
    /opt/perl5/lib/5.8.6
    /opt/perl5/lib/site_perl/5.8.6/PA-RISC2.0
    /opt/perl5/lib/site_perl/5.8.6
    /opt/perl5/lib/site_perl
    * Did you build this perl or is it one supplied with the o/s.
    New biild
    * Did you build this perl on this machine.
    Yes
    That's good - it usually makes things easier.
    * Output of 'perl Makefile.PL'.
    Don't have that. Could re-install if necessary.
    This is the output of 'perl Makefile.PL' for DBD::Informix - I don't
    really need to see any other 'perl Makefile.PL' output. But please
    run:

    DBD_INFORMIX_DEBUG_ESQLTEST=yes perl Makefile.PL 2>&1 | tee dbdix.log

    I'd like to see the resulting dbdix.log file.
    * Have you built any programs with the CSDK you have installed?
    No, this is a new client for us.
    OK - let's debug CSDK before we attempt to go very much further (I'd
    still like the dbdix.log file, though)..
    * What happened when you tried to build esqlbasic as directed in the
    README file?
    XXX:/home/edi/wlsedi/perl/perl-5.8.6# esql -o esqlbasic.ec
    (Bundled) cc: warning 480: The +Ofastaccess option is available only with the C/ANSI C product; ignored.
    ld: Unsatisfied symbol "main" in file <no file>
    1 errors.
    You need to use GCC, not the (Bundled) cc.

    And I misled you on the command line, I fear (but the README etc has it right).

    Rerun with (one line):

    INFORMIXC="gcc -mpa-risc-2-0" esql -o esqlbasic -DESQLC_VERSION=953
    esqlbasic.ec esqlc_v6.ec

    Or:

    export INFORMIXC="gcc -mpa-risc-2-0"
    esql -o esqlbasic -DESQLC_VERSION=953 esqlbasic.ec esqlc_v6.ec

    We're likely to find more problems as we go - but I think we need to
    get your CSDK to build a working program (esqlbasic) before we go any
    further.

    Did you make a local copy of $INFORMIXDIR/bin/esql? If so, we should
    ensure that's what you run (added "./"):

    export INFORMIXC="gcc -mpa-risc-2-0"
    ./esql -o esqlbasic -DESQLC_VERSION=953 esqlbasic.ec esqlc_v6.ec

    You only need to do the export once, of course, unless you add or
    subtract options.
    We may end up adding flags to INFORMIXC as we progress.

    One check that might be worth doing:

    file $INFORMIXDIR/lib/esql/checkapi.o esqlbasic.o

    (If you don't have esqlbasic.o, recompile with -c instead of '-o esqlbasic').

    If the output is not the same apart from the file name, we've got
    problems - we need to make the object files match.
    I suspect the issue is with our SDK client. I am not sure where it needs to be installed.
    We have database connectivity on this machine via ODBC. I understand that may be
    an alternative. Our database servers are remote. I have conulted our DBAs and they
    just are not familiar with the SDK client, etc.
    Agreed - getting CSDK to work with GCC is step 1. Then we can take it
    from there.
    Thanks for any help you can offer. Please let me know if you need addtional details.

    Cory


    Cory Cox
    Analysis and Information Systems
    1-800-228-2240 ext 2695
    For any dbi-dev people listening, this is why I have the code in 'perl
    Makefile.PL' to ensure that the basic software DBD::Informix that is
    supposed to use actually works. This isn't sniping at Cory - he's
    somewhat the victim in the middle of this. But, being able to
    disentangle the basic problem that CSDK - the Informix connectivity
    product - is having issues (mainly because it assumes you'll use the
    HP C compiler and not GCC), rather than it being a Perl + DBI issue,
    is a key part of sorting these things out cleanly.

    --
    Jonathan Leffler <jonathan.leffler@gmail.com> #include <disclaimer.h>
    Guardian of DBD::Informix - v2005.01 - http://dbi.perl.org
    "I don't suffer from insanity - I enjoy every minute of it."
  • Jonathan Leffler at Apr 8, 2005 at 3:28 am

    Cory Cox wrote:
    Jonathan,

    Q1
    * Version of IDS (or SE, XPS, OnLine) - though that is not going to
    material this time.
    Q1A - The database server is running on another machine on the network.
    OK - it doesn't matter.
    Q2
    This is the output of 'perl Makefile.PL' for DBD::Informix

    Perl: perl v5.008006 PA-RISC2.0 dl_hpux.xs
    System: hp-ux l02 b.11.11 u 9000800 135901537 unlimited-user license
    Using INFORMIXDIR=/home/harbinger/tle/6_0/odbcHPUX and ESQL/C compiler esql
    Using IBM Informix CSDK Version 2.81, IBM Informix-ESQL Version 9.53.FC1 from /home/harbinger/tle/6_0/odbcHPUX
    So, you're using CSDK 2.81.FC1, not 2.81.HC1 as previously asserted.

    That letter is all-important - FC1 is a 64-bit version of CSDK, but your
    Perl and GCC by default use 32-bit, and we haven't worked out how to
    turn on a 64-bit compilation. (This is why I ask to see the original
    output - it tells me answers to questions that people don't know the
    answer too.)

    [...snip...]
    Q3

    export INFORMIXC="gcc -mpa-risc-2-0"
    esql -o esqlbasic -DESQLC_VERSION=953 esqlbasic.ec esqlc_v6.ec

    QA3

    l02:/home/edi/wlsedi/perl/DBD-Informix-2005.01# sudo esql -c esqlbasic -DESQLC_VERSION=953 esqlbasic.ec esqlc_v6.ec
    Woah! sudo? Well, on your own head be it. But I don't like having to
    run compilations as root - and never do.
    Q4

    l02:/home/edi/wlsedi/perl/DBD-Informix-2005.01# file $INFORMIXDIR/lib/esql/checkapi.o esqlbasic.o
    /home/harbinger/tle/6_0/odbcHPUX/lib/esql/checkapi.o: ELF-64 relocatable object file - PA-RISC 2.0 (LP64)
    esqlbasic.o: PA-RISC2.0 relocatable object
    Yes, it does help - a lot (though the CSDK version number tells the same
    story). As you can see, there's a huge difference between the file
    types. Clearly, checkapi.o is a 64-bit file; by inference, esqlbasic.o
    is not. Those two do not mix.

    Since the server is not even on the local machine, I'd simply go and get
    the 32-bit (2.81.UC2) version of CSDK installed and run with that.

    You might also remember that one of the very first things we did was
    modify (a copy of) the esql script to remove flags peculiar to the HP C
    compiler. You might think it worthwhile to make a copy of the esql
    script in $INFORMIXDIR/bin, and then edit the file there, instead of
    making a copy in DBD::Informix's build directory. OTOH, it may still be
    better to work out the kinks on a local copy before modifying the
    version in $INFORMIXDIR/bin. You need to do this to avoid the problems
    with GCC wittering about +DS2.0 not being found.

    --
    Jonathan Leffler (jleffler@earthlink.net, jleffler@us.ibm.com) #include
    <disclaimer.h>
    Guardian of DBD::Informix v2005.01 -- http://dbi.perl.org/
  • Cory Cox at Apr 18, 2005 at 9:44 pm
    The saga continues. Does anyone recogize the error below. We have reinstalled the 32 bit SDK client and attempted to compile the DBD module.

    *** ExtUtils::AutoInstall version 0.61
    *** Checking for dependencies...
    [Core Features]
    - DBI ...loaded. (1.48 >= 1.38)
    [High Resolution Timing]
    - Time::HiRes ...loaded. (1.66)
    [POD Format Testing]
    - Test::Pod ...loaded. (1.20)
    *** ExtUtils::AutoInstall configuration finished.
    Subroutine main::WriteMakefile redefined at /opt/perl5/lib/site_perl/5.8.6/ExtUtils/AutoInstall.pm line 487.

    Configuring IBM Informix Database Driver for Perl DBI Version 2005.01 (2005-03-14) (aka DBD::Informix)
    You are using DBI version 1.48 and Perl version 5.008006
    Remember to actually read the README file!

    Perl: perl v5.008006 PA-RISC2.0 dl_hpux.xs
    System: hp-ux l02 b.11.11 u 9000800 135901537 unlimited-user license
    Using INFORMIXDIR=/home/informix/iif2000/ids_9.40_FC3 and ESQL/C compiler esql
    Using IBM Informix CSDK Version 2.81, IBM Informix-ESQL Version 9.53.HC2 from /home/informix/iif2000/ids_9.40_FC3

    Beware: DBD::Informix is not yet aware of all the new IUS data types.

    Assert macro will be disabled!

    lib/DBD/Informix/Defaults.pm written OK
    esqlvrsn.h written OK
    esqlinfo.h written OK

    Testing whether your Informix test environment will work...
    gcc: +DS2.0: No such file or directory
    gcc: +DA1.1: No such file or directory
    Failed to compile esqltest.ec to esqltest.o
    # Looks like your test died before it could output anything.

    Any help would be greatly appreciated.

    Thanks,

    Cory


    -----Original Message-----
    From: Jonathan Leffler
    Sent: Thursday, April 07, 2005 10:28 PM
    To: Cory Cox
    Cc: dbi-users@perl.org; Guardian of DBD::Informix
    Subject: Re: Install Issues With Perl DBD For Informix


    Cory Cox wrote:
    Jonathan,

    Q1
    * Version of IDS (or SE, XPS, OnLine) - though that is not going to
    material this time.
    Q1A - The database server is running on another machine on the network.
    OK - it doesn't matter.
    Q2
    This is the output of 'perl Makefile.PL' for DBD::Informix

    Perl: perl v5.008006 PA-RISC2.0 dl_hpux.xs
    System: hp-ux l02 b.11.11 u 9000800 135901537 unlimited-user license
    Using INFORMIXDIR=/home/harbinger/tle/6_0/odbcHPUX and ESQL/C compiler esql
    Using IBM Informix CSDK Version 2.81, IBM Informix-ESQL Version 9.53.FC1 from /home/harbinger/tle/6_0/odbcHPUX
    So, you're using CSDK 2.81.FC1, not 2.81.HC1 as previously asserted.

    That letter is all-important - FC1 is a 64-bit version of CSDK, but your
    Perl and GCC by default use 32-bit, and we haven't worked out how to
    turn on a 64-bit compilation. (This is why I ask to see the original
    output - it tells me answers to questions that people don't know the
    answer too.)

    [...snip...]
    Q3

    export INFORMIXC="gcc -mpa-risc-2-0"
    esql -o esqlbasic -DESQLC_VERSION=953 esqlbasic.ec esqlc_v6.ec

    QA3

    l02:/home/edi/wlsedi/perl/DBD-Informix-2005.01# sudo esql -c esqlbasic -DESQLC_VERSION=953 esqlbasic.ec esqlc_v6.ec
    Woah! sudo? Well, on your own head be it. But I don't like having to
    run compilations as root - and never do.
    Q4

    l02:/home/edi/wlsedi/perl/DBD-Informix-2005.01# file $INFORMIXDIR/lib/esql/checkapi.o esqlbasic.o
    /home/harbinger/tle/6_0/odbcHPUX/lib/esql/checkapi.o: ELF-64 relocatable object file - PA-RISC 2.0 (LP64)
    esqlbasic.o: PA-RISC2.0 relocatable object
    Yes, it does help - a lot (though the CSDK version number tells the same
    story). As you can see, there's a huge difference between the file
    types. Clearly, checkapi.o is a 64-bit file; by inference, esqlbasic.o
    is not. Those two do not mix.

    Since the server is not even on the local machine, I'd simply go and get
    the 32-bit (2.81.UC2) version of CSDK installed and run with that.

    You might also remember that one of the very first things we did was
    modify (a copy of) the esql script to remove flags peculiar to the HP C
    compiler. You might think it worthwhile to make a copy of the esql
    script in $INFORMIXDIR/bin, and then edit the file there, instead of
    making a copy in DBD::Informix's build directory. OTOH, it may still be
    better to work out the kinks on a local copy before modifying the
    version in $INFORMIXDIR/bin. You need to do this to avoid the problems
    with GCC wittering about +DS2.0 not being found.

    --
    Jonathan Leffler (jleffler@earthlink.net, jleffler@us.ibm.com) #include
    <disclaimer.h>
    Guardian of DBD::Informix v2005.01 -- http://dbi.perl.org/
  • Jonathan Leffler at Apr 19, 2005 at 2:44 am

    On 4/18/05, Cory Cox wrote:
    The saga continues. Does anyone recogize the error below. Oh yes...
    We have reinstalled the 32 bit SDK client and attempted to compile the DBD module.

    *** ExtUtils::AutoInstall version 0.61
    *** Checking for dependencies...
    [Core Features]
    - DBI ...loaded. (1.48 >= 1.38)
    [High Resolution Timing]
    - Time::HiRes ...loaded. (1.66)
    [POD Format Testing]
    - Test::Pod ...loaded. (1.20)
    *** ExtUtils::AutoInstall configuration finished.
    Subroutine main::WriteMakefile redefined at /opt/perl5/lib/site_perl/5.8.6/ExtUtils/AutoInstall.pm line 487.

    Configuring IBM Informix Database Driver for Perl DBI Version 2005.01 (2005-03-14) (aka DBD::Informix)
    You are using DBI version 1.48 and Perl version 5.008006
    Remember to actually read the README file!

    Perl: perl v5.008006 PA-RISC2.0 dl_hpux.xs
    System: hp-ux l02 b.11.11 u 9000800 135901537 unlimited-user license
    Using INFORMIXDIR=/home/informix/iif2000/ids_9.40_FC3 and ESQL/C compiler esql
    Using IBM Informix CSDK Version 2.81, IBM Informix-ESQL Version 9.53.HC2 from /home/informix/iif2000/ids_9.40_FC3

    Beware: DBD::Informix is not yet aware of all the new IUS data types.

    Assert macro will be disabled!

    lib/DBD/Informix/Defaults.pm written OK
    esqlvrsn.h written OK
    esqlinfo.h written OK

    Testing whether your Informix test environment will work...
    gcc: +DS2.0: No such file or directory
    gcc: +DA1.1: No such file or directory
    Failed to compile esqltest.ec to esqltest.o
    # Looks like your test died before it could output anything.
    ESQL/C is configured to use the HP ANSI C compiler. Those options are
    meaningful to that compiler and not to GCC.

    To work around this, you are going to need to:

    1, Add the DBD::Informix directory to your PATH ahead of $INFORMIXDIR/bin.
    2. Copy $INFORMIXDIR/bin/esql to the DBD::Informix directory.
    3. Edit it so that the ANSI C compiler options are translated to
    equivalent GCC options.

    You can decide, instead, to omit them if the GCC compiler will produce
    the correct code.

    FYI: I spent a certain amount of time building a 64-bit GCC compiler
    for HP-UX 11.11 on Friday and today. It's a somewhat painful process.
    One area to watch for is that the object file test fails. However,
    it seems that the trouble is simply that the object file contains a
    time stamp or thereabouts:

    echo "int main(void){return 0;}" > x.c
    cc -c x.c
    mv x.o x1.o
    sleep 3
    cc -c x.c
    mv x.o x2.o
    cmp -l x[12].o

    The two output files differ (one or two bytes for me). If you do 'cc
    -o x1.o x.c' and ' cc -o x2.o x.c', you get more differences.

    I happened to be building a 64-bit GCC; I've not yet worked out how to
    make it generate 32-bit code (but it was far from being my only
    occupation today). Ah well, ...
    Any help would be greatly appreciated.

    Thanks,

    Cory

    -----Original Message-----
    From: Jonathan Leffler
    Sent: Thursday, April 07, 2005 10:28 PM
    To: Cory Cox
    Cc: dbi-users@perl.org; Guardian of DBD::Informix
    Subject: Re: Install Issues With Perl DBD For Informix

    Cory Cox wrote:
    Jonathan,

    Q1
    * Version of IDS (or SE, XPS, OnLine) - though that is not going to
    material this time.
    Q1A - The database server is running on another machine on the network.
    OK - it doesn't matter.
    Q2
    This is the output of 'perl Makefile.PL' for DBD::Informix

    Perl: perl v5.008006 PA-RISC2.0 dl_hpux.xs
    System: hp-ux l02 b.11.11 u 9000800 135901537 unlimited-user license
    Using INFORMIXDIR=/home/harbinger/tle/6_0/odbcHPUX and ESQL/C compiler esql
    Using IBM Informix CSDK Version 2.81, IBM Informix-ESQL Version 9.53.FC1 from /home/harbinger/tle/6_0/odbcHPUX
    So, you're using CSDK 2.81.FC1, not 2.81.HC1 as previously asserted.

    That letter is all-important - FC1 is a 64-bit version of CSDK, but your
    Perl and GCC by default use 32-bit, and we haven't worked out how to
    turn on a 64-bit compilation. (This is why I ask to see the original
    output - it tells me answers to questions that people don't know the
    answer too.)

    [...snip...]
    Q3

    export INFORMIXC="gcc -mpa-risc-2-0"
    esql -o esqlbasic -DESQLC_VERSION=953 esqlbasic.ec esqlc_v6.ec

    QA3

    l02:/home/edi/wlsedi/perl/DBD-Informix-2005.01# sudo esql -c esqlbasic -DESQLC_VERSION=953 esqlbasic.ec esqlc_v6.ec
    Woah! sudo? Well, on your own head be it. But I don't like having to
    run compilations as root - and never do.
    Q4

    l02:/home/edi/wlsedi/perl/DBD-Informix-2005.01# file $INFORMIXDIR/lib/esql/checkapi.o esqlbasic.o
    /home/harbinger/tle/6_0/odbcHPUX/lib/esql/checkapi.o: ELF-64 relocatable object file - PA-RISC 2.0 (LP64)
    esqlbasic.o: PA-RISC2.0 relocatable object
    Yes, it does help - a lot (though the CSDK version number tells the same
    story). As you can see, there's a huge difference between the file
    types. Clearly, checkapi.o is a 64-bit file; by inference, esqlbasic.o
    is not. Those two do not mix.

    Since the server is not even on the local machine, I'd simply go and get
    the 32-bit (2.81.UC2) version of CSDK installed and run with that.

    You might also remember that one of the very first things we did was
    modify (a copy of) the esql script to remove flags peculiar to the HP C
    compiler. You might think it worthwhile to make a copy of the esql
    script in $INFORMIXDIR/bin, and then edit the file there, instead of
    making a copy in DBD::Informix's build directory. OTOH, it may still be
    better to work out the kinks on a local copy before modifying the
    version in $INFORMIXDIR/bin. You need to do this to avoid the problems
    with GCC wittering about +DS2.0 not being found.
    Hmm...am I repeating myself?

    --
    Jonathan Leffler <jonathan.leffler@gmail.com> #include <disclaimer.h>
    Guardian of DBD::Informix - v2005.01 - http://dbi.perl.org
    "I don't suffer from insanity - I enjoy every minute of it."

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupdbi-users @
categoriesperl
postedApr 7, '05 at 1:02p
activeApr 19, '05 at 2:44a
posts6
users3
websitedbi.perl.org

People

Translate

site design / logo © 2022 Grokbase