From 817fc68835f8b29c369eaa6a9344271b69b76e28 Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Sun, 19 Feb 2023 17:17:59 +0700 Subject: [PATCH] Patch: skip building demo/libwaiters.so undefined reference to __gxx_personality_v0 Also: - Perform unsafe git applying of patches - Comment out freemarker stuff, not needed here --- buildjdk.sh | 3 +- buildlibs.sh | 1 + getlibs.sh | 7 ++-- patches/jdk8u_android.diff | 84 ++++++++++++++++++++++---------------- 4 files changed, 56 insertions(+), 39 deletions(-) diff --git a/buildjdk.sh b/buildjdk.sh index 954435f..215ebfb 100755 --- a/buildjdk.sh +++ b/buildjdk.sh @@ -61,7 +61,8 @@ ln -s -f $CUPS_DIR/cups $ANDROID_INCLUDE/ cd openjdk # Apply patches -git apply --reject --whitespace=fix ../patches/jdk8u_android.diff +git reset --hard +git apply --reject --whitespace=fix ../patches/jdk8u_android.diff || echo "git apply failed" # --with-extra-cxxflags="$CXXFLAGS -Dchar16_t=uint16_t -Dchar32_t=uint32_t" \ # --with-extra-cflags="$CPPFLAGS" \ diff --git a/buildlibs.sh b/buildlibs.sh index a110b4b..3fd14f6 100755 --- a/buildlibs.sh +++ b/buildlibs.sh @@ -29,6 +29,7 @@ else --host=$TARGET \ --prefix=`pwd`/build_android-${TARGET_SHORT} \ --without-zlib \ + --with-brotli=no \ --with-png=no \ --with-harfbuzz=no $EXTRA_ARGS \ || error_code=$? diff --git a/getlibs.sh b/getlibs.sh index b0688b2..2fe6873 100755 --- a/getlibs.sh +++ b/getlibs.sh @@ -10,7 +10,8 @@ tar xf freetype-$BUILD_FREETYPE_VERSION.tar.gz wget https://github.com/apple/cups/releases/download/v2.2.4/cups-2.2.4-source.tar.gz tar xf cups-2.2.4-source.tar.gz -wget https://sourceforge.net/projects/freemarker/files/freemarker/2.3.8/freemarker-2.3.8.tar.gz/download -O freemarker-2.3.8.tar.gz -tar -xzf freemarker-2.3.8.tar.gz +# wget https://sourceforge.net/projects/freemarker/files/freemarker/2.3.8/freemarker-2.3.8.tar.gz/download -O freemarker-2.3.8.tar.gz +# tar -xzf freemarker-2.3.8.tar.gz -rm cups-2.2.4-source.tar.gz freetype-$BUILD_FREETYPE_VERSION.tar.gz freemarker-2.3.8.tar.gz +rm cups-2.2.4-source.tar.gz freetype-$BUILD_FREETYPE_VERSION.tar.gz +# freemarker-2.3.8.tar.gz diff --git a/patches/jdk8u_android.diff b/patches/jdk8u_android.diff index 51cb969..c806229 100644 --- a/patches/jdk8u_android.diff +++ b/patches/jdk8u_android.diff @@ -100,41 +100,41 @@ index 0000000000..e4264936ef --- /dev/null +++ b/common/src/gnu/glibc_bionic.c @@ -0,0 +1,36 @@ -+#include "libc-version.h" -+ -+static size_t confstr(int name, char *buf, size_t len) { -+ char *string = ""; -+ size_t string_len = 1; -+ -+ switch (name) { -+ case _CS_GNU_LIBC_VERSION: -+ sring = "Android bionic libc 21"; -+ break; -+ case _CS_GNU_LIBPTHREAD_VERSION: -+ string = "Android bionic libc 21 pthread"; -+ break; -+ default: -+ return 0; -+ } -+ -+ string_len = strnlen(string, 0xA00000); -+ -+ if (len > 0 && buf != NULL) { -+ if (string_len <= len) { -+ memcpy (buf, string, string_len); -+ } else { -+ memcpy (buf, string, len - 1); -+ buf[len - 1] = '\0'; -+ } -+ } -+ return string_len; -+} -+ -+const char* gnu_get_libc_version() { -+ return "2.31"; -+} -+const char* gnu_get_libc_release() { -+ return "stable"; ++#include "libc-version.h" ++ ++static size_t confstr(int name, char *buf, size_t len) { ++ char *string = ""; ++ size_t string_len = 1; ++ ++ switch (name) { ++ case _CS_GNU_LIBC_VERSION: ++ sring = "Android bionic libc 21"; ++ break; ++ case _CS_GNU_LIBPTHREAD_VERSION: ++ string = "Android bionic libc 21 pthread"; ++ break; ++ default: ++ return 0; ++ } ++ ++ string_len = strnlen(string, 0xA00000); ++ ++ if (len > 0 && buf != NULL) { ++ if (string_len <= len) { ++ memcpy (buf, string, string_len); ++ } else { ++ memcpy (buf, string, len - 1); ++ buf[len - 1] = '\0'; ++ } ++ } ++ return string_len; ++} ++ ++const char* gnu_get_libc_version() { ++ return "2.31"; ++} ++const char* gnu_get_libc_release() { ++ return "stable"; +} \ No newline at end of file diff --git a/hotspot/agent/src/os/linux/Makefile b/hotspot/agent/src/os/linux/Makefile @@ -2700,6 +2700,20 @@ index 3ce8e92cc3..af2601b8eb 100644 #define ELF_ST_TYPE ELF32_ST_TYPE #endif #endif +diff --git a/jdk/make/CompileDemos.gmk b/jdk/make/CompileDemos.gmk +index 6c5eb432..c2ed8740 100644 +--- a/jdk/make/CompileDemos.gmk ++++ b/jdk/make/CompileDemos.gmk +@@ -327,7 +327,8 @@ $(eval $(call SetupJVMTIDemo,hprof, java_crw_demo, \ + + $(eval $(call SetupJVMTIDemo,minst, agent_util java_crw_demo)) + $(eval $(call SetupJVMTIDemo,mtrace, agent_util java_crw_demo)) +-$(eval $(call SetupJVMTIDemo,waiters, agent_util, , C++)) ++# FIXME(Android): undefined reference to __gxx_personality_v0 ++#$(eval $(call SetupJVMTIDemo,waiters, agent_util, , C++)) + $(eval $(call SetupJVMTIDemo,versionCheck, agent_util)) + + ################################################################################################## diff --git a/jdk/make/CompileLaunchers.gmk b/jdk/make/CompileLaunchers.gmk index 1f414e2e05..110d531b9d 100644 --- a/jdk/make/CompileLaunchers.gmk