ifx_checkAPI and loading errors
Posted in 2000
Topics: Connectivity: ESQL/C, 4GL & Embedded SQL, Platform-Specific Issues, Versions, Editions & End-of-Life
xba was linked with Informix IDS 7.3 dynamic libraries using -brtl
under AIX 4.3.2. When I invoked it, it gave the below errors.
$ xbartld: 0712-001 Symbol ifx_checkAPI was referenced
from module /build/cas/db/lib/esql/libifos.so(), but a
runtime definition of the symbol was not found.
rtld: 0712-001 Symbol ifx_checkAPI was referenced
from module /build/cas/db/lib/esql/libifgen.so(), but a
runtime definition of the symbol was not found.
rtld: 0712-001 Symbol ifx_checkAPI was referenced
from module libifsql.so(), but a runtime definition
of the symbol was not found.
rtld: 0712-002 fatal error: exiting.
The file ls -l /build/cas/db/lib/esql/checkapi.o does exists:
$ ls -l /build/cas/db/lib/esql/checkapi.o
-rw-r--r-- 1 informix informix 1485 Jun 04 1999
/build/cas/db/lib/esql/checkapi.o
What do I need to do ? Add checkapi.o in OBJS in every Makefile ?
Thanks,
Thanh
Sent via Deja.com http://www.deja.com/
Before you buy.
Thanh wrote:
> xba was linked with Informix IDS 7.3 dynamic libraries using -brtl
> under AIX 4.3.2. When I invoked it, it gave the below errors.
>
> $ xba> rtld: 0712-001 Symbol ifx_checkAPI was referenced
> from module /build/cas/db/lib/esql/libifos.so(), but a
> runtime definition of the symbol was not found.
>
> rtld: 0712-001 Symbol ifx_checkAPI was referenced
> from module /build/cas/db/lib/esql/libifgen.so(), but a
> runtime definition of the symbol was not found.
>
> rtld: 0712-001 Symbol ifx_checkAPI was referenced
> from module libifsql.so(), but a runtime definition
> of the symbol was not found.
>
> rtld: 0712-002 fatal error: exiting.
>
> The file ls -l /build/cas/db/lib/esql/checkapi.o does exists:
>
> $ ls -l /build/cas/db/lib/esql/checkapi.o
> -rw-r--r-- 1 informix informix 1485 Jun 04 1999
> /build/cas/db/lib/esql/checkapi.o>
> What do I need to do ? Add checkapi.o in OBJS in every Makefile ?
Normally, checkapi.o is listed on the link line by the esql script.
Either you aren't using the esql script to do your linking (bad habit;
break it *now*), or the esql script is broken. If the esql script is
broken, then add the file to the link line and report a bug. If there
is a bug, it may be related to AIX using .a files as shared libraries.
IIRC, normally, a static link does not use the checkapi.o object file.
By fixing the esql script, you save yourself making a change to every
Makefile. You also save yourself having to undo the change when the
problem is fixed. Of course, if you aren't using the esql script to
do the linking in the first place, you still need to go and fix every
Makefile. Note that the lists of libraries change routinely -- many
versions of ESQL/C or CSDK have different lists from the prior version.
Only the esql script will reliably keep track of these things.
--
Jonathan Leffler (jleffler@informix.com, jleffler@earthlink.net)
Guardian of DBD::Informix v0.95 -- see http://www.perl.com/CPAN
#include <disclaimer.h>
In article <38C730B7.ABC40C23@earthlink.net>,
Jonathan Leffler <jleffler@earthlink.net> wrote:
> Thanh wrote:
>
> > xba was linked with Informix IDS 7.3 dynamic libraries using -brtl
> > under AIX 4.3.2. When I invoked it, it gave the below errors.
> >
> > $ xba> > rtld: 0712-001 Symbol ifx_checkAPI was referenced
> > from module /build/cas/db/lib/esql/libifos.so(), but a
> > runtime definition of the symbol was not found.
> >
> > rtld: 0712-001 Symbol ifx_checkAPI was referenced
> > from module /build/cas/db/lib/esql/libifgen.so(), but a
> > runtime definition of the symbol was not found.
> >
> > rtld: 0712-001 Symbol ifx_checkAPI was referenced
> > from module libifsql.so(), but a runtime definition
> > of the symbol was not found.
> >
> > rtld: 0712-002 fatal error: exiting.
> >
> > The file ls -l /build/cas/db/lib/esql/checkapi.o does exists:
> >
> > $ ls -l /build/cas/db/lib/esql/checkapi.o
> > -rw-r--r-- 1 informix informix 1485 Jun 04 1999
> > /build/cas/db/lib/esql/checkapi.o> >
> > What do I need to do ? Add checkapi.o in OBJS in every Makefile ?
>
> Normally, checkapi.o is listed on the link line by the esql script.
> Either you aren't using the esql script to do your linking (bad habit;
> break it *now*), or the esql script is broken. If the esql script is
> broken, then add the file to the link line and report a bug. If there
> is a bug, it may be related to AIX using .a files as shared libraries.
> IIRC, normally, a static link does not use the checkapi.o object file.
>
> By fixing the esql script, you save yourself making a change to every
> Makefile. You also save yourself having to undo the change when the
> problem is fixed. Of course, if you aren't using the esql script to
> do the linking in the first place, you still need to go and fix every
> Makefile. Note that the lists of libraries change routinely -- many
> versions of ESQL/C or CSDK have different lists from the prior
version.
> Only the esql script will reliably keep track of these things.
Jonathan,
Thanks. For historic reasons, esql was not used.
Thanh
Sent via Deja.com http://www.deja.com/
Before you buy.
Thanh wrote:
> Jonathan Leffler <jleffler@earthlink.net> wrote:
> > Thanh wrote:
> >
> > > xba was linked with Informix IDS 7.3 dynamic libraries using -brtl
> > > under AIX 4.3.2. When I invoked it, it gave the below errors.
> > >
> > > $ xba> > > rtld: 0712-001 Symbol ifx_checkAPI was referenced
> > > from module /build/cas/db/lib/esql/libifos.so(), but a
> > > runtime definition of the symbol was not found.
> > >
> > > rtld: 0712-001 Symbol ifx_checkAPI was referenced
> > > from module /build/cas/db/lib/esql/libifgen.so(), but a
> > > runtime definition of the symbol was not found.
> [...]
> > By fixing the esql script, you save yourself making a change to every
> > Makefile. You also save yourself having to undo the change when the
> > problem is fixed. Of course, if you aren't using the esql script to
> > do the linking in the first place, you still need to go and fix every
> > Makefile. Note that the lists of libraries change routinely -- many
> > versions of ESQL/C or CSDK have different lists from the prior
> version.
> > Only the esql script will reliably keep track of these things.
>
> Jonathan,
>
> Thanks. For historic reasons, esql was not used.
Unless you wish to go insane at every upgrade, forget the historical reasons
and upgrade to use esql -- now!
--
Jonathan Leffler (jleffler@informix.com, jleffler@earthlink.net)
Guardian of DBD::Informix v0.95 -- see http://www.perl.com/CPAN
#include <disclaimer.h>