Skip to content

Commit 9c804a1

Browse files
committed
Merge branch 'work/android-16kb-v5' into v5.0-release
2 parents ab04ab5 + 349716b commit 9c804a1

File tree

17 files changed

+214
-55
lines changed

17 files changed

+214
-55
lines changed

builds/posix/make.android.arm64

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ endif
66

77
NDK_TOOLCHAIN ?= $(NDK)/toolchains/llvm/prebuilt/linux-x86_64
88

9-
CROSS_PREFIX24:=$(NDK_TOOLCHAIN)/bin/aarch64-linux-android24-
9+
CROSS_PREFIX29:=$(NDK_TOOLCHAIN)/bin/aarch64-linux-android29-
1010
CROSS_PREFIX:=$(NDK_TOOLCHAIN)/bin/llvm-
1111

1212
CROSS_FLAGS:=-I$(ROOT)/gen/cross
1313

14-
CXX:=$(CROSS_PREFIX24)clang++
15-
CC:=$(CROSS_PREFIX24)clang
14+
CXX:=$(CROSS_PREFIX29)clang++
15+
CC:=$(CROSS_PREFIX29)clang
1616
AR:=$(CROSS_PREFIX)ar
1717
AS:=$(CROSS_PREFIX)as
1818
LD:=$(CROSS_PREFIX)ld
@@ -46,7 +46,7 @@ DEV_FLAGS=$(COMMON_FLAGS) $(WARN_FLAGS)
4646

4747
CROSS_CONFIG=android.arm64
4848

49-
LDFLAGS += -static-libstdc++
49+
LDFLAGS += -static-libstdc++ -Wl,-z,max-page-size=16384
5050
DroidLibs := -lm -ldl -llog $(DECLIB) $(I128LIB)
5151
UDR_SUPPORT_LIBS :=
5252

builds/posix/make.android.arme

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ endif
66

77
NDK_TOOLCHAIN ?= $(NDK)/toolchains/llvm/prebuilt/linux-x86_64
88

9-
CROSS_PREFIX24:=$(NDK_TOOLCHAIN)/bin/armv7a-linux-androideabi24-
9+
CROSS_PREFIX29:=$(NDK_TOOLCHAIN)/bin/armv7a-linux-androideabi29-
1010
CROSS_PREFIX:=$(NDK_TOOLCHAIN)/bin/llvm-
1111

1212
CROSS_FLAGS:=-I$(ROOT)/gen/cross
1313

14-
CXX:=$(CROSS_PREFIX24)clang++
15-
CC:=$(CROSS_PREFIX24)clang
14+
CXX:=$(CROSS_PREFIX29)clang++
15+
CC:=$(CROSS_PREFIX29)clang
1616
AR:=$(CROSS_PREFIX)ar
1717
AS:=$(CROSS_PREFIX)as
1818
LD:=$(CROSS_PREFIX)ld
@@ -46,7 +46,7 @@ DEV_FLAGS=$(COMMON_FLAGS) $(WARN_FLAGS)
4646

4747
CROSS_CONFIG=android.arme
4848

49-
LDFLAGS += -static-libstdc++
49+
LDFLAGS += -static-libstdc++ -Wl,-z,max-page-size=16384
5050
DroidLibs := -lm -ldl -llog $(DECLIB) $(I128LIB)
5151
UDR_SUPPORT_LIBS :=
5252

builds/posix/make.android.x86

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ endif
66

77
NDK_TOOLCHAIN ?= $(NDK)/toolchains/llvm/prebuilt/linux-x86_64
88

9-
CROSS_PREFIX24:=$(NDK_TOOLCHAIN)/bin/i686-linux-android24-
9+
CROSS_PREFIX29:=$(NDK_TOOLCHAIN)/bin/i686-linux-android29-
1010
CROSS_PREFIX:=$(NDK_TOOLCHAIN)/bin/llvm-
1111

1212
CROSS_FLAGS:=-I$(ROOT)/gen/cross
1313

14-
CXX:=$(CROSS_PREFIX24)clang++
15-
CC:=$(CROSS_PREFIX24)clang
14+
CXX:=$(CROSS_PREFIX29)clang++
15+
CC:=$(CROSS_PREFIX29)clang
1616
AR:=$(CROSS_PREFIX)ar
1717
AS:=$(CROSS_PREFIX)as
1818
LD:=$(CROSS_PREFIX)ld
@@ -46,7 +46,7 @@ DEV_FLAGS=$(COMMON_FLAGS) $(WARN_FLAGS)
4646

4747
CROSS_CONFIG=android.x86
4848

49-
LDFLAGS += -static-libstdc++
49+
LDFLAGS += -static-libstdc++ -Wl,-z,max-page-size=16384
5050
DroidLibs := -lm -ldl -llog $(DECLIB) $(I128LIB)
5151
UDR_SUPPORT_LIBS :=
5252

builds/posix/make.android.x86_64

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ endif
66

77
NDK_TOOLCHAIN ?= $(NDK)/toolchains/llvm/prebuilt/linux-x86_64
88

9-
CROSS_PREFIX24:=$(NDK_TOOLCHAIN)/bin/x86_64-linux-android24-
9+
CROSS_PREFIX29:=$(NDK_TOOLCHAIN)/bin/x86_64-linux-android29-
1010
CROSS_PREFIX:=$(NDK_TOOLCHAIN)/bin/llvm-
1111

1212
CROSS_FLAGS:=-I$(ROOT)/gen/cross
1313

14-
CXX:=$(CROSS_PREFIX24)clang++
15-
CC:=$(CROSS_PREFIX24)clang
14+
CXX:=$(CROSS_PREFIX29)clang++
15+
CC:=$(CROSS_PREFIX29)clang
1616
AR:=$(CROSS_PREFIX)ar
1717
AS:=$(CROSS_PREFIX)as
1818
LD:=$(CROSS_PREFIX)ld
@@ -46,7 +46,7 @@ DEV_FLAGS=$(COMMON_FLAGS) $(WARN_FLAGS)
4646

4747
CROSS_CONFIG=android.x86_64
4848

49-
LDFLAGS += -static-libstdc++
49+
LDFLAGS += -static-libstdc++ -Wl,-z,max-page-size=16384
5050
DroidLibs := -lm -ldl -llog $(DECLIB) $(I128LIB)
5151
UDR_SUPPORT_LIBS :=
5252

extern/icu/android/Dockerfile

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
FROM debian:bookworm AS builder
2+
3+
ENV NDK=/opt/android-ndk
4+
ENV NDK_TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
5+
ENV PATH=$NDK_TOOLCHAIN/bin:$PATH
6+
7+
ADD https://dl.google.com/android/repository/android-ndk-r28c-linux.zip /tmp/android-ndk.zip
8+
ADD https://github.com/unicode-org/icu/releases/download/release-63-1/icu4c-63_1-src.tgz /tmp/icu4c-63_1-src.tgz
9+
10+
RUN apt-get update && \
11+
apt-get install -y \
12+
cmake \
13+
g++ \
14+
unzip \
15+
xz-utils && \
16+
rm -rf /var/cache/apt/archives /var/lib/apt/lists/* && \
17+
\
18+
unzip /tmp/android-ndk.zip -d $NDK && for d in "$NDK"/*; do mv "$d"/* "$NDK"/; rmdir "$d"; done && \
19+
mkdir /src && \
20+
tar -xzf /tmp/icu4c-63_1-src.tgz -C /src --one-top-level=linux && \
21+
rm /tmp/android-ndk.zip /tmp/icu4c-63_1-src.tgz && \
22+
\
23+
cd /src/linux/icu/source && \
24+
./runConfigureICU Linux --prefix=$PWD/prebuilt \
25+
CFLAGS="-Os" \
26+
CXXFLAGS="--std=c++17" \
27+
--enable-static \
28+
--enable-shared=no \
29+
--enable-extras=no \
30+
--enable-strict=no \
31+
--enable-icuio=no \
32+
--enable-layout=no \
33+
--enable-layoutex=no \
34+
--enable-tools \
35+
--enable-tests=no \
36+
--enable-samples=no \
37+
--enable-dyload \
38+
--with-data-packaging=archive && \
39+
make -j15 && \
40+
make install && \
41+
\
42+
cp -a /src/linux /src/x86 && \
43+
cd /src/x86/icu/source && \
44+
./configure --prefix=/build/x86 \
45+
--host=i686-android-linux \
46+
--enable-static=no \
47+
--enable-shared \
48+
--enable-extras=no \
49+
--enable-strict=no \
50+
--enable-icuio=no \
51+
--enable-layout=no \
52+
--enable-layoutex=no \
53+
--enable-tools=no \
54+
--enable-tests=no \
55+
--enable-samples=no \
56+
--enable-renaming \
57+
--enable-dyload \
58+
--with-cross-build=/src/linux/icu/source \
59+
CFLAGS='-Os' \
60+
CXXFLAGS='--std=c++17' \
61+
LDFLAGS='-static-libstdc++ -Wl,-z,max-page-size=16384 -Wl,-rpath=\$$ORIGIN' \
62+
CC=i686-linux-android29-clang \
63+
CXX=i686-linux-android29-clang++ \
64+
AR=llvm-ar \
65+
RANLIB=llvm-ranlib \
66+
--with-data-packaging=archive && \
67+
make -j15 && \
68+
make install && \
69+
\
70+
cp -a /src/linux /src/x64 && \
71+
cd /src/x64/icu/source && \
72+
./configure --prefix=/build/x64 \
73+
--host=x86_64-android-linux \
74+
--enable-static=no \
75+
--enable-shared \
76+
--enable-extras=no \
77+
--enable-strict=no \
78+
--enable-icuio=no \
79+
--enable-layout=no \
80+
--enable-layoutex=no \
81+
--enable-tools=no \
82+
--enable-tests=no \
83+
--enable-samples=no \
84+
--enable-renaming \
85+
--enable-dyload \
86+
--with-cross-build=/src/linux/icu/source \
87+
CFLAGS='-Os' \
88+
CXXFLAGS='--std=c++17' \
89+
LDFLAGS='-static-libstdc++ -Wl,-z,max-page-size=16384 -Wl,-rpath=\$$ORIGIN' \
90+
CC=x86_64-linux-android29-clang \
91+
CXX=x86_64-linux-android29-clang++ \
92+
AR=llvm-ar \
93+
RANLIB=llvm-ranlib \
94+
--with-data-packaging=archive && \
95+
make -j15 && \
96+
make install && \
97+
\
98+
cp -a /src/linux /src/arm32 && \
99+
cd /src/arm32/icu/source && \
100+
./configure --prefix=/build/arm32 \
101+
--host=arm-linux-androideabi \
102+
--enable-static=no \
103+
--enable-shared \
104+
--enable-extras=no \
105+
--enable-strict=no \
106+
--enable-icuio=no \
107+
--enable-layout=no \
108+
--enable-layoutex=no \
109+
--enable-tools=no \
110+
--enable-tests=no \
111+
--enable-samples=no \
112+
--enable-renaming \
113+
--enable-dyload \
114+
--with-cross-build=/src/linux/icu/source \
115+
CFLAGS='-Os -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
116+
CXXFLAGS='--std=c++17 -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
117+
LDFLAGS='-static-libstdc++ -Wl,-z,max-page-size=16384 -march=armv7-a -Wl,--fix-cortex-a8 -Wl,-rpath=\$$ORIGIN' \
118+
CC=armv7a-linux-androideabi29-clang \
119+
CXX=armv7a-linux-androideabi29-clang++ \
120+
AR=llvm-ar \
121+
RANLIB=llvm-ranlib \
122+
--with-data-packaging=archive && \
123+
make -j15 && \
124+
make install && \
125+
\
126+
cp -a /src/linux /src/arm64 && \
127+
cd /src/arm64/icu/source && \
128+
./configure --prefix=/build/arm64 \
129+
--host=aarch64-android-linux \
130+
--enable-static=no \
131+
--enable-shared \
132+
--enable-extras=no \
133+
--enable-strict=no \
134+
--enable-icuio=no \
135+
--enable-layout=no \
136+
--enable-layoutex=no \
137+
--enable-tools=no \
138+
--enable-tests=no \
139+
--enable-samples=no \
140+
--enable-renaming \
141+
--enable-dyload \
142+
--with-cross-build=/src/linux/icu/source \
143+
CFLAGS='-Os' \
144+
CXXFLAGS='--std=c++17' \
145+
LDFLAGS='-static-libstdc++ -Wl,-z,max-page-size=16384 -Wl,-rpath=\$$ORIGIN' \
146+
CC=aarch64-linux-android29-clang \
147+
CXX=aarch64-linux-android29-clang++ \
148+
AR=llvm-ar \
149+
RANLIB=llvm-ranlib \
150+
--with-data-packaging=archive && \
151+
make -j15 && \
152+
make install && \
153+
\
154+
mkdir -p /out/x86 /out/x64 /out/arm32 /out/arm64 && \
155+
cd /out && \
156+
\
157+
cp /build/x86/lib/libicudata.so.63.1 x86/libicudata.63.1.so && \
158+
cp /build/x86/lib/libicui18n.so.63.1 x86/libicui18n.63.1.so && \
159+
cp /build/x86/lib/libicuuc.so.63.1 x86/libicuuc.63.1.so && \
160+
\
161+
cp /build/x64/lib/libicudata.so.63.1 x64/libicudata.63.1.so && \
162+
cp /build/x64/lib/libicui18n.so.63.1 x64/libicui18n.63.1.so && \
163+
cp /build/x64/lib/libicuuc.so.63.1 x64/libicuuc.63.1.so && \
164+
\
165+
cp /build/arm32/lib/libicudata.so.63.1 arm32/libicudata.63.1.so && \
166+
cp /build/arm32/lib/libicui18n.so.63.1 arm32/libicui18n.63.1.so && \
167+
cp /build/arm32/lib/libicuuc.so.63.1 arm32/libicuuc.63.1.so && \
168+
\
169+
cp /build/arm64/lib/libicudata.so.63.1 arm64/libicudata.63.1.so && \
170+
cp /build/arm64/lib/libicui18n.so.63.1 arm64/libicui18n.63.1.so && \
171+
cp /build/arm64/lib/libicuuc.so.63.1 arm64/libicuuc.63.1.so && \
172+
\
173+
tar cfJ /out/icu-android.tar.xz x86 x64 arm32 arm64 && \
174+
\
175+
rm -rf x86 x64 arm32 arm64 /src /build
176+
177+
178+
FROM scratch
179+
180+
COPY --from=builder /out/icu-android.tar.xz /out/icu-android.tar.xz

extern/icu/android/aarch64/config.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
CFLAGS='-Os' \
2121
CXXFLAGS='--std=c++17' \
2222
LDFLAGS='-static-libstdc++ -Wl,-rpath=\$$ORIGIN' \
23-
CC=aarch64-linux-android24-clang \
24-
CXX=aarch64-linux-android24-clang++ \
23+
CC=aarch64-linux-android29-clang \
24+
CXX=aarch64-linux-android29-clang++ \
2525
AR=llvm-ar \
2626
RANLIB=llvm-ranlib \
2727
--with-data-packaging=archive

extern/icu/android/aarch64/mk.sh

Lines changed: 0 additions & 6 deletions
This file was deleted.

extern/icu/android/armv7a/config.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
CFLAGS='-Os -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
2121
CXXFLAGS='--std=c++17 -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
2222
LDFLAGS='-static-libstdc++ -march=armv7-a -Wl,--fix-cortex-a8 -Wl,-rpath=\$$ORIGIN' \
23-
CC=armv7a-linux-androideabi24-clang \
24-
CXX=armv7a-linux-androideabi24-clang++ \
23+
CC=armv7a-linux-androideabi29-clang \
24+
CXX=armv7a-linux-androideabi29-clang++ \
2525
AR=llvm-ar \
2626
RANLIB=llvm-ranlib \
2727
--with-data-packaging=archive

extern/icu/android/armv7a/mk.sh

Lines changed: 0 additions & 6 deletions
This file was deleted.

extern/icu/android/build.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/bin/sh
2+
set -e
3+
4+
docker build -t fb-icu-android:v5 .
5+
6+
cid=$(docker create fb-icu-android:v5 true)
7+
docker cp $cid:/out/icu-android.tar.xz ../icu_android.tar.xz
8+
docker rm $cid
9+
10+
docker image rm fb-icu-android:v5

0 commit comments

Comments
 (0)