Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

"runtime definition of the symbol was not found"

871 views
Skip to first unread message

gsai

unread,
Jan 16, 2003, 9:42:41 AM1/16/03
to
OS: AIX versio 5.1
Compiler: VisualAge xlC version 6

I want to use xerces-c. I have downloaded the binary
xerces-c2_1_0-AIX51_5.02_64. In the files , say file1.cpp, file2.cpp ,
functions provided in the xerces-c++ are used. Using these files, I
have created libXYZ.so
This is the command I use:
xlC_r -q64 -qmkshrobj -o libXYZ.so -G file1.cpp file2.cpp
-I$XERCESHOME/include -brtl -L. -lxerces-c
Compilation completes with no error messages.
Now, I have Client.cpp which shd be using this .so file. The compile
command for this is : xlC_r -q64 -o Client Client.cpp
-I$XERCESHOME/include -brtl -L. -lXYZ -L. -lxerces-c

This also goes fine. But, when I run Client, the following errors are
thrown:

exec(): 0509-036 Cannot load program Client because of the following
errors:
rtld: 0712-001 Symbol __ct__15XercesDOMParserFP12XMLValidator was
referenced
from module /mydir/libXYZ.so, but a runtime definition
of the symbol was not found.
.
.
.
rtld: 0712-001 Symbol transcode__9XMLStringFPCUs was referenced
from module /mydir/libXYZ.so, but a runtime definition
of the symbol was not found.
rtld: 0712-002 fatal error: exiting.

Is this a linking problem or a problem with xerces??
The PATH, LIBPATH variables have been set properly.
comparing the dump of libxerces-c.so and libXYZ.so I get :
in libXYZ.so: 0x00000000 undef IMP DS EXTref
.. transcode__9XMLStringFPCUs
in libxerces-c.so: 0x0006d6d8 .data EXP DS SECdef
[noIMid] transcode__9XMLStringFCPCUs
Does this suggest 'something' ?????
Further, the binary had been obtained using xlC_r 5.0.2 whereas I have
version 6. Is this, by chance, the reason?

TIA,
GSai

Message has been deleted

gsai

unread,
Jan 18, 2003, 8:13:41 AM1/18/03
to
thanks for your immediate reply.but.....

> > The PATH, LIBPATH variables have been set properly.
> > comparing the dump of libxerces-c.so and libXYZ.so I get :
> > in libXYZ.so: 0x00000000 undef IMP DS EXTref
> > .. transcode__9XMLStringFPCUs
> > in libxerces-c.so: 0x0006d6d8 .data EXP DS SECdef
> > [noIMid] transcode__9XMLStringFCPCUs
>
> Hmmmm. 2 possibilities. Wrong version of libxerces-c.so is being
> used. Bring the application up in dbx, and before you run, use
> "map" to list the modules. Make sure the proper modules are shown,
> specifically your version of libxerces-c.so.
>

"map" lists the proper module. i.e.the location is right, if that is
what you intend me to refer!
but, it is to the difference in the symbols which intrigue me! The
symbol exported in the libxerces-c.so is: transcode__9XMLStringFCPCUs
whereas my .so file is trying to import transcode__9XMLStringFPCUs
note that 'C' which is extra or should I say, missing in my .so file.
This is the difference I notice by comparing the dump of both .so
files. I tried typecast the arguments in the client prg but there
seems to be no change!

> Also, it could be a bug in the RTL code. Get any available updates
> for bos.64bit and bos.rte.bind_cmds, in case something has been
> fixed.
>

Our sys admin people will be doing the neccessary steps regarding
this. but, do u think the point above(about the symbols) is
significant??

> Past that,


>
> > Does this suggest 'something' ?????
> > Further, the binary had been obtained using xlC_r 5.0.2 whereas I have
> > version 6. Is this, by chance, the reason?
>

> Which binary? This is generally not an issue.

I was refering to the libxerces-c.so file. There is a note in
xml.apache.org that the compiler used to build the distributed pack
and the one used for building the client (which uses the .so)should be
same. Now, is this a source of the problem? I am using a higher
version anyway...
thanks,
GSai

Message has been deleted
0 new messages