From d00d4d647d036371e9ac4f5ea2f9250a3cea544e Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sun, 14 Sep 2014 21:32:53 +0900 Subject: [PATCH] Compile with android NDK r10b 32bit target Android does not have _Exit. We detect this and use _exit instead. clang-3.4 has an issue around undefined reference to __atomic_fetch_add_4, so we stick to gcc-4.8 for now. --- android-config | 2 -- configure.ac | 1 + doc/sources/building-android-binary.rst | 3 +-- src/shrpx.h | 4 ++++ 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/android-config b/android-config index e81f043d..15b95040 100755 --- a/android-config +++ b/android-config @@ -40,8 +40,6 @@ PATH=$TOOLCHAIN/bin:$PATH --disable-python-bindings \ --disable-examples \ --disable-threads \ - CC=arm-linux-androideabi-clang \ - CXX=arm-linux-androideabi-clang++ \ CPPFLAGS="-I$PREFIX/include" \ PKG_CONFIG_LIBDIR="$PREFIX/lib/pkgconfig" \ LDFLAGS="-L$PREFIX/lib" diff --git a/configure.ac b/configure.ac index 3b385a0f..50ec1ff0 100644 --- a/configure.ac +++ b/configure.ac @@ -437,6 +437,7 @@ if test "x$cross_compiling" != "xyes"; then AC_FUNC_MALLOC fi AC_CHECK_FUNCS([ \ + _Exit \ getpwnam \ memmove \ memset \ diff --git a/doc/sources/building-android-binary.rst b/doc/sources/building-android-binary.rst index 5d49128a..360b1122 100644 --- a/doc/sources/building-android-binary.rst +++ b/doc/sources/building-android-binary.rst @@ -16,8 +16,7 @@ unpacked:: $ build/tools/make-standalone-toolchain.sh \ --install-dir=$ANDROID_HOME/toolchain \ - --toolchain=arm-linux-androideabi-4.8 \ - --llvm-version=3.4 + --toolchain=arm-linux-androideabi-4.8 The additional flag ``--system=linux-x86_64`` may be required if you are using x86_64 system. diff --git a/src/shrpx.h b/src/shrpx.h index 7466df37..d6d34314 100644 --- a/src/shrpx.h +++ b/src/shrpx.h @@ -44,6 +44,10 @@ #define SOCK_CLOEXEC 0 #endif // !SOCK_CLOEXEC +#ifndef HAVE__EXIT +#define _Exit(status) _exit(status) +#endif // !HAVE__EXIT + #define DIE() \ assert(0);