PHP compile help ifx_checkAPI error
Posted in 2005
Topics: Connectivity: ESQL/C, 4GL & Embedded SQL, Networking & sqlhosts Configuration, Platform-Specific Issues, Internationalization & Character Sets
I am trying to use PHP 5.0.4 on Solaris 9 (Sparc) with SDK 2.81.UC3. When I
fire up httpd I get the following error:
Cannot load /usr/apache/libexec/libphp5.so into server: ld.so.1: httpd: fatal: r
elocation error: file /u/informix/lib/esql/libifsql.so: symbol ifx_checkAPI: ref
erenced symbol not found
environment:
IFX_LIBDIR=-L/u/informix/lib -L/u/informix/lib/esql
LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/var/local/lib:/opt/SUNWspro/lib:/usr/openwin/lib:/u/informix/lib:/u/informix/lib/esql:/u/informix/lib/tools/
INFORMIXSQLHOSTS=/u/informix/etc/sqlhosts
INFORMIXSERVER=dev1IFX_INCDIR=/u/informix/incl/sql
INFORMIXDIR=/u/informixIFX_LIBS=/u/informix/lib/esq/libifsql.a \\
/u/informix/lib/libifasf.a \\
/u/informix/lib/esql/libifgena \\
/u/informix/lib/esql/libifos. \\
/u/informix/lib/esql/libifglsa \\
-lgen -lgls -lm -ldl /u/informix/lib/esql/checkapio \\
/u/informix/lib/esql/libifglxa
PATH=.:/usr/local/bin:/usr/xpg4/bin:/usr/sbin:/usr/bin:/u/bin:/opt/SUNWspro/bin:/usr/local/bin:/usr/local/sbin:/usr/ccs/bin:/u/informix/bin:/usr/tbin:/usr/openw
in/bin:/opt/VRTS/bin:/usr/local/samba/bin
Thanks
Gary Quiring
Which CSDK did you use.
I had a similar error and downloaded the newest CSDK (2.90)
"Gary Quiring" <gquiring@msn.com> schrieb im Newsbeitrag
news:mktb91dp1rlb0sor5f7jnp3n1ncmt0gpo8@4ax.com...
>I am trying to use PHP 5.0.4 on Solaris 9 (Sparc) with SDK 2.81.UC3. When
>I
> fire up httpd I get the following error:
>
> Cannot load /usr/apache/libexec/libphp5.so into server: ld.so.1: httpd:
> fatal: r
> elocation error: file /u/informix/lib/esql/libifsql.so: symbol
> ifx_checkAPI: ref
> erenced symbol not found
>
> environment:
> IFX_LIBDIR=-L/u/informix/lib -L/u/informix/lib/esql
> LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/var/local/lib:/opt/SUNWspro/lib:/usr/op> enwin/lib:/u/informix/lib:/u/informix/lib/esql:/u/informix/lib/tools/
> INFORMIXSQLHOSTS=/u/informix/etc/sqlhosts
> INFORMIXSERVER=dev1> IFX_INCDIR=/u/informix/incl/sql
> INFORMIXDIR=/u/informix
On Thu, 26 May 2005 20:25:51 +0200, "Bernhard \\(Berlin\\)" <news@gramberg.de>
wrote:
I tried 2.81 UC3 and 2.90FC1.
>Which CSDK did you use.
>I had a similar error and downloaded the newest CSDK (2.90)
>
>"Gary Quiring" <gquiring@msn.com> schrieb im Newsbeitrag
>news:mktb91dp1rlb0sor5f7jnp3n1ncmt0gpo8@4ax.com...
>>I am trying to use PHP 5.0.4 on Solaris 9 (Sparc) with SDK 2.81.UC3. When
>>I
>> fire up httpd I get the following error:
>>
>> Cannot load /usr/apache/libexec/libphp5.so into server: ld.so.1: httpd:
>> fatal: r
>> elocation error: file /u/informix/lib/esql/libifsql.so: symbol
>> ifx_checkAPI: ref
>> erenced symbol not found
>>
>> environment:
>> IFX_LIBDIR=-L/u/informix/lib -L/u/informix/lib/esql
>> LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/var/local/lib:/opt/SUNWspro/lib:/usr/op>> enwin/lib:/u/informix/lib:/u/informix/lib/esql:/u/informix/lib/tools/
>> INFORMIXSQLHOSTS=/u/informix/etc/sqlhosts
>> INFORMIXSERVER=dev1>> IFX_INCDIR=/u/informix/incl/sql
>> INFORMIXDIR=/u/informix>
On Thu, 26 May 2005 12:26:16 -0400, Gary Quiring <gquiring@msn.com> wrote:
>I am trying to use PHP 5.0.4 on Solaris 9 (Sparc) with SDK 2.81.UC3. When I
>fire up httpd I get the following error:
>
>Cannot load /usr/apache/libexec/libphp5.so into server: ld.so.1: httpd: fatal: r
>elocation error: file /u/informix/lib/esql/libifsql.so: symbol ifx_checkAPI: ref
>erenced symbol not found
>
>environment:
>IFX_LIBDIR=-L/u/informix/lib -L/u/informix/lib/esql
>LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/var/local/lib:/opt/SUNWspro/lib:/usr/op>enwin/lib:/u/informix/lib:/u/informix/lib/esql:/u/informix/lib/tools/
>INFORMIXSQLHOSTS=/u/informix/etc/sqlhosts
>INFORMIXSERVER=dev1>IFX_INCDIR=/u/informix/incl/sql
>INFORMIXDIR=/u/informix>IFX_LIBS=/u/informix/lib/esq/libifsql.a \\
>/u/informix/lib/libifasf.a \\
>/u/informix/lib/esql/libifgena \\
>/u/informix/lib/esql/libifos. \\
>/u/informix/lib/esql/libifglsa \\
>-lgen -lgls -lm -ldl /u/informix/lib/esql/checkapio \\
>/u/informix/lib/esql/libifglxa
>PATH=.:/usr/local/bin:/usr/xpg4/bin:/usr/sbin:/usr/bin:/u/bin:/opt/SUNWspro/bin:>/usr/local/bin:/usr/local/sbin:/usr/ccs/bin:/u/informix/bin:/usr/tbin:/usr/openw
>in/bin:/opt/VRTS/bin:/usr/local/samba/bin
>
>Thanks
>Gary Quiring
>
I found this note:
If the API version of the libraries in this executable file are not compatible,
ESQL/C returns a runtime error that indicates which library is not compatible.
You must recompile your ESQL/C application to link the new release-version of
the shared library.
If you do not use esql to link one of the shared Informix general libraries with
your ESQL/C application, you must explicitly link the checkapi.o file with your
application. Otherwise, ESQL/C might generate an error at link time of the form:
Anyone have ideas on how to fix this?
Gary Quiring wrote:
> On Thu, 26 May 2005 12:26:16 -0400, Gary Quiring <gquiring@msn.com> wrote:
>
>
>>I am trying to use PHP 5.0.4 on Solaris 9 (Sparc) with SDK 2.81.UC3. When I
>>fire up httpd I get the following error:
>>
>>Cannot load /usr/apache/libexec/libphp5.so into server: ld.so.1: httpd: fatal: r
>>elocation error: file /u/informix/lib/esql/libifsql.so: symbol ifx_checkAPI: ref
>>erenced symbol not found
>>
>>environment:
>>IFX_LIBDIR=-L/u/informix/lib -L/u/informix/lib/esql
>>LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/var/local/lib:/opt/SUNWspro/lib:/usr/op>>enwin/lib:/u/informix/lib:/u/informix/lib/esql:/u/informix/lib/tools/
>>INFORMIXSQLHOSTS=/u/informix/etc/sqlhosts
>>INFORMIXSERVER=dev1>>IFX_INCDIR=/u/informix/incl/sql
>>INFORMIXDIR=/u/informix>>IFX_LIBS=/u/informix/lib/esq/libifsql.a \\
>>/u/informix/lib/libifasf.a \\
>>/u/informix/lib/esql/libifgena \\
>>/u/informix/lib/esql/libifos. \\
>>/u/informix/lib/esql/libifglsa \\
>>-lgen -lgls -lm -ldl /u/informix/lib/esql/checkapio \\
>>/u/informix/lib/esql/libifglxa
>>PATH=.:/usr/local/bin:/usr/xpg4/bin:/usr/sbin:/usr/bin:/u/bin:/opt/SUNWspro/bin:>>/usr/local/bin:/usr/local/sbin:/usr/ccs/bin:/u/informix/bin:/usr/tbin:/usr/openw
>>in/bin:/opt/VRTS/bin:/usr/local/samba/bin
>>
>>Thanks
>>Gary Quiring
>>
>
> I found this note:
> If the API version of the libraries in this executable file are not compatible,
> ESQL/C returns a runtime error that indicates which library is not compatible.
> You must recompile your ESQL/C application to link the new release-version of
> the shared library.
> If you do not use esql to link one of the shared Informix general libraries with
> your ESQL/C application, you must explicitly link the checkapi.o file with your
> application. Otherwise, ESQL/C might generate an error at link time of the form:
>
>
> Anyone have ideas on how to fix this?
I suspect that the trouble is that the PHP build is not attempting to
link the relevant object file - ifxchkapi.o or some such name - as well
as the libraries. If you look at the linker line for an ESQL/C program
with shared libraries, you see that the object file is also linked; and
I'd be relatively surprised, given the error message, if the PHP module
is built with the object file included.
Work out how to build/link the PHP shared object with the esql script -
or how to get the object file included in the link line.
--
Jonathan Leffler #include <disclaimer.h>
Email: jleffler@earthlink.net, jleffler@us.ibm.com
Guardian of DBD::Informix v2005.01 -- http://dbi.perl.org/