You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-users@xerces.apache.org by "Martin B." <so...@rootdirectory.de> on 2012/05/08 15:13:07 UTC

Issues building Xerces-C 3.1.1 against ICU 49.1.1

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


Re: Issues building Xerces-C 3.1.1 against ICU 49.1.1

Posted by Boris Kolpackov <bo...@codesynthesis.com>.
Hi Martin,

Martin B. <so...@rootdirectory.de> writes:

> 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.

Look into config.log. Xerces-C++ configure runs a number of  compilation
and linking tests to determine if ICU is present and usable. This file
contains the source code for tests that configure tries to run, compiler
command lines, diagnostics, etc.

Boris

-- 
Boris Kolpackov, Code Synthesis        http://codesynthesis.com/~boris/blog
Compiler-based ORM system for C++      http://codesynthesis.com/products/odb
Open-source XML data binding for C++   http://codesynthesis.com/products/xsd
XML data binding for embedded systems  http://codesynthesis.com/products/xsde

Re: Issues building Xerces-C 3.1.1 against ICU 49.1.1

Posted by sarju tambe <sa...@gmail.com>.
Hi

I am working on xerces for the first time.
can you please tell me.which symbols get added in xerces library, if
we built it with ICU 4.9 ?.

Regards,
Sarju


On Wed, May 9, 2012 at 10:31 PM, Sitansu D <si...@gmail.com> wrote:
> Hi Solar,
>
> Try to pass CPPFLAGS="-mt -AA -D_REENTRANT" during xerces configure and
> hope it will pickup ICU transcoder then try build.
>
>
> Thanks,
>
> Sitansu
>
>
> On Tue, May 8, 2012 at 6:43 PM, Martin B. <so...@rootdirectory.de> wrote:
>
>> 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
>>
>>

Re: Issues building Xerces-C 3.1.1 against ICU 49.1.1

Posted by Sitansu D <si...@gmail.com>.
Hi Solar,

Try to pass CPPFLAGS="-mt -AA -D_REENTRANT" during xerces configure and
hope it will pickup ICU transcoder then try build.


Thanks,

Sitansu


On Tue, May 8, 2012 at 6:43 PM, Martin B. <so...@rootdirectory.de> wrote:

> 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
>
>