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
87
88
89
90
91
92
93
94
95
|
--- 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
@@ -114,6 +114,8 @@
#ifdef U_TIMEZONE
/* Use the predefined value. */
+#elif defined(__ANDROID__)
+# define U_TIMEZONE timezone
#elif U_PLATFORM_IS_LINUX_BASED
# define U_TIMEZONE __timezone
#elif U_PLATFORM_USES_ONLY_WIN32_API
|