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/patches | |
parent | 3dbf331942f11ee888ccbf849cacdd3a0ab971cd (diff) | |
download | gnu-guix-db024183c9fa93289a45e816529e99001de0a7d1.tar gnu-guix-db024183c9fa93289a45e816529e99001de0a7d1.tar.gz |
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/patches')
-rw-r--r-- | gnu/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch | 45 |
1 files changed, 45 insertions, 0 deletions
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 + |