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
This commit is contained in:
Fridrich Strba 2021-08-07 16:53:08 +00:00 committed by Git OBS Bridge
parent e79e6b5b95
commit 0fcf3db8a8
3 changed files with 94 additions and 0 deletions

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Wed Aug 4 09:25:47 UTC 2021 - Andreas Schwab <schwab@suse.de>
- riscv64-zero.patch: Add support for riscv54 (zero VM)
-------------------------------------------------------------------
Wed Jul 28 12:03:07 UTC 2021 - Fridrich Strba <fstrba@suse.com>

View File

@ -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
)

86
riscv64-zero.patch Normal file
View File

@ -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