Skip to content

Commit 9ab10f0

Browse files
committed
Fix 32 bit arm build & fix openssl api suffix
1 parent d320d9e commit 9ab10f0

File tree

2 files changed

+27
-12
lines changed

2 files changed

+27
-12
lines changed

build-curl.sh

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
#!/bin/bash
22

3-
export TOOLCHAIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$HOST_TAG
4-
PATH=$TOOLCHAIN/bin:$PATH
3+
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/$HOST_TAG
54

65
# curl common configuration arguments
7-
ARGUMENTS=\
6+
ARGUMENTS=" \
87
--disable-shared \
98
--disable-verbose \
109
--disable-manual \
@@ -33,11 +32,12 @@ ARGUMENTS=\
3332
--disable-smtp \
3433
--disable-smtps \
3534
--disable-telnet \
36-
--disable-tftp
35+
--disable-tftp \
36+
"
3737

3838
mkdir -p build/curl
3939
cd curl
40-
./buildconf
40+
autoreconf -fi
4141

4242
# arm64
4343
export TARGET_HOST=aarch64-linux-android
@@ -65,13 +65,15 @@ cp -R $PWD/build/$ANDROID_ARCH ../build/curl/
6565
# arm
6666
export TARGET_HOST=armv7a-linux-androideabi
6767
export ANDROID_ARCH=armeabi-v7a
68-
export AR=$TOOLCHAIN/bin/$TARGET_HOST-ar
69-
export AS=$TOOLCHAIN/bin/$TARGET_HOST-as
68+
69+
# for 32-bit ARM, the compiler is prefixed with armv7a-linux-androideabi, but the binutils tools are prefixed with arm-linux-androideabi
70+
export AR=$TOOLCHAIN/bin/arm-linux-androideabi-ar
71+
export AS=$TOOLCHAIN/bin/arm-linux-androideabi-as
7072
export CC=$TOOLCHAIN/bin/$TARGET_HOST$MIN_SDK_VERSION-clang
7173
export CXX=$TOOLCHAIN/bin/$TARGET_HOST$MIN_SDK_VERSION-clang++
72-
export LD=$TOOLCHAIN/bin/$TARGET_HOST-ld
73-
export RANLIB=$TOOLCHAIN/bin/$TARGET_HOST-ranlib
74-
export STRIP=$TOOLCHAIN/bin/$TARGET_HOST-strip
74+
export LD=$TOOLCHAIN/bin/arm-linux-androideabi-ld
75+
export RANLIB=$TOOLCHAIN/bin/arm-linux-androideabi-ranlib
76+
export STRIP=$TOOLCHAIN/bin/arm-linux-androideabi-strip
7577
export SSL_DIR=$PWD/../openssl/build/$ANDROID_ARCH
7678

7779
./configure --host=$TARGET_HOST \

build-openssl.sh

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
#!/bin/bash
22

3-
export TOOLCHAIN=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/$HOST_TAG
3+
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/$HOST_TAG
4+
5+
# openssl refers to the host specific toolchain as "ANDROID_NDK_HOME"
6+
export ANDROID_NDK_HOME=$TOOLCHAIN
47
PATH=$TOOLCHAIN/bin:$PATH
58

69
mkdir -p build/openssl
@@ -10,6 +13,9 @@ cd openssl
1013
export TARGET_HOST=aarch64-linux-android
1114
export ANDROID_ARCH=arm64-v8a
1215

16+
# openssl does not handle api suffix well
17+
ln -sfn $TOOLCHAIN/bin/$TARGET_HOST$MIN_SDK_VERSION-clang $TOOLCHAIN/bin/$TARGET_HOST-clang
18+
1319
./Configure android-arm64 no-shared \
1420
-D__ANDROID_API__=$MIN_SDK_VERSION \
1521
--prefix=$PWD/build/$ANDROID_ARCH
@@ -21,9 +27,12 @@ mkdir -p ../build/openssl/$ANDROID_ARCH
2127
cp -R $PWD/build/$ANDROID_ARCH ../build/openssl/
2228

2329
# arm
24-
export TARGET_HOST=armv7a-linux-androideabi
30+
export TARGET_HOST=arm-linux-androideabi
2531
export ANDROID_ARCH=armeabi-v7a
2632

33+
# for 32-bit ARM, the compiler is prefixed with armv7a-linux-androideabi, but the binutils tools are prefixed with arm-linux-androideabi
34+
ln -sfn $TOOLCHAIN/bin/armv7a-linux-androideabi$MIN_SDK_VERSION-clang $TOOLCHAIN/bin/$TARGET_HOST-clang
35+
2736
./Configure android-arm no-shared \
2837
-D__ANDROID_API__=$MIN_SDK_VERSION \
2938
--prefix=$PWD/build/$ANDROID_ARCH
@@ -38,6 +47,8 @@ cp -R $PWD/build/$ANDROID_ARCH ../build/openssl/
3847
export TARGET_HOST=i686-linux-android
3948
export ANDROID_ARCH=x86
4049

50+
ln -sfn $TOOLCHAIN/bin/$TARGET_HOST$MIN_SDK_VERSION-clang $TOOLCHAIN/bin/$TARGET_HOST-clang
51+
4152
./Configure android-x86 no-shared \
4253
-D__ANDROID_API__=$MIN_SDK_VERSION \
4354
--prefix=$PWD/build/$ANDROID_ARCH
@@ -52,6 +63,8 @@ cp -R $PWD/build/$ANDROID_ARCH ../build/openssl/
5263
export TARGET_HOST=x86_64-linux-android
5364
export ANDROID_ARCH=x86_64
5465

66+
ln -sfn $TOOLCHAIN/bin/$TARGET_HOST$MIN_SDK_VERSION-clang $TOOLCHAIN/bin/$TARGET_HOST-clang
67+
5568
./Configure android-x86_64 no-shared \
5669
-D__ANDROID_API__=$MIN_SDK_VERSION \
5770
--prefix=$PWD/build/$ANDROID_ARCH

0 commit comments

Comments
 (0)