Operating System - HP-UX
1832095 Members
3133 Online
110038 Solutions
New Discussion

Re: Informix Library Problem

 
Ajay Nair
Occasional Advisor

Informix Library Problem

Hi,

I'm trying to port an application from Sun to HP 11i. The database is Informix. I'm facing the following error during compilation:

cc: Entering Link editor.
/usr/ccs/bin/ld: (Warning) At least one PA 2.0 object file (main.o) was detected. The linked output may not run on a PA 1.x system.
/usr/ccs/bin/ld: /opt/informix/9.30.FC1/lib/esql/libixsql.sl: Mismatched ABI. 64
-bit PA shared library found in 32-bit link.
*** Error exit code 1

Any help towards solving this problem will be highly appreciated.

Thanks,
Ajay
3 REPLIES 3
Rainer von Bongartz
Honored Contributor

Re: Informix Library Problem


you are compiling your application in 64 bit mode but are using 32 bit INFORMIX libraries.

Order an 64 bit Informix version or compile in 32 bit mode by adding +DA1.1 or +DAportable to the compiler options

Regards
Rainer
He's a real UNIX Man, sitting in his UNIX LAN making all his UNIX plans for nobody ...
Olav Baadsvik
Esteemed Contributor

Re: Informix Library Problem

Hi,

I suggest the following:

. do a file on the libixsql.sl
If it comes out with ELF-64 ..
you have a 64-bit version of this lib
In that case you will have to compile
your own code in 64-bit mode. You do
this by using the compiler-option +DA2.0W
By default you get 32-bit (same as +DA2.0
option)

. If the file command on the informix-libs
does not show that they are ELF-64 you
have the following options:

. get a 64-bit version from Informix.
or
. compile your own code in 32-bit mode.
You should NOT do that by adding +DA1.1
or +DAportable, but by removing the
+DA2.0W option you already are using
if you compile for 64-bit.

The reasons for not adding +DA1.1 are:

. Only one +DA.. may be used. If you
use more than one the last one
encountered is used (you will get a
warning)
. Using +DA1.1 will produce code for
PARISC version 1.1 which will give
less performance than code for PARISC
2.0 which I am sure your machine
has

Regards
Olav



Rainer von Bongartz
Honored Contributor

Re: Informix Library Problem


Ajay,


I found your earlier posting concerning this problem where you included your makefile. From this makefile it is obvious that you are not using any compiler options, so you are compiling in 32 bit mode (The default as Olav explained).

So you must use 64 bit mode to make this run.

Regards
Rainer
He's a real UNIX Man, sitting in his UNIX LAN making all his UNIX plans for nobody ...