diff --git a/android.py b/android.py index cd87ea2..e0a8d0d 100755 --- a/android.py +++ b/android.py @@ -62,18 +62,20 @@ def get_api_version_or_min(opts: AndroidOpts, target: str) -> str: def setup_android_target_template(env: dict, opts: AndroidOpts, target: str): extra_target_envs = { 'armv7': { - 'android-armeabi-v7a_CFLAGS': ['-D__POSIX_VISIBLE=201002', '-DSK_RELEASE', '-DNDEBUG', '-UDEBUG', '-fpic', '-march=armv7-a', '-mtune=cortex-a8', '-mfpu=vfp', '-mfloat-abi=softfp'], - 'android-armeabi-v7a_CXXFLAGS': ['-D__POSIX_VISIBLE=201002', '-DSK_RELEASE', '-DNDEBUG', '-UDEBUG', '-fpic', '-march=armv7-a', '-mtune=cortex-a8', '-mfpu=vfp', '-mfloat-abi=softfp'], - 'android-armeabi-v7a_LDFLAGS': ['-Wl,--fix-cortex-a8'] + 'android-armv7_CFLAGS': ['-D__POSIX_VISIBLE=201002', '-DSK_RELEASE', '-DNDEBUG', '-UDEBUG', '-fpic', '-march=armv7-a', '-mtune=cortex-a8', '-mfpu=vfp', '-mfloat-abi=softfp'], + 'android-armv7_CXXFLAGS': ['-D__POSIX_VISIBLE=201002', '-DSK_RELEASE', '-DNDEBUG', '-UDEBUG', '-fpic', '-march=armv7-a', '-mtune=cortex-a8', '-mfpu=vfp', '-mfloat-abi=softfp'], + 'android-armv7_LDFLAGS': ['-Wl,--fix-cortex-a8'] }, 'arm64v8': { - 'android-arm64-v8a_CFLAGS': ['-D__POSIX_VISIBLE=201002', '-DSK_RELEASE', '-DNDEBUG', '-UDEBUG', '-fpic', '-DL_cuserid=9', '-DANDROID64'], - 'android-arm64-v8a_CXXFLAGS': ['-D__POSIX_VISIBLE=201002', '-DSK_RELEASE', '-DNDEBUG', '-UDEBUG', '-fpic', '-DL_cuserid=9', '-DANDROID64'] + 'android-arm64v8_CFLAGS': ['-D__POSIX_VISIBLE=201002', '-DSK_RELEASE', '-DNDEBUG', '-UDEBUG', '-fpic', '-DL_cuserid=9', '-DANDROID64'], + 'android-arm64v8_CXXFLAGS': ['-D__POSIX_VISIBLE=201002', '-DSK_RELEASE', '-DNDEBUG', '-UDEBUG', '-fpic', '-DL_cuserid=9', '-DANDROID64'], + 'android-arm64v8_LDFLAGS': ['-Wl,-z,max-page-size=16384', '-Wl,-z,common-page-size=16384'] }, 'x86': {}, 'x86_64': { 'android-x86_64_CFLAGS': ['-DL_cuserid=9'], - 'android-x86_64_CXXFLAGS': ['-DL_cuserid=9'] + 'android-x86_64_CXXFLAGS': ['-DL_cuserid=9'], + 'android-x86_64_LDFLAGS': ['-Wl,-z,max-page-size=16384', '-Wl,-z,common-page-size=16384'] } } env.update(extra_target_envs[target]) diff --git a/files/patches/btls-cmake-android-16kb-page-size.diff b/files/patches/btls-cmake-android-16kb-page-size.diff new file mode 100644 index 0000000..856dbdb --- /dev/null +++ b/files/patches/btls-cmake-android-16kb-page-size.diff @@ -0,0 +1,20 @@ +diff --git a/configure.ac b/configure.ac +index 2c052530..6bf193fd 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5976,13 +5976,13 @@ if test "x$enable_btls" = "xyes"; then + BTLS_CMAKE_ARGS="-DANDROID_ABI=\"armeabi-v7a\" -DANDROID_NATIVE_API_LEVEL=$with_btls_android_api" + ;; + android-v8a) +- BTLS_CMAKE_ARGS="-DANDROID_ABI=\"arm64-v8a\" -DANDROID_NATIVE_API_LEVEL=$with_btls_android_api" ++ BTLS_CMAKE_ARGS="-DANDROID_ABI=\"arm64-v8a\" -DANDROID_NATIVE_API_LEVEL=$with_btls_android_api -DCMAKE_SHARED_LINKER_FLAGS=\"-Wl,-z,max-page-size=16384\"" + ;; + android-x86) + BTLS_CMAKE_ARGS="-DANDROID_ABI=\"x86\" -DANDROID_NATIVE_API_LEVEL=$with_btls_android_api" + ;; + android-x64) +- BTLS_CMAKE_ARGS="-DANDROID_ABI=\"x86_64\" -DANDROID_NATIVE_API_LEVEL=$with_btls_android_api" ++ BTLS_CMAKE_ARGS="-DANDROID_ABI=\"x86_64\" -DANDROID_NATIVE_API_LEVEL=$with_btls_android_api -DCMAKE_SHARED_LINKER_FLAGS=\"-Wl,-z,max-page-size=16384\"" + ;; + riscv32) + btls_arch=riscv32 diff --git a/patch_mono.py b/patch_mono.py index 26cdb1b..9b29050 100755 --- a/patch_mono.py +++ b/patch_mono.py @@ -34,10 +34,11 @@ def main(raw_args): 'wasm_m2n_trampolines_hook.diff', 'btls-cmake-args-linux-mingw.diff', 'btls-cmake-arm64.diff', - 'llvm-osx-regex-conflict.diff', + 'btls-cmake-android-16kb-page-size.diff', 'offsets-tool-extra-cflags.diff', 'offsets-tool-newer-clang.diff', 'offsets-tool-duplicate-fields.diff', + 'llvm-osx-regex-conflict.diff', ] from subprocess import Popen