You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/toolchain/uClibc/patches-0.9.30.1/901-hi_lo_system_calls.patch

31 lines
914 B
Diff

The kernel does not save these registers across system calls. GCC 4.4
has gotten more agressive about using them for temporary variables, so
this shows up as intermittent crashes if you use a recent compiler.
Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com>
diff --git a/libc/sysdeps/linux/mips/bits/syscalls.h b/libc/sysdeps/linux/mips/bits/syscalls.h
index 3639913..28b0f91 100644
--- a/libc/sysdeps/linux/mips/bits/syscalls.h
+++ b/libc/sysdeps/linux/mips/bits/syscalls.h
@@ -261,7 +261,7 @@
})
#define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \
- "$14", "$15", "$24", "$25", "memory"
+ "$14", "$15", "$24", "$25", "hi", "lo", "memory"
#else /* N32 || N64 */
@@ -318,7 +318,7 @@
})
#define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \
- "$14", "$15", "$24", "$25", "memory"
+ "$14", "$15", "$24", "$25", "hi", "lo", "memory"
#endif
--