guix-commits
[Top][All Lists]
Advanced

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

01/02: gnu: openjdk9: Add patches to fix build.


From: guix-commits
Subject: 01/02: gnu: openjdk9: Add patches to fix build.
Date: Wed, 5 Apr 2023 10:21:48 -0400 (EDT)

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

commit b7c8a69fd8e038990f1489c9d85def5b2cae52a8
Author: Andreas Enge <andreas@enge.fr>
AuthorDate: Wed Apr 5 12:41:12 2023 +0200

    gnu: openjdk9: Add patches to fix build.
    
    * gnu/packages/patches/openjdk-9-pointer-comparison.patch,
    gnu/packages/patches/openjdk-9-setsignalhandler.patch: New files.
    * gnu/local.mk (dist_patch_DATA): Register patches.
    * gnu/packages/java.scm (openjdk9)[origin]: Use patches.
---
 gnu/local.mk                                       |  4 +++-
 gnu/packages/java.scm                              |  4 +++-
 .../patches/openjdk-9-pointer-comparison.patch     | 27 ++++++++++++++++++++++
 .../patches/openjdk-9-setsignalhandler.patch       | 24 +++++++++++++++++++
 4 files changed, 57 insertions(+), 2 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 21f0993a3f..b184f6c5a3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1,6 +1,6 @@
 # GNU Guix --- Functional package management for GNU
 # Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org>
-# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022 Andreas 
Enge <andreas@enge.fr>
+# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2022, 2023 
Andreas Enge <andreas@enge.fr>
 # Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
 # Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H 
Weaver <mhw@netris.org>
 # Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
@@ -1616,6 +1616,8 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/openboardview-use-system-utf8.patch     \
   %D%/packages/patches/openbox-python3.patch                   \
   %D%/packages/patches/openfoam-4.1-cleanup.patch                      \
+  %D%/packages/patches/openjdk-9-pointer-comparison.patch       \
+  %D%/packages/patches/openjdk-9-setsignalhandler.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 98c37bd6ed..e8cc968544 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -871,7 +871,9 @@ new Date();"))
                                     (find-files "." ".*.(bin|exe|jar)$"))))
               (sha256
                (base32
-                "1v92nzdqx07c35x945awzir4yk0fk22vky6fpp8mq9js930sxsz0"))))
+                "1v92nzdqx07c35x945awzir4yk0fk22vky6fpp8mq9js930sxsz0"))
+              (patches (search-patches "openjdk-9-pointer-comparison.patch"
+                                       "openjdk-9-setsignalhandler.patch"))))
     (build-system gnu-build-system)
     (outputs '("out" "jdk" "doc"))
     (arguments
diff --git a/gnu/packages/patches/openjdk-9-pointer-comparison.patch 
b/gnu/packages/patches/openjdk-9-pointer-comparison.patch
new file mode 100644
index 0000000000..dd443ae817
--- /dev/null
+++ b/gnu/packages/patches/openjdk-9-pointer-comparison.patch
@@ -0,0 +1,27 @@
+The following patch prevents build failures due to comparisons between
+a pointer and an integer. It has been adapted from openjdk@10.
+
+diff -u -r openjdk-9.alt/hotspot/src/share/vm/memory/virtualspace.cpp 
openjdk-9/hotspot/src/share/vm/memory/virtualspace.cpp
+--- openjdk-9.alt/hotspot/src/share/vm/memory/virtualspace.cpp 2023-04-05 
13:46:58.841965513 +0200
++++ openjdk-9/hotspot/src/share/vm/memory/virtualspace.cpp     2023-04-05 
13:48:43.902387837 +0200
+@@ -581,7 +581,7 @@
+   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 -u -r openjdk-9.alt/hotspot/src/share/vm/opto/lcm.cpp 
openjdk-9/hotspot/src/share/vm/opto/lcm.cpp
+--- openjdk-9.alt/hotspot/src/share/vm/opto/lcm.cpp    2023-04-05 
13:46:58.849965545 +0200
++++ openjdk-9/hotspot/src/share/vm/opto/lcm.cpp        2023-04-05 
13:47:53.566187260 +0200
+@@ -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-setsignalhandler.patch 
b/gnu/packages/patches/openjdk-9-setsignalhandler.patch
new file mode 100644
index 0000000000..500bf2360b
--- /dev/null
+++ b/gnu/packages/patches/openjdk-9-setsignalhandler.patch
@@ -0,0 +1,24 @@
+Patch taken from file comparison with openjdk@19.
+
+diff -u -r openjdk-9.alt/hotspot/test/runtime/StackGuardPages/exeinvoke.c 
openjdk-9/hotspot/test/runtime/StackGuardPages/exeinvoke.c
+--- openjdk-9.alt/hotspot/test/runtime/StackGuardPages/exeinvoke.c     
2023-04-05 13:46:58.689964892 +0200
++++ openjdk-9/hotspot/test/runtime/StackGuardPages/exeinvoke.c 2023-04-05 
14:15:52.435613325 +0200
+@@ -67,8 +67,17 @@
+   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 = (char*)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]