diff --git a/changeAppSettings.sh b/changeAppSettings.sh index d5bb07dda..e95603fe6 100755 --- a/changeAppSettings.sh +++ b/changeAppSettings.sh @@ -401,7 +401,7 @@ echo "# android-21 = Android 5.1, the first version with SO_REUSEPORT defined." echo APP_PLATFORM=$APP_PLATFORM >> AndroidAppSettings.cfg echo >> AndroidAppSettings.cfg echo "# Specify architectures to compile, 'all' or 'y' to compile for all architectures." >> AndroidAppSettings.cfg -echo "# Available architectures: armeabi-v7a x86 mips arm64-v8a" >> AndroidAppSettings.cfg +echo "# Available architectures: armeabi-v7a arm64-v8a x86 x86_64" >> AndroidAppSettings.cfg echo MultiABI=\'$MultiABI\' >> AndroidAppSettings.cfg echo >> AndroidAppSettings.cfg echo "# Optional shared libraries to compile - removing some of them will save space" >> AndroidAppSettings.cfg diff --git a/project/jni/application/ballfield/AndroidAppSettings.cfg b/project/jni/application/ballfield/AndroidAppSettings.cfg index 9f00da799..4cf7471dd 100644 --- a/project/jni/application/ballfield/AndroidAppSettings.cfg +++ b/project/jni/application/ballfield/AndroidAppSettings.cfg @@ -268,19 +268,19 @@ NDK_TOOLCHAIN_VERSION=clang APP_PLATFORM= # Specify architectures to compile, 'all' or 'y' to compile for all architectures. -# Available architectures: armeabi-v7a x86 mips arm64-v8a -MultiABI='armeabi-v7a' +# Available architectures: armeabi-v7a x86 arm64-v8a x86_64 +MultiABI='armeabi-v7a arm64-v8a x86 x86_64' # Optional shared libraries to compile - removing some of them will save space # MP3 support by libMAD is encumbered by patents and libMAD is GPL-ed # Available libraries: mad (GPL-ed!) sdl_mixer sdl_image sdl_ttf sdl_net sdl_blitpool sdl_gfx sdl_sound intl xml2 lua jpeg png ogg flac tremor vorbis freetype xerces curl theora fluidsynth lzma lzo2 mikmod openal timidity zzip bzip2 yaml-cpp python boost_date_time boost_filesystem boost_iostreams boost_program_options boost_regex boost_signals boost_system boost_thread glu avcodec avdevice avfilter avformat avresample avutil swscale swresample bzip2 -CompiledLibraries="sdl_image" +CompiledLibraries="sdl_image boost_filesystem" # Application uses custom build script AndroidBuild.sh instead of Android.mk (y) or (n) CustomBuildScript=n # Aditional CFLAGS for application -AppCflags='-O0' +AppCflags='-Oz' # Aditional C++-specific compiler flags for application, added after AppCflags AppCppflags='-frtti -fexceptions' diff --git a/project/jni/application/setEnvironment-arm64-v8a.sh b/project/jni/application/setEnvironment-arm64-v8a.sh index 22d02f161..12a87e06a 100755 --- a/project/jni/application/setEnvironment-arm64-v8a.sh +++ b/project/jni/application/setEnvironment-arm64-v8a.sh @@ -21,7 +21,6 @@ NDK=`readlink -f $NDK` #echo NDK $NDK GCCPREFIX=aarch64-linux-android [ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9 -[ -z "$PLATFORMVER" ] && PLATFORMVER=android-21 LOCAL_PATH=`dirname $0` if which realpath > /dev/null ; then LOCAL_PATH=`realpath $LOCAL_PATH` @@ -60,7 +59,7 @@ 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" + SHARED="-Wl,--gc-sections -Wl,-z,nocopyreloc -pie -fpie" fi if [ -n "$NO_SHARED_LIBS" ]; then APP_SHARED_LIBS= @@ -72,92 +71,73 @@ 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\"`" -if [ -z "$CLANG" ]; then - -CFLAGS="\ --fpic -ffunction-sections -funwind-tables -fstack-protector-strong \ --no-canonical-prefixes \ --O2 -g -DNDEBUG \ --fomit-frame-pointer -fno-strict-aliasing -finline-limit=300 \ --DANDROID -Wall -Wno-unused -Wa,--noexecstack -Wformat -Werror=format-security \ --isystem$NDK/sysroot/usr/include \ --isystem$NDK/sysroot/usr/include/aarch64-linux-android \ --D__ANDROID_API__=`echo $PLATFORMVER | grep -o '[0-9]*'` \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/include \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/libs/$ARCH/include \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/include/backward \ --isystem$LOCAL_PATH/../sdl-1.2/include \ -$APP_MODULES_INCLUDE \ -$CFLAGS" - -LDFLAGS="\ -$SHARED \ ---sysroot=$NDK/platforms/$PLATFORMVER/arch-arm64 \ --L$LOCAL_PATH/../../obj/local/$ARCH \ -$APP_SHARED_LIBS \ --L$NDK/platforms/$PLATFORMVER/arch-arm64/usr/lib \ --lc -lm -lGLESv1_CM -ldl -llog -lz \ --L$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/libs/$ARCH \ --lgnustl_static \ --no-canonical-prefixes $UNRESOLVED -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now \ --Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings \ --lsupc++ \ -$LDFLAGS" - -CC="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-gcc" -CXX="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-g++" -CPP="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-cpp $CFLAGS" - -else # CLANG - 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 -funwind-tables -fstack-protector-strong --Wno-invalid-command-line-argument --Wno-unused-command-line-argument -no-canonical-prefixes --I$NDK/sources/cxx-stl/llvm-libc++/include --I$NDK/sources/cxx-stl/llvm-libc++abi/include --I$NDK/sources/android/support/include --DANDROID -Wa,--noexecstack -Wformat -Werror=format-security --DNDEBUG -O2 --g --gcc-toolchain -$NDK/toolchains/aarch64-linux-android-4.9/prebuilt/$MYARCH --target -aarch64-none-linux-android --fpic ---sysroot $NDK/sysroot --isystem $NDK/sysroot/usr/include --isystem $NDK/sysroot/usr/include/aarch64-linux-android --D__ANDROID_API__=21 +-DNDEBUG +-fPIC $APP_MODULES_INCLUDE $CFLAGS" CFLAGS="`echo $CFLAGS | tr '\n' ' '`" LDFLAGS=" ---sysroot $NDK/platforms/android-21/arch-arm64 +--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 +-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 +-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 --L$LOCAL_PATH/../../obj/local/$ARCH $APP_SHARED_LIBS --L$NDK/sources/cxx-stl/llvm-libc++/libs/$ARCH --L$NDK/sources/cxx-stl/llvm-libc++abi/../llvm-libc++/libs/$ARCH --L$NDK/sources/android/support/../../cxx-stl/llvm-libc++/libs/$ARCH -$NDK/sources/cxx-stl/llvm-libc++/libs/$ARCH/libc++_static.a -$NDK/sources/cxx-stl/llvm-libc++abi/../llvm-libc++/libs/$ARCH/libc++abi.a --lgcc -Wl,--exclude-libs,libgcc.a --latomic -Wl,--exclude-libs,libatomic.a --gcc-toolchain -$NDK/toolchains/aarch64-linux-android-4.9/prebuilt/$MYARCH --target aarch64-none-linux-android -no-canonical-prefixes --Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings --lc -lm -nostdlib++ -ldl -llog -lz +-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' ' '`" @@ -166,8 +146,6 @@ CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang" CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang++" CPP="$CC -E $CFLAGS" -fi # CLANG - env PATH=$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \ CFLAGS="$CFLAGS" \ CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \ diff --git a/project/jni/application/setEnvironment-armeabi-v7a.sh b/project/jni/application/setEnvironment-armeabi-v7a.sh index 55925d7c0..3aaec07c7 100755 --- a/project/jni/application/setEnvironment-armeabi-v7a.sh +++ b/project/jni/application/setEnvironment-armeabi-v7a.sh @@ -21,7 +21,6 @@ NDK=`readlink -f $NDK` #echo NDK $NDK GCCPREFIX=arm-linux-androideabi [ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9 -[ -z "$PLATFORMVER" ] && PLATFORMVER=android-14 LOCAL_PATH=`dirname $0` if which realpath > /dev/null ; then LOCAL_PATH=`realpath $LOCAL_PATH` @@ -60,7 +59,7 @@ 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" + SHARED="-Wl,--gc-sections -Wl,-z,nocopyreloc -pie -fpie" fi if [ -n "$NO_SHARED_LIBS" ]; then APP_SHARED_LIBS= @@ -72,99 +71,88 @@ 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\"`" -if [ -z "$CLANG" ]; then - -CFLAGS="\ --fpic -ffunction-sections -funwind-tables -fstack-protector-strong \ --no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp \ --mfpu=vfpv3-d16 -mthumb -O2 -g -DNDEBUG \ --fomit-frame-pointer -fno-strict-aliasing -finline-limit=300 \ --DANDROID -Wall -Wno-unused -Wa,--noexecstack -Wformat -Werror=format-security \ --isystem$NDK/sysroot/usr/include \ --isystem$NDK/sysroot/usr/include/arm-linux-androideabi \ --D__ANDROID_API__=`echo $PLATFORMVER | grep -o '[0-9]*'` \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/include \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/libs/$ARCH/include \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/include/backward \ --isystem$LOCAL_PATH/../sdl-1.2/include \ -$APP_MODULES_INCLUDE \ -$CFLAGS" - -LDFLAGS="\ -$SHARED \ ---sysroot=$NDK/platforms/$PLATFORMVER/arch-arm \ --L$LOCAL_PATH/../../obj/local/$ARCH \ -$APP_SHARED_LIBS \ --L$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib \ --lc -lm -lGLESv1_CM -ldl -llog -lz \ --L$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/libs/$ARCH \ --lgnustl_static \ --no-canonical-prefixes -march=armv7-a -Wl,--fix-cortex-a8 $UNRESOLVED -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now \ --Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings \ --lsupc++ \ -$LDFLAGS" - -CC="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-gcc" -CXX="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-g++" -CPP="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-cpp $CFLAGS" - -else # CLANG - 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 -funwind-tables -fstack-protector-strong --Wno-invalid-command-line-argument --Wno-unused-command-line-argument -no-canonical-prefixes --I$NDK/sources/cxx-stl/llvm-libc++/include --I$NDK/sources/cxx-stl/llvm-libc++abi/include --I$NDK/sources/android/support/include --DANDROID --Wa,--noexecstack --Wformat --Werror=format-security --DNDEBUG --O2 --g --gcc-toolchain -$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$MYARCH --target -armv7-none-linux-androideabi18 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb --fpic --fno-integrated-as ---sysroot $NDK/sysroot --isystem $NDK/sysroot/usr/include --isystem $NDK/sysroot/usr/include/arm-linux-androideabi --D__ANDROID_API__=18 +-Wa,--noexecstack +-Wformat +-Werror=format-security +-Oz +-DNDEBUG +-fPIC $APP_MODULES_INCLUDE $CFLAGS" CFLAGS="`echo $CFLAGS | tr '\n' ' '`" LDFLAGS=" ---sysroot $NDK/platforms/android-18/arch-arm +--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 +-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 --L$LOCAL_PATH/../../obj/local/$ARCH $APP_SHARED_LIBS --L$NDK/sources/cxx-stl/llvm-libc++/libs/$ARCH --L$NDK/sources/cxx-stl/llvm-libc++abi/../llvm-libc++/libs/$ARCH --L$NDK/sources/android/support/../../cxx-stl/llvm-libc++/libs/$ARCH -$NDK/sources/cxx-stl/llvm-libc++/libs/$ARCH/libc++_static.a -$NDK/sources/cxx-stl/llvm-libc++abi/../llvm-libc++/libs/$ARCH/libc++abi.a -$NDK/sources/android/support/../../cxx-stl/llvm-libc++/libs/$ARCH/libandroid_support.a -$NDK/sources/cxx-stl/llvm-libc++/libs/$ARCH/libunwind.a --lgcc -Wl,--exclude-libs,libgcc.a --latomic -Wl,--exclude-libs,libatomic.a --gcc-toolchain -$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$MYARCH --no-canonical-prefixes -target armv7-none-linux-androideabi18 --Wl,--fix-cortex-a8 -Wl,--exclude-libs,libunwind.a -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings --lc -lm -nostdlib++ -ldl -llog -lz +-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' ' '`" @@ -173,8 +161,6 @@ CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang" CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang++" CPP="$CC -E $CFLAGS" -fi # CLANG - env PATH=$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \ CFLAGS="$CFLAGS" \ CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \ diff --git a/project/jni/application/setEnvironment-x86.sh b/project/jni/application/setEnvironment-x86.sh index 4b1b32288..bac5b947f 100755 --- a/project/jni/application/setEnvironment-x86.sh +++ b/project/jni/application/setEnvironment-x86.sh @@ -21,7 +21,6 @@ NDK=`readlink -f $NDK` #echo NDK $NDK GCCPREFIX=i686-linux-android [ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9 -[ -z "$PLATFORMVER" ] && PLATFORMVER=android-14 LOCAL_PATH=`dirname $0` if which realpath > /dev/null ; then LOCAL_PATH=`realpath $LOCAL_PATH` @@ -60,7 +59,7 @@ 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" + SHARED="-Wl,--gc-sections -Wl,-z,nocopyreloc -pie -fpie" fi if [ -n "$NO_SHARED_LIBS" ]; then APP_SHARED_LIBS= @@ -72,94 +71,78 @@ 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\"`" -if [ -z "$CLANG" ]; then - -CFLAGS="\ --fpic -ffunction-sections -funwind-tables -no-canonical-prefixes \ --fstack-protector-strong -O2 -g -DNDEBUG \ --fomit-frame-pointer -fstrict-aliasing -funswitch-loops \ --finline-limit=300 \ --DANDROID -Wall -Wno-unused -Wa,--noexecstack -Wformat -Werror=format-security \ --isystem$NDK/sysroot/usr/include \ --isystem$NDK/sysroot/usr/include/i686-linux-android \ --D__ANDROID_API__=`echo $PLATFORMVER | grep -o '[0-9]*'` \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/include \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/libs/$ARCH/include \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/include/backward \ --isystem$LOCAL_PATH/../sdl-1.2/include \ -$APP_MODULES_INCLUDE \ -$CFLAGS" - -LDFLAGS="\ -$SHARED \ ---sysroot=$NDK/platforms/$PLATFORMVER/arch-x86 \ --L$LOCAL_PATH/../../obj/local/$ARCH \ -$APP_SHARED_LIBS \ --L$NDK/platforms/$PLATFORMVER/arch-x86/usr/lib \ --lc -lm -lGLESv1_CM -ldl -llog -lz \ --L$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/libs/$ARCH \ --lgnustl_static \ --no-canonical-prefixes $UNRESOLVED -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now \ --Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings \ --lsupc++ \ -$LDFLAGS" - -CC="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-gcc" -CXX="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-g++" -CPP="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-cpp $CFLAGS" - -else # CLANG - 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 -fstack-protector-strong --Wno-invalid-command-line-argument --Wno-unused-command-line-argument -no-canonical-prefixes --I$NDK/sources/cxx-stl/llvm-libc++/include --I$NDK/sources/cxx-stl/llvm-libc++abi/include --I$NDK/sources/android/support/include --DANDROID +-mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security --DNDEBUG -O2 --g --gcc-toolchain -$NDK/toolchains/x86-4.9/prebuilt/$MYARCH --target -i686-none-linux-android +-DNDEBUG -fPIC --mstackrealign ---sysroot $NDK/sysroot --isystem $NDK/sysroot/usr/include --isystem $NDK/sysroot/usr/include/i686-linux-android --D__ANDROID_API__=18 $APP_MODULES_INCLUDE $CFLAGS" CFLAGS="`echo $CFLAGS | tr '\n' ' '`" LDFLAGS=" ---sysroot $NDK/platforms/android-18/arch-x86 +--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 +-funwind-tables +-fstack-protector-strong +-no-canonical-prefixes +-mstackrealign +-Wa,--noexecstack +-Wformat +-Werror=format-security +-O2 +-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 --L$LOCAL_PATH/../../obj/local/$ARCH $APP_SHARED_LIBS --L$NDK/sources/cxx-stl/llvm-libc++/libs/$ARCH --L$NDK/sources/cxx-stl/llvm-libc++abi/../llvm-libc++/libs/$ARCH --L$NDK/sources/android/support/../../cxx-stl/llvm-libc++/libs/$ARCH -$NDK/sources/cxx-stl/llvm-libc++/libs/$ARCH/libc++_static.a -$NDK/sources/cxx-stl/llvm-libc++abi/../llvm-libc++/libs/$ARCH/libc++abi.a -$NDK/sources/android/support/../../cxx-stl/llvm-libc++/libs/$ARCH/libandroid_support.a --lgcc -Wl,--exclude-libs,libgcc.a --latomic -Wl,--exclude-libs,libatomic.a --gcc-toolchain -$NDK/toolchains/x86-4.9/prebuilt/$MYARCH --target i686-none-linux-android -no-canonical-prefixes --Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings --lc -lm -nostdlib++ -ldl -llog -lz +-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' ' '`" @@ -168,8 +151,6 @@ CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang" CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang++" CPP="$CC -E $CFLAGS" -fi # CLANG - env PATH=$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \ CFLAGS="$CFLAGS" \ CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \ diff --git a/project/jni/application/setEnvironment-x86_64.sh b/project/jni/application/setEnvironment-x86_64.sh index 76e15bcef..4bc3e48c8 100755 --- a/project/jni/application/setEnvironment-x86_64.sh +++ b/project/jni/application/setEnvironment-x86_64.sh @@ -21,7 +21,6 @@ NDK=`readlink -f $NDK` #echo NDK $NDK GCCPREFIX=x86_64-linux-android [ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9 -[ -z "$PLATFORMVER" ] && PLATFORMVER=android-21 LOCAL_PATH=`dirname $0` if which realpath > /dev/null ; then LOCAL_PATH=`realpath $LOCAL_PATH` @@ -60,7 +59,7 @@ 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" + SHARED="-Wl,--gc-sections -Wl,-z,nocopyreloc -pie -fpie" fi if [ -n "$NO_SHARED_LIBS" ]; then APP_SHARED_LIBS= @@ -72,92 +71,73 @@ 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\"`" -if [ -z "$CLANG" ]; then - -CFLAGS="\ --fpic -ffunction-sections -funwind-tables -no-canonical-prefixes \ --fstack-protector-strong -O2 -g -DNDEBUG \ --fomit-frame-pointer -fstrict-aliasing -funswitch-loops \ --finline-limit=300 \ --DANDROID -Wall -Wno-unused -Wa,--noexecstack -Wformat -Werror=format-security \ --isystem$NDK/sysroot/usr/include \ --isystem$NDK/sysroot/usr/include/x86_64-linux-android \ --D__ANDROID_API__=`echo $PLATFORMVER | grep -o '[0-9]*'` \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/include \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/libs/$ARCH/include \ --isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/include/backward \ --isystem$LOCAL_PATH/../sdl-1.2/include \ -$APP_MODULES_INCLUDE \ -$CFLAGS" - -LDFLAGS="\ -$SHARED \ ---sysroot=$NDK/platforms/$PLATFORMVER/arch-x86_64 \ --L$LOCAL_PATH/../../obj/local/$ARCH \ -$APP_SHARED_LIBS \ --L$NDK/platforms/$PLATFORMVER/arch-x86_64/usr/lib64 \ --lc -lm -lGLESv1_CM -ldl -llog -lz \ --L$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/libs/$ARCH \ --lgnustl_static \ --no-canonical-prefixes $UNRESOLVED -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now \ --Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings \ --lsupc++ \ -$LDFLAGS" - -CC="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-gcc" -CXX="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-g++" -CPP="$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-cpp $CFLAGS" - -else # CLANG - 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 -funwind-tables -fstack-protector-strong --Wno-invalid-command-line-argument --Wno-unused-command-line-argument -no-canonical-prefixes --I$NDK/sources/cxx-stl/llvm-libc++/include --I$NDK/sources/cxx-stl/llvm-libc++abi/include --I$NDK/sources/android/support/include --DANDROID -Wa,--noexecstack -Wformat -Werror=format-security --DNDEBUG -O2 --g --gcc-toolchain -$NDK/toolchains/x86_64-4.9/prebuilt/$MYARCH --target -x86_64-none-linux-android +-DNDEBUG -fPIC ---sysroot $NDK/sysroot --isystem $NDK/sysroot/usr/include --isystem $NDK/sysroot/usr/include/x86_64-linux-android --D__ANDROID_API__=21 $APP_MODULES_INCLUDE $CFLAGS" CFLAGS="`echo $CFLAGS | tr '\n' ' '`" LDFLAGS=" ---sysroot $NDK/platforms/android-21/arch-x86_64 +--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 +-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-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 --L$LOCAL_PATH/../../obj/local/$ARCH $APP_SHARED_LIBS --L$NDK/sources/cxx-stl/llvm-libc++/libs/$ARCH --L$NDK/sources/cxx-stl/llvm-libc++abi/../llvm-libc++/libs/$ARCH --L$NDK/sources/android/support/../../cxx-stl/llvm-libc++/libs/$ARCH -$NDK/sources/cxx-stl/llvm-libc++/libs/$ARCH/libc++_static.a -$NDK/sources/cxx-stl/llvm-libc++abi/../llvm-libc++/libs/$ARCH/libc++abi.a --lgcc -Wl,--exclude-libs,libgcc.a --latomic -Wl,--exclude-libs,libatomic.a --gcc-toolchain -$NDK/toolchains/x86_64-4.9/prebuilt/$MYARCH --target x86_64-none-linux-android -no-canonical-prefixes --Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings --lc -lm -nostdlib++ -ldl -llog -lz +-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' ' '`" @@ -166,8 +146,6 @@ CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang" CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang++" CPP="$CC -E $CFLAGS" -fi # CLANG - env PATH=$NDK/toolchains/$ARCH-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \ CFLAGS="$CFLAGS" \ CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \