This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
[PATCH][arm] Fix bug in _nocancel system call stubs
- From: "Ulrich Weigand" <uweigand at de dot ibm dot com>
- To: libc-ports at sourceware dot org
- Cc: patches at linaro dot org
- Date: Mon, 21 Mar 2011 19:29:29 +0100 (CET)
- Subject: [PATCH][arm] Fix bug in _nocancel system call stubs
Hello,
while looking at sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h
I noticed that the _nocancel variants of the system call stubs are
missing a "cmn r0, $4096" between the DO_CALL and the PSEUDO_RET,
which is present everywhere else, and is really required to set
up the condition code for PSEUDO_RET properly.
Tested on armv7l-linux-gnueabi with no regressions.
Bye,
Ulrich
ChangeLog.arm:
2011-03-21 Ulrich Weigand <ulrich.weigand@linaro.org>
* sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h (PSEUDO): Add
missing "cmn r0, $4096" for _nocancel system call stubs.
diff --git a/sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h
index 458558b..f2aa5e1 100644
--- a/sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h
+++ b/sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h
@@ -39,6 +39,7 @@
.cfi_sections .debug_frame; \
cfi_startproc; \
DO_CALL (syscall_name, args); \
+ cmn r0, $4096; \
PSEUDO_RET; \
cfi_endproc; \
.size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com