RE: Informix DBD, PERL and esql
Posted in 2005
Topics: Installation, Setup & Upgrades, Connectivity: ESQL/C, 4GL & Embedded SQL, Platform-Specific Issues, Internationalization & Character Sets, Versions, Editions & End-of-Life
sorry I suck. When running esql -o esqlbasic esqlbasic.ec -----Original Message----- From: Gentsch, Sam Sent: Thursday, June 23, 2005 4:08 PM To: informix-list@iiug.org Subject: Informix DBD, PERL and esql Actually this is a esqlc problem and may be because we are trying to use gcc instead of cc_r I receive gcc: '-b' must come at the start of the command line Or cc: '-b' must come at the start of the command line if INFORMIXC not set. IBM Support said there was a bug for 4gl basically saying gcc does not work with it and they were not planning on fixing it (and the support guy said that meant it was true for ESQLC too) So has anyone managed to overcome this problem and successfully use gcc with AIX 5.3? Hopefully, I am missing something simple. Thanks a lot! Sam System info follows (probably more than you want) Perl: perl v5.008007 aix-64all dl_aix.xs System: aix aix 3 5 00cc339e4c00 (5.3) Using INFORMIXDIR=/opt/informix/IDS_9.40.FC6 and ESQL/C compiler esql Using IBM Informix CSDK Version 2.90, IBM Informix-ESQL Version 2.90.FC3 from /opt/informix/IDS_9.40.FC6 DBI 1.48 installed IDS 9.40FC6, with a stores gcc: 3.3.2 Have INFORMIXC=gcc DBD_INFORMIX_ESQLC_LINKAGE='-b' //tried it anyways Changed LD_LIBRARY_PATH to LIBPATH since on AIX Big -V stuff: gcc -v Reading specs from /opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/specs Configured with: ../configure --with-as=/usr/bin/as --with-ld=/usr/bin/ld --disable-nls --enable-languages=c,c++ --prefix=/opt/freeware --enable-threads --enable-version-specific-runtime-libs --host=powerpc-ibm-aix5.2.0.0 Thread model: aix gcc version 3.3.2 perl -V Summary of my perl5 (revision 5 version 8 subversion 7) configuration: Platform: osname=aix, osvers=5.3.0.0, archname=aix-64all uname='aix aix 3 5 00cc339e4c00 ' config_args='-Dcc=gcc' 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=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -fno-strict-aliasing -pipe -maix64 -DUSE_64_BIT_ALL', optimize='-O', cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -fno-strict-aliasing -pipe' ccversion='', gccversion='3.3.2', gccosandvers='aix5.2.0.0' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8 ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='gcc -maix64', ldflags =' -Wl,-brtl -Wl,-bdynamic -Wl,-bmaxdata:0x80000000 -maix64 -Wl,-b64' libpth=/lib /usr/lib /usr/ccs/lib libs=-lbind -lnsl -ldbm -ldl -lld -lm -lcrypt -lc -lbsd perllibs=-lbind -lnsl -ldl -lld -lm -lcrypt -lc -lbsd libc=, so=a, useshrplib=false, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Xlinker -bE:/usr/lib/perl5/5.8.7/aix-64all/CORE/perl.exp' cccdlflags=' ', lddlflags=' -Wl,-b64 -Wl,-bhalt:4 -Wl,-bexpall -Wl,-G -Wl,-bnoentry -lc' Characteristics of this binary (from libperl): Compile-time options: USE_64_BIT_INT USE_64_BIT_ALL USE_LARGE_FILES Built under aix Compiled at Jun 23 2005 11:54:26 @INC: /usr/lib/perl5/5.8.7/aix-64all /usr/lib/perl5/5.8.7 /usr/lib/perl5/site_perl/5.8.7/aix-64all /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl sending to informix-list
Gentsch, Sam wrote:
> sorry I suck.
What do you suck?
> When running esql -o esqlbasic esqlbasic.ec
As you now know, and probably knew before, you must be able to compile
basic ESQL/C programs with your chosen ESQL/C and C compiler combination
before you have the slightest chance of getting DBD::Informix to work.
You're going to have to take a copy of esql and sanitize it.
cd DBD-Informix-2005.01
cp $INFORMIXDIR/bin/esql .
chmod u+w esql
vi esql
-- clean up the non-GCC options like -b.
-- save it.
export PATH=.:$PATH
This will pick up your hacked (sanitized) copy of esql.
Call IBM Tech Support. Open a case. Get them to find the bug (FR =
feature request) in PTS (Problem Tracking System) which says "ESQL/C
should have an option to run with GCC instead of native C compiler", and
get them to log you as someone requesting the feature. I forget the bug
number, but it is fairly recent (probably 170,000 or later; this year,
anyway), and I entered it, though there was another similar, slightly
more flexible request (be able to configure ESQL/C to use any arbitrary
C compiler, and fix the options used with it) that was made shortly
afterwards. Anyway, the more cases, the higher its higher priority.
> -----Original Message-----
> From: Gentsch, Sam
> Sent: Thursday, June 23, 2005 4:08 PM
> To: informix-list@iiug.org
> Subject: Informix DBD, PERL and esql
>
> Actually this is a esqlc problem and may be because we are trying to use
> gcc instead of cc_r
>
> I receive
> gcc: '-b' must come at the start of the command line Or cc: '-b' must
> come at the start of the command line if INFORMIXC not set.
>
> IBM Support said there was a bug for 4gl basically saying gcc does not
> work with it and they were not planning on fixing it (and the support
> guy said that meant it was true for ESQLC too)
>
> So has anyone managed to overcome this problem and successfully use gcc
> with AIX 5.3?
>
> Hopefully, I am missing something simple.
>
> Thanks a lot!
>
> Sam
>
> System info follows (probably more than you want)
>
> Perl: perl v5.008007 aix-64all dl_aix.xs
> System: aix aix 3 5 00cc339e4c00 (5.3)
> Using INFORMIXDIR=/opt/informix/IDS_9.40.FC6 and ESQL/C compiler esql
> Using IBM Informix CSDK Version 2.90, IBM Informix-ESQL Version 2.90.FC3
> from /opt/informix/IDS_9.40.FC6 DBI 1.48 installed IDS 9.40FC6, with a
> stores
> gcc: 3.3.2
>
> Have INFORMIXC=gcc
> DBD_INFORMIX_ESQLC_LINKAGE='-b' //tried it anyways Changed
> LD_LIBRARY_PATH to LIBPATH since on AIX
Supported values for the ESQL/C linkage are '-shared' '-static' and
maybe '-thread', probably in combination with one or the other options.
> Big -V stuff:
> gcc -v
> [...snip...]
>
> perl -V
> Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
> Platform:
> osname=aix, osvers=5.3.0.0, archname=aix-64all
> uname='aix aix 3 5 00cc339e4c00 '
> config_args='-Dcc=gcc'
> [...snip...]
Thanks for including the version information.
--
Jonathan Leffler #include <disclaimer.h>
Email: jleffler@earthlink.net, jleffler@us.ibm.com
Guardian of DBD::Informix v2005.01 -- http://dbi.perl.org/