45 lines
1.7 KiB
45 lines
1.7 KiB
15 years ago
|
# --- SDE-COPYRIGHT-NOTE-BEGIN ---
|
||
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
|
||
|
#
|
||
|
# Filename: package/.../uclibc/901-hi_lo_system_calls.patch.disable
|
||
|
# Copyright (C) 2009 The OpenSDE Project
|
||
|
#
|
||
|
# More information can be found in the files COPYING and README.
|
||
|
#
|
||
|
# This patch file is dual-licensed. It is available under the license the
|
||
|
# patched project is licensed under, as long as it is an OpenSource license
|
||
|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
|
||
|
# of the GNU General Public License as published by the Free Software
|
||
|
# Foundation; either version 2 of the License, or (at your option) any later
|
||
|
# version.
|
||
|
# --- SDE-COPYRIGHT-NOTE-END ---
|
||
|
|
||
|
https://dev.openwrt.org/browser/trunk/toolchain/uClibc/patches-0.9.30.1/901-hi_lo_system_calls.patch
|
||
|
[toolchain] Do not save variables in hi or lo across system calls, fixes issues with gcc-4.4 (#5351)
|
||
|
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>
|
||
|
|
||
|
--- ./libc/sysdeps/linux/mips/bits/syscalls.h.orig
|
||
|
+++ ./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
|
||
|
|