diff options
author | Gábor Boskovits <boskovits@gmail.com> | 2018-07-03 00:50:32 +0200 |
---|---|---|
committer | Gábor Boskovits <boskovits@gmail.com> | 2018-07-03 00:53:56 +0200 |
commit | db024183c9fa93289a45e816529e99001de0a7d1 (patch) | |
tree | ae911f6f2245e03fac96577637479e2e7ff84fcb /gnu/packages | |
parent | 3dbf331942f11ee888ccbf849cacdd3a0ab971cd (diff) |
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.
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/java.scm | 12 | ||||
-rw-r--r-- | gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch | 45 |
2 files changed, 55 insertions, 2 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index f2f7078459..b4f811cf93 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 0000000000..35cfe38152 --- /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?= <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 + |