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.
This commit is contained in:
		
							parent
							
								
									3dbf331942
								
							
						
					
					
						commit
						db024183c9
					
				
					 3 changed files with 56 additions and 2 deletions
				
			
		| 
						 | 
					@ -802,6 +802,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/icecat-use-system-graphite2.patch	\
 | 
					  %D%/packages/patches/icecat-use-system-graphite2.patch	\
 | 
				
			||||||
  %D%/packages/patches/icecat-use-system-harfbuzz.patch		\
 | 
					  %D%/packages/patches/icecat-use-system-harfbuzz.patch		\
 | 
				
			||||||
  %D%/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.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/id3lib-CVE-2007-4460.patch			\
 | 
				
			||||||
  %D%/packages/patches/ilmbase-fix-tests.patch			\
 | 
					  %D%/packages/patches/ilmbase-fix-tests.patch			\
 | 
				
			||||||
  %D%/packages/patches/intltool-perl-compatibility.patch	\
 | 
					  %D%/packages/patches/intltool-perl-compatibility.patch	\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1405,8 +1405,16 @@ bootstrapping purposes.")
 | 
				
			||||||
          ,(drop "langtools"
 | 
					          ,(drop "langtools"
 | 
				
			||||||
                 "0nq5236fzxn3p6x8cgncl56mzcmsj07q9gymysnws4c8byc6n0qj"))
 | 
					                 "0nq5236fzxn3p6x8cgncl56mzcmsj07q9gymysnws4c8byc6n0qj"))
 | 
				
			||||||
         ("hotspot-drop"
 | 
					         ("hotspot-drop"
 | 
				
			||||||
          ,(drop "hotspot"
 | 
					          ,(origin
 | 
				
			||||||
 | 
					             (method url-fetch)
 | 
				
			||||||
 | 
					             (uri (string-append
 | 
				
			||||||
 | 
					                   "http://icedtea.classpath.org/downloads/drops"
 | 
				
			||||||
 | 
					                   "/icedtea7/" version "/hotspot.tar.bz2"))
 | 
				
			||||||
 | 
					             (sha256
 | 
				
			||||||
 | 
					              (base32
 | 
				
			||||||
               "17bdv39n4lh8l5737c96f3xgamx4y305m067p01cywgp7zaddqws"))
 | 
					               "17bdv39n4lh8l5737c96f3xgamx4y305m067p01cywgp7zaddqws"))
 | 
				
			||||||
 | 
					             (patches (search-patches
 | 
				
			||||||
 | 
					                       "icedtea-7-hotspot-gcc-segfault-workaround.patch"))))
 | 
				
			||||||
         ("ant" ,ant-bootstrap)
 | 
					         ("ant" ,ant-bootstrap)
 | 
				
			||||||
         ("attr" ,attr)
 | 
					         ("attr" ,attr)
 | 
				
			||||||
         ("coreutils" ,coreutils)
 | 
					         ("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 a new issue