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 Mateusz Dyda <ma...@gmail.com> on 2016/11/04 10:42:42 UTC

Xerces compiling for android error

I've been trying to compile Xerces-C (tried 3.1.2 and 3.1.4) with ICU
transcoder for Android (armv7a architecture) which I later need as a
dependency for Apache Santuario but I get a compilation error about a
particular struct missing some members. I've done some research and it
might be something to do with locale.h file being broken in android c
libraries but I could not find anything more on that. Any help would be
much appreciated.

Here is how I run configure for Xerces:

./configure --disable-shared \
  --host=arm-linux-androideabi \
  --disable-pretty-make \
  --enable-transcoder-icu \
  --with-icu=$PWD/../icu/armv7a/prebuilt \
  --prefix=$PWD/build-androideabi \
  CFLAGS='-Os -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
  CXXFLAGS='--std=c++11 -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
  LDFLAGS='-lc -lstdc++ -march=armv7-a -Wl,--fix-cortex-a8' \
  CC=arm-linux-androideabi-clang \
  CXX=arm-linux-androideabi-clang++ \
  AR=arm-linux-androideabi-ar \
  RINLIB=arm-linux-androideabi-ranlib


and the error excerpt is:

 /bin/bash ../libtool --quiet --tag=CXX --mode=compile
arm-linux-androideabi-clang++ -DHAVE_CONFIG_H -DXERCES_BUILDING_LIBRARY -I.
-I.. -I../src/xercesc/util
-I/home/mateusz/Projects/SQRLibs/External/secure-chorus/external/icu/armv7a/prebuilt/include
    --std=c++11 -march=armv7-a -mfloat-abi=softfp -mfpu=neon  -MT
xercesc/util/XMLAbstractDoubleFloat.lo -MD -MP -MF $depbase.Tpo -c -o
xercesc/util/XMLAbstractDoubleFloat.lo
xercesc/util/XMLAbstractDoubleFloat.cpp &&\
mv -f $depbase.Tpo $depbase.Plo
xercesc/util/XMLAbstractDoubleFloat.cpp:431:27: error: no member named
      'decimal_point' in 'lconv'
    char delimiter = *lc->decimal_point;
                      ~~  ^
1 error generated.
Makefile:4021: recipe for target 'xercesc/util/XMLAbstractDoubleFloat.lo'
failed


Regards,
Mateusz

Re: Xerces compiling for android error

Posted by Mateusz Dyda <ma...@gmail.com>.
I've solved the issue by switching to a different implementation of c++
standard libs i.e. libc++.

Regards,
Mateusz

On 4 November 2016 at 10:42, Mateusz Dyda <ma...@gmail.com> wrote:

> I've been trying to compile Xerces-C (tried 3.1.2 and 3.1.4) with ICU
> transcoder for Android (armv7a architecture) which I later need as a
> dependency for Apache Santuario but I get a compilation error about a
> particular struct missing some members. I've done some research and it
> might be something to do with locale.h file being broken in android c
> libraries but I could not find anything more on that. Any help would be
> much appreciated.
>
> Here is how I run configure for Xerces:
>
> ./configure --disable-shared \
>   --host=arm-linux-androideabi \
>   --disable-pretty-make \
>   --enable-transcoder-icu \
>   --with-icu=$PWD/../icu/armv7a/prebuilt \
>   --prefix=$PWD/build-androideabi \
>   CFLAGS='-Os -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
>   CXXFLAGS='--std=c++11 -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
>   LDFLAGS='-lc -lstdc++ -march=armv7-a -Wl,--fix-cortex-a8' \
>   CC=arm-linux-androideabi-clang \
>   CXX=arm-linux-androideabi-clang++ \
>   AR=arm-linux-androideabi-ar \
>   RINLIB=arm-linux-androideabi-ranlib
>
>
> and the error excerpt is:
>
>  /bin/bash ../libtool --quiet --tag=CXX --mode=compile
> arm-linux-androideabi-clang++ -DHAVE_CONFIG_H -DXERCES_BUILDING_LIBRARY -I.
> -I.. -I../src/xercesc/util   -I/home/mateusz/Projects/
> SQRLibs/External/secure-chorus/external/icu/armv7a/prebuilt/include
> --std=c++11 -march=armv7-a -mfloat-abi=softfp -mfpu=neon  -MT xercesc/util/XMLAbstractDoubleFloat.lo
> -MD -MP -MF $depbase.Tpo -c -o xercesc/util/XMLAbstractDoubleFloat.lo
> xercesc/util/XMLAbstractDoubleFloat.cpp &&\
> mv -f $depbase.Tpo $depbase.Plo
> xercesc/util/XMLAbstractDoubleFloat.cpp:431:27: error: no member named
>       'decimal_point' in 'lconv'
>     char delimiter = *lc->decimal_point;
>                       ~~  ^
> 1 error generated.
> Makefile:4021: recipe for target 'xercesc/util/XMLAbstractDoubleFloat.lo'
> failed
>
>
> Regards,
> Mateusz
>