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

r4351 - in glibc-package/trunk/debian: . patches patches/alpha



Author: aurel32
Date: 2010-06-15 08:08:46 +0000 (Tue, 15 Jun 2010)
New Revision: 4351

Added:
   glibc-package/trunk/debian/patches/alpha/cvs-longjmp-chk.diff
Removed:
   glibc-package/trunk/debian/patches/alpha/local-longjmp-chk.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
  * Replace patches/alpha/local-longjmp-chk.diff by upstream version
    patches/alpha/cvs-longjmp-chk.diff.



Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2010-06-15 05:40:16 UTC (rev 4350)
+++ glibc-package/trunk/debian/changelog	2010-06-15 08:08:46 UTC (rev 4351)
@@ -3,8 +3,10 @@
   [ Aurelien Jarno ]
   * control.in/libc: add a Conflicts on binutils-gold (<< 2.20.1-11).
     Closes: #585937.
+  * Replace patches/alpha/local-longjmp-chk.diff by upstream version
+    patches/alpha/cvs-longjmp-chk.diff.
 
- -- Aurelien Jarno <aurel32@debian.org>  Tue, 15 Jun 2010 07:38:22 +0200
+ -- Aurelien Jarno <aurel32@debian.org>  Tue, 15 Jun 2010 10:08:01 +0200
 
 eglibc (2.11.2-1) unstable; urgency=low
 

Added: glibc-package/trunk/debian/patches/alpha/cvs-longjmp-chk.diff
===================================================================
--- glibc-package/trunk/debian/patches/alpha/cvs-longjmp-chk.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/alpha/cvs-longjmp-chk.diff	2010-06-15 08:08:46 UTC (rev 4351)
@@ -0,0 +1,149 @@
+ 2010-03-26  Richard Henderson  <rth@redhat.com>
+ 
+	* sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S: New.
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S b/ports/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
+new file mode 100644
+index 0000000..5194ed8
+--- /dev/null
++++ b/ports/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
+@@ -0,0 +1,139 @@
++/* Copyright (C) 1992, 1994, 1997, 2006, 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <sysdep.h>
++#include <jmpbuf-offsets.h>
++
++
++	.section .rodata.str1.1,"aMS",@progbits,1
++	.type   longjmp_msg,@object
++longjmp_msg:
++	.string "longjmp causes uninitialized stack frame"
++	.size   longjmp_msg, .-longjmp_msg
++
++
++/* Jump to the position specified by ENV, causing the
++   setjmp call there to return VAL, or 1 if VAL is 0.
++   void __longjmp (__jmp_buf env, int val).  */
++	.text
++	.align	4
++	.globl	____longjmp_chk
++	.type	____longjmp_chk, @function
++	.usepv	____longjmp_chk, std
++
++	cfi_startproc
++____longjmp_chk:
++	ldgp    gp, 0(pv)
++#ifdef PROF
++	.set noat
++	lda     AT, _mcount
++	jsr     AT, (AT), _mcount
++	.set at
++#endif
++
++	ldq     s2, JB_PC*8(a0)
++	mov	a0, s0
++	ldq     fp, JB_FP*8(a0)
++	mov     a1, s1
++	ldq     s3, JB_SP*8(a0)
++	cmoveq  s1, 1, s1
++
++#ifdef PTR_DEMANGLE
++	PTR_DEMANGLE(s2, t1)
++	PTR_DEMANGLE2(s3, t1)
++	PTR_DEMANGLE2(fp, t1)
++#endif
++	cmpule	t0, sp, t1
++	bne	t1, .Lfail
++
++	.align	4
++.Lok:
++	mov	s0, a0
++	mov	s1, v0
++	mov	s3, t0
++	mov	s2, ra
++	cfi_remember_state
++	cfi_def_cfa(a0, 0)
++	cfi_register(sp, t0)
++	cfi_offset(s0, JB_S0*8)
++	cfi_offset(s1, JB_S1*8)
++	cfi_offset(s2, JB_S2*8)
++	cfi_offset(s3, JB_S3*8)
++	cfi_offset(s4, JB_S4*8)
++	cfi_offset(s5, JB_S5*8)
++	cfi_offset(s3, JB_S3*8)
++	cfi_offset($f2, JB_F2*8)
++	cfi_offset($f3, JB_F3*8)
++	cfi_offset($f4, JB_F4*8)
++	cfi_offset($f5, JB_F5*8)
++	cfi_offset($f6, JB_F6*8)
++	cfi_offset($f7, JB_F7*8)
++	cfi_offset($f8, JB_F8*8)
++	cfi_offset($f9, JB_F9*8)
++	ldq	s0, JB_S0*8(a0)
++	ldq	s1, JB_S1*8(a0)
++	ldq	s2, JB_S2*8(a0)
++	ldq	s3, JB_S3*8(a0)
++	ldq	s4, JB_S4*8(a0)
++	ldq	s5, JB_S5*8(a0)
++	ldt     $f2, JB_F2*8(a0)
++	ldt     $f3, JB_F3*8(a0)
++	ldt     $f4, JB_F4*8(a0)
++	ldt     $f5, JB_F5*8(a0)
++	ldt     $f6, JB_F6*8(a0)
++	ldt     $f7, JB_F7*8(a0)
++	ldt     $f8, JB_F8*8(a0)
++	ldt     $f9, JB_F9*8(a0)
++	mov     t0, sp
++	ret
++
++	.align	4
++.Lfail:
++	cfi_restore_state
++	lda	v0, __NR_sigaltstack
++	lda	a0, 0
++	lda	a1, -32(sp)
++	lda	sp, -32(sp)
++	cfi_adjust_cfa_offset(32)
++	callsys
++	ldq	t0, 0(sp)	/* ss_sp */
++	ldl	t1, 8(sp)	/* ss_flags */
++	ldq	t2, 16(sp)	/* ss_size */
++	lda	sp, 32(sp)
++	cfi_adjust_cfa_offset(-32)
++
++	/* Without working sigaltstack we cannot perform the test.  */
++	bne	a3, .Lok
++
++	addq	t0, t2, t0	/* t0 = ss_sp + ss_size */
++	subq	t0, s3, t0	/* t0 = (ss_sp + ss_size) - new_sp */
++	cmpule	t2, t0, t0	/* t0 = (t0 >= ss_size) */
++	and	t0, t1, t0	/* t0 = (t0 >= ss_size) & (ss_flags & SS_ONSTACK) */
++	bne	t0, .Lok
++
++	ldah	a0, longjmp_msg(gp)	!gprelhigh
++	lda	a0, longjmp_msg(a0)	!gprellow
++#ifdef PIC
++	jsr	ra, HIDDEN_JUMPTARGET(__fortify_fail)
++#else
++	bsr	ra, HIDDEN_JUMPTARGET(__fortify_fail)	!samegp
++#endif
++	bugchk
++
++	cfi_endproc
++	.size	____longjmp_chk, .-____longjmp_chk

Deleted: glibc-package/trunk/debian/patches/alpha/local-longjmp-chk.diff
===================================================================
--- glibc-package/trunk/debian/patches/alpha/local-longjmp-chk.diff	2010-06-15 05:40:16 UTC (rev 4350)
+++ glibc-package/trunk/debian/patches/alpha/local-longjmp-chk.diff	2010-06-15 08:08:46 UTC (rev 4351)
@@ -1,14 +0,0 @@
----
- ports/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S |    7 +++++++
- 1 file changed, 7 insertions(+)
-
---- /dev/null
-+++ b/ports/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
-@@ -0,0 +1,7 @@
-+/* Jump to the position specified by ENV, causing the
-+   setjmp call there to return VAL, or 1 if VAL is 0.
-+   void __longjmp (__jmp_buf env, int val).  */
-+      
-+#warning longjmp_chk unimplemented
-+#define __longjmp ____longjmp_chk
-+#include<__longjmp.S>

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series	2010-06-15 05:40:16 UTC (rev 4350)
+++ glibc-package/trunk/debian/patches/series	2010-06-15 08:08:46 UTC (rev 4351)
@@ -55,7 +55,7 @@
 alpha/submitted-sock_nonblock.diff
 alpha/cvs-timer_settime.diff
 alpha/local-fcntl_h.diff
-alpha/local-longjmp-chk.diff
+alpha/cvs-longjmp-chk.diff
 alpha/local-lowlevellock.diff
 alpha/submitted-syscall.diff
 


Reply to: