From 5c7c50983264f804e2c4b06f96ff09144a296395 Mon Sep 17 00:00:00 2001 From: Phanendhar Reddy Date: Fri, 20 Jun 2025 00:21:39 +0530 Subject: [PATCH] Align output ELF segments to 16 KB pages for Android builds --- CMakeLists.txt | 3 +++ jni/Android.mk | 1 + 2 files changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4510337bf..4304ec829 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -172,6 +172,9 @@ set(CMAKE_CXX_STANDARD 14) if(CMAKE_SYSTEM_NAME STREQUAL "Android") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unused-function -Wno-unused-variable -O3 -funroll-loops -ftree-vectorize -ffast-math -fpermissive -fPIC ") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-function -Wno-unused-variable -O3 -funroll-loops -ftree-vectorize -ffast-math -fpermissive -fPIC ") + #Align output ELF segments to 16 KB pages for Android 15+ + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,max-page-size=16384") + endif() # remove the MinSizeRel and RelWithDebInfo configurations diff --git a/jni/Android.mk b/jni/Android.mk index fa5572852..e68b3bc9e 100644 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -37,6 +37,7 @@ LOCAL_SRC_FILES := com_eclipsesource_v8_V8Impl.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH)/../node/node.$(TARGET_ARCH_ABI)/deps $(LOCAL_PATH)/../node/node.$(TARGET_ARCH_ABI)/deps/v8 $(LOCAL_PATH)/../node/node.$(TARGET_ARCH_ABI)/deps/v8/include $(LOCAL_PATH)/../node/node.$(TARGET_ARCH_ABI)/deps/icu-small/source LOCAL_CFLAGS += -std=c++11 -Wall -Wno-unused-function -Wno-unused-variable -O3 -funroll-loops -ftree-vectorize -ffast-math -fpermissive -fPIC LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog -latomic +LOCAL_LDFLAGS += -Wl,-z,max-page-size=16384 LOCAL_STATIC_LIBRARIES := \ v8_base v8_nosnapshot v8_libplatform v8_libbase v8_libsampler