From 65cfcff6a14dd2c4ae48e109d6d447016fdb9d57 Mon Sep 17 00:00:00 2001 From: artdeell Date: Fri, 24 Feb 2023 16:55:30 +0300 Subject: [PATCH] Add aarch32 patches --- buildjdk.sh | 4 ++- patches/jdk8u_android_aarch32.diff | 56 ++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 patches/jdk8u_android_aarch32.diff diff --git a/buildjdk.sh b/buildjdk.sh index 27e4489..d4a9be0 100755 --- a/buildjdk.sh +++ b/buildjdk.sh @@ -64,8 +64,10 @@ cd openjdk if [ "$BUILD_IOS" != "1" ]; then git reset --hard git apply --reject --whitespace=fix ../patches/jdk8u_android.diff || echo "git apply failed (universal patch set)" - if [ "$TARGET_JDK" != "arm" ]; then + if [ "$TARGET_JDK" != "aarch32" ]; then git apply --reject --whitespace=fix ../patches/jdk8u_android_main.diff || echo "git apply failed (main non-universal patch set)" + else + git apply --reject --whitespace=fix ../patches/jdk8u_android_aarch32.diff || echo "git apply failed (aarch32 non-universal patch set)" fi #TODO: make separate aarch32 patch set fi diff --git a/patches/jdk8u_android_aarch32.diff b/patches/jdk8u_android_aarch32.diff new file mode 100644 index 0000000..cc4801d --- /dev/null +++ b/patches/jdk8u_android_aarch32.diff @@ -0,0 +1,56 @@ +diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp +index d3a9f240..410693bf 100644 +--- a/hotspot/src/os/linux/vm/os_linux.cpp ++++ b/hotspot/src/os/linux/vm/os_linux.cpp +@@ -95,13 +95,17 @@ + # include + # include + # include +-# include + # include +-#ifndef __UCLIBC__ ++#if !defined(__UCLIBC__) || !defined(__ANDROID__) + # include + #endif + # include ++#if !defined(__ANDROID__) + # include ++# include ++#else ++# include ++#endif + # include + # include + # include +@@ -3046,7 +3050,7 @@ extern "C" JNIEXPORT int fork1() { return fork(); } + // Handle request to load libnuma symbol version 1.1 (API v1). If it fails + // load symbol from base version instead. + void* os::Linux::libnuma_dlsym(void* handle, const char *name) { +-#ifndef __UCLIBC__ ++#if !defined(__UCLIBC__) || !defined(__ANDROID__) + void *f = dlvsym(handle, name, "libnuma_1.1"); + if (f == NULL) { + f = dlsym(handle, name); +@@ -5976,7 +5980,7 @@ bool os::is_thread_cpu_time_supported() { + // Linux doesn't yet have a (official) notion of processor sets, + // so just return the system wide load average. + int os::loadavg(double loadavg[], int nelem) { +-#ifndef __UCLIBC__ ++#if !defined(__UCLIBC__) || !defined(__ANDROID__) + return ::getloadavg(loadavg, nelem); + #else + return -1; +diff --git a/hotspot/src/os_cpu/linux_aarch32/vm/os_linux_aarch32.cpp b/hotspot/src/os_cpu/linux_aarch32/vm/os_linux_aarch32.cpp +index 2883fc17..0292a17f 100644 +--- a/hotspot/src/os_cpu/linux_aarch32/vm/os_linux_aarch32.cpp ++++ b/hotspot/src/os_cpu/linux_aarch32/vm/os_linux_aarch32.cpp +@@ -75,7 +75,9 @@ + # include + # include + # include ++#ifndef __ANDROID__ + # include ++#endif + + #define REG_FP 29 + #define SPELL_REG_SP "sp"