guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/04: gnu: icedtea@2: Fix build with newer toolchain.


From: guix-commits
Subject: 01/04: gnu: icedtea@2: Fix build with newer toolchain.
Date: Tue, 13 Sep 2022 08:55:52 -0400 (EDT)

mbakke pushed a commit to branch core-updates
in repository guix.

commit 321e866b1cea4916e3568efb84a248e5bb91200a
Author: Marius Bakke <marius@gnu.org>
AuthorDate: Tue Sep 13 00:50:11 2022 +0200

    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.
---
 gnu/local.mk                                       |  3 +-
 gnu/packages/java.scm                              | 23 +++++++++-----
 .../icedtea-7-hotspot-pointer-comparison.patch     | 36 ++++++++++++++++++++++
 3 files changed, 54 insertions(+), 8 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 1ffb7bfe9d..70640ddfd3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1295,7 +1295,8 @@ dist_patch_DATA =                                         
\
   %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-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-UTF16-writing-bug.patch                  \
   %D%/packages/patches/idris-test-ffi008.patch                 \
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index bb172f3bee..702f0ea9d3 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -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")
                  (("#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"
@@ -1287,7 +1295,8 @@ supports sufficient parts of Java 7 to build Icedtea 
2.x.")
               (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)
diff --git a/gnu/packages/patches/icedtea-7-hotspot-pointer-comparison.patch 
b/gnu/packages/patches/icedtea-7-hotspot-pointer-comparison.patch
new file mode 100644
index 0000000000..deb305bd96
--- /dev/null
+++ b/gnu/packages/patches/icedtea-7-hotspot-pointer-comparison.patch
@@ -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);
+   }
+ 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]