valgrind: improve mips support
We have to remove the FPU check, it will run in an endless loop on LEDE when compile without FPU emulation support. The second patch fixes this problem: valgrind: mmap(0x400000, 303104) failed in UME with error 22 (Invalid argument). valgrind still does not support mips16, build LEDE without mips16 support. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
		@@ -32,3 +32,21 @@
 | 
				
			|||||||
    return ret;
 | 
					    return ret;
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 | 
					--- a/coregrind/m_machine.c
 | 
				
			||||||
 | 
					+++ b/coregrind/m_machine.c
 | 
				
			||||||
 | 
					@@ -1652,6 +1652,7 @@ Bool VG_(machine_get_hwcaps)( void )
 | 
				
			||||||
 | 
					         }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					+#ifndef __mips_soft_float
 | 
				
			||||||
 | 
					      /* Check if CPU has FPU and 32 dbl. prec. FP registers */
 | 
				
			||||||
 | 
					      int FIR = 0;
 | 
				
			||||||
 | 
					      __asm__ __volatile__(
 | 
				
			||||||
 | 
					@@ -1661,6 +1662,7 @@ Bool VG_(machine_get_hwcaps)( void )
 | 
				
			||||||
 | 
					      if (FIR & (1 << FP64)) {
 | 
				
			||||||
 | 
					         vai.hwcaps |= VEX_PRID_CPU_32FPR;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					+#endif
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					      VG_(convert_sigaction_fromK_to_toK)(&saved_sigill_act, &tmp_sigill_act);
 | 
				
			||||||
 | 
					      VG_(sigaction)(VKI_SIGILL, &tmp_sigill_act, NULL);
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										38
									
								
								package/devel/valgrind/patches/310-mips-link-tool.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								package/devel/valgrind/patches/310-mips-link-tool.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					r15754 | petarj | 2015-12-29 20:14:37 +0100 (Tue, 29 Dec 2015) | 8 lines
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mips: remove link script exception for MIPS arch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Current toolchains on MIPS targets that we care about are reasonably
 | 
				
			||||||
 | 
					modern and we do not need this link script exception for MIPS anymore.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This should fix issues with newer toolchain versions and .MIPS.abiflags
 | 
				
			||||||
 | 
					section.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--- a/coregrind/link_tool_exe_linux.in
 | 
				
			||||||
 | 
					+++ b/coregrind/link_tool_exe_linux.in
 | 
				
			||||||
 | 
					@@ -69,24 +69,7 @@ shift; # Remove $ala from @ARGV
 | 
				
			||||||
 | 
					 die "Bogus alt-load address"
 | 
				
			||||||
 | 
					     if (length($ala) < 3 || index($ala, "0x") != 0);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-# For mips32 or mips64 we need to use "--section-start=.reginfo=$ala" or
 | 
				
			||||||
 | 
					-# "--section-start=.MIPS.options=$ala" respectively, because "-Ttext=$ala" will
 | 
				
			||||||
 | 
					-# not put all the sections to the specificed address ($ala).
 | 
				
			||||||
 | 
					-my $x = `cat ../config.log 2>&1 | grep host_cpu= | sed "s/host_cpu='//g"`;
 | 
				
			||||||
 | 
					-my $arch = substr($x, 0, index($x, "'"));
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-my $extra_args;
 | 
				
			||||||
 | 
					-if (($arch eq 'mips') || ($arch eq 'mipsel')
 | 
				
			||||||
 | 
					-    || ($arch eq 'mipsisa32r2el')) {
 | 
				
			||||||
 | 
					-   $extra_args = "-static -Wl,--section-start=.reginfo=$ala";
 | 
				
			||||||
 | 
					-} elsif (($arch eq 'mips64') || ($arch eq 'mips64el') ||
 | 
				
			||||||
 | 
					-         ($arch eq 'mipsisa64el')) {
 | 
				
			||||||
 | 
					-   $extra_args = "-static -Wl,--section-start=.MIPS.options=$ala";
 | 
				
			||||||
 | 
					-} else {
 | 
				
			||||||
 | 
					-   $extra_args = "-static -Wl,@FLAG_T_TEXT@=$ala";
 | 
				
			||||||
 | 
					-}
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-my $cmd = join(" ", @ARGV, $extra_args);
 | 
				
			||||||
 | 
					+my $cmd = join(" ", @ARGV, "-static -Wl,@FLAG_T_TEXT@=$ala");
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 #print "link_tool_exe_linux: $cmd\n";
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
		Reference in New Issue
	
	Block a user