[glibc] 01/03: patches/hppa/submitted-sysdeps-cancel.diff: new patch to fix syscall cancellation issues. Closes: #837518.
This is an automated email from the git hooks/post-receive script.
aurel32 pushed a commit to branch sid
in repository glibc.
commit 49dd6b6c92a0ed126cc0cc797a5cfaa256d6313d
Author: Aurelien Jarno <aurelien@aurel32.net>
Date: Tue Sep 13 23:14:44 2016 +0200
patches/hppa/submitted-sysdeps-cancel.diff: new patch to fix syscall cancellation issues. Closes: #837518.
---
debian/changelog | 4 +
debian/patches/hppa/submitted-sysdeps-cancel.diff | 143 ++++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 148 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 4218f32..62760b3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,10 @@ glibc (2.24-3) UNRELEASED; urgency=medium
* hurd-i386/cvs-libpthread.diff: Update from upstream. Fixes spurious
dependencies of libp11, libgnutls30, libbsd0.
+ [ John David Anglin ]
+ * patches/hppa/submitted-sysdeps-cancel.diff: new patch to fix syscall
+ cancellation issues. Closes: #837518.
+
-- Aurelien Jarno <aurel32@debian.org> Mon, 05 Sep 2016 23:34:08 +0200
glibc (2.24-2) unstable; urgency=medium
diff --git a/debian/patches/hppa/submitted-sysdeps-cancel.diff b/debian/patches/hppa/submitted-sysdeps-cancel.diff
new file mode 100644
index 0000000..015711e
--- /dev/null
+++ b/debian/patches/hppa/submitted-sysdeps-cancel.diff
@@ -0,0 +1,143 @@
+diff --git a/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h b/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h
+index cafc752..f239408 100644
+--- a/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h
++++ b/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h
+@@ -62,12 +62,11 @@
+ ENTRY (__##syscall_name##_nocancel) \
+ DOARGS_##args ASM_LINE_SEP \
+ stwm TREG, 64(%sp) ASM_LINE_SEP \
++ .cfi_def_cfa_offset -64 ASM_LINE_SEP \
+ .cfi_offset TREG, 0 ASM_LINE_SEP \
+- .cfi_adjust_cfa_offset 64 ASM_LINE_SEP \
+ stw %sp, -4(%sp) ASM_LINE_SEP \
+- .cfi_offset 30, -4 ASM_LINE_SEP \
+ stw %r19, -32(%sp) ASM_LINE_SEP \
+- .cfi_offset 19, -32 ASM_LINE_SEP \
++ .cfi_offset 19, 32 ASM_LINE_SEP \
+ /* Save r19 */ ASM_LINE_SEP \
+ SAVE_PIC(TREG) ASM_LINE_SEP \
+ /* Do syscall, delay loads # */ ASM_LINE_SEP \
+@@ -91,21 +90,19 @@ L(pre_nc_end): ASM_LINE_SEP \
+ /* No need to LOAD_PIC */ ASM_LINE_SEP \
+ /* Undo frame */ ASM_LINE_SEP \
+ ldwm -64(%sp),TREG ASM_LINE_SEP \
+- .cfi_adjust_cfa_offset -64 ASM_LINE_SEP \
+ /* Restore rp before exit */ ASM_LINE_SEP \
+ ldw -20(%sp), %rp ASM_LINE_SEP \
+- .cfi_restore 2 ASM_LINE_SEP \
+ ret ASM_LINE_SEP \
+ END(__##syscall_name##_nocancel) ASM_LINE_SEP \
+ /**********************************************/ASM_LINE_SEP \
+ ENTRY (name) \
+ DOARGS_##args ASM_LINE_SEP \
+ stwm TREG, 64(%sp) ASM_LINE_SEP \
+- .cfi_adjust_cfa_offset 64 ASM_LINE_SEP \
++ .cfi_def_cfa_offset -64 ASM_LINE_SEP \
++ .cfi_offset TREG, 0 ASM_LINE_SEP \
+ stw %sp, -4(%sp) ASM_LINE_SEP \
+- .cfi_offset 30, -4 ASM_LINE_SEP \
+ stw %r19, -32(%sp) ASM_LINE_SEP \
+- .cfi_offset 19, -32 ASM_LINE_SEP \
++ .cfi_offset 19, 32 ASM_LINE_SEP \
+ /* Done setting up frame, continue... */ ASM_LINE_SEP \
+ SINGLE_THREAD_P ASM_LINE_SEP \
+ cmpib,<>,n 0,%ret0,L(pseudo_cancel) ASM_LINE_SEP \
+@@ -168,40 +165,32 @@ L(pre_end): ASM_LINE_SEP \
+ /* No need to LOAD_PIC */ ASM_LINE_SEP \
+ /* Undo frame */ ASM_LINE_SEP \
+ ldwm -64(%sp),TREG ASM_LINE_SEP \
+- .cfi_adjust_cfa_offset -64 ASM_LINE_SEP \
+ /* Restore rp before exit */ ASM_LINE_SEP \
+- ldw -20(%sp), %rp ASM_LINE_SEP \
+- .cfi_restore 2 ASM_LINE_SEP
++ ldw -20(%sp), %rp ASM_LINE_SEP
+
+ /* Save arguments into our frame */
+ # define PUSHARGS_0 /* nothing to do */
+ # define PUSHARGS_1 PUSHARGS_0 stw %r26, -36(%sr0,%sp) ASM_LINE_SEP \
+- .cfi_offset 26, -36 ASM_LINE_SEP
++ .cfi_offset 26, 28 ASM_LINE_SEP
+ # define PUSHARGS_2 PUSHARGS_1 stw %r25, -40(%sr0,%sp) ASM_LINE_SEP \
+- .cfi_offset 25, -40 ASM_LINE_SEP
++ .cfi_offset 25, 24 ASM_LINE_SEP
+ # define PUSHARGS_3 PUSHARGS_2 stw %r24, -44(%sr0,%sp) ASM_LINE_SEP \
+- .cfi_offset 24, -44 ASM_LINE_SEP
++ .cfi_offset 24, 20 ASM_LINE_SEP
+ # define PUSHARGS_4 PUSHARGS_3 stw %r23, -48(%sr0,%sp) ASM_LINE_SEP \
+- .cfi_offset 23, -48 ASM_LINE_SEP
++ .cfi_offset 23, 16 ASM_LINE_SEP
+ # define PUSHARGS_5 PUSHARGS_4 stw %r22, -52(%sr0,%sp) ASM_LINE_SEP \
+- .cfi_offset 22, -52 ASM_LINE_SEP
++ .cfi_offset 22, 12 ASM_LINE_SEP
+ # define PUSHARGS_6 PUSHARGS_5 stw %r21, -56(%sr0,%sp) ASM_LINE_SEP \
+- .cfi_offset 21, -56 ASM_LINE_SEP
++ .cfi_offset 21, 8 ASM_LINE_SEP
+
+ /* Bring them back from the stack */
+ # define POPARGS_0 /* nothing to do */
+-# define POPARGS_1 POPARGS_0 ldw -36(%sr0,%sp), %r26 ASM_LINE_SEP \
+- .cfi_restore 26 ASM_LINE_SEP
+-# define POPARGS_2 POPARGS_1 ldw -40(%sr0,%sp), %r25 ASM_LINE_SEP \
+- .cfi_restore 25 ASM_LINE_SEP
+-# define POPARGS_3 POPARGS_2 ldw -44(%sr0,%sp), %r24 ASM_LINE_SEP \
+- .cfi_restore 24 ASM_LINE_SEP
+-# define POPARGS_4 POPARGS_3 ldw -48(%sr0,%sp), %r23 ASM_LINE_SEP \
+- .cfi_restore 23 ASM_LINE_SEP
+-# define POPARGS_5 POPARGS_4 ldw -52(%sr0,%sp), %r22 ASM_LINE_SEP \
+- .cfi_restore 22 ASM_LINE_SEP
+-# define POPARGS_6 POPARGS_5 ldw -56(%sr0,%sp), %r21 ASM_LINE_SEP \
+- .cfi_restore 21 ASM_LINE_SEP
++# define POPARGS_1 POPARGS_0 ldw -36(%sr0,%sp), %r26 ASM_LINE_SEP
++# define POPARGS_2 POPARGS_1 ldw -40(%sr0,%sp), %r25 ASM_LINE_SEP
++# define POPARGS_3 POPARGS_2 ldw -44(%sr0,%sp), %r24 ASM_LINE_SEP
++# define POPARGS_4 POPARGS_3 ldw -48(%sr0,%sp), %r23 ASM_LINE_SEP
++# define POPARGS_5 POPARGS_4 ldw -52(%sr0,%sp), %r22 ASM_LINE_SEP
++# define POPARGS_6 POPARGS_5 ldw -56(%sr0,%sp), %r21 ASM_LINE_SEP
+
+ # if IS_IN (libpthread)
+ # ifdef PIC
+diff --git a/sysdeps/unix/sysv/linux/hppa/sysdep.h b/sysdeps/unix/sysv/linux/hppa/sysdep.h
+index b459f0a..00cb366 100644
+--- a/sysdeps/unix/sysv/linux/hppa/sysdep.h
++++ b/sysdeps/unix/sysv/linux/hppa/sysdep.h
+@@ -49,11 +49,9 @@
+ to another function */
+ #define TREG 4
+ #define SAVE_PIC(SREG) \
+- copy %r19, SREG ASM_LINE_SEP \
+- .cfi_register 19, SREG
++ copy %r19, SREG
+ #define LOAD_PIC(LREG) \
+- copy LREG , %r19 ASM_LINE_SEP \
+- .cfi_restore 19
++ copy LREG , %r19
+ /* Inline assembly defines */
+ #define TREG_ASM "%r4" /* Cant clobber r3, it holds framemarker */
+ #define SAVE_ASM_PIC " copy %%r19, %" TREG_ASM "\n"
+@@ -292,12 +290,11 @@
+ #define DO_CALL(syscall_name, args) \
+ /* Create a frame */ ASM_LINE_SEP \
+ stwm TREG, 64(%sp) ASM_LINE_SEP \
++ .cfi_def_cfa_offset -64 ASM_LINE_SEP \
+ .cfi_offset TREG, 0 ASM_LINE_SEP \
+- .cfi_adjust_cfa_offset 64 ASM_LINE_SEP \
+ stw %sp, -4(%sp) ASM_LINE_SEP \
+- .cfi_offset 30, -4 ASM_LINE_SEP \
+ stw %r19, -32(%sp) ASM_LINE_SEP \
+- .cfi_offset 19, -32 ASM_LINE_SEP \
++ .cfi_offset 19, 32 ASM_LINE_SEP \
+ /* Save r19 */ ASM_LINE_SEP \
+ SAVE_PIC(TREG) ASM_LINE_SEP \
+ /* Do syscall, delay loads # */ ASM_LINE_SEP \
+@@ -320,10 +317,8 @@
+ L(pre_end): ASM_LINE_SEP \
+ /* Restore our frame, restoring TREG */ ASM_LINE_SEP \
+ ldwm -64(%sp), TREG ASM_LINE_SEP \
+- .cfi_adjust_cfa_offset -64 ASM_LINE_SEP \
+ /* Restore return pointer */ ASM_LINE_SEP \
+- ldw -20(%sp),%rp ASM_LINE_SEP \
+- .cfi_restore 2 ASM_LINE_SEP
++ ldw -20(%sp),%rp ASM_LINE_SEP
+
+ /* We do nothing with the return, except hand it back to someone else */
+ #undef DO_CALL_NOERRNO
diff --git a/debian/patches/series b/debian/patches/series
index a401253..dfeadce 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -56,6 +56,7 @@ hppa/submitted-gmon-start.diff
hppa/submitted-dladdr.diff
hppa/local-stack-grows-up.diff
hppa/submitted-setcontext.diff
+hppa/submitted-sysdeps-cancel.diff
hurd-i386/local-enable-ldconfig.diff
hurd-i386/tg-context_functions.diff
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git
Reply to: