diff --git a/stdlib/cmake/modules/AddSwiftStdlib.cmake b/stdlib/cmake/modules/AddSwiftStdlib.cmake index 0b18957eadb31..5021409ba061e 100644 --- a/stdlib/cmake/modules/AddSwiftStdlib.cmake +++ b/stdlib/cmake/modules/AddSwiftStdlib.cmake @@ -2504,6 +2504,8 @@ function(add_swift_target_library name) list(APPEND swiftlib_link_flags_all "-shared") # TODO: Instead of `lib${name}.so` find variable or target property which already have this value. list(APPEND swiftlib_link_flags_all "-Wl,-soname,lib${name}.so") + # Ensure compatibility with Android 15+ devices using 16KB memory pages. + list(APPEND swiftlib_link_flags_all "-Wl,-z,max-page-size=16384") endif() if (SWIFTLIB_BACK_DEPLOYMENT_LIBRARY) diff --git a/utils/swift_build_support/swift_build_support/targets.py b/utils/swift_build_support/swift_build_support/targets.py index fba09416ddb90..7f3f35ec8097c 100644 --- a/utils/swift_build_support/swift_build_support/targets.py +++ b/utils/swift_build_support/swift_build_support/targets.py @@ -164,7 +164,8 @@ def swift_flags(self, args): android_toolchain_path = self.ndk_toolchain_path(args) flags += '-sdk %s/sysroot ' % (android_toolchain_path) - flags += '-tools-directory %s/bin' % (android_toolchain_path) + flags += '-tools-directory %s/bin ' % (android_toolchain_path) + flags += '-Xclang-linker -Wl,-z,max-page-size=16384' return flags def cmake_options(self, args):