diff --git a/changeAppSettings.sh b/changeAppSettings.sh index ea6e9d2d1..fd4d7bcf7 100755 --- a/changeAppSettings.sh +++ b/changeAppSettings.sh @@ -316,8 +316,8 @@ echo "# Available menu items:" >> AndroidAppSettings.cfg echo "# $MenuOptionsAvailable" >> AndroidAppSettings.cfg echo FirstStartMenuOptions=\'$FirstStartMenuOptions\' >> AndroidAppSettings.cfg echo >> AndroidAppSettings.cfg -echo "# Enable multi-ABI binary, with hardware FPU support - it will also work on old devices," >> AndroidAppSettings.cfg -echo "# but .apk size is 2x bigger (y) / (n) / (x86) / (all)" >> AndroidAppSettings.cfg +echo "# Specify architectures to compile, 'all' or 'y' to compile for all architectures." >> AndroidAppSettings.cfg +echo "# Available architectures: armeabi armeabi-v7a armeabi-v7a-hard x86 mips" >> AndroidAppSettings.cfg echo MultiABI=\'$MultiABI\' >> AndroidAppSettings.cfg echo >> AndroidAppSettings.cfg echo "# Minimum amount of RAM application requires, in Mb, SDL will print warning to user if it's lower" >> AndroidAppSettings.cfg @@ -611,11 +611,11 @@ for KEY in $RedefinedKeysGamepad; do done if [ "$MultiABI" = "y" ] ; then - MultiABI="armeabi armeabi-v7a" + MultiABI="all" elif [ "$MultiABI" = "n" ] ; then MultiABI="armeabi" else - MultiABI="$MultiABI" # Eh okay + MultiABI="$MultiABI" fi LibrariesToLoad="\\\"sdl_native_helpers\\\", \\\"sdl-$LibSdlVersion\\\"" diff --git a/project/jni/Application.mk b/project/jni/Application.mk index feab0f1c5..f6651af5c 100644 --- a/project/jni/Application.mk +++ b/project/jni/Application.mk @@ -13,4 +13,6 @@ ifneq ($(filter armeabi-v7a-hard, $(APP_ABI)),) APP_CFLAGS := -flto APP_CXXFLAGS := -flto APP_LDFLAGS := -flto +# Latest GCC got better LTO support +NDK_TOOLCHAIN_VERSION := 4.8 endif diff --git a/project/jni/application/ballfield/AndroidAppSettings.cfg b/project/jni/application/ballfield/AndroidAppSettings.cfg index 5d669f616..685dd710b 100644 --- a/project/jni/application/ballfield/AndroidAppSettings.cfg +++ b/project/jni/application/ballfield/AndroidAppSettings.cfg @@ -206,9 +206,9 @@ HiddenMenuOptions='' # SettingsMenu.OkButton SettingsMenu.DummyMenu SettingsMenu.MainMenu SettingsMenuMisc.DownloadConfig SettingsMenuMisc.OptionalDownloadConfig SettingsMenuMisc.AudioConfig SettingsMenuMisc.VideoSettingsConfig SettingsMenuMisc.ShowReadme SettingsMenuMisc.GyroscopeCalibration SettingsMenuMisc.ResetToDefaultsConfig SettingsMenuMouse.MouseConfigMainMenu SettingsMenuMouse.DisplaySizeConfig SettingsMenuMouse.LeftClickConfig SettingsMenuMouse.RightClickConfig SettingsMenuMouse.AdditionalMouseConfig SettingsMenuMouse.JoystickMouseConfig SettingsMenuMouse.TouchPressureMeasurementTool SettingsMenuMouse.CalibrateTouchscreenMenu SettingsMenuKeyboard.KeyboardConfigMainMenu SettingsMenuKeyboard.ScreenKeyboardSizeConfig SettingsMenuKeyboard.ScreenKeyboardDrawSizeConfig SettingsMenuKeyboard.ScreenKeyboardThemeConfig SettingsMenuKeyboard.ScreenKeyboardTransparencyConfig SettingsMenuKeyboard.RemapHwKeysConfig SettingsMenuKeyboard.RemapScreenKbConfig SettingsMenuKeyboard.ScreenGesturesConfig SettingsMenuKeyboard.CustomizeScreenKbLayout FirstStartMenuOptions='SettingsMenu.DummyMenu' -# Enable multi-ABI binary, with hardware FPU support - it will also work on old devices, -# but .apk size is 2x bigger (y) / (n) / (x86) / (all) -MultiABI='armeabi-v7a-hard' +# Specify architectures to compile, 'all' or 'y' to compile for all architectures. +# Available architectures: armeabi armeabi-v7a armeabi-v7a-hard x86 mips +MultiABI='armeabi-v7a-hard x86 mips armeabi' # Minimum amount of RAM application requires, in Mb, SDL will print warning to user if it's lower AppMinimumRAM=0 diff --git a/project/jni/sdl-1.2/Android.mk b/project/jni/sdl-1.2/Android.mk index 45d328164..765062118 100644 --- a/project/jni/sdl-1.2/Android.mk +++ b/project/jni/sdl-1.2/Android.mk @@ -17,10 +17,6 @@ LOCAL_CFLAGS := -O3 \ -DSDL_VIDEO_RENDER_RESIZE=$(SDL_VIDEO_RENDER_RESIZE) \ $(SDL_ADDITIONAL_CFLAGS) -ifeq ($(TARGET_ARCH_ABI),x86) -LOCAL_CFLAGS += -DSDL_ASSEMBLY_ROUTINES=1 # Enable MMX optimizations -endif - SDL_SRCS := \ src/*.c \ src/audio/*.c \ diff --git a/project/jni/sdl-1.2/include/SDL_config_android.h b/project/jni/sdl-1.2/include/SDL_config_android.h index d1c56f25f..59e6c6d11 100644 --- a/project/jni/sdl-1.2/include/SDL_config_android.h +++ b/project/jni/sdl-1.2/include/SDL_config_android.h @@ -162,7 +162,7 @@ #define HAVE_SYSCONF 1 #undef HAVE_SYSCTLBYNAME #undef SDL_ALTIVEC_BLITTERS -/* #define SDL_ASSEMBLY_ROUTINES 1 */ // There is no assembly code for ARM CPU yet, and it fails when compiling for armhf +#define SDL_ASSEMBLY_ROUTINES 1 #define HAVE_GCC_ATOMICS 1 #endif /* _SDL_config_minimal_h */ diff --git a/project/jni/sdl-1.2/src/video/SDL_RLEaccel.c b/project/jni/sdl-1.2/src/video/SDL_RLEaccel.c index 4ff099b2b..b8f1bef04 100644 --- a/project/jni/sdl-1.2/src/video/SDL_RLEaccel.c +++ b/project/jni/sdl-1.2/src/video/SDL_RLEaccel.c @@ -92,7 +92,7 @@ #include "SDL_RLEaccel_c.h" #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) && SDL_ASSEMBLY_ROUTINES -#define MMX_ASMBLIT +/* #define MMX_ASMBLIT */ /* Does not compile on GCC 4.8 */ #endif #ifdef MMX_ASMBLIT diff --git a/project/jni/sdl-1.2/src/video/SDL_blit.c b/project/jni/sdl-1.2/src/video/SDL_blit.c index c82480596..65435725c 100644 --- a/project/jni/sdl-1.2/src/video/SDL_blit.c +++ b/project/jni/sdl-1.2/src/video/SDL_blit.c @@ -29,7 +29,7 @@ #include #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) && SDL_ASSEMBLY_ROUTINES -#define MMX_ASMBLIT +/* #define MMX_ASMBLIT */ /* Does not compile on GCC 4.8 */ #if (__GNUC__ > 2) /* SSE instructions aren't in GCC 2. */ #define SSE_ASMBLIT #endif @@ -125,6 +125,7 @@ static __inline__ void SDL_memcpyMMX(Uint8 *to, const Uint8 *from, int len) if (len&7) SDL_memcpy(to, from, len&7); } +#endif #ifdef SSE_ASMBLIT static __inline__ void SDL_memcpySSE(Uint8 *to, const Uint8 *from, int len) @@ -151,7 +152,6 @@ static __inline__ void SDL_memcpySSE(Uint8 *to, const Uint8 *from, int len) SDL_memcpy(to, from, len&7); } #endif -#endif static void SDL_BlitCopy(SDL_BlitInfo *info) { diff --git a/project/jni/sdl-1.2/src/video/SDL_blit_A.c b/project/jni/sdl-1.2/src/video/SDL_blit_A.c index 4ecb5215e..a0fcea5a1 100644 --- a/project/jni/sdl-1.2/src/video/SDL_blit_A.c +++ b/project/jni/sdl-1.2/src/video/SDL_blit_A.c @@ -32,7 +32,7 @@ #if SDL_ASSEMBLY_ROUTINES # if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) -# define MMX_ASMBLIT 1 +/*# define MMX_ASMBLIT 1 */ /* Does not compile on GCC 4.8 */ # define GCC_ASMBLIT 1 # elif defined(_MSC_VER) && defined(_M_IX86) # if (_MSC_VER <= 1200)