DBD::Informix install issues
Posted in 2003
Topics: Installation, Setup & Upgrades, Connectivity: ESQL/C, 4GL & Embedded SQL, Data Types & Schema Design, Platform-Specific Issues
I am trying to install DBD::Informix on a Solaris machine. Solaris 8 with Sun "C" compiler installed and gcc version 2.95.2. Informix Database version 9.3.FC3 Informix CSDK 2.80 with ESQL/C 9.52.FC2 I can compile esqlc programs and run it correctly. Here is log : # perl Makefile.PL *** ExtUtils::AutoInstall version 0.52 *** Checking for dependencies... [Core Features] - DBI ...loaded. (1.37 >= 1.33) [High Resolution Timing] - Time::HiRes ...loaded. (1.2) *** ExtUtils::AutoInstall configuration finished. Subroutine main::WriteMakefile redefined at /usr/local/lib/perl5/site_perl/5.8.. Configuring IBM Informix Database Driver for Perl Version 2003.04 (2003-03-05) ) You are using DBI version 1.37 and Perl version 5.008 Remember to actually read the README file! Perl: perl5.008 sun4-solaris dl_dlopen.xs System: sunos e2 5.8 generic_108528-16 sun4u sparc sunw,sun-fire Compiler: gcc -O -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE 4 Using IBM Informix CSDK Version 2.80, IBM Informix-ESQL Version 9.52.FC2 from /d 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: language arch=v9 not recognized gcc: esqltest.c: linker input file unused since linking not done gcc: language arch=v9 not recognized gcc: esqlc_v6.c: linker input file unused since linking not done gcc: esqltest.o: No such file or directory gcc: esqlc_v6.o: No such file or directory gcc: language arch=v9 not recognized Failed to link test program esqltest How can I switch the compiler from gcc to cc to work with DBD::Informix?
Ashutosh wrote: > I am trying to install DBD::Informix on a Solaris machine. Solaris 8 > with Sun "C" compiler installed and gcc version 2.95.2. > > Informix Database version 9.3.FC3 > Informix CSDK 2.80 with ESQL/C 9.52.FC2 > > I can compile esqlc programs and run it correctly. There are couple of things you have to do manually to build with a 64-bit GCC - I have the details around, somewhere. First of all, you need to get the Perl built with 64-bit version of GCC - I'm pretty sure you used it in 32-bit mode (because there is no -m64 option shown for GCC, and I'm not at all sure GCC 2.9x supported 64-bit Sparc; I stand to be proved wrong.) If you have a 32-bit Perl, the simplest thing to do is to install a 32-bit CSDK and go with that. Once you have a 64-bit Perl, you can indeed build DBD::Informix with a 64-bit CSDK, but you have to a bit more work than usual - a must fix for the next release. You have to cauterize the -xarch=v9 or -xarch=sparcv9 flag; there is an environment variable DBD_INFORMIX_ESQLCC_REMOVE_OPTIONS_REGEX which can be set to remove that: export DBD_INFORMIX_ESQLCC_REMOVE_OPTIONS_REGEX='^-xarch=(sparc)?v9$' You also need to get the 64-bit options through to the linker, which does not happen by default. I did find a way to do that; it may be by setting INFORMIXC="gcc -m64" - I'll investigate if you need the info. You ask about substituting the Sun C compiler for GCC; you have to build Perl with the compiler you want to use - so to use SUNWspro C (Forte C), you'd rebuild Perl and tell it to use cc instead of gcc. > Here is log : > > # perl Makefile.PL > *** ExtUtils::AutoInstall version 0.52 > *** Checking for dependencies... > [Core Features] > - DBI ...loaded. (1.37 >= 1.33) > [High Resolution Timing] > - Time::HiRes ...loaded. (1.2) > *** ExtUtils::AutoInstall configuration finished. > Subroutine main::WriteMakefile redefined at > /usr/local/lib/perl5/site_perl/5.8.. > > Configuring IBM Informix Database Driver for Perl Version 2003.04 > (2003-03-05) ) > You are using DBI version 1.37 and Perl version 5.008 > Remember to actually read the README file! > > Perl: perl5.008 sun4-solaris dl_dlopen.xs > System: sunos e2 5.8 generic_108528-16 sun4u sparc sunw,sun-fire > Compiler: gcc -O -fno-strict-aliasing -I/usr/local/include > -D_LARGEFILE_SOURCE 4 > > Using IBM Informix CSDK Version 2.80, IBM Informix-ESQL Version > 9.52.FC2 from /d > 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: language arch=v9 not recognized > gcc: esqltest.c: linker input file unused since linking not done > gcc: language arch=v9 not recognized > gcc: esqlc_v6.c: linker input file unused since linking not done > gcc: esqltest.o: No such file or directory > gcc: esqlc_v6.o: No such file or directory > gcc: language arch=v9 not recognized > Failed to link test program esqltest > > How can I switch the compiler from gcc to cc to work with > DBD::Informix? -- Jonathan Leffler #include <disclaimer.h> Email: jleffler@earthlink.net, jleffler@us.ibm.com Guardian of DBD::Informix v2003.04 -- http://dbi.perl.org/