Re: DBD:Informix installed error for Perl (315 Views)
Reply
Advisor
Steven_181
Posts: 29
Registered: ‎08-28-2005
Message 1 of 22 (315 Views)
Accepted Solution

DBD:Informix installed error for Perl

I have the following successfully installed:

-HP-UX 11.23 ia64 (itanium machine)
-4GL 7.32 FC3
-IDS 9.40 FC7
-SDK 2.81 FC3 with ESQL/C 9x
-Perl 5.8.3 default on /opt/perl
-Apache 1.3.31
-DBI 1.50
-HP C/ANSI compiler
-GCC 4.10 compiler

We need to connect to Informix from Perl.

During the installation of DBD-Informix for 2003.04. I encounter the following error:

LD_RUN_PATH="" /usr/bin/ld -b +vnocompatwarnings -L/usr/lib/hpux32 Informix.o dbdimp.o dbdattr.o sqltoken.o sqltype.o ixblob.o decsci.o odbctype.o link.o esqlcver.o esqlc_v6.o -L/apps/informix94/lib -L/apps/informix94/lib/esql -lifsql -lifasf -lifgen -lifos -lifgls -ldl -lm -lsec -lelf /apps/informix94/lib/esql/checkapi.o -lifglx -o blib/arch/auto/DBD/Informix/Informix.so ld: Can't find library or mismatched ABI for -lifsql Fatal error.

*** Error exit code 1

Kindly advice.

Steven
Please use plain text.
Honored Contributor
Arunvijai_4
Posts: 4,194
Registered: ‎04-07-2005
Message 2 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Hi Steven,

You need to make sure you compile for 32 bit or 64 bit and use corresponding libraries to link.

-Arun
"A ship in the harbor is safe, but that is not what ships are built for"
Please use plain text.
Honored Contributor
Ralph Grothe
Posts: 2,631
Registered: ‎04-09-2000
Message 3 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Yes, if libifsql is in your LD_LIBRARY_PATH it sound as if you are trying to link 32bit and 64bit objects, I would assume.
Madness, thy name is system administration
Please use plain text.
Advisor
Steven_181
Posts: 29
Registered: ‎08-28-2005
Message 4 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

I am new to this. Could you advice what should I do.

What are the steps to overcome the errors?

Thanks
Please use plain text.
Honored Contributor
Arunvijai_4
Posts: 4,194
Registered: ‎04-07-2005
Message 5 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Hi,

Edit your LF_RUN_PATH to add full to 32 or 64 bit lifsl. I am not sure which bit you are compiling. Find out full path using find command, # find . -name "libifsql"

-Arun
"A ship in the harbor is safe, but that is not what ships are built for"
Please use plain text.
Honored Contributor
H.Merijn Brand (procura
Posts: 6,185
Registered: ‎10-13-1997
Message 6 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Small typo in that post :)
LF_RUN_PATH => LD_RUN_PATH

but that aside.

Check 1: is your informix 32bit or 64bit?

I bet it is 64bit, as the error from DBD::Informix hints me towards the fact that you are using a 32bit perl:
LD_RUN_PATH="" /usr/bin/ld -b +vnocompatwarnings -L/usr/lib/hpux32 Informix.o db

Check 2: As I now assume that you have a 64bit Informix, you will *need* a 64bit perl to go with it. 32bit and 64bit don't mix
So you have to check your install and see if you have both perl/32 and perl/64, and where you have them available
If you only have perl/32, you will have to install perl/64. If you also have perl64, you only have to change your $PATH, and restart the DBD::Informix stuff (assuming that perl/64 already includes DBI

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Please use plain text.
Honored Contributor
Steve Lewis
Posts: 725
Registered: ‎05-18-2000
Message 7 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Yes it is definitely 64 bit informix, thats what the FCx sub-version denotes.
Please use plain text.
Advisor
Steven_181
Posts: 29
Registered: ‎08-28-2005
Message 8 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Thanks.

Yes. The informix is 64bits. And there are 2 perl (32+64) installed in the HP 11.23 by default. This is very confusing.

I have make my PATH to point to /opt/perl_64 and also ln -s /opt/perl_64/bin/perl perl in /usr/bin.

Now the perl is 64 bits.

This have solved the DBI and DBD problem.

Now I recompile my Apache mod_perl again
due to changing to 64 bits perl.

It was successful compile with the libperl.so create.

But when I start the Apache, it give me an error as follows. Did I miss something?

/usr/lib/hpux32/dld.so: Unsatisfied code symbol '__divsi3' in load module '/apps/apache/libexec/libproxy.so'.
Syntax error on line 230 of /apps/apache/conf/httpd.conf:
Cannot load /apps/apache/libexec/libproxy.so into server: Unresolved external
./apachectl start: httpd could not be started

Any help is greatly appreciated.
Please use plain text.
Honored Contributor
Arunvijai_4
Posts: 4,194
Registered: ‎04-07-2005
Message 9 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Hi Steven,


/usr/lib/hpux32/dld.so: Unsatisfied code symbol '__divsi3' in load module '/apps/apache/libexec/libproxy.so'.
Syntax error on line 230 of /apps/apache/conf/httpd.conf:
Cannot load /apps/apache/libexec/libproxy.so into server: Unresolved external
./apachectl start: httpd could not be started

You should have Apache 64 bit since you built mod_perl in 64. A note of caution: Executables and Binaries should always have mode matching (32 or 64).

Also, try to assign points.

-Arun
"A ship in the harbor is safe, but that is not what ships are built for"
Please use plain text.
Honored Contributor
H.Merijn Brand (procura
Posts: 6,185
Registered: ‎10-13-1997
Message 10 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

> /usr/lib/hpux32/dld.so: Unsatisfied code symbol '__divsi3' in load module '/apps/apache/libexec/libproxy.so'.

All those mod3, div3, ***3 calls can be found in libgcc

Make Apachy and/or mod_perl force link with libgcc.a and the problem will most likely disappear

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Please use plain text.
Advisor
Steven_181
Posts: 29
Registered: ‎08-28-2005
Message 11 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Hi Merjin,

Could you kindle let me know how to do the following: I am very new to this issue.

Thanks.

Make Apachy and/or mod_perl force link with libgcc.a and the problem will most likely disappear

Please use plain text.
Honored Contributor
Arunvijai_4
Posts: 4,194
Registered: ‎04-07-2005
Message 12 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Hi Steven,

At the time of compiling mod_perl, you need to explicitly link to libgcc.a. To do this, add full path to libgcc.a in Makefile when "ld" being called,

-L/usr/local/lib/libgcc.a or whichever applicable in your case.

-Arun
"A ship in the harbor is safe, but that is not what ships are built for"
Please use plain text.
Honored Contributor
H.Merijn Brand (procura
Posts: 6,185
Registered: ‎10-13-1997
Message 13 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

You said you rebuilt perl.

change the Makefile, and add -lgcc to the LDFLAGS

If that doesn't force libgcc, add a dummy call in one of the .c files, like

void _force_libgcc_load ()
{
divsi3 ();
}

HTH, Enjoy, Have FUN! H.Merijn [ who uses Apache nor mod_perl ]
Enjoy, Have FUN! H.Merijn
Please use plain text.
Advisor
Steven_181
Posts: 29
Registered: ‎08-28-2005
Message 14 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Hi All,

I have tried the following to compile Apache1.3.31 to 64 bit using gcc on my Itanium rx2620.

1) export LDFLAGS='-mlp64'

2) ./configure --with-layout=Apache --prefix=/apps/apache \
--enable-module=most \
--enable-shared=max

3) make

But I get the following errors:

gcc -c -I../os/unix -I../include -DHPUX11 -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite `../apaci` gen_test_char.c
gcc -DHPUX11 -DUSE_HSREGEX -DUSE_EXPAT -I../lib/expat-lite `../apaci` -mlp64 -o gen_test_char gen_test_char.o -lm -lpthread
ld: Can't find library or mismatched ABI for -lgcc
Fatal error.
collect2: ld returned 1 exit status
*** Error exit code 1

I have the libgcc.a locate in:
/opt/hp-gcc-4.1.0/lib/gcc/ia64-hp-hpux11.23/4.1.0/hpux64/libgcc.a
/opt/hp-gcc-4.1.0/lib/gcc/ia64-hp-hpux11.23/4.1.0/libgcc.a

But I can't seems to get Apache 64 compile.

Any ideas.

Thanks
Please use plain text.
Honored Contributor
H.Merijn Brand (procura
Posts: 6,185
Registered: ‎10-13-1997
Message 15 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

The first gcc line did not have the -mlp64 flag, causing it to build a 32bit object

You will need to add -mlp64 to the CCFLAGS, and -lgcc to the LDFLAGS

Enjoy, Have FUN! H.Merijn [ don't forget to express your satisfaction with the answers given ]
Enjoy, Have FUN! H.Merijn
Please use plain text.
Honored Contributor
Arunvijai_4
Posts: 4,194
Registered: ‎04-07-2005
Message 16 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Steven,

1) export CFLAGS="-mlp64"

2) export CPPFLAGS="-mlp64" (Precautionary step)

mismatched ABI generally means of bit compatibility.

-Arun

"A ship in the harbor is safe, but that is not what ships are built for"
Please use plain text.
Advisor
Steven_181
Posts: 29
Registered: ‎08-28-2005
Message 17 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Sorry for bothering all of you.

The compile to 64 bits now works fine.
It's was great!

But when I start apache, I get the following error:

/usr/lib/hpux64/dld.so: Unsatisfied code symbol '__modsi3' in load module '/apps/apache/libexec/mod_imap.so'.
Syntax error on line 218 of /apps/apache/conf/httpd.conf:
Cannot load /apps/apache/libexec/mod_imap.so into server: Unresolved external

I have out of ideas.

Any one knows what next?
Please use plain text.
Honored Contributor
H.Merijn Brand (procura
Posts: 6,185
Registered: ‎10-13-1997
Message 18 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

edit one of the .c files and add

void _force_libgcc_load ()
{
divsi3 ();
}

That should forc-load libgcc

Maybe more friendly (and easier), find yourself the FULL PATH for libgcc.a and add it to the LDFLAGS

LDFLAGS='/usr/local/pa20_64/lib/gcc/hppa64-hp-hpux11.00/4.0.3/libgcc.a ....'

Let the .... be what was in LDFLAGS before you changed it

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Please use plain text.
Honored Contributor
Arunvijai_4
Posts: 4,194
Registered: ‎04-07-2005
Message 19 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Hi Steven,


/usr/lib/hpux64/dld.so: Unsatisfied code symbol '__modsi3' in load module '/apps/apache/libexec/mod_imap.so'.
Syntax error on line 218 of /apps/apache/conf/httpd.conf:
Cannot load /apps/apache/libexec/mod_imap.so into server: Unresolved external

Comment out mod_imap.so in Apache configuration file. Then try to start Apache..

# grep "mod_imap.so" `find /apps/apache/conf -type f`

-Arun
"A ship in the harbor is safe, but that is not what ships are built for"
Please use plain text.
Advisor
Steven_181
Posts: 29
Registered: ‎08-28-2005
Message 20 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

Hi Merjin,

Do you mean to set the LDFLAGS='/opt/hp-gcc-4.1.0/lib/gcc/ia64-hp-hpux11.23/4.1.0/hpux64/libgcc.a -lgcc' ?

Please use plain text.
Advisor
Steven_181
Posts: 29
Registered: ‎08-28-2005
Message 21 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

I have recompile again with
LDFLAGS=/opt/hp-gcc-4.1.0/lib/gcc/ia64-hp-hpux11.23/4.1.0/hpux64/libgcc.a -lgcc

But I still get the error:

/usr/lib/hpux64/dld.so: Unsatisfied code symbol '__modsi3' in load module '/apps/apache/libexec/mod_imap.so'.
Syntax error on line 219 of /apps/apache/conf/httpd.conf:
Cannot load /apps/apache/libexec/mod_imap.so into server: Unresolved external
./apachectl start: httpd could not be started

I need the imap.so and also libproxy.so to be up. Both are having the same error.

Please advice.
Please use plain text.
Frequent Advisor
isaac_loven
Posts: 51
Registered: ‎03-28-2004
Message 22 of 22 (315 Views)

Re: DBD:Informix installed error for Perl

I am having a simular problem. Did you find a solution ? Thanks Isaac
Please use plain text.
The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation