[Libreoffice-commits] .: icu/icu4c-build.patch icu/makefile.mk

Tor Lillqvist tml at kemper.freedesktop.org
Sat Jun 11 07:51:03 PDT 2011


 icu/icu4c-build.patch |   85 ++++++++++++++++++++++++++++++++++++++++++++++++++
 icu/makefile.mk       |   12 ++++++-
 2 files changed, 96 insertions(+), 1 deletion(-)

New commits:
commit 81cc31ebfe017a0e5f1a4c65388db999f6569f08
Author: Tor Lillqvist <tml at iki.fi>
Date:   Sat Jun 11 17:44:45 2011 +0300

    Initial attempt at Android cross-compilation support
    
    Recognize the arm-linux-androideabi "triplet". (Actually I doubt that
    is a well-formed triplet at all, what are the Google people smoking?)
    
    Allow longer lines in pkgdata.cpp as the compiler command line gets
    quite long for cross-compilation to Android.
    
    Add the proper assembly source file format for Android to pkg_genc.c
    and use that.
    
    Probably a good idea to use --disable-dyload on Android (and iOS).
    
    Tweak gcc flags used for Android a bit to work around some Android C
    header weirdness related to strictness and 64-bit types.

diff --git a/icu/icu4c-build.patch b/icu/icu4c-build.patch
index e5e4bd9..3a09610 100644
--- a/icu/icu4c-build.patch
+++ b/icu/icu4c-build.patch
@@ -1,3 +1,88 @@
+--- misc/icu/source/config.sub
++++ misc/build/icu/source/config.sub
+@@ -1272,7 +1272,7 @@
+ 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
++	      | -udi* | -androideabi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ 	      | -chorusos* | -chorusrdb* \
+ 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ 	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+--- misc/icu/source/configure
++++ misc/build/icu/source/configure
+@@ -5438,7 +5438,7 @@
+ 	else
+ 		icu_cv_host_frag=mh-linux-va
+ 	fi ;;
+-*-*-linux*|*-pc-gnu) icu_cv_host_frag=mh-linux ;;
++*-*-linux*|*-pc-gnu|*-*-androideabi*) icu_cv_host_frag=mh-linux ;;
+ *-*-cygwin|*-*-mingw32)
+ 	if test "$GCC" = yes; then
+ 		cat >conftest.$ac_ext <<_ACEOF
+@@ -7429,6 +7429,9 @@
+ # Check to see if genccode can generate simple assembly.
+ GENCCODE_ASSEMBLY=
+ case "${host}" in
++*-linux-androideabi)
++    GENCCODE_ASSEMBLY="-a gcc-android"
++    ;;
+ *-linux*|i*86-*-*bsd*|i*86-pc-gnu)
+     if test "$GCC" = yes; then
+         # We're using gcc, and the simple -a gcc command line works for genccode
+@@ -11115,6 +1115,10 @@
+     # wchar_t can be used
+     CHECK_UTF16_STRING_RESULT="available"
+     ;;
++*-*-androideabi*)
++    # no UTF-16 strings thanks, I think, this is to avoid the -std=c++0x which causes trouble with uint64_t
++    CHECK_UTF16_STRING_RESULT="nope"
++    ;;
+ *)
+     ;;
+ esac
+--- misc/icu/source/tools/toolutil/pkg_genc.c
++++ misc/build/icu/source/tools/toolutil/pkg_genc.c
+@@ -145,6 +145,28 @@
+ 
+         ".long ","",HEX_0X
+     },
++    {"gcc-android",
++	"\t.arch armv5te\n"
++	"\t.fpu softvfp\n"
++	"\t.eabi_attribute 20, 1\n"
++	"\t.eabi_attribute 21, 1\n"
++	"\t.eabi_attribute 23, 3\n"
++	"\t.eabi_attribute 24, 1\n"
++	"\t.eabi_attribute 25, 1\n"
++	"\t.eabi_attribute 26, 2\n"
++	"\t.eabi_attribute 30, 6\n"
++	"\t.eabi_attribute 18, 4\n"
++	"\t.file \"%s.s\"\n"
++	"\t.global %s\n"
++	"\t.section .rodata\n"
++	"\t.align 2\n"
++	"\t.type %s, %%object\n"
++	"%s:\n",
++
++	"\t.word ",
++	"\t.section .note.GNU-stack,\"\",%%progbits\n",
++	HEX_0X
++    },
+     {"sun",
+         "\t.section \".rodata\"\n"
+         "\t.align   8\n"
+--- misc/icu/source/tools/pkgdata/pkgdata.cpp
++++ misc/build/icu/source/tools/pkgdata/pkgdata.cpp
+@@ -97,7 +97,7 @@
+ #endif
+ 
+ #define LARGE_BUFFER_MAX_SIZE 2048
+-#define SMALL_BUFFER_MAX_SIZE 512
++#define SMALL_BUFFER_MAX_SIZE 2048
+ 
+ static void loadLists(UPKGOptions *o, UErrorCode *status);
+ 
 --- misc/icu/source/common/putil.c	2010-09-29 20:37:22.000000000 +0200
 +++ misc/build/icu/source/common/putil.c	2011-03-15 10:58:44.054592942 +0100
 @@ -52,7 +52,7 @@
diff --git a/icu/makefile.mk b/icu/makefile.mk
index fca782f..42ca838 100644
--- a/icu/makefile.mk
+++ b/icu/makefile.mk
@@ -98,6 +98,16 @@ LDFLAGSADD += -Wl,--hash-style=both
 icu_CFLAGS+=-DUCONFIG_NO_FILE_IO
 .ENDIF
 
+.IF "$(OS)"=="ANDROID"
+# Problems with uint64_t on Android unless disabling strictness
+DISABLE_STRICT=--disable-strict
+.ENDIF
+
+.IF "$(OS)"=="IOS" || "$(OS)"=="ANDROID"
+# Problems with uint64_t on Android unless disabling strictness
+DISABLE_DYLOAD=--disable-dyload
+.ENDIF
+
 .IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)"  == "TRUE"
 LDFLAGSADD += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
 .ENDIF
@@ -116,7 +126,7 @@ BUILD_AND_HOST=--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM) --with-cross-bu
 .ENDIF
 
 CONFIGURE_ACTION+=sh -c 'CPPFLAGS="$(EXTRA_CDEFS)" CFLAGS="$(icu_CFLAGS)" CXXFLAGS="$(icu_CXXFLAGS)" LDFLAGS="$(icu_LDFLAGS) $(LDFLAGSADD)" \
-./configure --enable-layout $(STATIC_OR_SHARED) $(BUILD_AND_HOST) $(DISABLE_64BIT)'
+./configure --enable-layout $(STATIC_OR_SHARED) $(BUILD_AND_HOST) $(DISABLE_64BIT) $(DISABLE_STRICT) $(DISABLE_DYLOAD) '
 
 CONFIGURE_FLAGS=
 


More information about the Libreoffice-commits mailing list