Potentially missing symbol in libxmltooling-lite.so
Basics
Technical
Logistics
Basics
Technical
Logistics
Description
One of our users at a university reported this potential problem, which we couldn't reproduce on a self-compiled Debian SP. Could be a Solaris-only issue:
SW components involved in the tests: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SunOS 5.10 Generic_137137-09 curl 7.19.2 Xerces-C++ 2.8.0 xml-tooling-c 1.3 XML Security C++ 1.5.1 log4shib 1.0.2 Open SSL 0.9.8k Open SAML 2.3 Shibboleth SP 2.3 Apache 2.2.13
The light xml-tooling-c library libxmltooling-lite.so.4.0.0 in the version 1.3 includes the symbol _1cKxmltoolingNSOAPTransport2T6M_v which is defined in the full library libxmltooling.so.4.0.0. On the Solaris platform, one can check this with the following command (the install directory is /usr/local/xml-tooling-c)
This was not the case in the xml-tooling-c version 1.2. The above symbol was not used in the lite library at all.
The missing definition of the symbol in the lite library causes problems in Shibboleth SP and Apache. The Apache module mod_shib_22.so, generated by the Shibboleth installation, uses the light xml-tooling-c library. If mod_shib_22.so is loaded by the httpd, it produces the following error
httpd: Syntax error on line 76 of /etc/apache2/httpd.conf: Cannot load /usr/local/apache2/libexec/mod_shib_22.so into server: ld.so.1: httpd: fatal: relocation error: file /usr/local/xml-tooling-c/lib/libxmltooling-lite.so.4: symbol _1cKxmltoolingNSOAPTransport2T6M_v: referenced symbol not found
and the daemon does not start.
A workaround is to include both the light and the full xml-tooling-c libraries in the file configure in Shibboleth SP source directory as follows
It does appear to be platform specific, Solaris is including an UNDEF symbol for the SOAPTransport destructor. Must have occurred during the header refactoring work, I'll correct for 1.3.1, which is imminent.
Scott Cantor November 6, 2009 at 11:15 AM
I'll look at my builds and try and resolve in the 1.3.1 patch.
Fixed
Pinned fields
Click on the next to a field label to start pinning.
One of our users at a university reported this potential problem, which we couldn't reproduce on a self-compiled Debian SP. Could be a Solaris-only issue:
SW components involved in the tests:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SunOS 5.10 Generic_137137-09
curl 7.19.2
Xerces-C++ 2.8.0
xml-tooling-c 1.3
XML Security C++ 1.5.1
log4shib 1.0.2
Open SSL 0.9.8k
Open SAML 2.3
Shibboleth SP 2.3
Apache 2.2.13
The light xml-tooling-c library libxmltooling-lite.so.4.0.0 in the
version 1.3 includes the symbol _1cKxmltoolingNSOAPTransport2T6M_v
which is defined in the full library libxmltooling.so.4.0.0. On the Solaris
platform, one can check this with the following command (the install
directory is /usr/local/xml-tooling-c)
find /usr/local/xml-tooling-c/lib -name libxmltooling*so.4.0.0 -exec sh -c 'echo $0 ; nm -D $0 | grep 1cKxmltoolingNSOAPTransport2T6M' {} \;
This was not the case in the xml-tooling-c version 1.2. The above
symbol was not used in the lite library at all.
The missing definition of the symbol in the lite library causes
problems in Shibboleth SP and Apache. The Apache module mod_shib_22.so,
generated by the Shibboleth installation, uses the light xml-tooling-c
library. If mod_shib_22.so is loaded by the httpd, it produces the
following error
httpd: Syntax error on line 76 of /etc/apache2/httpd.conf: Cannot load /usr/local/apache2/libexec/mod_shib_22.so into server: ld.so.1: httpd: fatal: relocation error: file /usr/local/xml-tooling-c/lib/libxmltooling-lite.so.4: symbol _1cKxmltoolingNSOAPTransport2T6M_v: referenced symbol not found
and the daemon does not start.
A workaround is to include both the light and the full xml-tooling-c libraries
in the file configure in Shibboleth SP source directory as follows
LITE_LIBS="-lxmltooling-lite -lxmltooling"
and to rebuild the Apache mod_shib_22.so module.