guix-commits
[Top][All Lists]
Advanced

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

01/01: gnu: icedtea: Work around gcc segfault.


From: Gábor Boskovits
Subject: 01/01: gnu: icedtea: Work around gcc segfault.
Date: Mon, 2 Jul 2018 18:54:32 -0400 (EDT)

boskovits pushed a commit to branch master
in repository guix.

commit db024183c9fa93289a45e816529e99001de0a7d1
Author: Gábor Boskovits <address@hidden>
Date:   Tue Jul 3 00:50:32 2018 +0200

    gnu: icedtea: Work around gcc segfault.
    
    * gnu/packages/java.scm (icedtea-7)[native-inputs]: Add patch to hotspot.
    * gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch:
    New file.
    * gnu/local.mk (dist_patch_DATA): Add it.
---
 gnu/local.mk                                       |  1 +
 gnu/packages/java.scm                              | 12 +++++-
 ...icedtea-7-hotspot-gcc-segfault-workaround.patch | 45 ++++++++++++++++++++++
 3 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 10b61ba..925f877 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -802,6 +802,7 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/icecat-use-system-graphite2.patch       \
   %D%/packages/patches/icecat-use-system-harfbuzz.patch                \
   %D%/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch  \
+  %D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch  \
   %D%/packages/patches/id3lib-CVE-2007-4460.patch                      \
   %D%/packages/patches/ilmbase-fix-tests.patch                 \
   %D%/packages/patches/intltool-perl-compatibility.patch       \
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index f2f7078..b4f811c 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1405,8 +1405,16 @@ bootstrapping purposes.")
           ,(drop "langtools"
                  "0nq5236fzxn3p6x8cgncl56mzcmsj07q9gymysnws4c8byc6n0qj"))
          ("hotspot-drop"
-          ,(drop "hotspot"
-                 "17bdv39n4lh8l5737c96f3xgamx4y305m067p01cywgp7zaddqws"))
+          ,(origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://icedtea.classpath.org/downloads/drops";
+                   "/icedtea7/" version "/hotspot.tar.bz2"))
+             (sha256
+              (base32
+               "17bdv39n4lh8l5737c96f3xgamx4y305m067p01cywgp7zaddqws"))
+             (patches (search-patches
+                       "icedtea-7-hotspot-gcc-segfault-workaround.patch"))))
          ("ant" ,ant-bootstrap)
          ("attr" ,attr)
          ("coreutils" ,coreutils)
diff --git 
a/gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch 
b/gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch
new file mode 100644
index 0000000..35cfe38
--- /dev/null
+++ b/gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch
@@ -0,0 +1,45 @@
+From 2f0ef2c69e99e1096a2a72c7a29025a736b044b4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= <address@hidden>
+Date: Mon, 2 Jul 2018 23:37:25 +0200
+Subject: [PATCH] Fix gcc segfault.
+
+---
+ src/share/vm/opto/output.cpp | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/src/share/vm/opto/output.cpp b/src/share/vm/opto/output.cpp
+index d46cb87..0eb9eda 100644
+--- a/src/share/vm/opto/output.cpp
++++ b/src/share/vm/opto/output.cpp
+@@ -1787,6 +1787,8 @@ uint 
Scheduling::_total_instructions_per_bundle[Pipeline::_max_instrs_per_cycle+
+ 
+ // Initializer for class Scheduling
+ 
++volatile const void *eePointer = Pipeline_Use::elaborated_elements;
++
+ Scheduling::Scheduling(Arena *arena, Compile &compile)
+   : _arena(arena),
+     _cfg(compile.cfg()),
+@@ -1829,7 +1831,7 @@ Scheduling::Scheduling(Arena *arena, Compile &compile)
+   memset(_current_latency,    0, node_max * sizeof(unsigned short));
+ 
+   // Clear the bundling information
+-  memcpy(_bundle_use_elements, Pipeline_Use::elaborated_elements, 
sizeof(Pipeline_Use::elaborated_elements));
++  memcpy(_bundle_use_elements, (void *)eePointer, 
11*sizeof(Pipeline_Use_Element));
+ 
+   // Get the last node
+   Block* block = _cfg->get_block(_cfg->number_of_blocks() - 1);
+@@ -1880,8 +1882,8 @@ void Scheduling::step_and_clear() {
+   _bundle_use.reset();
+ 
+   memcpy(_bundle_use_elements,
+-    Pipeline_Use::elaborated_elements,
+-    sizeof(Pipeline_Use::elaborated_elements));
++       (void *)eePointer,
++    11*sizeof(Pipeline_Use_Element));
+ }
+ 
+ // Perform instruction scheduling and bundling over the sequence of
+-- 
+2.18.0
+



reply via email to

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