Mantis - xerces_c
Viewing Issue Advanced Details
5223 packaging crash always 2014-12-08 23:21 2014-12-10 14:07
soladmin  
dam  
normal  
closed  
no change required  
none    
none  
0005223: Undefined xerces symbols encountered when trying to compile test program
I was trying to build a project against xerces_c today. However, the configure test for xerces was failing (see below). I was on kiel, so I have updated to the current stable release and tried the build again. However, the current stable release also has the same linker problems:

g++ -o conftest -Wall -O2 -DNDEBUG -D_REENTRANT -pthreads -L/opt/csw/lib -R/opt/csw/lib conftest.cpp -lxerces-c -lsocket -lm

Undefined first referenced
 symbol in file
_ZN11xercesc_3_116XMLPlatformUtils10InitializeEPKcS2_PNS_12PanicHandlerEPNS_13MemoryManagerE /var/tmp//ccCvYlj8.o
_ZN11xercesc_3_16XMLUni22fgXercescDefaultLocaleE /var/tmp//ccCvYlj8.o
ld: fatal: symbol referencing errors. No output written to conftest


configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "XML-Security-C"
| #define PACKAGE_TARNAME "xml-security-c"
| #define PACKAGE_VERSION "1.7.2"
| #define PACKAGE_STRING "XML-Security-C 1.7.2"
| #define PACKAGE_BUGREPORT "dev@santuario.apache.org"
| #define PACKAGE_URL ""
| #define PACKAGE "xml-security-c"
| #define VERSION "1.7.2"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_PTHREAD_PRIO_INHERIT 1
| #define HAVE_PTHREAD 1
| #define HAVE_LIBM 1
| #define HAVE_LIBSOCKET 1
| #define HAVE_UNISTD_H 1
| #define XSEC_HAVE_STRCASECMP 1
| /* end confdefs.h. */
| #include <xercesc/util/PlatformUtils.hpp>
| int
| main ()
| {
| xercesc::XMLPlatformUtils::Initialize()
| ;
| return 0;
| }
I built xerces_c from the current source 3.1.1 against the opencsw directory (with all the xerces packages removed), and I do not get the linker error when running the test program.
Issue History
2014-12-08 23:21 soladmin New Issue
2014-12-09 20:52 soladmin Note Added: 0010988
2014-12-10 14:05 dam Status new => assigned
2014-12-10 14:05 dam Assigned To => dam
2014-12-10 14:07 dam Note Added: 0010990
2014-12-10 14:07 dam Status assigned => closed
2014-12-10 14:07 dam Resolution open => no change required

Notes
(0010988)
soladmin   
2014-12-09 20:52   
I was thinking about this more. I tried to use the CSW gcc/g++ compiler to build against this library. However, I bet that xerces was compiled with the SUNWspro compiler, so this may indicate why I am getting errors trying to link against the xerces library when building with the GNU compiler.

So, this may not be a bug at all... Sorry
(0010990)
dam   
2014-12-10 14:07   
This is indeed an issue of C++ symbol mangling difference between Sun Studio and GCC.
We plan with the upcoming Bratislava release to switch completely to GCC:
  http://wiki.opencsw.org/release-bratislava [^]
However, it may take some time until this is finished.