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

r6051 - in glibc-package/trunk/debian: . patches



Author: aurel32
Date: 2014-05-06 22:42:24 +0000 (Tue, 06 May 2014)
New Revision: 6051

Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/svn-updates.diff
Log:
patches/svn-updates.diff: update from 2.18 branch, to fix a race in free()
of fastbin chunk.

Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2014-05-06 22:31:36 UTC (rev 6050)
+++ glibc-package/trunk/debian/changelog	2014-05-06 22:42:24 UTC (rev 6051)
@@ -33,6 +33,8 @@
   * patches/any/sparc/cvs-efd_semaphore.diff: new patch from upstream to
     declare EFD_SEMAPHORE in <bits/eventfd.h> on SPARC.  Closes: #703559,
     #737697.
+  * patches/svn-updates.diff: update from 2.18 branch, to fix a race in free()
+    of fastbin chunk.
 
  -- Adam Conrad <adconrad@0c3.net>  Sun, 27 Apr 2014 23:15:13 -0600
 

Modified: glibc-package/trunk/debian/patches/svn-updates.diff
===================================================================
--- glibc-package/trunk/debian/patches/svn-updates.diff	2014-05-06 22:31:36 UTC (rev 6050)
+++ glibc-package/trunk/debian/patches/svn-updates.diff	2014-05-06 22:42:24 UTC (rev 6051)
@@ -1,8 +1,50 @@
-diff --git a/ChangeLog b/ChangeLog
-index 0dbefe3..1e5efa7 100644
---- a/ChangeLog
-+++ b/ChangeLog
-@@ -1,3 +1,19 @@
+SVN update of svn://svn.eglibc.org/branches/eglibc-2_18 from revision 24653
+
+Index: NEWS
+===================================================================
+--- a/NEWS	(révision 24653)
++++ b/NEWS	(révision 25477)
+@@ -9,7 +9,7 @@
+ 
+ * The following bugs are resolved with this release:
+ 
+-  15909, 15996.
++  15073, 15128, 15909, 15996, 16150, 16169, 16387, 16510.
+ 
+ Version 2.18
+ 
+@@ -28,7 +28,7 @@
+   15429, 15431, 15432, 15441, 15442, 15448, 15465, 15480, 15485, 15488,
+   15490, 15492, 15493, 15497, 15506, 15529, 15536, 15553, 15577, 15583,
+   15618, 15627, 15631, 15654, 15655, 15666, 15667, 15674, 15711, 15755,
+-  15759.
++  15759, 15985.
+ 
+ * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal
+   has been fixed by disabling the use of pt_chown (Bugzilla #15755).
+Index: ChangeLog
+===================================================================
+--- a/ChangeLog	(révision 24653)
++++ b/ChangeLog	(révision 25477)
+@@ -1,3 +1,37 @@
++2014-01-29  H.J. Lu  <hongjiu.lu@intel.com>
++
++	[BZ #16510]
++	* sysdeps/x86/fpu/bits/mathinline.h: Check __SSE2_MATH__ instead
++	of __x86_64__ when disabling x87 inline functions.
++
++2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
++
++	[BZ #15605]
++	* sysdeps/x86_64/x32/symbol-hacks.h: Include generic symbol-hacks.h.
++
++2014-01-04  Maxim Kuvyrkov  <maxim@kugelworks.com>
++	    Ondřej Bílka  <neleai@seznam.cz>
++
++	[BZ #15073]
++	* malloc/malloc.c (_int_free): Perform sanity check only if we
++        have_lock.
++
 +2013-11-11  David S. Miller  <davem@davemloft.net>
 +
 +	[BZ #16150]
@@ -22,46 +64,151 @@
  2013-09-06  David S. Miller  <davem@davemloft.net>
  
  	* po/zh_TW.po: Update Chinese (traditional) translation from
-diff --git a/NEWS b/NEWS
-index fb6069d..df97235 100644
---- a/NEWS
-+++ b/NEWS
-@@ -9,7 +9,7 @@ Version 2.18.1
+Index: sysdeps/x86/fpu/bits/mathinline.h
+===================================================================
+--- a/sysdeps/x86/fpu/bits/mathinline.h	(révision 24653)
++++ b/sysdeps/x86/fpu/bits/mathinline.h	(révision 25477)
+@@ -1,5 +1,5 @@
+ /* Inline math functions for i387 and SSE.
+-   Copyright (C) 1995-2013 Free Software Foundation, Inc.
++   Copyright (C) 1995-2014 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
  
- * The following bugs are resolved with this release:
+    The GNU C Library is free software; you can redistribute it and/or
+@@ -384,7 +384,7 @@
+ # endif
+ #endif
  
--  15909, 15996.
-+  15909, 15996, 16150.
- 
- Version 2.18
+-#ifndef __x86_64__
++#ifndef __SSE2_MATH__
+ # if ((!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \
+      && defined __OPTIMIZE__)
  
-@@ -28,7 +28,7 @@ Version 2.18
-   15429, 15431, 15432, 15441, 15442, 15448, 15465, 15480, 15485, 15488,
-   15490, 15492, 15493, 15497, 15506, 15529, 15536, 15553, 15577, 15583,
-   15618, 15627, 15631, 15654, 15655, 15666, 15667, 15674, 15711, 15755,
--  15759.
-+  15759, 15985.
+@@ -970,4 +970,4 @@
+ 		    return __value;)
+ # endif
  
- * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal
-   has been fixed by disabling the use of pt_chown (Bugzilla #15755).
-diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha
-index 4a4db09..0fc0a4b 100644
---- a/ports/ChangeLog.alpha
-+++ b/ports/ChangeLog.alpha
-@@ -1,3 +1,8 @@
-+2013-11-16  Richard Henderson  <rth@redhat.com>
-+
-+	* sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Include a nop
-+	before each signal thunk.
-+
- 2013-07-02  Richard Henderson  <rth@redhat.com>
- 
-         * sysdeps/alpha/fpu/libm-test-ulps: Update.
-diff --git a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
-index 3d291fd..6efa738 100644
---- a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
-+++ b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
-@@ -83,14 +83,21 @@ PSEUDO_END(__syscall_rt_sigaction)
+-#endif /* !__x86_64__ */
++#endif /* !__SSE2_MATH__ */
+Index: sysdeps/x86_64/x32/symbol-hacks.h
+===================================================================
+--- a/sysdeps/x86_64/x32/symbol-hacks.h	(révision 24653)
++++ b/sysdeps/x86_64/x32/symbol-hacks.h	(révision 25477)
+@@ -1 +1 @@
+-/* Fortunately nothing to do.  */
++#include <sysdeps/generic/symbol-hacks.h>
+Index: sysdeps/sparc/sparc64/multiarch/addmul_1.S
+===================================================================
+--- a/sysdeps/sparc/sparc64/multiarch/addmul_1.S	(révision 24653)
++++ b/sysdeps/sparc/sparc64/multiarch/addmul_1.S	(révision 25477)
+@@ -42,7 +42,7 @@
+ 	sethi	%gdop_hix22(__mpn_addmul_1_generic), %o1
+ 	xor	%o1, %gdop_lox10(__mpn_addmul_1_generic), %o1
+ # else
+-	set	__mpn_addmul_1_vis3, %o1
++	set	__mpn_addmul_1_generic, %o1
+ # endif
+ 10:
+ # ifdef SHARED
+Index: sysdeps/sparc/sparc64/multiarch/submul_1.S
+===================================================================
+--- a/sysdeps/sparc/sparc64/multiarch/submul_1.S	(révision 24653)
++++ b/sysdeps/sparc/sparc64/multiarch/submul_1.S	(révision 25477)
+@@ -42,7 +42,7 @@
+ 	sethi	%gdop_hix22(__mpn_submul_1_generic), %o1
+ 	xor	%o1, %gdop_lox10(__mpn_submul_1_generic), %o1
+ # else
+-	set	__mpn_submul_1_vis3, %o1
++	set	__mpn_submul_1_generic, %o1
+ # endif
+ 10:
+ # ifdef SHARED
+Index: sysdeps/sparc/sparc64/multiarch/add_n.S
+===================================================================
+--- a/sysdeps/sparc/sparc64/multiarch/add_n.S	(révision 24653)
++++ b/sysdeps/sparc/sparc64/multiarch/add_n.S	(révision 25477)
+@@ -42,7 +42,7 @@
+ 	sethi	%gdop_hix22(__mpn_add_n_generic), %o1
+ 	xor	%o1, %gdop_lox10(__mpn_add_n_generic), %o1
+ # else
+-	set	__mpn_add_n_vis3, %o1
++	set	__mpn_add_n_generic, %o1
+ # endif
+ 10:
+ # ifdef SHARED
+Index: sysdeps/sparc/sparc64/multiarch/sub_n.S
+===================================================================
+--- a/sysdeps/sparc/sparc64/multiarch/sub_n.S	(révision 24653)
++++ b/sysdeps/sparc/sparc64/multiarch/sub_n.S	(révision 25477)
+@@ -42,7 +42,7 @@
+ 	sethi	%gdop_hix22(__mpn_sub_n_generic), %o1
+ 	xor	%o1, %gdop_lox10(__mpn_sub_n_generic), %o1
+ # else
+-	set	__mpn_sub_n_vis3, %o1
++	set	__mpn_sub_n_generic, %o1
+ # endif
+ 10:
+ # ifdef SHARED
+Index: sysdeps/sparc/sparc64/multiarch/mul_1.S
+===================================================================
+--- a/sysdeps/sparc/sparc64/multiarch/mul_1.S	(révision 24653)
++++ b/sysdeps/sparc/sparc64/multiarch/mul_1.S	(révision 25477)
+@@ -42,7 +42,7 @@
+ 	sethi	%gdop_hix22(__mpn_mul_1_generic), %o1
+ 	xor	%o1, %gdop_lox10(__mpn_mul_1_generic), %o1
+ # else
+-	set	__mpn_mul_1_vis3, %o1
++	set	__mpn_mul_1_generic, %o1
+ # endif
+ 10:
+ # ifdef SHARED
+Index: sysdeps/sparc/sparc32/fpu/s_fdim.S
+===================================================================
+--- a/sysdeps/sparc/sparc32/fpu/s_fdim.S	(révision 24653)
++++ b/sysdeps/sparc/sparc32/fpu/s_fdim.S	(révision 25477)
+@@ -30,7 +30,8 @@
+ 	fbug	1f
+ 	 st	%g0, [%sp + 76]
+ 	ldd	[%sp + 72], %f0
+-	fnegd	%f0, %f2
++	fnegs	%f0, %f2
++	fmovs	%f1, %f3
+ 1:	retl
+ 	 fsubd	%f0, %f2, %f0
+ END(__fdim)
+Index: ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data
+===================================================================
+
+Modification de propriétés sur ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Fusionné /fsf/glibc-2_18-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data:r24307-25237
+Index: ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data
+===================================================================
+
+Modification de propriétés sur ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Fusionné /fsf/glibc-2_18-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data:r24307-25237
+Index: ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data
+===================================================================
+
+Modification de propriétés sur ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Fusionné /fsf/glibc-2_18-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data:r24307-25237
+Index: ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data
+===================================================================
+
+Modification de propriétés sur ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+   Fusionné /fsf/glibc-2_18-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data:r24307-25237
+Index: ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+===================================================================
+--- a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S	(révision 24653)
++++ b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S	(révision 25477)
+@@ -83,14 +83,21 @@
  	cfi_offset (64, \base + 2 * 8)
  	.endm
  
@@ -71,9 +218,9 @@
  	cfi_return_column (64)
  	.cfi_signal_frame
  	SIGCONTEXT_REGS -648
--
- 	cfi_def_cfa_offset (648)
-+
++	cfi_def_cfa_offset (648)
+ 
+-	cfi_def_cfa_offset (648)
 +	/* While this frame is marked as a signal frame, that only applies
 +	   to how this return address is handled for the outer frame.
 +	   The return address that arrived here, from the inner frame, is
@@ -86,95 +233,225 @@
  __syscall_sigreturn:
  	mov	sp, a0
  	ldi	v0, __NR_sigreturn
-@@ -98,8 +105,11 @@ __syscall_sigreturn:
+@@ -98,8 +105,11 @@
  	.size	__syscall_sigreturn, .-__syscall_sigreturn
  	.type	__syscall_sigreturn, @function
  
--	.align 4
 +	/* See above wrt including the nop.  */
- 	cfi_def_cfa_offset (176 + 648)
++	cfi_def_cfa_offset (176 + 648)
 +	nop
-+	.align 4
+ 	.align 4
+-	cfi_def_cfa_offset (176 + 648)
 +
  __syscall_rt_sigreturn:
  	mov	sp,a0
  	ldi	v0,__NR_rt_sigreturn
-diff --git a/sysdeps/sparc/sparc32/fpu/s_fdim.S b/sysdeps/sparc/sparc32/fpu/s_fdim.S
-index 2f0c5ce..22f69ce 100644
---- a/sysdeps/sparc/sparc32/fpu/s_fdim.S
-+++ b/sysdeps/sparc/sparc32/fpu/s_fdim.S
-@@ -30,7 +30,8 @@ ENTRY(__fdim)
- 	fbug	1f
- 	 st	%g0, [%sp + 76]
- 	ldd	[%sp + 72], %f0
--	fnegd	%f0, %f2
-+	fnegs	%f0, %f2
-+	fmovs	%f1, %f3
- 1:	retl
- 	 fsubd	%f0, %f2, %f0
- END(__fdim)
-diff --git a/sysdeps/sparc/sparc64/multiarch/add_n.S b/sysdeps/sparc/sparc64/multiarch/add_n.S
-index 25cae39..22c6e58 100644
---- a/sysdeps/sparc/sparc64/multiarch/add_n.S
-+++ b/sysdeps/sparc/sparc64/multiarch/add_n.S
-@@ -42,7 +42,7 @@ ENTRY(__mpn_add_n)
- 	sethi	%gdop_hix22(__mpn_add_n_generic), %o1
- 	xor	%o1, %gdop_lox10(__mpn_add_n_generic), %o1
- # else
--	set	__mpn_add_n_vis3, %o1
-+	set	__mpn_add_n_generic, %o1
- # endif
- 10:
- # ifdef SHARED
-diff --git a/sysdeps/sparc/sparc64/multiarch/addmul_1.S b/sysdeps/sparc/sparc64/multiarch/addmul_1.S
-index a1659e4..a65c934 100644
---- a/sysdeps/sparc/sparc64/multiarch/addmul_1.S
-+++ b/sysdeps/sparc/sparc64/multiarch/addmul_1.S
-@@ -42,7 +42,7 @@ ENTRY(__mpn_addmul_1)
- 	sethi	%gdop_hix22(__mpn_addmul_1_generic), %o1
- 	xor	%o1, %gdop_lox10(__mpn_addmul_1_generic), %o1
- # else
--	set	__mpn_addmul_1_vis3, %o1
-+	set	__mpn_addmul_1_generic, %o1
- # endif
- 10:
- # ifdef SHARED
-diff --git a/sysdeps/sparc/sparc64/multiarch/mul_1.S b/sysdeps/sparc/sparc64/multiarch/mul_1.S
-index 25f51bf..811754e 100644
---- a/sysdeps/sparc/sparc64/multiarch/mul_1.S
-+++ b/sysdeps/sparc/sparc64/multiarch/mul_1.S
-@@ -42,7 +42,7 @@ ENTRY(__mpn_mul_1)
- 	sethi	%gdop_hix22(__mpn_mul_1_generic), %o1
- 	xor	%o1, %gdop_lox10(__mpn_mul_1_generic), %o1
- # else
--	set	__mpn_mul_1_vis3, %o1
-+	set	__mpn_mul_1_generic, %o1
- # endif
- 10:
- # ifdef SHARED
-diff --git a/sysdeps/sparc/sparc64/multiarch/sub_n.S b/sysdeps/sparc/sparc64/multiarch/sub_n.S
-index 5e15bea..3963790 100644
---- a/sysdeps/sparc/sparc64/multiarch/sub_n.S
-+++ b/sysdeps/sparc/sparc64/multiarch/sub_n.S
-@@ -42,7 +42,7 @@ ENTRY(__mpn_sub_n)
- 	sethi	%gdop_hix22(__mpn_sub_n_generic), %o1
- 	xor	%o1, %gdop_lox10(__mpn_sub_n_generic), %o1
- # else
--	set	__mpn_sub_n_vis3, %o1
-+	set	__mpn_sub_n_generic, %o1
- # endif
- 10:
- # ifdef SHARED
-diff --git a/sysdeps/sparc/sparc64/multiarch/submul_1.S b/sysdeps/sparc/sparc64/multiarch/submul_1.S
-index 68552e9..6c4c3a3 100644
---- a/sysdeps/sparc/sparc64/multiarch/submul_1.S
-+++ b/sysdeps/sparc/sparc64/multiarch/submul_1.S
-@@ -42,7 +42,7 @@ ENTRY(__mpn_submul_1)
- 	sethi	%gdop_hix22(__mpn_submul_1_generic), %o1
- 	xor	%o1, %gdop_lox10(__mpn_submul_1_generic), %o1
- # else
--	set	__mpn_submul_1_vis3, %o1
-+	set	__mpn_submul_1_generic, %o1
- # endif
- 10:
- # ifdef SHARED
+Index: ports/sysdeps/unix/sysv/linux/aarch64/clone.S
+===================================================================
+--- a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S	(révision 24653)
++++ b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S	(révision 25477)
+@@ -63,6 +63,7 @@
+ 	mov	x8, #SYS_ify(clone)
+ 	/* X0:flags, x1:newsp, x2:parenttidptr, x3:newtls, x4:childtid.  */
+ 	svc	0x0
++	cfi_endproc
+ 	cmp	x0, #0
+ 	beq	2f
+ 	blt	3f
+@@ -72,6 +73,9 @@
+ 	b	syscall_error
+ 
+ 2:
++	cfi_startproc
++	cfi_undefined (x30)
++	mov	x29, 0
+ #ifdef RESET_PID
+ 	tbnz	x5, #CLONE_THREAD_BIT, 3f
+ 	mov	x0, #-1
+@@ -93,7 +97,8 @@
+ 
+ 	/* We are done, pass the return value through x0.  */
+ 	b	HIDDEN_JUMPTARGET(_exit)
+-
++	cfi_endproc
++	cfi_startproc
+ PSEUDO_END (__clone)
+ 
+ weak_alias (__clone, clone)
+Index: ports/sysdeps/aarch64/fpu/fpu_control.h
+===================================================================
+--- a/ports/sysdeps/aarch64/fpu/fpu_control.h	(révision 24653)
++++ b/ports/sysdeps/aarch64/fpu/fpu_control.h	(révision 25477)
+@@ -59,6 +59,9 @@
+                    E E D D
+                        E E
+  */
++
++#define _FPU_FPCR_RM_MASK  0xc00000
++
+ #define _FPU_FPCR_MASK_IXE 0x1000
+ #define _FPU_FPCR_MASK_UFE 0x0800
+ #define _FPU_FPCR_MASK_OFE 0x0400
+Index: ports/sysdeps/aarch64/dl-trampoline.S
+===================================================================
+--- a/ports/sysdeps/aarch64/dl-trampoline.S	(révision 24653)
++++ b/ports/sysdeps/aarch64/dl-trampoline.S	(révision 25477)
+@@ -41,8 +41,8 @@
+ 	cfi_rel_offset (lr, 8)
+ 
+ 	/* Save arguments.  */
+-	stp	x8, x9, [sp, #-80]!
+-	cfi_adjust_cfa_offset (80)
++	stp	x8, x9, [sp, #-(80+8*16)]!
++	cfi_adjust_cfa_offset (80+8*16)
+ 	cfi_rel_offset (x8, 0)
+ 	cfi_rel_offset (x9, 8)
+ 
+@@ -62,11 +62,27 @@
+ 	cfi_rel_offset (x0, 64)
+ 	cfi_rel_offset (x1, 72)
+ 
++	stp	q0, q1, [sp, #(80+0*16)]
++	cfi_rel_offset (q0, 80+0*16)
++	cfi_rel_offset (q1, 80+1*16)
++
++	stp	q2, q3, [sp, #(80+2*16)]
++	cfi_rel_offset (q0, 80+2*16)
++	cfi_rel_offset (q1, 80+3*16)
++
++	stp	q4, q5, [sp, #(80+4*16)]
++	cfi_rel_offset (q0, 80+4*16)
++	cfi_rel_offset (q1, 80+5*16)
++
++	stp	q6, q7, [sp, #(80+6*16)]
++	cfi_rel_offset (q0, 80+6*16)
++	cfi_rel_offset (q1, 80+7*16)
++
+ 	/* Get pointer to linker struct.  */
+ 	ldr	x0, [ip0, #-8]
+ 
+ 	/* Prepare to call _dl_fixup().  */
+-	ldr	x1, [sp, 80]	/* Recover &PLTGOT[n] */
++	ldr	x1, [sp, 80+8*16]	/* Recover &PLTGOT[n] */
+ 
+ 	sub     x1, x1, ip0
+ 	add     x1, x1, x1, lsl #1
+@@ -81,12 +97,16 @@
+ 	mov	ip0, x0
+ 
+ 	/* Get arguments and return address back.  */
++	ldp	q0, q1, [sp, #(80+0*16)]
++	ldp	q2, q3, [sp, #(80+2*16)]
++	ldp	q4, q5, [sp, #(80+4*16)]
++	ldp	q6, q7, [sp, #(80+6*16)]
+ 	ldp	x0, x1, [sp, #64]
+ 	ldp	x2, x3, [sp, #48]
+ 	ldp	x4, x5, [sp, #32]
+ 	ldp	x6, x7, [sp, #16]
+-	ldp	x8, x9, [sp], #80
+-	cfi_adjust_cfa_offset (-80)
++	ldp	x8, x9, [sp], #(80+8*16)
++	cfi_adjust_cfa_offset (-(80+8*16))
+ 
+ 	ldp	ip1, lr, [sp], #16
+ 	cfi_adjust_cfa_offset (-16)
+Index: ports/sysdeps/aarch64/soft-fp/sfp-machine.h
+===================================================================
+--- a/ports/sysdeps/aarch64/soft-fp/sfp-machine.h	(révision 24653)
++++ b/ports/sysdeps/aarch64/soft-fp/sfp-machine.h	(révision 25477)
+@@ -47,7 +47,7 @@
+ 
+ #define _FP_DECL_EX		fpu_control_t _fcw
+ 
+-#define FP_ROUNDMODE		(_fcw & 0x3)
++#define FP_ROUNDMODE		(_fcw & _FPU_FPCR_RM_MASK)
+ 
+ #define FP_RND_NEAREST		FE_TONEAREST
+ #define FP_RND_ZERO		FE_TOWARDZERO
+Index: ports/ChangeLog.alpha
+===================================================================
+--- a/ports/ChangeLog.alpha	(révision 24653)
++++ b/ports/ChangeLog.alpha	(révision 25477)
+@@ -1,3 +1,8 @@
++2013-11-16  Richard Henderson  <rth@redhat.com>
++
++	* sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Include a nop
++	before each signal thunk.
++
+ 2013-07-02  Richard Henderson  <rth@redhat.com>
+ 
+         * sysdeps/alpha/fpu/libm-test-ulps: Update.
+Index: ports/ChangeLog.aarch64
+===================================================================
+--- a/ports/ChangeLog.aarch64	(révision 24653)
++++ b/ports/ChangeLog.aarch64	(révision 25477)
+@@ -1,3 +1,27 @@
++2014-01-20  Tom Tromey  <tromey@redhat.com>
++
++	[BZ #16169]
++	* sysdeps/unix/sysv/linux/aarch64/clone.S (__clone): Add CFI
++	directives;  Zero x29.
++
++2014-01-07  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
++
++	[BZ #16387]
++	* sysdeps/aarch64/fpu/fpu_control.h (_FPU_FPCR_RM_MASK): Define.
++	* sysdeps/aarch64/soft-fp/sfp-machine.h (FP_ROUNDMODE): Adjust
++	rounding mode mask.
++
++2014-01-07  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
++
++	* sysdeps/aarch64/dl-trampoline.S (_dl_runtime_resolve): Correct
++	cfi_adjust_cfa_offset offset.
++
++2013-12-18  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
++
++	[BZ #15128]
++	* sysdeps/aarch64/dl-trampoline.S (_dl_runtime_resolve): Save and
++	restore q0-q7.
++
+ 2013-07-26  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
+ 
+ 	* sysdeps/aarch64/Versions: New file.
+Index: malloc/malloc.c
+===================================================================
+--- a/malloc/malloc.c	(révision 24653)
++++ b/malloc/malloc.c	(révision 25477)
+@@ -3809,25 +3809,29 @@
+     unsigned int idx = fastbin_index(size);
+     fb = &fastbin (av, idx);
+ 
+-    mchunkptr fd;
+-    mchunkptr old = *fb;
++    /* Atomically link P to its fastbin: P->FD = *FB; *FB = P;  */
++    mchunkptr old = *fb, old2;
+     unsigned int old_idx = ~0u;
+     do
+       {
+-	/* Another simple check: make sure the top of the bin is not the
+-	   record we are going to add (i.e., double free).  */
++	/* Check that the top of the bin is not the record we are going to add
++	   (i.e., double free).  */
+ 	if (__builtin_expect (old == p, 0))
+ 	  {
+ 	    errstr = "double free or corruption (fasttop)";
+ 	    goto errout;
+ 	  }
+-	if (old != NULL)
++	/* Check that size of fastbin chunk at the top is the same as
++	   size of the chunk that we are adding.  We can dereference OLD
++	   only if we have the lock, otherwise it might have already been
++	   deallocated.  See use of OLD_IDX below for the actual check.  */
++	if (have_lock && old != NULL)
+ 	  old_idx = fastbin_index(chunksize(old));
+-	p->fd = fd = old;
++	p->fd = old2 = old;
+       }
+-    while ((old = catomic_compare_and_exchange_val_rel (fb, p, fd)) != fd);
++    while ((old = catomic_compare_and_exchange_val_rel (fb, p, old2)) != old2);
+ 
+-    if (fd != NULL && __builtin_expect (old_idx != idx, 0))
++    if (have_lock && old != NULL && __builtin_expect (old_idx != idx, 0))
+       {
+ 	errstr = "invalid fastbin entry (free)";
+ 	goto errout;


Reply to: