diff options
Diffstat (limited to 'gnu/packages/java.scm')
-rw-r--r-- | gnu/packages/java.scm | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index e55684d2a3..ba10b3013f 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) @@ -1461,7 +1474,8 @@ blacklisted.certs.pem" (modules '()) (snippet #f) (patches - (search-patches "openjdk-15-xcursor-no-dynamic.patch")))) + (append (search-patches "openjdk-15-xcursor-no-dynamic.patch") + (origin-patches (package-source base)))))) (inputs (modify-inputs (package-inputs base) (append libxcursor))) ;for our patch to work |