summaryrefslogtreecommitdiff
path: root/gnu/packages/java.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/java.scm')
-rw-r--r--gnu/packages/java.scm53
1 files changed, 39 insertions, 14 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 388e9d127f..aa80fa8cf9 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -233,15 +233,23 @@
"openjdk.src/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c")
(("#include <sys/sysctl.h>")
"#include <linux/sysctl.h>"))
+
+ ;; XXX 'ldd' in glibc 2.35 segfaults upon reading
+ ;; openjdk.build-boot/lib/amd64/libnio.so (!).
+ ;; It is only used as a verification step, so ignore it;
+ ;; try removing this substitution for newer versions of glibc.
+ (substitute* "openjdk.src/jdk/make/common/shared/Defs-linux.gmk"
+ (("\\$\\(LDD\\) \\$1 &&")
+ ""))
+
;; It looks like the "h = 31 * h + c" line of the jsum()
;; function gets miscompiled. After a few iterations of the loop
;; the result of "31 * h" is always 0x8000000000000000.
- ;; Bad optimization maybe...
- ;; Transform "31 * h + c" into a convoluted "32 * h + c - h"
- ;; as a workaround.
- (substitute* "openjdk.src/hotspot/src/share/vm/memory/dump.cpp"
- (("h = 31 \\* h \\+ c;")
- "jlong h0 = h;\nfor(int i = 0; i < 5; i++) h += h;\nh += c - h0;"))))
+ ;; Disable optimizations of dump.cpp as a workaround.
+ (substitute* "openjdk.src/hotspot/make/linux/makefiles/gcc.make"
+ (("OPT_CFLAGS/NOOPT.*" all)
+ (string-append all "\n"
+ "OPT_CFLAGS/dump.o += -O0")))))
(add-after 'unpack 'fix-x11-extension-include-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "openjdk.src/jdk/make/sun/awt/mawt.gmk"
@@ -617,7 +625,8 @@
(base32
"17bdv39n4lh8l5737c96f3xgamx4y305m067p01cywgp7zaddqws"))
(patches (search-patches
- "icedtea-7-hotspot-aarch64-use-c++98.patch"))))
+ "icedtea-7-hotspot-aarch64-use-c++98.patch"
+ "icedtea-7-hotspot-pointer-comparison.patch"))))
("ant" ,ant-bootstrap)
("attr" ,attr)
("classpath" ,classpath-devel)
@@ -858,6 +867,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
@@ -1043,12 +1055,12 @@ new Date();"))
(base32
"0zywq2203b4hx4jms9vbwvjcj1d3k2v3qpx4s33729fkpmid97r4"))
(patches (search-patches
- "openjdk-10-idlj-reproducibility.patch"))
+ "openjdk-10-idlj-reproducibility.patch"
+ "openjdk-10-hotspot-pointer-comparison.patch"
+ "openjdk-10-hotspot-stack-size.patch"))
(modules '((guix build utils)))
(snippet
- `(begin
- (for-each delete-file (find-files "." ".*.(bin|exe|jar)$"))
- #t))))
+ '(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))))
(arguments
(substitute-keyword-arguments (package-arguments openjdk9)
((#:phases phases)
@@ -1420,7 +1432,8 @@ new Date();"))
"0mbhdrk12b6878kby0flnbak7444dlpm0ihlmf92vk59y1c02bc2"))
(modules '((guix build utils)))
(snippet
- '(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))))
+ '(for-each delete-file (find-files "." "\\.(bin|exe|jar)$")))
+ (patches (search-patches "openjdk-10-hotspot-stack-size.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments openjdk11)
((#:phases phases)
@@ -1436,7 +1449,10 @@ blacklisted.certs.pem"
(define-public openjdk13
(make-openjdk openjdk12 "13.0.13"
- "0pxf4dlig61k0pg7amg4mi919hzam7nzwckry01avgq1wj8ambji"))
+ "0pxf4dlig61k0pg7amg4mi919hzam7nzwckry01avgq1wj8ambji"
+ (source (origin
+ (inherit (package-source base))
+ (patches '())))))
(define-public openjdk14
(make-openjdk
@@ -1444,6 +1460,8 @@ blacklisted.certs.pem"
"07k9bsbxwyf2z2n50z96nvhsdai916mxdxcr5lm44jz7f6xrwfq6"
(source (origin
(inherit (package-source base))
+ (patches
+ (search-patches "openjdk-10-hotspot-stack-size.patch"))
(snippet ;override snippet
'(begin
;; The m4 macro uses 'help' to search for builtins, which is
@@ -1473,12 +1491,19 @@ blacklisted.certs.pem"
(define-public openjdk16
(make-openjdk openjdk15 "16.0.2"
- "0587px2qbz07g3xi4a3ya6m630p72dvkxcn0bj1813pxnwvcgigz"))
+ "0587px2qbz07g3xi4a3ya6m630p72dvkxcn0bj1813pxnwvcgigz"
+ (source (origin
+ (inherit (package-source base))
+ (patches
+ (search-patches "openjdk-10-hotspot-stack-size.patch"))))))
(define-public openjdk17
(make-openjdk
openjdk16 "17.0.5"
"1asnysg6kxdkrmb88y6qihdr12ljsyxv0mg6hlcs7cwxgsdlqkfs"
+ (source (origin
+ (inherit (package-source base))
+ (patches '())))
(arguments
(substitute-keyword-arguments (package-arguments openjdk16)
((#:phases phases)