diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh
index 236210b42d7f2461f3bf3f09c71c1a0dfa06b155..f445233f1ea7f7538f93cef2bad3d4cd8bc58026 100755
--- a/buildsystem/build-libvlc.sh
+++ b/buildsystem/build-libvlc.sh
@@ -167,8 +167,9 @@ fi
 
 # cf. GLOBAL_CFLAGS from ${ANDROID_NDK}/build/core/default-build-commands.mk
 VLC_CFLAGS="${VLC_CFLAGS} -fPIC -fdata-sections -ffunction-sections -funwind-tables \
- -fstack-protector-strong -no-canonical-prefixes"
-VLC_CXXFLAGS="-fexceptions -frtti"
+ -fstack-protector-strong -no-canonical-prefixes -Wl,-z,max-page-size=16384"
+VLC_CXXFLAGS="-fexceptions -frtti -Wl,-z,max-page-size=16384"
+VLC_LDFLAGS="-z max-page-size=16384"
 
 # Release or not?
 if [ "$AVLC_RELEASE" = 1 ]; then
@@ -187,6 +188,7 @@ echo "API:        $ANDROID_API"
 echo "PATH:       $PATH"
 echo "VLC_CFLAGS:        ${VLC_CFLAGS}"
 echo "VLC_CXXFLAGS:      ${VLC_CXXFLAGS}"
+echo "VLC_LDFLAGS:       ${VLC_LDFLAGS}"
 
 if [ -z "$ANDROID_NDK" ]; then
     echo "Please set the ANDROID_NDK environment variable with its path."
@@ -501,6 +503,7 @@ else
 
     echo "EXTRA_CFLAGS=${VLC_CFLAGS}" >> $VLC_CONTRIB_DIR/config.mak
     echo "EXTRA_CXXFLAGS=${VLC_CXXFLAGS}" >> $VLC_CONTRIB_DIR/config.mak
+    echo "EXTRA_LDFLAGS=${VLC_LDFLAGS}" >> $VLC_CONTRIB_DIR/config.mak
     echo "CC=${CROSS_CLANG}" >> $VLC_CONTRIB_DIR/config.mak
     echo "CXX=${CROSS_CLANG}++" >> $VLC_CONTRIB_DIR/config.mak
     echo "AR=${CROSS_TOOLS}ar" >> $VLC_CONTRIB_DIR/config.mak
diff --git a/libvlc/jni/libvlc.mk b/libvlc/jni/libvlc.mk
index cc1279cadcbe794df4b53f9bfd16c4cde35ce46e..2de85b8edae04606ebfe14b258deeccf530241b5 100644
--- a/libvlc/jni/libvlc.mk
+++ b/libvlc/jni/libvlc.mk
@@ -34,6 +34,7 @@ LOCAL_LDLIBS := \
     -ljpeg \
     -Wl,-Bsymbolic
 LOCAL_CXXFLAGS := -std=c++17
+LOCAL_LDFLAGS += "-Wl,-z,max-page-size=16384"
 # This duplicates the libvlc* link flags, but it propagates the dependency
 # on the native build which is what we want overall
 LOCAL_STATIC_LIBRARIES := libvlccore libvlccompat libvlc-native
diff --git a/libvlc/jni/libvlcjni.mk b/libvlc/jni/libvlcjni.mk
index aed9b32234709ab7502dc577cebaaa9687664394..10dab50e7d9aa5048e1836542485cb622b8bb105 100644
--- a/libvlc/jni/libvlcjni.mk
+++ b/libvlc/jni/libvlcjni.mk
@@ -17,6 +17,7 @@ LOCAL_SRC_FILES += std_logger.c
 LOCAL_C_INCLUDES := $(VLC_SRC_DIR)/include $(VLC_BUILD_DIR)/include
 LOCAL_CFLAGS := -std=c17
 LOCAL_LDLIBS := -llog
+LOCAL_LDFLAGS += "-Wl,-z,max-page-size=16384"
 LOCAL_SHARED_LIBRARIES := libvlc
 
 include $(BUILD_SHARED_LIBRARY)