summaryrefslogtreecommitdiff
path: root/icu/icu4c-android.patch
blob: f8163d3052c3ff99317f79c171a0df841eff44f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
--- misc/icu/source/config/mh-linux
+++ misc/build/icu/source/config/mh-linux
@@ -30,7 +30,7 @@
 
 ## Compiler switch to embed a library name
 # The initial tab in the next line is to prevent icu-config from reading it.
-	LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET))
+#	LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET))
 #SH# # We can't depend on MIDDLE_SO_TARGET being set.
 #SH# LD_SONAME=
 
--- misc/icu/source/configure
+++ misc/build/icu/source/configure
@@ -5053,7 +5053,7 @@
 	else
 		icu_cv_host_frag=mh-linux-va
 	fi ;;
-*-*-linux*|*-*-gnu|*-*-k*bsd*-gnu|*-*-kopensolaris*-gnu) icu_cv_host_frag=mh-linux ;;
+*-*-linux*|*-*-gnu|*-*-k*bsd*-gnu|*-*-kopensolaris*-gnu|*-*-*-androideabi*) icu_cv_host_frag=mh-linux ;;
 *-*-cygwin|*-*-mingw32)
 	if test "$GCC" = yes; then
 		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6127,6 +6127,9 @@
 # Check to see if genccode can generate simple assembly.
 GENCCODE_ASSEMBLY=
 case "${host}" in
+*-*-linux-androideabi)
+    GENCCODE_ASSEMBLY="-a gcc-android"
+    ;;
 *-linux*|*-kfreebsd*-gnu*|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
@@ -7200,6 +7203,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/common/putilimp.h
+++ misc/build/icu/source/common/putilimp.h
@@ -86,6 +86,8 @@
     /* Use the predefined value. */
 #elif U_PLATFORM_HAS_WIN32_API
 #   define U_HAVE_NL_LANGINFO_CODESET 0
+#elif defined(__ANDROID__)
+#   define U_HAVE_NL_LANGINFO_CODESET 0
 #else
 #   define U_HAVE_NL_LANGINFO_CODESET 1
 #endif