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.
This commit is contained in:
Marius Bakke 2022-09-13 00:57:31 +02:00
parent 321e866b1c
commit 389b5b5359
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
4 changed files with 60 additions and 0 deletions

View file

@ -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 \

View file

@ -1536,6 +1536,9 @@ (define-public openjdk9
(sha256
(base32
"01ihmyf7k5z17wbr7xig7y40l9f01d5zjgkcmawn1102hw5kchpq"))
(patches (search-patches
"openjdk-9-hotspot-pointer-comparison.patch"
"openjdk-9-hotspot-stack-size.patch"))
(modules '((guix build utils)))
(snippet
`(begin

View file

@ -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

View file

@ -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,