[tlbuild] sparc-linux (bigendian?) failure in icu
Vladimir Volovich
vvv at vsu.ru
Tue May 15 17:07:49 CEST 2012
"KB" == Karl Berry writes:
KB> The build fails for me on sparc-linux, like this:
KB> ..
KB> LD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$LD_LIBRARY_PATH ../bin/icupkg -tb /u/guest/karl/tl/Build/source/Work/libs/icu/../../../libs/icu/icu-49.1/data/in/icudt49l.dat ./out/icudt49b.dat
KB> udata_swapDataHeader(): header size mismatch - headerSize 32768 infoSize 5120 length 1024
KB> make[6]: *** [out/icudt49b.dat] Error 8
KB> make[6]: Leaving directory `/home/1007/gu/karl/tl/Build/source/Work/libs/icu/icu-build/data'
FYI, I've got exactly the same failure on AIX (which is bigendian), and
it seems that Peter's guess is correct that the cause is that ICU uses
a weird approach with macros to detect bigendian (in platform.h) [and
other system properties, like existence of system header files], instead
of the autoconf tests.
FWIW, I've solved this problem by running
export CPPFLAGS="-DU_IS_BIG_ENDIAN=1"
before running the Build script. After this, the ICU was build
successfully, and icudt49b.dat was generated as part of the build.
Note that on sparc-solaris (also bigendian) I did not have such problem.
It seems that these macros just don't know about some platforms such as
sparc-linux and powerpc-aix.
On AIX, i've also used -DU_HAVE_STDINT_H=0 -DU_HAVE_INTTYPES_H=1 inside
CPPFLAGS, otherwise there was an error, because AIX 4.3 doesn't have stdint.h.
So you may try the above approach on sparc-linux, if you'd like.
Best wishes,
v.
More information about the tlbuild
mailing list