gnu: icedtea@2: Fix build with newer toolchain.
* gnu/packages/java.scm (icedtea-7)[arguments]: Add substitution to prevent ldd segfault and disable optimizations of dump.cpp instead of patching. [native-inputs]: Patch the "hotspot" drop. * gnu/packages/patches/icedtea-7-hotspot-pointer-comparison.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly.master
parent
53a94f6abf
commit
321e866b1c
|
@ -1295,7 +1295,8 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/icecat-use-older-reveal-hidden-html.patch \
|
%D%/packages/patches/icecat-use-older-reveal-hidden-html.patch \
|
||||||
%D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch \
|
%D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch \
|
||||||
%D%/packages/patches/icecat-use-system-media-libs.patch \
|
%D%/packages/patches/icecat-use-system-media-libs.patch \
|
||||||
%D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch\
|
%D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch \
|
||||||
|
%D%/packages/patches/icedtea-7-hotspot-pointer-comparison.patch \
|
||||||
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
|
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
|
||||||
%D%/packages/patches/id3lib-UTF16-writing-bug.patch \
|
%D%/packages/patches/id3lib-UTF16-writing-bug.patch \
|
||||||
%D%/packages/patches/idris-test-ffi008.patch \
|
%D%/packages/patches/idris-test-ffi008.patch \
|
||||||
|
|
|
@ -903,15 +903,23 @@ supports sufficient parts of Java 7 to build Icedtea 2.x.")
|
||||||
"openjdk.src/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c")
|
"openjdk.src/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c")
|
||||||
(("#include <sys/sysctl.h>")
|
(("#include <sys/sysctl.h>")
|
||||||
"#include <linux/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()
|
;; It looks like the "h = 31 * h + c" line of the jsum()
|
||||||
;; function gets miscompiled. After a few iterations of the loop
|
;; function gets miscompiled. After a few iterations of the loop
|
||||||
;; the result of "31 * h" is always 0x8000000000000000.
|
;; the result of "31 * h" is always 0x8000000000000000.
|
||||||
;; Bad optimization maybe...
|
;; Disable optimizations of dump.cpp as a workaround.
|
||||||
;; Transform "31 * h + c" into a convoluted "32 * h + c - h"
|
(substitute* "openjdk.src/hotspot/make/linux/makefiles/gcc.make"
|
||||||
;; as a workaround.
|
(("OPT_CFLAGS/NOOPT.*" all)
|
||||||
(substitute* "openjdk.src/hotspot/src/share/vm/memory/dump.cpp"
|
(string-append all "\n"
|
||||||
(("h = 31 \\* h \\+ c;")
|
"OPT_CFLAGS/dump.o += -O0")))))
|
||||||
"jlong h0 = h;\nfor(int i = 0; i < 5; i++) h += h;\nh += c - h0;"))))
|
|
||||||
(add-after 'unpack 'fix-x11-extension-include-path
|
(add-after 'unpack 'fix-x11-extension-include-path
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
(substitute* "openjdk.src/jdk/make/sun/awt/mawt.gmk"
|
(substitute* "openjdk.src/jdk/make/sun/awt/mawt.gmk"
|
||||||
|
@ -1287,7 +1295,8 @@ supports sufficient parts of Java 7 to build Icedtea 2.x.")
|
||||||
(base32
|
(base32
|
||||||
"17bdv39n4lh8l5737c96f3xgamx4y305m067p01cywgp7zaddqws"))
|
"17bdv39n4lh8l5737c96f3xgamx4y305m067p01cywgp7zaddqws"))
|
||||||
(patches (search-patches
|
(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)
|
("ant" ,ant-bootstrap)
|
||||||
("attr" ,attr)
|
("attr" ,attr)
|
||||||
("classpath" ,classpath-devel)
|
("classpath" ,classpath-devel)
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
Avoid ordered comparison of pointer with integer to prevent compile error
|
||||||
|
with GCC 11.
|
||||||
|
|
||||||
|
diff --git a/src/share/vm/opto/lcm.cpp b/src/share/vm/opto/lcm.cpp
|
||||||
|
--- a/src/share/vm/opto/lcm.cpp
|
||||||
|
+++ b/src/share/vm/opto/lcm.cpp
|
||||||
|
@@ -60,7 +60,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
|
||||||
|
diff --git a/src/share/vm/runtime/virtualspace.cpp b/src/share/vm/runtime/virtualspace.cpp
|
||||||
|
--- a/src/share/vm/runtime/virtualspace.cpp
|
||||||
|
+++ b/src/share/vm/runtime/virtualspace.cpp
|
||||||
|
@@ -527,7 +527,7 @@ ReservedHeapSpace::ReservedHeapSpace(size_t size, size_t alignment,
|
||||||
|
(UseCompressedOops && (Universe::narrow_oop_base() != NULL) &&
|
||||||
|
Universe::narrow_oop_use_implicit_null_checks()) ?
|
||||||
|
lcm(os::vm_page_size(), alignment) : 0) {
|
||||||
|
- if (base() > 0) {
|
||||||
|
+ if (base() != NULL) {
|
||||||
|
MemTracker::record_virtual_memory_type((address)base(), mtJavaHeap);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -546,7 +546,7 @@ ReservedHeapSpace::ReservedHeapSpace(const size_t prefix_size,
|
||||||
|
(UseCompressedOops && (Universe::narrow_oop_base() != NULL) &&
|
||||||
|
Universe::narrow_oop_use_implicit_null_checks()) ?
|
||||||
|
lcm(os::vm_page_size(), prefix_align) : 0) {
|
||||||
|
- if (base() > 0) {
|
||||||
|
+ if (base() != NULL) {
|
||||||
|
MemTracker::record_virtual_memory_type((address)base(), mtJavaHeap);
|
||||||
|
}
|
||||||
|
|
Reference in New Issue