mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-12-09 22:22:09 -05:00
The following patches were removed: * 010-486180-Valgrind-MIPS-VexGuestArchState-has-no-member.patch [1] * 020-mips-skip-using-shared-syscall-numbers-for-mips32.patch [2] * 021-mips-skip-using-shared-syscall-numbers-for-mips64.patch [3] The License changed from GPLv2 to GPLv3. [4] RISCV64/Linux is supporterd since version 3.25.0. [1]: https://sourceware.org/git/?p=valgrind.git;a=commitdiff;h=7214886886bce9029f325214156c02dcfff760d5 [2]: https://sourceware.org/git/?p=valgrind.git;a=commitdiff;h=54d6ad3348fb50f5b972fe9c05d0d8757bfe73ba [3]: https://sourceware.org/git/?p=valgrind.git;a=commitdiff;h=efaa17e53a750d5f0f4c138b507b1b104729ed67 [4]: https://sourceware.org/git/?p=valgrind.git;a=commitdiff;h=3392155359822c0d4e8bb371862e92425054d02a Link: https://github.com/openwrt/openwrt/pull/20537 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
69 lines
2.2 KiB
Diff
69 lines
2.2 KiB
Diff
Disable the valgrind helpers which use MIPS floating point operations
|
|
when floating point support is deactivated in the toolchain.
|
|
|
|
The fix from this commit is not sufficient any more:
|
|
https://sourceware.org/git/?p=valgrind.git;a=commitdiff;h=869fcf2f6739f17b4eff36ec68f8dca826c8afeb
|
|
|
|
This fixes the following error message when compiling with a GCC 10 MIPS BE 32:
|
|
---------------------------------------------------------
|
|
../VEX/priv/guest_mips_helpers.c: In function 'mips_dirtyhelper_calculate_FCSR_fp32':
|
|
../VEX/priv/guest_mips_helpers.c:640:10: error: the register '$f21' cannot be clobbered in 'asm' for the current target
|
|
640 | ASM_VOLATILE_UNARY32_DOUBLE(round.w.d)
|
|
| ^
|
|
---------------------------------------------------------
|
|
|
|
--- a/VEX/priv/guest_mips_helpers.c
|
|
+++ b/VEX/priv/guest_mips_helpers.c
|
|
@@ -620,6 +620,7 @@ extern UInt mips_dirtyhelper_calculate_F
|
|
flt_op inst )
|
|
{
|
|
UInt ret = 0;
|
|
+#ifndef __mips_soft_float
|
|
#if defined(__mips__)
|
|
VexGuestMIPS32State* guest_state = (VexGuestMIPS32State*)gs;
|
|
UInt loFsVal, hiFsVal, loFtVal, hiFtVal;
|
|
@@ -702,6 +703,7 @@ extern UInt mips_dirtyhelper_calculate_F
|
|
break;
|
|
}
|
|
#endif
|
|
+#endif
|
|
return ret;
|
|
}
|
|
|
|
@@ -711,6 +713,7 @@ extern UInt mips_dirtyhelper_calculate_F
|
|
flt_op inst )
|
|
{
|
|
UInt ret = 0;
|
|
+#ifndef __mips_soft_float
|
|
#if defined(__mips__) && ((__mips == 64) || \
|
|
(defined(__mips_isa_rev) && (__mips_isa_rev >= 2)))
|
|
#if defined(VGA_mips32)
|
|
@@ -863,6 +866,7 @@ extern UInt mips_dirtyhelper_calculate_F
|
|
break;
|
|
}
|
|
#endif
|
|
+#endif
|
|
return ret;
|
|
}
|
|
|
|
--- a/coregrind/m_machine.c
|
|
+++ b/coregrind/m_machine.c
|
|
@@ -2167,6 +2167,7 @@ Bool VG_(machine_get_hwcaps)( void )
|
|
we are using alternative way to determine FP mode */
|
|
ULong result = 0;
|
|
|
|
+#ifndef __mips_soft_float
|
|
if (!VG_MINIMAL_SETJMP(env_unsup_insn)) {
|
|
__asm__ volatile (
|
|
".set push\n\t"
|
|
@@ -2184,6 +2185,9 @@ Bool VG_(machine_get_hwcaps)( void )
|
|
|
|
fpmode = (result != 0x3FF0000000000000ull);
|
|
}
|
|
+#else
|
|
+ fpmode = 0;
|
|
+#endif
|
|
}
|
|
|
|
if (fpmode != 0)
|