Anilkumar DK wrote:
Hi David,
The earlier compilation issue mentioned in the email below got resolved.
Thanks for your inputs. While compiling our application with xerces2.8
libraries, the include folders were still pointing to Xerces1.7. Now the
compilation issue got resolved.
While running our application, we are getting the following error
bash-3.00# ./apachectl start
httpd: Syntax error on line 411 of /usr/getaccess/Apa/conf/httpd.conf:
Cannot load /opt/MyApp/Apache22/lib/libApache22Connector.so into server:
ld.so.1: httpd: fatal: relocation error: file
/opt/MyApp/Apache22/lib/libEmbeddedConfigurationClient.so: symbol
__1cLxercesc_2_8JGA_XMLUniWfgXercescDefaultLocale_: referenced symbol
not found
Your shared library has a missing symbol.
(For more clarification, when apache webserver is started, httpd.conf
loads our application/webconnector libApache22Connector.so which inturn
loads one of our library libEmbeddedConfigurationClient.so.
libEmbeddedConfigurationClient.so will use libxerces-c.so
I tried checking the symbol mentioned in both the libraries and found
that there is a difference in the symbols.
bash-2.03$ /usr/ccs/bin/nm libxerces-c.so |grep DefaultLocale
[11799] | 4186018| 6|OBJT |GLOB |0 |21
|__1cLxercesc_2_8GXMLUniWfgXercescDefaultLocale_
This is the correct symbol. You can demangle these by using the c++filt
tool provided with the compiler:
bash-3.00$ /opt/SUNWspro/bin/c++filt
__1cLxercesc_2_8GXMLUniWfgXercescDefaultLocale_
^D
xercesc_2_8::XMLUni::fgXercescDefaultLocale
bash-2.03$ /usr/ccs/bin/nm libEmbeddedConfigurationClient.so |grep
DefaultLocale
[1293] | 0| 0|NOTY |GLOB |0 |UNDEF
|__1cLxercesc_2_8JGA_XMLUniWfgXercescDefaultLocale_
I have no idea how the name of this symbol was change. Did you modify
the source code? The name demangles to this:
/opt/SUNWspro/bin/c++filt
__1cLxercesc_2_8JGA_XMLUniWfgXercescDefaultLocale_
^D
xercesc_2_8::GA_XMLUni::fgXercescDefaultLocale
Another possibility is that you are building with different compilers
that use different name mangling schemes, or different compiler options
that force different name mangling schemes to prevent incompatible
binaries from being mixed.
Dave