From 0fcf3db8a8e9347f87247eabe3fde2416dc9ed46804764987dbe58cdfe398c07 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Sat, 7 Aug 2021 16:53:08 +0000 Subject: [PATCH] Accepting request 910327 from home:Andreas_Schwab:riscv:java - riscv64-zero.patch: Add support for riscv54 (zero VM) OBS-URL: https://build.opensuse.org/request/show/910327 OBS-URL: https://build.opensuse.org/package/show/Java:Factory/java-1_8_0-openjdk?expand=0&rev=381 --- java-1_8_0-openjdk.changes | 5 +++ java-1_8_0-openjdk.spec | 3 ++ riscv64-zero.patch | 86 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 riscv64-zero.patch diff --git a/java-1_8_0-openjdk.changes b/java-1_8_0-openjdk.changes index 0df91d8..5f0f10e 100644 --- a/java-1_8_0-openjdk.changes +++ b/java-1_8_0-openjdk.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Aug 4 09:25:47 UTC 2021 - Andreas Schwab + +- riscv64-zero.patch: Add support for riscv54 (zero VM) + ------------------------------------------------------------------- Wed Jul 28 12:03:07 UTC 2021 - Fridrich Strba diff --git a/java-1_8_0-openjdk.spec b/java-1_8_0-openjdk.spec index f11e115..514c58f 100644 --- a/java-1_8_0-openjdk.spec +++ b/java-1_8_0-openjdk.spec @@ -202,6 +202,7 @@ Patch1002: icedtea-3.8.0-s390.patch Patch2001: disable-doclint-by-default.patch Patch2002: JDK_1_8_0-8208602.patch Patch3000: tls13extensions.patch +Patch4000: riscv64-zero.patch BuildRequires: alsa-lib-devel BuildRequires: autoconf BuildRequires: automake @@ -543,6 +544,8 @@ patch -p0 -i %{PATCH2002} patch -p0 -i %{PATCH3000} +patch -p0 -i %{PATCH4000} + (cd openjdk/common/autoconf bash ./autogen.sh ) diff --git a/riscv64-zero.patch b/riscv64-zero.patch new file mode 100644 index 0000000..60475c7 --- /dev/null +++ b/riscv64-zero.patch @@ -0,0 +1,86 @@ +Index: openjdk/common/autoconf/build-aux/autoconf-config.sub +=================================================================== +--- openjdk/common/autoconf/build-aux/autoconf-config.sub.orig ++++ openjdk/common/autoconf/build-aux/autoconf-config.sub +@@ -302,6 +302,7 @@ case $basic_machine in + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ ++ | riscv32 | riscv64 \ + | score \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ +@@ -383,6 +384,7 @@ case $basic_machine in + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ ++ | riscv32-* | riscv64-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +Index: openjdk/common/autoconf/platform.m4 +=================================================================== +--- openjdk/common/autoconf/platform.m4.orig ++++ openjdk/common/autoconf/platform.m4 +@@ -96,6 +96,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU + VAR_CPU_BITS=64 + VAR_CPU_ENDIAN=big + ;; ++ riscv64) ++ VAR_CPU=riscv64 ++ VAR_CPU_ARCH=riscv ++ VAR_CPU_BITS=64 ++ VAR_CPU_ENDIAN=little ++ ;; + *) + AC_MSG_ERROR([unsupported cpu $1]) + ;; +@@ -391,6 +397,7 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS], + sparc*) ZERO_ARCHDEF=SPARC ;; + x86_64*) ZERO_ARCHDEF=AMD64 ;; + x86) ZERO_ARCHDEF=IA32 ;; ++ riscv*) ZERO_ARCHDEF=RISCV ;; + *) ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z A-Z) + esac + AC_SUBST(ZERO_ARCHDEF) +Index: openjdk/hotspot/src/os/linux/vm/os_linux.cpp +=================================================================== +--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp.orig ++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp +@@ -369,7 +369,7 @@ void os::init_system_properties_values() + // 1: ... + // ... + // 7: The default directories, normally /lib and /usr/lib. +-#if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390)) ++#if defined(AMD64) || defined(_LP64) && (defined(SPARC) || defined(PPC) || defined(S390) || defined(RISCV)) + #define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib" + #else + #define DEFAULT_LIBPATH "/lib:/usr/lib" +@@ -1960,6 +1960,10 @@ void * os::dll_load(const char *filename + #define EM_AARCH64 183 + #endif + ++ #ifndef EM_RISCV ++ #define EM_RISCV 243 ++ #endif ++ + static const arch_t arch_array[]={ + {EM_386, EM_386, ELFCLASS32, ELFDATA2LSB, (char*)"IA 32"}, + {EM_486, EM_386, ELFCLASS32, ELFDATA2LSB, (char*)"IA 32"}, +@@ -1982,6 +1986,7 @@ void * os::dll_load(const char *filename + {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"}, + {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}, + {EM_AARCH64, EM_AARCH64, ELFCLASS64, ELFDATA2LSB, (char*)"AARCH64"}, ++ {EM_RISCV, EM_RISCV, ELFCLASS64, ELFDATA2LSB, (char*)"RISCV"}, + }; + + #if (defined IA32) +@@ -2014,6 +2019,8 @@ void * os::dll_load(const char *filename + static Elf32_Half running_arch_code=EM_68K; + #elif (defined AARCH64) + static Elf32_Half running_arch_code=EM_AARCH64; ++#elif (defined RISCV) ++ static Elf32_Half running_arch_code=EM_RISCV; + #else + #error Method os::dll_load requires that one of following is defined:\ + IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, AARCH64