[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1057390: openjdk-21: Please add patch to support SPARCV9



Source: openjdk-21
Version: 21.0.1+12-2
Severity: normal
Tags: patch
User: debian-sparc@lists.debian.org
Usertags: sparc64
X-Debbugs-Cc: debian-sparc@lists.debian.org

Hello!

The attached patch adds SPARCV9 support to OpenJDK. It has been successfully
tested against OpenJDK 21 on stadler.debian.net. I will use this patch now
to build openjdk-21 and upload to unreleased.

Thanks,
Adrian

--
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
Index: openjdk-21-21.0.1+12/src/java.base/share/classes/jdk/internal/util/Architecture.java
===================================================================
--- openjdk-21-21.0.1+12.orig/src/java.base/share/classes/jdk/internal/util/Architecture.java
+++ openjdk-21-21.0.1+12/src/java.base/share/classes/jdk/internal/util/Architecture.java
@@ -50,6 +50,7 @@ public enum Architecture {
     IA64,
     M68K,
     SH,
+    SPARCV9,
     X32,
     PPC,
     MIPSEL,
@@ -171,6 +172,15 @@ public enum Architecture {
     }
 
     /**
+     * {@return {@code true} if the current architecture is SPARCV9}
+     * Use {@link #isLittleEndian()} to determine big or little endian.
+     */
+    @ForceInline
+    public static boolean isSPARCV9() {
+        return PlatformProps.TARGET_ARCH_IS_SPARCV9;
+    }
+
+    /**
      * {@return {@code true} if the current architecture is M68K}
      * Use {@link #isLittleEndian()} to determine big or little endian.
      */
Index: openjdk-21-21.0.1+12/test/jdk/jdk/internal/util/ArchTest.java
===================================================================
--- openjdk-21-21.0.1+12.orig/test/jdk/jdk/internal/util/ArchTest.java
+++ openjdk-21-21.0.1+12/test/jdk/jdk/internal/util/ArchTest.java
@@ -41,6 +41,7 @@ import static jdk.internal.util.Architec
 import static jdk.internal.util.Architecture.IA64;
 import static jdk.internal.util.Architecture.PPC;
 import static jdk.internal.util.Architecture.SH;
+import static jdk.internal.util.Architecture.SPARCV9;
 import static jdk.internal.util.Architecture.X32;
 import static jdk.internal.util.Architecture.M68K;
 import static jdk.internal.util.Architecture.MIPSEL;
@@ -93,6 +94,7 @@ public class ArchTest {
             case "m68k" -> M68K;
             case "ppc" -> PPC;
             case "sh" -> SH;
+            case "sparcv9" -> SPARCV9;
             case "x32" -> X32;
             default -> OTHER;
         };
@@ -121,6 +123,7 @@ public class ArchTest {
                 Arguments.of(HPPA, Architecture.isHPPA()),
                 Arguments.of(IA64, Architecture.isIA64()),
                 Arguments.of(SH, Architecture.isSH()),
+                Arguments.of(SPARCV9, Architecture.isSPARCV9()),
                 Arguments.of(X32, Architecture.isX32()),
                 Arguments.of(PPC64, Architecture.isPPC64())
         );
Index: openjdk-21-21.0.1+12/src/java.base/share/classes/jdk/internal/util/PlatformProps.java.template
===================================================================
--- openjdk-21-21.0.1+12.orig/src/java.base/share/classes/jdk/internal/util/PlatformProps.java.template
+++ openjdk-21-21.0.1+12/src/java.base/share/classes/jdk/internal/util/PlatformProps.java.template
@@ -64,6 +64,7 @@ class PlatformProps {
     static final boolean TARGET_ARCH_IS_MIPS64EL= "@@OPENJDK_TARGET_CPU@@" == "mips64el";
     static final boolean TARGET_ARCH_IS_X32     = "@@OPENJDK_TARGET_CPU@@" == "x32";
     static final boolean TARGET_ARCH_IS_SH      = "@@OPENJDK_TARGET_CPU@@" == "sh";
+    static final boolean TARGET_ARCH_IS_SPARCV9 = "@@OPENJDK_TARGET_CPU@@" == "sparcv9";
     static final boolean TARGET_ARCH_IS_M68K    = "@@OPENJDK_TARGET_CPU@@" == "m68k";
     static final boolean TARGET_ARCH_IS_PPC     = "@@OPENJDK_TARGET_CPU@@" == "ppc";
     static final boolean TARGET_ARCH_IS_ALPHA   = "@@OPENJDK_TARGET_CPU@@" == "alpha";

Reply to: