You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.7 KiB
44 lines
1.7 KiB
# --- 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 |
|
|
|
|