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.master
parent
3dbf331942
commit
db024183c9
|
@ -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 \
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
From 2f0ef2c69e99e1096a2a72c7a29025a736b044b4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= <boskovits@gmail.com>
|
||||
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
|
||||
|
Reference in New Issue