1847254 Members
3640 Online
110263 Solutions
New Discussion

DBD::informix make error

 
SOLVED
Go to solution
Asics
Occasional Advisor

DBD::informix make error

Dear all:
I will install perl module by DBD::informix.
perl5.6.1 Makefile.PL process is ok,but make file appear fllow problem.....

# make

Skip blib/lib/DBD/Informix/TestHarness.pm (unchanged)

Skip blib/lib/DBD/Informix/Summary.pm (unchanged)

Skip blib/lib/DBD/Informix/Defaults.pm (unchanged)

Skip blib/lib/DBD/Informix/Metadata.pm (unchanged)

Skip blib/lib/DBD/Informix/TypeInfo.pm (unchanged)

Skip blib/lib/DBD/Informix/TechSupport.pm (unchanged)

Skip blib/lib/DBD/Informix/Configure.pm (unchanged)

Skip blib/lib/Bundle/DBD/Informix.pm (unchanged)

Skip blib/lib/DBD/Informix/GetInfo.pm (unchanged)

Skip blib/lib/DBD/Informix.pm (unchanged)

/bin/sh -c true

/bin/sh -c true

//opt/perl/bin/perl5.6.1 -I/opt/perl/lib/5.6.1/PA-RISC1.1-thread-multi -I/opt/perl/lib/5.6.1 /opt/perl/lib/5.6.1/ExtUtils/xsubpp -typemap /opt/perl/lib/5.6.1/ExtUtils/typemap Informix.xs > Informix.xsc && mv Informix.xsc Informix.c

gcc -c -I/opt/informix/incl/esql -I/opt/perl/lib/5.6.1/PA-RISC1.1-thread-multi/auto/DBI -I/opt/perl/lib/site_perl/5.6.1/PA-RISC1.1-thread-multi/auto/DBI -I/auto/DBI -I/opt/perl/lib/site_perl/5.6.1/PA-RISC1.1-thread-multi/auto/DBI -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE -L/lib/pa1.1 -DUINT32_MAX_BROKEN -mpa-risc-1-1 -fPIC -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"2003.04\" -DXS_VERSION=\"2003.04\" -fPIC -I/opt/perl/lib/5.6.1/PA-RISC1.1-thread-multi/CORE -DESQLC_VERSION=953 -DNDEBUG Informix.c

cc1: warning: changing search order for system directory "/usr/local/include"

cc1: warning: as it has already been specified as a non-system directory

INFORMIXC="//opt/perl/bin/perl5.6.1 esqlcc" ESQLCC="gcc" esql -c -shared -I/opt/informix/incl/esql -I/opt/perl/lib/5.6.1/PA-RISC1.1-thread-multi/auto/DBI -I/opt/perl/lib/site_perl/5.6.1/PA-RISC1.1-thread-multi/auto/DBI -I/auto/DBI -I/opt/perl/lib/site_perl/5.6.1/PA-RISC1.1-thread-multi/auto/DBI -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE -L/lib/pa1.1 -DUINT32_MAX_BROKEN -mpa-risc-1-1 -fPIC -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O -DVERSION=\"2003.04\" -DXS_VERSION=\"2003.04\" -fPIC -I/opt/perl/lib/5.6.1/PA-RISC1.1-thread-multi/CORE -DESQLC_VERSION=953 -DNDEBUG dbdimp.ec

gcc: +Ofastaccess: No such file or directory

gcc: +DS2.0: No such file or directory

gcc: +DA2.0W: No such file or directory

cc1: unrecognized option `-H400000'

*** Error exit code 1



8 REPLIES 8
H.Merijn Brand (procura
Honored Contributor
Solution

Re: DBD::informix make error

You are mixing C compilers.

Either the perl port you are using or the Informix lib config tell you to use HP's C-ANSI-C compiler, which accepts +Ofastaccess, +DS2.0, and +DA2.0W

That last option also tells the compiler to go in 64bit mode, which makes me think that your informix environment is 64bit, and your perl is not. If I'm right this will not work at all. HP-UX does not support mixing 32bit with 64bit objects.

If you are indeed going for a 64bit environment, I also advice you to go for perl-5.8.3, which has solved a lot of 64bit problems still present in 5.6

If your Informix environment persists in passing HP C-ANSI-C options, you will have to manually alter the Makefile and replace them with gcc options.

Both GNU gcc-3.3.3/64 (you need seperate gcc compilers for 32 and 64bit env on HP-UX), and perl-5.8.3/64 are available from my website. Be sure to pich the correct architecture.

My HP ITRC site pages can be found at

Singapore https://www.beepz.com/personal/merijn/
Rotterdam http://www.cmve.net/~merijn/
Seattle http://ww.hpux.ws/merijn/

Enjoy, have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Asics
Occasional Advisor

Re: DBD::informix make error

Dear sir:
I already install "perl-5.8.3-gcc-3.3.2-11.00-elf64-ora.tbz" and "gcc-3.3.2-64-11.00-elf64.tbz" patches into my HP workstation.
But,make file still error! Please see erroe message.....

# make
Skip blib/lib/DBD/Informix/Summary.pm (unchanged)
Skip blib/lib/DBD/Informix/TechSupport.pm (unchanged)
Skip blib/lib/DBD/Informix/GetInfo.pm (unchanged)
Skip blib/lib/Bundle/DBD/Informix.pm (unchanged)
Skip blib/lib/DBD/Informix/Configure.pm (unchanged)
Skip blib/lib/DBD/Informix.pm (unchanged)
Skip blib/lib/DBD/Informix/TestHarness.pm (unchanged)
Skip blib/lib/DBD/Informix/TypeInfo.pm (unchanged)
Skip blib/lib/DBD/Informix/Defaults.pm (unchanged)
Skip blib/lib/DBD/Informix/Metadata.pm (unchanged)
/opt/perl/bin/perl5.8.3 /opt/perl64/lib/5.8.3/ExtUtils/xsubpp -typemap /opt/perl64/lib/5.8.3/ExtUtils/typemap Informix.xs > Informix.xsc && mv Informix.xsc Informix.c
gcc64 -c -I/opt/informix/incl/esql -I/opt/perl64/lib/5.8.3/PA-RISC2.0-LP64/auto/DBI -I/opt/perl64/lib/site_perl/5.8.3/PA-RISC2.0-LP64/auto/DBI -I/auto/DBI -I/opt/perl64/lib/site_perl/5.8.3/PA-RISC2.0-LP64/auto/DBI -mpa-risc-2-0 -D_HPUX_SOURCE -DDEBUGGING -fno-strict-aliasing -I/usr/local/pa20_64/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O -DVERSION=\"2003.04\" -DXS_VERSION=\"2003.04\" -fPIC "-I/opt/perl64/lib/5.8.3/PA-RISC2.0-LP64/CORE" -DESQLC_VERSION=953 -DNDEBUG Informix.c
INFORMIXC="/opt/perl/bin/perl5.8.3 esqlcc" ESQLCC="gcc64" esql -c -shared -I/opt/informix/incl/esql -I/opt/perl64/lib/5.8.3/PA-RISC2.0-LP64/auto/DBI -I/opt/perl64/lib/site_perl/5.8.3/PA-RISC2.0-LP64/auto/DBI -I/auto/DBI -I/opt/perl64/lib/site_perl/5.8.3/PA-RISC2.0-LP64/auto/DBI -mpa-risc-2-0 -D_HPUX_SOURCE -DDEBUGGING -fno-strict-aliasing -I/usr/local/pa20_64/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O -DVERSION=\"2003.04\" -DXS_VERSION=\"2003.04\" -fPIC -I/opt/perl64/lib/5.8.3/PA-RISC2.0-LP64/CORE -DESQLC_VERSION=953 -DNDEBUG dbdimp.ec
gcc64: +Ofastaccess: No such file or directory
gcc64: +DS2.0: No such file or directory
gcc64: +DA2.0W: No such file or directory
cc1: error: unrecognized option `-H400000'
*** Error exit code 1

Stop.
H.Merijn Brand (procura
Honored Contributor

Re: DBD::informix make error

As I said before, all those +O options are recognized by HP' C-ANSI-C compiler only. gcc does not know what to do with it

Looking at this long line, I don't see those options, so I guess they are generated by the (probably perl script) esqlcc, which will be founs in Informix' PATH ...../informix/bin or something. This script most likely detects that it is being run on HP-UX and sets the options to match those used to build the Informix libraries.

Edit the script, after making a backup, and see what happens if you just remove those options. gcc64 doe not need them, because it can /only/ do 64bit compiles

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Asics
Occasional Advisor

Re: DBD::informix make error

Sorry,I don't understand it....
Would you look my Makefile file ?
Please see my attachment....thanks!
H.Merijn Brand (procura
Honored Contributor

Re: DBD::informix make error

There's nothing wrong with this Makefile.

# find /opt/informix -name esqlcc

if that succeeds,

# find /opt/informix -name esqlcc -exec file {} \;

If that sais 'perl script', 'script', or 'ascii file', attach it here

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Asics
Occasional Advisor

Re: DBD::informix make error

Dear sir:
When I keyin ...(no result)
#find /opt/informix esqlcc


But
#find /tmp/DBD-Informix -name esqlcc (is ok!)

So,I change keyin it.
#find /tmp/DBD-Informix -name esqlcc -exec file {} \;
#/tmp/DBD-Informix/esqlcc: c program text


Please see my attachment,thanks a lot.


Josh Owings
Frequent Advisor

Re: DBD::informix make error

I made a copy of my /usr/informix/bin/esql to /usr/informix/bin/esql-gcc. Found the line that says:

CC="${INFORMIXC=cc} -Wp,-H400000 +Ofastaccess +DS2.0 +DA2.0W"

changed it to this:

#CC="${INFORMIXC=cc} -Wp,-H400000 +Ofastaccess +DS2.0 +DA2.0W"
CC=/usr/local/pa20_64/bin/gcc64
CC_TH=$CC
#CC_TH="${INFORMIXC=cc} -Wp,-H400000 +Ofastaccess +DS2.0 +DA2.0W"

now I can run 'esql-gcc -o esqlbasic esqlbasic.ec' and it compiles with this warning: /usr/local/pa20_64/bin/ld: skipping incompatible /usr/informix/lib/libifasf.so when searching for -lifasf

when I run ./esqlbasic I get this:
/usr/lib/pa20_64/dld.sl: Unable to find library 'libifsql.sl'.
Abort(coredump)

I set LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql with no luck

Have you found the resolution to your problem? Here's to hoping we can figure this out.
H.Merijn Brand (procura
Honored Contributor

Re: DBD::informix make error

Those two libs are most likely 32bit libraries.

setting $INFORMIXC is a nice start, but would not have halped you here, because this scripts expects $INFORMIXC to be a HP C compiler (here you have a _very_ good reason to complain to Informix)

What you /could/ do however, is make a _new_ script, and call it e.g. informixc, which takes all arguments, weeds out the HP specific one's, and then calls the compiler of choice with the arguments left. Then set $INFORMIXC to this executable script.

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn