I've run into a couple of problems trying to build Xerces-C 3.1.1
against ICU 49.1.1, and could need some help...
I try to build on an elderly SuSE SLES 10, with GCC 4.1.2. I first
installed ICU using:
./configure --prefix=/custom/path/icu --enable-rpath --disable-debug \
--disable-tracing --with-library-bits=64 && make && make install
I checked the ICU installation to be sane (i.e., binaries finding
their libs etc.). Then I attempted to build Xerces-C using:
./configure --enable-msgloader-icu --enable-transcoder-icu \
--with-icu=/custom/path/icu --prefix=/custom/path/xerces \
&& make && make install
The source gets compiled, but the build bombs out at the link stage,
more precisely the first, screen-filling libtool invocation (shortened
long list of object files):
/bin/sh ../libtool --tag=CXX --mode=link g++ -g -O2 -msse2 \
-release 3.1 -o libxerces-c.la -rpath /custom/path/xerces/lib \
xercesc/util/Base64.lo [...] \
strnicmp.lo -lnsl -lpthread -Wl,-zorigin,-rpath,$ORIGIN \
-Wl,-rpath,/custom/path/icu/lib -lpthread -ldl -lm \
-L/custom/path/icu/lib -licui18n -licuuc -licudata -lpthread \
-ldl -lm -Wl,-zorigin,-rpath,$ORIGIN -Wl,-rpath,/custom/path/icu/lib \
-lpthread -ldl -lm -L/custom/path/icu/lib -licui18n -licuuc -licudata \
-lpthread -ldl -lm
The error message is:
/custom/path/icu/lib: file not recognized: Is a directory
That looks suspiciously like the build appending
"-lpthread $(icu-config --ldflags)" to the libtool line twice over,
and choking on the late "-L" option contained therein.
Confused, and suspecting the somewhat aged build environment, I
took a different machine - a Linux Mint 12 box, with GCC 4.6.1 -
and attempted the same build again.
That one builds without problems... but a look at the build logs
reveals it didn't do what I asked it to do:
configure:18319: checking whether we can support the ICU Transcoder
configure:18339: result: no
[...]
configure:18599: checking whether we support the ICU MsgLoader
configure:18619: result: no
[...]
configure:21971: Report:
configure:21973: File Manager: POSIX
configure:21975: Mutex Manager: POSIX
configure:21977: Transcoder: gnuiconv
configure:21979: NetAccessor: socket
configure:21981: Message Loader: inmemory
No further information as to why ICU "couldn't be supported" was to
be had from any logfiles that I was able to find.
I am quite confused, and cannot help but suspect that "Xerces-C with
ICU" is perhaps not as well-tested as it should be. I'm also at my
wit's end as to what I could do to make it work, ideally on both
machines.
Help, please?
Regards,
--
Solar
solar rootdirectory de