aboutsummaryrefslogtreecommitdiffstats
path: root/package/devel/valgrind/patches/120-mips_fix_soft_float.patch
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2016-10-03 16:23:17 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2016-10-03 17:18:33 +0200
commitb8d802fe9f6ddf02d67e7d847904e7389715561e (patch)
treeab48311937d7668d220a37c693592e137d1d3172 /package/devel/valgrind/patches/120-mips_fix_soft_float.patch
parent90a4f2ec6d3b2103b58644dedaef97bc87b580d3 (diff)
downloadupstream-b8d802fe9f6ddf02d67e7d847904e7389715561e.tar.gz
upstream-b8d802fe9f6ddf02d67e7d847904e7389715561e.tar.bz2
upstream-b8d802fe9f6ddf02d67e7d847904e7389715561e.zip
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>
Diffstat (limited to 'package/devel/valgrind/patches/120-mips_fix_soft_float.patch')
-rw-r--r--package/devel/valgrind/patches/120-mips_fix_soft_float.patch18
1 files changed, 18 insertions, 0 deletions
diff --git a/package/devel/valgrind/patches/120-mips_fix_soft_float.patch b/package/devel/valgrind/patches/120-mips_fix_soft_float.patch
index 1cf5aeca02..a407a9311e 100644
--- a/package/devel/valgrind/patches/120-mips_fix_soft_float.patch
+++ b/package/devel/valgrind/patches/120-mips_fix_soft_float.patch
@@ -32,3 +32,21 @@
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);