guix-commits
[Top][All Lists]
Advanced

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

02/04: gnu: OpenJDK@9: Fix build with newer toolchain.


From: guix-commits
Subject: 02/04: gnu: OpenJDK@9: Fix build with newer toolchain.
Date: Tue, 13 Sep 2022 08:55:52 -0400 (EDT)

mbakke pushed a commit to branch core-updates
in repository guix.

commit 389b5b5359e82be5e0417fd3505661b1800fca40
Author: Marius Bakke <marius@gnu.org>
AuthorDate: Tue Sep 13 00:57:31 2022 +0200

    gnu: OpenJDK@9: Fix build with newer toolchain.
    
    * gnu/packages/java.scm (openjdk9)[source](patches): New field.
    * gnu/packages/patches/openjdk-9-hotspot-pointer-comparison.patch,
    gnu/packages/patches/openjdk-9-hotspot-stack-size.patch: New files.
    * gnu/local.mk (dist_patch_DATA): Adjust accordingly.
---
 gnu/local.mk                                       |  2 ++
 gnu/packages/java.scm                              |  3 +++
 .../openjdk-9-hotspot-pointer-comparison.patch     | 27 +++++++++++++++++++++
 .../patches/openjdk-9-hotspot-stack-size.patch     | 28 ++++++++++++++++++++++
 4 files changed, 60 insertions(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index 70640ddfd3..65f04b04a6 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1563,6 +1563,8 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/openbox-python3.patch                   \
   %D%/packages/patches/opencascade-oce-glibc-2.26.patch                \
   %D%/packages/patches/openfoam-4.1-cleanup.patch                      \
+  %D%/packages/patches/openjdk-9-hotspot-pointer-comparison.patch      \
+  %D%/packages/patches/openjdk-9-hotspot-stack-size.patch      \
   %D%/packages/patches/openjdk-10-idlj-reproducibility.patch   \
   %D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch     \
   %D%/packages/patches/openmpi-mtl-priorities.patch            \
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 702f0ea9d3..fda361a4a6 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1536,6 +1536,9 @@ new Date();"))
               (sha256
                (base32
                 "01ihmyf7k5z17wbr7xig7y40l9f01d5zjgkcmawn1102hw5kchpq"))
+              (patches (search-patches
+                        "openjdk-9-hotspot-pointer-comparison.patch"
+                        "openjdk-9-hotspot-stack-size.patch"))
               (modules '((guix build utils)))
               (snippet
                `(begin
diff --git a/gnu/packages/patches/openjdk-9-hotspot-pointer-comparison.patch 
b/gnu/packages/patches/openjdk-9-hotspot-pointer-comparison.patch
new file mode 100644
index 0000000000..b90d736211
--- /dev/null
+++ b/gnu/packages/patches/openjdk-9-hotspot-pointer-comparison.patch
@@ -0,0 +1,27 @@
+Avoid ordered comparison of pointer with integer to prevent compile error
+with GCC 11.
+
+diff --git a/hotspot/src/share/vm/memory/virtualspace.cpp 
b/hotspot/src/share/vm/memory/virtualspace.cpp
+--- a/hotspot/src/share/vm/memory/virtualspace.cpp
++++ b/hotspot/src/share/vm/memory/virtualspace.cpp
+@@ -581,7 +581,7 @@ ReservedHeapSpace::ReservedHeapSpace(size_t size, size_t 
alignment, bool large)
+   assert(markOopDesc::encode_pointer_as_mark(&_base[size])->decode_pointer() 
== &_base[size],
+          "area must be distinguishable from marks for mark-sweep");
+ 
+-  if (base() > 0) {
++  if (base() != NULL) {
+     MemTracker::record_virtual_memory_type((address)base(), mtJavaHeap);
+   }
+ }
+diff --git a/hotspot/src/share/vm/opto/lcm.cpp 
b/hotspot/src/share/vm/opto/lcm.cpp
+--- a/hotspot/src/share/vm/opto/lcm.cpp
++++ b/hotspot/src/share/vm/opto/lcm.cpp
+@@ -39,7 +39,7 @@
+ // Check whether val is not-null-decoded compressed oop,
+ // i.e. will grab into the base of the heap if it represents NULL.
+ static bool accesses_heap_base_zone(Node *val) {
+-  if (Universe::narrow_oop_base() > 0) { // Implies UseCompressedOops.
++  if (Universe::narrow_oop_base() != NULL) { // Implies UseCompressedOops.
+     if (val && val->is_Mach()) {
+       if (val->as_Mach()->ideal_Opcode() == Op_DecodeN) {
+         // This assumes all Decodes with TypePtr::NotNull are matched to 
nodes that
diff --git a/gnu/packages/patches/openjdk-9-hotspot-stack-size.patch 
b/gnu/packages/patches/openjdk-9-hotspot-stack-size.patch
new file mode 100644
index 0000000000..27af0ab6c2
--- /dev/null
+++ b/gnu/packages/patches/openjdk-9-hotspot-stack-size.patch
@@ -0,0 +1,28 @@
+Dynamically allocate the stack since SIGSTKSZ is not constant since glibc 2.34.
+
+Backported from:
+
+  
https://github.com/openjdk/jdk17u/commit/bb7c412e259893091210267252faf3c0a1be0969
+
+diff --git a/hotspot/test/runtime/StackGuardPages/exeinvoke.c 
b/hotspot/test/runtime/StackGuardPages/exeinvoke.c
+--- a/hotspot/test/runtime/StackGuardPages/exeinvoke.c
++++ b/hotspot/test/runtime/StackGuardPages/exeinvoke.c
+@@ -67,8 +67,17 @@ static void handler(int sig, siginfo_t *si, void *unused) {
+   longjmp(context, 1);
+ }
+ 
++static char* altstack = NULL;
++
+ void set_signal_handler() {
+-  static char altstack[SIGSTKSZ];
++  if (altstack == NULL) {
++    // Dynamically allocated in case SIGSTKSZ is not constant
++    altstack = malloc(SIGSTKSZ);
++    if (altstack == NULL) {
++      fprintf(stderr, "Test ERROR. Unable to malloc altstack space\n");
++      exit(7);
++    }
++  }
+ 
+   stack_t ss = {
+     .ss_size = SIGSTKSZ,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]