[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[glibc] 01/01: debian/patches/hppa/submitted-longjmp.diff: new patch from Helge Deller to fix longjmp on hppa. Closes: #858738.



This is an automated email from the git hooks/post-receive script.

aurel32 pushed a commit to branch sid
in repository glibc.

commit 061007e9e06e692132864f91ffee325ea0ae0171
Author: Aurelien Jarno <aurelien@aurel32.net>
Date:   Sat Jun 17 01:49:55 2017 +0200

    debian/patches/hppa/submitted-longjmp.diff: new patch from Helge Deller to fix longjmp on hppa.  Closes: #858738.
---
 debian/changelog                           |  2 ++
 debian/patches/hppa/submitted-longjmp.diff | 40 ++++++++++++++++++++++++++++++
 debian/patches/series                      |  1 +
 3 files changed, 43 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 15c27af..b12ad39 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -11,6 +11,8 @@ glibc (2.24-12) UNRELEASED; urgency=medium
   * debian/rules, debian/rules.d/build.mk: do not capture the build path
     when generating glibc-source tarball.  Closes: #861183.
   * debian/control.in/main: build-depends on gperf.  Closes: #847478.
+  * debian/patches/hppa/submitted-longjmp.diff: new patch from Helge Deller
+    to fix longjmp on hppa.  Closes: #858738.
 
   [ John Paul Adrian Glaubitz ]
   * debian/sysdeps/sh3.mk: copy from sh4.mk.  Closes: #851867.
diff --git a/debian/patches/hppa/submitted-longjmp.diff b/debian/patches/hppa/submitted-longjmp.diff
new file mode 100644
index 0000000..56adcc0
--- /dev/null
+++ b/debian/patches/hppa/submitted-longjmp.diff
@@ -0,0 +1,40 @@
+2017-01-15  Helge Deller  <deller@gmx.de>
+
+	[BZ #21049]
+	* sysdeps/hppa/__longjmp.c (__longjmp): Move call to CHECK_SP up
+	to avoid clobbering r26.
+
+
+--- a/sysdeps/hppa/__longjmp.c
++++ b/sysdeps/hppa/__longjmp.c
+@@ -24,15 +24,16 @@
+ void
+ __longjmp (__jmp_buf env, int val)
+ {
++#ifdef CHECK_SP
++  CHECK_SP (env[0].__jmp_buf.__sp);
++#endif
++
++  {
+   /* We must use one of the non-callee saves registers
+      for env.  */
+   register unsigned long r26 asm ("r26") = (unsigned long)&env[0];
+   register unsigned long r25 asm ("r25") = (unsigned long)(val == 0 ? 1 : val);
+ 
+-#ifdef CHECK_SP
+-  CHECK_SP (env[0].__jmp_buf.__sp);
+-#endif
+-
+   asm volatile(
+ 	/* Set return value.  */
+ 	"copy	%0, %%r28\n\t"
+@@ -79,6 +80,8 @@ __longjmp (__jmp_buf env, int val)
+ 	: /* No outputs.  */
+ 	: "r" (r25), "r" (r26)
+ 	: /* No point in clobbers.  */ );
++  }
++
+   /* Avoid `volatile function does return' warnings.  */
+   for (;;);
+ }
+
diff --git a/debian/patches/series b/debian/patches/series
index b72f8c9..0ae97ba 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -57,6 +57,7 @@ hppa/local-stack-grows-up.diff
 hppa/submitted-setcontext.diff
 hppa/submitted-sysdeps-cancel.diff
 hppa/cvs-atomic-machine.diff
+hppa/submitted-longjmp.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: