mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 22:08:16 -05:00
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:
parent
321e866b1c
commit
389b5b5359
4 changed files with 60 additions and 0 deletions
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
28
gnu/packages/patches/openjdk-9-hotspot-stack-size.patch
Normal file
28
gnu/packages/patches/openjdk-9-hotspot-stack-size.patch
Normal 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,
|
Loading…
Reference in a new issue