SDL: fixed pure C libraries containing exception information

This commit is contained in:
Sergii Pylypenko
2018-01-29 22:45:06 +02:00
parent fd8735fe6f
commit ad4a0bc52c
13 changed files with 18 additions and 4 deletions

View File

@@ -5,3 +5,6 @@ include jni/Settings.mk
APP_STL := $(if $(filter clang%, $(NDK_TOOLCHAIN_VERSION)), c++_static, gnustl_static)
APP_CFLAGS := -O3 -DNDEBUG -g # arm-linux-androideabi-4.4.3 crashes in -O0 mode on SDL sources
APP_PIE := true # This feature makes executables incompatible to Android API 15 or lower, but executables without PIE will not run on Android 5.0 and newer
SDL_EXCLUDE_LIBGCC := -Wl,--exclude-libs,libgcc.a
SDL_EXCLUDE_LIBUNWIND := -Wl,--exclude-libs,libunwind.a
APP_LDFLAGS = $(if $(filter clang%, $(NDK_TOOLCHAIN_VERSION)), $(SDL_EXCLUDE_LIBGCC) $(if $(filter armeabi%, $(APP_ABI)), $(SDL_EXCLUDE_LIBUNWIND)))

View File

@@ -67,6 +67,7 @@ SDL_APP_LIB_DEPENDS-$(TARGET_ARCH_ABI) += $(foreach LIB, $(LOCAL_STATIC_LIBRARIE
obj/local/$(TARGET_ARCH_ABI)/libcrypto.so: obj/local/$(TARGET_ARCH_ABI)/libcrypto.so.sdl.0.so
obj/local/$(TARGET_ARCH_ABI)/libssl.so: obj/local/$(TARGET_ARCH_ABI)/libssl.so.sdl.0.so
obj/local/$(TARGET_ARCH_ABI)/libcurl.so: obj/local/$(TARGET_ARCH_ABI)/libcurl-sdl.so
obj/local/$(TARGET_ARCH_ABI)/libexpat.so: obj/local/$(TARGET_ARCH_ABI)/libexpat-sdl.so
include $(BUILD_SHARED_LIBRARY)

View File

@@ -244,7 +244,7 @@ NDK_TOOLCHAIN_VERSION=clang
# Specify architectures to compile, 'all' or 'y' to compile for all architectures.
# Available architectures: armeabi armeabi-v7a x86 mips arm64-v8a x86_64
MultiABI='armeabi-v7a x86 arm64-v8a x86_64'
MultiABI=armeabi-v7a # 'armeabi-v7a x86 arm64-v8a 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

View File

@@ -30,4 +30,4 @@ uname -s | grep -i "linux" > /dev/null && NCPU=`cat /proc/cpuinfo | grep -c -i p
LIBATOMIC=
echo $1 | grep 'armeabi-v7a' && LIBATOMIC="-lunwind"
env CLANG=1 LIBATOMIC=$LIBATOMIC ../setEnvironment-$1.sh sh -c "cd openttd-$VER-$1 && make -j$NCPU VERBOSE=1 STRIP='' LIBS='-lsdl-1.2 -llzo2 -lpng -ltimidity -lfontconfig -lfreetype -lexpat -licui18n -liculx -licu-le-hb -lharfbuzz -licuuc -licudata -lgcc -lz -lc -lc++_static -lc++abi -landroid_support $LIBATOMIC'" && cp -f openttd-$VER-$1/objs/release/openttd libapplication-$1.so || exit 1
env CLANG=1 LIBATOMIC=$LIBATOMIC ../setEnvironment-$1.sh sh -c "cd openttd-$VER-$1 && make -j$NCPU VERBOSE=1 STRIP='' LIBS='-lsdl-1.2 -llzo2 -lpng -ltimidity -lfontconfig -lfreetype -lexpat-sdl -licui18n -liculx -licu-le-hb -lharfbuzz -licuuc -licudata -lgcc -lz -lc -lc++_static -lc++abi -landroid_support $LIBATOMIC'" && cp -f openttd-$VER-$1/objs/release/openttd libapplication-$1.so || exit 1

View File

@@ -99,6 +99,9 @@ while test $# -gt 0; do
openssl|ssl|libssl)
echo -l:libssl.so.sdl.1.so -l:libcrypto.so.sdl.1.so
;;
expat|libexpat)
echo -lexpat-sdl
;;
*)
echo -l$PKG
;;

View File

@@ -47,6 +47,7 @@ echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do
crypto) echo crypto.so.sdl.1;;
ssl) echo ssl.so.sdl.1;;
curl) echo curl-sdl;;
expat) echo expat-sdl;;
*) echo $LIB;;
esac
fi

View File

@@ -47,6 +47,7 @@ echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do
crypto) echo crypto.so.sdl.1;;
ssl) echo ssl.so.sdl.1;;
curl) echo curl-sdl;;
expat) echo expat-sdl;;
*) echo $LIB;;
esac
fi

View File

@@ -41,6 +41,7 @@ echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do
crypto) echo crypto.so.sdl.1;;
ssl) echo ssl.so.sdl.1;;
curl) echo curl-sdl;;
expat) echo expat-sdl;;
*) echo $LIB;;
esac
fi

View File

@@ -47,6 +47,7 @@ echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do
crypto) echo crypto.so.sdl.1;;
ssl) echo ssl.so.sdl.1;;
curl) echo curl-sdl;;
expat) echo expat-sdl;;
*) echo $LIB;;
esac
fi

View File

@@ -47,6 +47,7 @@ echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do
crypto) echo crypto.so.sdl.1;;
ssl) echo ssl.so.sdl.1;;
curl) echo curl-sdl;;
expat) echo expat-sdl;;
*) echo $LIB;;
esac
fi

View File

@@ -41,6 +41,7 @@ echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do
crypto) echo crypto.so.sdl.1;;
ssl) echo ssl.so.sdl.1;;
curl) echo curl-sdl;;
expat) echo expat-sdl;;
*) echo $LIB;;
esac
fi

View File

@@ -28,6 +28,7 @@ LOCAL_SRC_FILES := $(common_SRC_FILES)
LOCAL_CFLAGS += $(common_CFLAGS)
LOCAL_C_INCLUDES += $(common_C_INCLUDES)
LOCAL_MODULE:= expat
LOCAL_MODULE := expat
LOCAL_MODULE_FILENAME := libexpat-sdl # It clashes with system libexpat on Android 5 and older
include $(BUILD_SHARED_LIBRARY)