diff --git a/project/jni/application/setEnvironment-arm64-v8a.sh b/project/jni/application/setEnvironment-arm64-v8a.sh index 12a87e06a..318dfddbf 100755 --- a/project/jni/application/setEnvironment-arm64-v8a.sh +++ b/project/jni/application/setEnvironment-arm64-v8a.sh @@ -3,23 +3,19 @@ IFS=' ' -MYARCH=linux-x86_64 +NDK=`which ndk-build` +NDK=`dirname $NDK` + if uname -s | grep -i "linux" > /dev/null ; then - MYARCH=linux-x86_64 -fi -if uname -s | grep -i "darwin" > /dev/null ; then + MYARCH=linux-$(arch) + NDK=`readlink -f $NDK` +elif uname -s | grep -i "darwin" > /dev/null ; then MYARCH=darwin-x86_64 -fi -if uname -s | grep -i "windows" > /dev/null ; then +elif uname -s | grep -i "windows" > /dev/null ; then MYARCH=windows-x86_64 fi -NDK=`which ndk-build` -NDK=`dirname $NDK` -NDK=`readlink -f $NDK` - #echo NDK $NDK -GCCPREFIX=aarch64-linux-android [ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9 LOCAL_PATH=`dirname $0` if which realpath > /dev/null ; then @@ -28,6 +24,8 @@ else LOCAL_PATH=`cd $LOCAL_PATH && pwd` fi ARCH=arm64-v8a +GCCPREFIX=aarch64-linux-android +APILEVEL=21 APP_MODULES=`grep 'APP_MODULES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` @@ -56,7 +54,6 @@ done if [ -z "$SHARED_LIBRARY_NAME" ]; then SHARED_LIBRARY_NAME=libapplication.so fi -UNRESOLVED="-Wl,--no-undefined" SHARED="-shared -Wl,-soname,$SHARED_LIBRARY_NAME" if [ -n "$BUILD_EXECUTABLE" ]; then SHARED="-Wl,--gc-sections -Wl,-z,nocopyreloc -pie -fpie" @@ -64,33 +61,20 @@ fi if [ -n "$NO_SHARED_LIBS" ]; then APP_SHARED_LIBS= fi -if [ -n "$ALLOW_UNRESOLVED_SYMBOLS" ]; then - UNRESOLVED= -fi APP_SHARED_LIBS="`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/$ARCH/lib\1.so@g\"`" APP_MODULES_INCLUDE="`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-isystem$LOCAL_PATH/../\1/include@g\"`" CFLAGS=" ---target=aarch64-none-linux-android21 ---gcc-toolchain=$NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64 ---sysroot=$NDK/sysroot --isystem -$NDK/sources/cxx-stl/llvm-libc++/include --isystem -$NDK/sources/cxx-stl/llvm-libc++abi/include --isystem -$NDK/sysroot/usr/include/aarch64-linux-android -g --DANDROID -ffunction-sections +-fdata-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes --Wa,--noexecstack -Wformat -Werror=format-security --O2 +-Oz -DNDEBUG -fPIC $APP_MODULES_INCLUDE @@ -99,64 +83,48 @@ $CFLAGS" CFLAGS="`echo $CFLAGS | tr '\n' ' '`" LDFLAGS=" ---target=aarch64-none-linux-android21 ---gcc-toolchain=$NDK/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64 ---sysroot=$NDK/sysroot -fPIC --isystem -$NDK/sysroot/usr/include/aarch64-linux-android -g --DANDROID -ffunction-sections +-fdata-sections +-Wl,--gc-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes --Wa,--noexecstack --Wformat --Werror=format-security --O2 --DNDEBUG --Wl,--exclude-libs,libgcc.a --Wl,--exclude-libs,libatomic.a --nostdlib++ ---sysroot -$NDK/platforms/android-21/arch-arm64 +-Oz -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings --L$NDK/sources/cxx-stl/llvm-libc++/libs/arm64-v8a -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -$SHARED $UNRESOLVED +$SHARED $APP_SHARED_LIBS -landroid -llog -latomic -lm -$NDK/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a -$NDK/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++abi.a $LDFLAGS" LDFLAGS="`echo $LDFLAGS | tr '\n' ' '`" -CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang" -CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang++" +CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang" +CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang++" CPP="$CC -E $CFLAGS" -env PATH=$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \ +env \ CFLAGS="$CFLAGS" \ CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \ LDFLAGS="$LDFLAGS" \ CC="$CC" \ CXX="$CXX" \ -RANLIB="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-ranlib" \ +RANLIB="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-ranlib" \ LD="$CXX" \ -AR="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-ar" \ +AR="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-ar" \ CPP="$CPP" \ -NM="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-nm" \ -AS="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \ -STRIP="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-strip" \ +NM="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-nm" \ +AS="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \ +STRIP="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-strip" \ "$@" diff --git a/project/jni/application/setEnvironment-armeabi-v7a.sh b/project/jni/application/setEnvironment-armeabi-v7a.sh index 3aaec07c7..e142c4732 100755 --- a/project/jni/application/setEnvironment-armeabi-v7a.sh +++ b/project/jni/application/setEnvironment-armeabi-v7a.sh @@ -3,23 +3,19 @@ IFS=' ' -MYARCH=linux-x86_64 +NDK=`which ndk-build` +NDK=`dirname $NDK` + if uname -s | grep -i "linux" > /dev/null ; then - MYARCH=linux-x86_64 -fi -if uname -s | grep -i "darwin" > /dev/null ; then + MYARCH=linux-$(arch) + NDK=`readlink -f $NDK` +elif uname -s | grep -i "darwin" > /dev/null ; then MYARCH=darwin-x86_64 -fi -if uname -s | grep -i "windows" > /dev/null ; then +elif uname -s | grep -i "windows" > /dev/null ; then MYARCH=windows-x86_64 fi -NDK=`which ndk-build` -NDK=`dirname $NDK` -NDK=`readlink -f $NDK` - #echo NDK $NDK -GCCPREFIX=arm-linux-androideabi [ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9 LOCAL_PATH=`dirname $0` if which realpath > /dev/null ; then @@ -28,6 +24,9 @@ else LOCAL_PATH=`cd $LOCAL_PATH && pwd` fi ARCH=armeabi-v7a +GCCPREFIX=armv7a-linux-androideabi +BINUTILSPREFIX=arm-linux-androideabi +APILEVEL=16 APP_MODULES=`grep 'APP_MODULES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` @@ -56,7 +55,6 @@ done if [ -z "$SHARED_LIBRARY_NAME" ]; then SHARED_LIBRARY_NAME=libapplication.so fi -UNRESOLVED="-Wl,--no-undefined" SHARED="-shared -Wl,-soname,$SHARED_LIBRARY_NAME" if [ -n "$BUILD_EXECUTABLE" ]; then SHARED="-Wl,--gc-sections -Wl,-z,nocopyreloc -pie -fpie" @@ -64,36 +62,18 @@ fi if [ -n "$NO_SHARED_LIBS" ]; then APP_SHARED_LIBS= fi -if [ -n "$ALLOW_UNRESOLVED_SYMBOLS" ]; then - UNRESOLVED= -fi APP_SHARED_LIBS="`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/$ARCH/lib\1.so@g\"`" APP_MODULES_INCLUDE="`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-isystem$LOCAL_PATH/../\1/include@g\"`" CFLAGS=" ---target=armv7-none-linux-androideabi16 ---gcc-toolchain=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 ---sysroot=$NDK/sysroot --isystem -$NDK/sources/cxx-stl/llvm-libc++/include --isystem -$NDK/sources/android/support/include --isystem -$NDK/sources/cxx-stl/llvm-libc++abi/include --isystem -$NDK/sysroot/usr/include/arm-linux-androideabi -g --DANDROID -ffunction-sections +-fdata-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes --march=armv7-a --mfloat-abi=softfp --mfpu=vfpv3-d16 -mthumb --Wa,--noexecstack -Wformat -Werror=format-security -Oz @@ -105,73 +85,53 @@ $CFLAGS" CFLAGS="`echo $CFLAGS | tr '\n' ' '`" LDFLAGS=" ---target=armv7-none-linux-androideabi16 ---gcc-toolchain=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 ---sysroot=$NDK/sysroot -fPIC --isystem -$NDK/sysroot/usr/include/arm-linux-androideabi -g --DANDROID -ffunction-sections +-fdata-sections +-Wl,--gc-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes --march=armv7-a --mfloat-abi=softfp --mfpu=vfpv3-d16 -mthumb --Wa,--noexecstack -Wformat -Werror=format-security -Oz -DNDEBUG --Wl,--exclude-libs,libgcc.a --Wl,--exclude-libs,libatomic.a --nostdlib++ ---sysroot -$NDK/platforms/android-16/arch-arm -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings --Wl,--fix-cortex-a8 --Wl,--exclude-libs,libunwind.a --L$NDK/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -$SHARED $UNRESOLVED +$SHARED $APP_SHARED_LIBS -landroid -llog -latomic -lm -$NDK/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a -$NDK/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++abi.a -$NDK/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libandroid_support.a -$NDK/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libunwind.a -ldl $LDFLAGS" LDFLAGS="`echo $LDFLAGS | tr '\n' ' '`" -CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang" -CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang++" +CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang" +CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang++" CPP="$CC -E $CFLAGS" -env PATH=$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \ +env \ CFLAGS="$CFLAGS" \ CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \ LDFLAGS="$LDFLAGS" \ CC="$CC" \ CXX="$CXX" \ -RANLIB="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-ranlib" \ +RANLIB="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$BINUTILSPREFIX-ranlib" \ LD="$CXX" \ -AR="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-ar" \ +AR="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$BINUTILSPREFIX-ar" \ CPP="$CPP" \ -NM="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-nm" \ -AS="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \ -STRIP="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-strip" \ +NM="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$BINUTILSPREFIX-nm" \ +AS="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$BINUTILSPREFIX-as" \ +STRIP="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$BINUTILSPREFIX-strip" \ "$@" diff --git a/project/jni/application/setEnvironment-x86.sh b/project/jni/application/setEnvironment-x86.sh index bac5b947f..881091371 100755 --- a/project/jni/application/setEnvironment-x86.sh +++ b/project/jni/application/setEnvironment-x86.sh @@ -3,23 +3,19 @@ IFS=' ' -MYARCH=linux-x86_64 +NDK=`which ndk-build` +NDK=`dirname $NDK` + if uname -s | grep -i "linux" > /dev/null ; then - MYARCH=linux-x86_64 -fi -if uname -s | grep -i "darwin" > /dev/null ; then + MYARCH=linux-$(arch) + NDK=`readlink -f $NDK` +elif uname -s | grep -i "darwin" > /dev/null ; then MYARCH=darwin-x86_64 -fi -if uname -s | grep -i "windows" > /dev/null ; then +elif uname -s | grep -i "windows" > /dev/null ; then MYARCH=windows-x86_64 fi -NDK=`which ndk-build` -NDK=`dirname $NDK` -NDK=`readlink -f $NDK` - #echo NDK $NDK -GCCPREFIX=i686-linux-android [ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9 LOCAL_PATH=`dirname $0` if which realpath > /dev/null ; then @@ -28,6 +24,8 @@ else LOCAL_PATH=`cd $LOCAL_PATH && pwd` fi ARCH=x86 +GCCPREFIX=i686-linux-android +APILEVEL=16 APP_MODULES=`grep 'APP_MODULES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` @@ -56,7 +54,6 @@ done if [ -z "$SHARED_LIBRARY_NAME" ]; then SHARED_LIBRARY_NAME=libapplication.so fi -UNRESOLVED="-Wl,--no-undefined" SHARED="-shared -Wl,-soname,$SHARED_LIBRARY_NAME" if [ -n "$BUILD_EXECUTABLE" ]; then SHARED="-Wl,--gc-sections -Wl,-z,nocopyreloc -pie -fpie" @@ -64,36 +61,20 @@ fi if [ -n "$NO_SHARED_LIBS" ]; then APP_SHARED_LIBS= fi -if [ -n "$ALLOW_UNRESOLVED_SYMBOLS" ]; then - UNRESOLVED= -fi APP_SHARED_LIBS="`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/$ARCH/lib\1.so@g\"`" APP_MODULES_INCLUDE="`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-isystem$LOCAL_PATH/../\1/include@g\"`" CFLAGS=" ---target=i686-none-linux-android16 ---gcc-toolchain=$NDK/toolchains/x86-4.9/prebuilt/linux-x86_64 ---sysroot=$NDK/sysroot --isystem -$NDK/sources/cxx-stl/llvm-libc++/include --isystem -$NDK/sources/android/support/include --isystem -$NDK/sources/cxx-stl/llvm-libc++abi/include --isystem -$NDK/sysroot/usr/include/i686-linux-android -g --DANDROID -ffunction-sections -funwind-tables +-fdata-sections -fstack-protector-strong -no-canonical-prefixes --mstackrealign --Wa,--noexecstack -Wformat -Werror=format-security --O2 +-Oz -DNDEBUG -fPIC $APP_MODULES_INCLUDE @@ -102,66 +83,51 @@ $CFLAGS" CFLAGS="`echo $CFLAGS | tr '\n' ' '`" LDFLAGS=" ---target=i686-none-linux-android16 ---gcc-toolchain=$NDK/toolchains/x86-4.9/prebuilt/linux-x86_64 ---sysroot=$NDK/sysroot -fPIC --isystem -$NDK/sysroot/usr/include/i686-linux-android -g --DANDROID -ffunction-sections +-fdata-sections +-Wl,--gc-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes --mstackrealign --Wa,--noexecstack -Wformat -Werror=format-security --O2 +-Oz -DNDEBUG --Wl,--exclude-libs,libgcc.a --Wl,--exclude-libs,libatomic.a --nostdlib++ ---sysroot -$NDK/platforms/android-16/arch-x86 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings --L$NDK/sources/cxx-stl/llvm-libc++/libs/x86 -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -$SHARED $UNRESOLVED +$SHARED $APP_SHARED_LIBS -landroid -llog -latomic -lm -$NDK/sources/cxx-stl/llvm-libc++/libs/x86/libc++_static.a -$NDK/sources/cxx-stl/llvm-libc++/libs/x86/libc++abi.a -$NDK/sources/cxx-stl/llvm-libc++/libs/x86/libandroid_support.a $LDFLAGS" LDFLAGS="`echo $LDFLAGS | tr '\n' ' '`" -CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang" -CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang++" +CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang" +CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang++" CPP="$CC -E $CFLAGS" -env PATH=$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \ +env \ CFLAGS="$CFLAGS" \ CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \ LDFLAGS="$LDFLAGS" \ CC="$CC" \ CXX="$CXX" \ -RANLIB="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-ranlib" \ +RANLIB="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-ranlib" \ LD="$CXX" \ -AR="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-ar" \ +AR="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-ar" \ CPP="$CPP" \ -NM="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-nm" \ -AS="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \ -STRIP="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-strip" \ +NM="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-nm" \ +AS="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \ +STRIP="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-strip" \ "$@" diff --git a/project/jni/application/setEnvironment-x86_64.sh b/project/jni/application/setEnvironment-x86_64.sh index 4bc3e48c8..6caafe957 100755 --- a/project/jni/application/setEnvironment-x86_64.sh +++ b/project/jni/application/setEnvironment-x86_64.sh @@ -3,23 +3,19 @@ IFS=' ' -MYARCH=linux-x86_64 +NDK=`which ndk-build` +NDK=`dirname $NDK` + if uname -s | grep -i "linux" > /dev/null ; then - MYARCH=linux-x86_64 -fi -if uname -s | grep -i "darwin" > /dev/null ; then + MYARCH=linux-$(arch) + NDK=`readlink -f $NDK` +elif uname -s | grep -i "darwin" > /dev/null ; then MYARCH=darwin-x86_64 -fi -if uname -s | grep -i "windows" > /dev/null ; then +elif uname -s | grep -i "windows" > /dev/null ; then MYARCH=windows-x86_64 fi -NDK=`which ndk-build` -NDK=`dirname $NDK` -NDK=`readlink -f $NDK` - #echo NDK $NDK -GCCPREFIX=x86_64-linux-android [ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9 LOCAL_PATH=`dirname $0` if which realpath > /dev/null ; then @@ -28,6 +24,8 @@ else LOCAL_PATH=`cd $LOCAL_PATH && pwd` fi ARCH=x86_64 +GCCPREFIX=x86_64-linux-android +APILEVEL=21 APP_MODULES=`grep 'APP_MODULES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'` @@ -56,7 +54,6 @@ done if [ -z "$SHARED_LIBRARY_NAME" ]; then SHARED_LIBRARY_NAME=libapplication.so fi -UNRESOLVED="-Wl,--no-undefined" SHARED="-shared -Wl,-soname,$SHARED_LIBRARY_NAME" if [ -n "$BUILD_EXECUTABLE" ]; then SHARED="-Wl,--gc-sections -Wl,-z,nocopyreloc -pie -fpie" @@ -64,33 +61,20 @@ fi if [ -n "$NO_SHARED_LIBS" ]; then APP_SHARED_LIBS= fi -if [ -n "$ALLOW_UNRESOLVED_SYMBOLS" ]; then - UNRESOLVED= -fi APP_SHARED_LIBS="`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/$ARCH/lib\1.so@g\"`" APP_MODULES_INCLUDE="`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-isystem$LOCAL_PATH/../\1/include@g\"`" CFLAGS=" ---target=x86_64-none-linux-android21 ---gcc-toolchain=$NDK/toolchains/x86_64-4.9/prebuilt/linux-x86_64 ---sysroot=$NDK/sysroot --isystem -$NDK/sources/cxx-stl/llvm-libc++/include --isystem -$NDK/sources/cxx-stl/llvm-libc++abi/include --isystem -$NDK/sysroot/usr/include/x86_64-linux-android -g --DANDROID -ffunction-sections +-fdata-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes --Wa,--noexecstack -Wformat -Werror=format-security --O2 +-Oz -DNDEBUG -fPIC $APP_MODULES_INCLUDE @@ -99,64 +83,51 @@ $CFLAGS" CFLAGS="`echo $CFLAGS | tr '\n' ' '`" LDFLAGS=" ---target=x86_64-none-linux-android21 ---gcc-toolchain=$NDK/toolchains/x86_64-4.9/prebuilt/linux-x86_64 ---sysroot=$NDK/sysroot -fPIC --isystem -$NDK/sysroot/usr/include/x86_64-linux-android -g --DANDROID -ffunction-sections +-fdata-sections +-Wl,--gc-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes --Wa,--noexecstack -Wformat -Werror=format-security --O2 +-Oz -DNDEBUG --Wl,--exclude-libs,libgcc.a --Wl,--exclude-libs,libatomic.a --nostdlib++ ---sysroot -$NDK/platforms/android-21/arch-x86_64 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings --L$NDK/sources/cxx-stl/llvm-libc++/libs/x86_64 -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -$SHARED $UNRESOLVED +$SHARED $APP_SHARED_LIBS -landroid -llog -latomic -lm -$NDK/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.a -$NDK/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++abi.a $LDFLAGS" LDFLAGS="`echo $LDFLAGS | tr '\n' ' '`" -CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang" -CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang++" +CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang" +CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX$APILEVEL-clang++" CPP="$CC -E $CFLAGS" -env PATH=$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \ +env \ CFLAGS="$CFLAGS" \ CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \ LDFLAGS="$LDFLAGS" \ CC="$CC" \ CXX="$CXX" \ -RANLIB="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-ranlib" \ +RANLIB="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-ranlib" \ LD="$CXX" \ -AR="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-ar" \ +AR="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-ar" \ CPP="$CPP" \ -NM="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-nm" \ -AS="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \ -STRIP="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-strip" \ +NM="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-nm" \ +AS="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \ +STRIP="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/$GCCPREFIX-strip" \ "$@"