* 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.
		
			
				
	
	
		
			45 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 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
 | |
| 
 |