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.master
parent
413097306f
commit
b7c8a69fd8
|
@ -1,6 +1,6 @@
|
||||||
# GNU Guix --- Functional package management for GNU
|
# GNU Guix --- Functional package management for GNU
|
||||||
# Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org>
|
# 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 © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||||
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org>
|
# Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Mark H Weaver <mhw@netris.org>
|
||||||
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
|
# 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/openboardview-use-system-utf8.patch \
|
||||||
%D%/packages/patches/openbox-python3.patch \
|
%D%/packages/patches/openbox-python3.patch \
|
||||||
%D%/packages/patches/openfoam-4.1-cleanup.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-10-idlj-reproducibility.patch \
|
||||||
%D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch \
|
%D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch \
|
||||||
%D%/packages/patches/openmpi-mtl-priorities.patch \
|
%D%/packages/patches/openmpi-mtl-priorities.patch \
|
||||||
|
|
|
@ -871,7 +871,9 @@ new Date();"))
|
||||||
(find-files "." ".*.(bin|exe|jar)$"))))
|
(find-files "." ".*.(bin|exe|jar)$"))))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1v92nzdqx07c35x945awzir4yk0fk22vky6fpp8mq9js930sxsz0"))))
|
"1v92nzdqx07c35x945awzir4yk0fk22vky6fpp8mq9js930sxsz0"))
|
||||||
|
(patches (search-patches "openjdk-9-pointer-comparison.patch"
|
||||||
|
"openjdk-9-setsignalhandler.patch"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(outputs '("out" "jdk" "doc"))
|
(outputs '("out" "jdk" "doc"))
|
||||||
(arguments
|
(arguments
|
||||||
|
|
|
@ -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
|
|
@ -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,
|
Reference in New Issue