Package: openjdk-17

Version: 17.0.9~4ea-1

Severity: wishlist

Tags: patch

User: debian-de...@lists.debian.org

Usertags: loongarch64


Dear Maintainers,


I hope this email finds you well. We would like to add openjdk-17 zero build support for loong64.


The attached patch includes three parts of changes:


(1) Add the loong64 variable to debian/rules and debian/control.


(2) Synchronization with code in JDK-8315020. This part of the code has not been backported to jdk17u, so we need to handle it additionally.


(3 patches/add-basic_machine-in-autoconf-config.patch adds loongarch info.


Thank you for your time and consideration of this request.


Thanks,

Xuefeng Pan



commit c36214ebd3d6e0b2652fcafa95706dc4da4cf7ce
Author: panxuefeng <panxuef...@loongson.cn>
Date:   Thu Sep 14 01:50:48 2023 +0000

    Support zero build for loong64

diff --git a/changelog b/changelog
index 7541fd7..1ba8363 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,9 @@
+openjdk-17 (17.0.9~4ea-1+loong64) unreleased; urgency=medium
+
+  * Add openjdk-17 zero support for loong64
+
+ -- Xuefeng Pan <panxuef...@loongson.cn>  Wed, 13 Sep 2023 16:36:56 +0800
+
 openjdk-17 (17.0.9~4ea-1) unstable; urgency=medium
 
   * OpenJDK 17.0.9 early access, build 4.
diff --git a/control b/control
index 2172a5d..3513955 100644
--- a/control
+++ b/control
@@ -24,7 +24,7 @@ Vcs-Browser: https://salsa.debian.org/openjdk-team/openjdk/tree/openjdk-17
 Vcs-Git: https://salsa.debian.org/openjdk-team/openjdk.git -b openjdk-17
 
 Package: openjdk-17-jdk-headless
-Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
 Multi-Arch: same
 Pre-Depends: ${dpkg:Depends}
 Depends: openjdk-17-jre-headless (= ${binary:Version}),
@@ -45,7 +45,7 @@ Description: OpenJDK Development Kit (JDK) (headless)
  applets, and components using the Java programming language.
 
 Package: openjdk-17-jre-headless
-Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
 Multi-Arch: same
 Pre-Depends: ${dpkg:Depends}
 Depends: ${jredefault:Depends}, ${cacert:Depends},
@@ -72,7 +72,7 @@ Description: OpenJDK Java runtime, using ${vm:Name} (headless)
  using ${vm:Name}.
 
 Package: openjdk-17-jdk
-Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
 Multi-Arch: same
 Pre-Depends: ${dpkg:Depends}
 Depends: openjdk-17-jre (= ${binary:Version}),
@@ -89,7 +89,7 @@ Description: OpenJDK Development Kit (JDK)
  applets, and components using the Java programming language.
 
 Package: openjdk-17-jre
-Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
 Multi-Arch: same
 Pre-Depends: ${dpkg:Depends}
 Depends: openjdk-17-jre-headless (= ${binary:Version}),
@@ -110,7 +110,7 @@ Description: OpenJDK Java runtime, using ${vm:Name}
  programs, using ${vm:Name}.
 
 Package: openjdk-17-demo
-Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
 Priority: optional
 Pre-Depends: ${dpkg:Depends}
 Depends: openjdk-17-jre (= ${binary:Version}),
@@ -150,7 +150,7 @@ Description: OpenJDK Development Kit (JDK) documentation
  This package contains the API documentation.
 
 Package: openjdk-17-dbg
-Architecture: alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
+Architecture: alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
 Multi-Arch: same
 Priority: optional
 Section: debug
diff --git a/patches/add-basic_machine-in-autoconf-config.patch b/patches/add-basic_machine-in-autoconf-config.patch
new file mode 100644
index 0000000..1044de3
--- /dev/null
+++ b/patches/add-basic_machine-in-autoconf-config.patch
@@ -0,0 +1,12 @@
+diff --git a/make/autoconf/build-aux/autoconf-config.sub b/make/autoconf/build-aux/autoconf-config.sub
+index 1aab2b303e3..df7cfd4034a 100644
+--- a/make/autoconf/build-aux/autoconf-config.sub
++++ b/make/autoconf/build-aux/autoconf-config.sub
+@@ -275,6 +275,7 @@ case $basic_machine in
+ 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ 	| i370 | i860 | i960 | ia64 \
+ 	| ip2k | iq2000 \
++	| loongarch32 | loongarch64 \
+ 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+ 	| maxq | mb | microblaze | mcore | mep \
+ 	| mips | mipsbe | mipseb | mipsel | mipsle \
diff --git a/patches/series b/patches/series
index ba70a3a..71394a8 100644
--- a/patches/series
+++ b/patches/series
@@ -36,3 +36,5 @@ update-permission-test.patch
 ldap-timeout-test-use-ip.patch
 test-use-ip-address.patch
 exclude-broken-tests.patch
+add-basic_machine-in-autoconf-config.patch
+sync-with-jdk-8315020.patch
diff --git a/patches/sync-with-jdk-8315020.patch b/patches/sync-with-jdk-8315020.patch
new file mode 100644
index 0000000..d76b38b
--- /dev/null
+++ b/patches/sync-with-jdk-8315020.patch
@@ -0,0 +1,31 @@
+diff --git a/make/autoconf/platform.m4 b/make/autoconf/platform.m4
+index 5752d3bd1a6..eb66266262b 100644
+--- a/make/autoconf/platform.m4
++++ b/make/autoconf/platform.m4
+@@ -573,6 +573,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER],
+     HOTSPOT_$1_CPU_DEFINE=S390
+   elif test "x$OPENJDK_$1_CPU" = xs390x; then
+     HOTSPOT_$1_CPU_DEFINE=S390
++  elif test "x$OPENJDK_$1_CPU" = xloongarch64; then
++    HOTSPOT_$1_CPU_DEFINE=LOONGARCH64
+   elif test "x$OPENJDK_$1_CPU" != x; then
+     HOTSPOT_$1_CPU_DEFINE=$(echo $OPENJDK_$1_CPU | tr a-z A-Z)
+   fi
+diff --git a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp
+index 99dd4c82420..4c63f292e86 100644
+--- a/src/hotspot/os/linux/os_linux.cpp
++++ b/src/hotspot/os/linux/os_linux.cpp
+@@ -1791,11 +1791,11 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen) {
+   static  Elf32_Half running_arch_code=EM_SH;
+ #elif  (defined RISCV)
+   static  Elf32_Half running_arch_code=EM_RISCV;
+-#elif  (defined LOONGARCH)
++#elif  (defined LOONGARCH64)
+   static  Elf32_Half running_arch_code=EM_LOONGARCH;
+ #else
+     #error Method os::dll_load requires that one of following is defined:\
+-        AARCH64, ALPHA, ARM, AMD64, IA32, IA64, LOONGARCH, M68K, MIPS, MIPSEL, PARISC, __powerpc__, __powerpc64__, RISCV, S390, SH, __sparc
++        AARCH64, ALPHA, ARM, AMD64, IA32, IA64, LOONGARCH64, M68K, MIPS, MIPSEL, PARISC, __powerpc__, __powerpc64__, RISCV, S390, SH, __sparc
+ #endif
+ 
+   // Identify compatibility class for VM's architecture and library's architecture
diff --git a/rules b/rules
index 2648034..b5497e4 100755
--- a/rules
+++ b/rules
@@ -57,7 +57,7 @@ multiarch_dir = /$(DEB_HOST_MULTIARCH)
 
 hotspot_archs	= amd64 i386 arm64 armhf ppc64 ppc64el riscv64 s390x
 jtreg_archs	= $(hotspot_archs) alpha ia64 powerpc ppc64 sh4 x32
-jtreg_archs	+= armel mipsel mips64el
+jtreg_archs	+= armel loong64 mipsel mips64el
 jtreg_archs	+= riscv64
 
 # FIXME: use bootcycle builds for zero archs?
@@ -161,7 +161,7 @@ jtreg_pkg = jtreg6
 testng_pkg= libtestng7-java
 
 with_check = $(if $(findstring nocheck, $(DEB_BUILD_OPTIONS)),,yes)
-ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel ia64 mipsel mips64el powerpc x32))
+ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel ia64 loong64 mipsel mips64el powerpc x32))
   with_check = disabled running check on $(DEB_HOST_ARCH)
 endif
 ifeq ($(distribution)-$(distrel),Ubuntu-riscv64)
@@ -181,7 +181,7 @@ endif
 
 with_wqy_zenhai = $(if $(filter $(distrel),lenny),,yes)
 
-arch_map	:= alpha=alpha arm=arm armel=arm armhf=arm arm64=aarch64 amd64=amd64 hppa=parisc i386=i586 m68k=m68k mips=mips mipsel=mipsel mips64=mips64 mips64el=mips64el powerpc=ppc ppc64=ppc64 ppc64el=ppc64le riscv64=riscv64 sparc=sparc sparc64=sparcv9 sh4=sh s390x=s390x ia64=ia64 x32=x32
+arch_map	:= alpha=alpha arm=arm armel=arm armhf=arm arm64=aarch64 amd64=amd64 hppa=parisc i386=i586 loong64=loong64 m68k=m68k mips=mips mipsel=mipsel mips64=mips64 mips64el=mips64el powerpc=ppc ppc64=ppc64 ppc64el=ppc64le riscv64=riscv64 sparc=sparc sparc64=sparcv9 sh4=sh s390x=s390x ia64=ia64 x32=x32
 
 jvmarch		:= $(strip $(patsubst $(DEB_HOST_ARCH_CPU)=%, %, \
 			$(filter $(DEB_HOST_ARCH_CPU)=%, $(arch_map))))
@@ -191,7 +191,7 @@ endif
 
 default_vm = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),hotspot,zero)
 
-any_archs = alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
+any_archs = alpha amd64 armel armhf arm64 i386 ia64 loong64 mips mipsel mips64 mips64el powerpc ppc64 ppc64el m68k riscv64 sh4 sparc sparc64 s390x x32
 
 altzero_archs = $(hotspot_archs)
 ifneq (,$(filter $(distrel),trusty))
@@ -598,7 +598,7 @@ all_tools	=  jar jarsigner java javac javadoc javap jcmd \
 jdk_hl_tools	= jar jarsigner javac javadoc javap jcmd jdb \
 	jdeprscan jdeps jfr jimage jinfo jlink jmap jmod jps \
 	jrunscript jshell jstack jstat jstatd serialver
-ifeq (,$(filter $(DEB_HOST_ARCH), alpha armel ia64 m68k mips mipsel mips64el powerpc s390x sh4 sparc64 x32))
+ifeq (,$(filter $(DEB_HOST_ARCH), alpha armel ia64 loong64 m68k mips mipsel mips64el powerpc s390x sh4 sparc64 x32))
   all_tools	+= jhsdb
   jdk_hl_tools	+= jhsdb
 endif
@@ -979,7 +979,7 @@ stamps/configure: stamps/unpack
 
 	mkdir -p bin
 ifeq (0,1)
-ifeq (,$(filter $(DEB_HOST_ARCH), alpha amd64 arm64 hppa mips64 mips64el ppc64 ppc64el s390x sparc64 x32))
+ifeq (,$(filter $(DEB_HOST_ARCH), alpha amd64 arm64 hppa loong64 mips64 mips64el ppc64 ppc64el s390x sparc64 x32))
 	( \
 	  echo '#! /bin/sh'; \
 	  echo 'if [ -x /usr/bin/linux32 ]; then'; \
@@ -1083,7 +1083,7 @@ build: pre-build $(build_stamps)
 
 stamps/build: stamps/configure
 	@echo '========== $@ =========='
-ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel armhf ia64 m68k mips mipsel mips64 mips64el powerpc riscv64 s390x sh4 sparc sparc64))
+ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel armhf ia64 loong64 m68k mips mipsel mips64 mips64el powerpc riscv64 s390x sh4 sparc sparc64))
 	sh -c 'sh debian/buildwatch.sh $(CURDIR)/$(builddir) &'
 endif
 	if $(EXTRA_BUILD_ENV) $(MAKE) --no-print-directory -C $(builddir) $(build_target); then \

Reply via email to