This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Community source repository for glibc add-on ports branch, release/2.15/master, updated. glibc-2.15-20-gc81034b


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Community source repository for glibc add-on ports".

The branch, release/2.15/master has been updated
       via  c81034b65c6861de43813bbbf4c413cbeeab16fe (commit)
       via  8dc007fe3e523862a356f59061a60eaf3138ceb4 (commit)
       via  5f5bfc2fad1982abc50f53c83a0902c838e80447 (commit)
       via  2ed01d73919824d19a3b6ed123150095afc12784 (commit)
       via  af447ba0570342b4d3d6f11f93b8fb2e739e6579 (commit)
       via  25c54b2dafec70a6b143ac47f36f0a28f9a1204b (commit)
       via  9e4a17418c1efcab911b936bbe810411c19bba0f (commit)
      from  7e263c5021f4f00180551534a0550589902acb34 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=c81034b65c6861de43813bbbf4c413cbeeab16fe

commit c81034b65c6861de43813bbbf4c413cbeeab16fe
Author: Chris Metcalf <cmetcalf@tilera.com>
Date:   Thu Jun 21 11:39:36 2012 -0400

    tile: add proper versioning for fegetenv()
    
    (cherry picked from commit 30aa747c6895cfb6ae7c9655375c1d0c87acdc41)
    (omitted changes to libm.abilist files as they are not present on 2.15 branch)

diff --git a/ChangeLog.tile b/ChangeLog.tile
index d6656b0..b99ba07 100644
--- a/ChangeLog.tile
+++ b/ChangeLog.tile
@@ -1,3 +1,7 @@
+2012-05-17  Chris Metcalf  <cmetcalf@tilera.com>
+
+	* sysdeps/tile/fegetenv.c: Version fegetenv() like fesetenv().
+
 2012-05-16  Chris Metcalf  <cmetcalf@tilera.com>
 
 	* sysdeps/unix/sysv/linux/tile/ucontext_i: Fix tilegx32 offset bug.
diff --git a/sysdeps/tile/fegetenv.c b/sysdeps/tile/fegetenv.c
index f6e2bb1..554216c 100644
--- a/sysdeps/tile/fegetenv.c
+++ b/sysdeps/tile/fegetenv.c
@@ -18,6 +18,7 @@
    02111-1307 USA.  */
 
 #include <fenv.h>
+#include <shlib-compat.h>
 
 int
 __fegetenv (fenv_t *envp)
@@ -26,3 +27,4 @@ __fegetenv (fenv_t *envp)
   return 0;
 }
 libm_hidden_ver (__fegetenv, fegetenv)
+versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=8dc007fe3e523862a356f59061a60eaf3138ceb4

commit 8dc007fe3e523862a356f59061a60eaf3138ceb4
Author: Chris Metcalf <cmetcalf@tilera.com>
Date:   Wed May 16 13:52:36 2012 -0400

    tilegx32: fix various bugs in setcontext/getcontext/swapcontext
    
    (cherry picked from commit 0adc5f3892fee6fc6221691e3f269fcc3b386965)

diff --git a/ChangeLog.tile b/ChangeLog.tile
index f1fe22b..d6656b0 100644
--- a/ChangeLog.tile
+++ b/ChangeLog.tile
@@ -1,3 +1,13 @@
+2012-05-16  Chris Metcalf  <cmetcalf@tilera.com>
+
+	* sysdeps/unix/sysv/linux/tile/ucontext_i: Fix tilegx32 offset bug.
+	* sysdeps/unix/sysv/linux/tile/getcontext.S: Fix tilegx32 bug
+	where we accessed "uc_flags" as an 8-byte field.
+	* sysdeps/unix/sysv/linux/tile/setcontext.S: Likewise,
+	and also fix frame code not to access stack below "sp".
+	* sysdeps/unix/sysv/linux/tile/swapcontext.S: Fix frame code not
+	to access stack below "sp", and add frame unwind to error path.
+
 2012-05-14  Chris Metcalf  <cmetcalf@tilera.com>
 
 	* sysdeps/tile/dl-start.S: Align stack for tilegx32.
diff --git a/sysdeps/unix/sysv/linux/tile/getcontext.S b/sysdeps/unix/sysv/linux/tile/getcontext.S
index 34bc7d8..0d844aa 100644
--- a/sysdeps/unix/sysv/linux/tile/getcontext.S
+++ b/sysdeps/unix/sysv/linux/tile/getcontext.S
@@ -33,7 +33,7 @@ ENTRY (__getcontext)
 	   swapcontext() will assume those registers are all dead.
 	   Save value "1" to uc_flags to later recognize getcontext().  */
 	{ movei r11, 1; ADDI_PTR r10, r0, UC_FLAGS_OFFSET }
-	{ ST r10, r11; addli r10, r0, UC_REG(30) }
+	{ ST_PTR r10, r11; addli r10, r0, UC_REG(30) }
 	{ ST r10, r30; ADDI_PTR r10, r10, REGSIZE }
 	{ ST r10, r31; ADDI_PTR r10, r10, REGSIZE }
 	{ ST r10, r32; ADDI_PTR r10, r10, REGSIZE }
diff --git a/sysdeps/unix/sysv/linux/tile/setcontext.S b/sysdeps/unix/sysv/linux/tile/setcontext.S
index 6c22bbd..b23314b 100644
--- a/sysdeps/unix/sysv/linux/tile/setcontext.S
+++ b/sysdeps/unix/sysv/linux/tile/setcontext.S
@@ -38,7 +38,7 @@ ENTRY (__setcontext)
 #if UC_FLAGS_OFFSET != 0
 # error "Add offset to r0 prior to load."
 #endif
-	LD r10, r0
+	LD_PTR r10, r0
 	{
 	 BEQZ r10, .Lsigreturn
 	 addi r10, r10, -1  /* Confirm that it has value "1".  */
@@ -52,13 +52,13 @@ ENTRY (__setcontext)
 	 ADDI_PTR r11, sp, -(2 * REGSIZE)
 	 move r10, sp
 	}
+	ADDI_PTR sp, sp, -(3 * REGSIZE)
+	cfi_def_cfa_offset (3 * REGSIZE)
 	cfi_offset (lr, 0)
 	{
 	 ST r11, r10
-	 ADDI_PTR r10, sp, -REGSIZE
-	 ADDI_PTR sp, sp, -(3 * REGSIZE)
+	 ADDI_PTR r10, sp, (2 * REGSIZE)
 	}
-	cfi_def_cfa_offset (3 * REGSIZE)
 	{
 	 ST r10, r0
 	 ADDLI_PTR r1, r0, UC_SIGMASK_OFFSET
@@ -73,13 +73,13 @@ ENTRY (__setcontext)
 	 moveli TREG_SYSCALL_NR_NAME, __NR_rt_sigprocmask
 	}
 	swint1
+	ADDI_PTR r11, sp, 2 * REGSIZE  /* Restore uc_context to r11. */
 	{
+	 LD r11, r11
 	 ADDI_PTR sp, sp, 3 * REGSIZE
-	 ADDI_PTR r11, sp, 2 * REGSIZE  /* Restore uc_context to r11. */
 	}
 	cfi_def_cfa_offset (0)
 	LD lr, sp
-	LD r11, r11
 	{
 	 ADDI_PTR r10, r11, UC_REG(0)
 	 BNEZ r1, .Lsyscall_error
diff --git a/sysdeps/unix/sysv/linux/tile/swapcontext.S b/sysdeps/unix/sysv/linux/tile/swapcontext.S
index 95d3afa..7b46696 100644
--- a/sysdeps/unix/sysv/linux/tile/swapcontext.S
+++ b/sysdeps/unix/sysv/linux/tile/swapcontext.S
@@ -32,17 +32,17 @@ ENTRY (__swapcontext)
 	 ADDI_PTR r11, sp, -(3 * REGSIZE)
 	 move r10, sp
 	}
+	ADDI_PTR sp, sp, -(4 * REGSIZE)
+	cfi_def_cfa_offset (4 * REGSIZE)
 	cfi_offset (lr, 0)
 	{
 	 ST r11, r10
-	 ADDI_PTR r10, sp, -(2 * REGSIZE)
+	 ADDI_PTR r10, sp, (2 * REGSIZE)
 	}
 	{
 	 ST r10, r0
-	 ADDI_PTR r10, sp, -REGSIZE
-	 ADDI_PTR sp, sp, -(4 * REGSIZE)
+	 ADDI_PTR r10, sp, (3 * REGSIZE)
 	}
-	cfi_def_cfa_offset (4 * REGSIZE)
 	ST r10, r1
 
 	/* Save the current context.  */
@@ -81,6 +81,9 @@ ENTRY (__swapcontext)
 	}
 
 .Lerror:
+	ADDI_PTR sp, sp, 4 * REGSIZE
+	cfi_def_cfa_offset (0)
+	LD lr, sp
 	jrp lr
 END (__swapcontext)
 
diff --git a/sysdeps/unix/sysv/linux/tile/ucontext_i.h b/sysdeps/unix/sysv/linux/tile/ucontext_i.h
index f255572..552a55d 100644
--- a/sysdeps/unix/sysv/linux/tile/ucontext_i.h
+++ b/sysdeps/unix/sysv/linux/tile/ucontext_i.h
@@ -26,7 +26,8 @@
 #define UC_STACK_SP_OFFSET (UC_LINK_OFFSET + __SIZEOF_POINTER__)
 #define UC_STACK_FLAGS_OFFSET (UC_STACK_SP_OFFSET + __SIZEOF_POINTER__)
 #define UC_STACK_SIZE_OFFSET (UC_STACK_FLAGS_OFFSET + __SIZEOF_POINTER__)
-#define UC_STACK_MCONTEXT_OFFSET (UC_STACK_SIZE_OFFSET + __SIZEOF_POINTER__)
+#define UC_STACK_MCONTEXT_OFFSET \
+  ((UC_STACK_SIZE_OFFSET + __SIZEOF_POINTER__ + REGSIZE - 1) & -REGSIZE)
 #define UC_REG(i) (UC_STACK_MCONTEXT_OFFSET + ((i) * REGSIZE))
 #define UC_NREGS 64
 #define UC_SIGMASK_OFFSET UC_REG(UC_NREGS)

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=5f5bfc2fad1982abc50f53c83a0902c838e80447

commit 5f5bfc2fad1982abc50f53c83a0902c838e80447
Author: Chris Metcalf <cmetcalf@tilera.com>
Date:   Mon May 14 15:03:46 2012 -0400

    tile: align stack for tilegx32
    
    Previously we weren't re-aligning the stack pointer during the
    call to _dl_init(), so for tilegx32 and an odd value in _dl_skip_args
    and kernel unaligned access fixups disabled, we would die with SIGBUS.
    We now handle this case properly by aligning before calling _dl_init().
    (cherry picked from commit bcfe09d24161bdf3b734da2f2fc4692bd26b7f52)

diff --git a/ChangeLog.tile b/ChangeLog.tile
index 0c8af39..f1fe22b 100644
--- a/ChangeLog.tile
+++ b/ChangeLog.tile
@@ -1,3 +1,7 @@
+2012-05-14  Chris Metcalf  <cmetcalf@tilera.com>
+
+	* sysdeps/tile/dl-start.S: Align stack for tilegx32.
+
 2012-05-12  Chris Metcalf  <cmetcalf@tilera.com>
 
 	* sysdeps/unix/sysv/linux/tile/sys/dataplane.h: Add <features.h>.
diff --git a/sysdeps/tile/dl-start.S b/sysdeps/tile/dl-start.S
index 2991374..c819963 100644
--- a/sysdeps/tile/dl-start.S
+++ b/sysdeps/tile/dl-start.S
@@ -78,6 +78,7 @@ ENTRY (_start)
 	 ST_PTR r52, r0
 	 SHL_PTR_ADD sp, r4, sp
 	}
+	andi sp, sp, -8
 
 .Lno_skip:
 	/* Call_dl_init (_dl_loaded, argc, argv, envp).  See elf/start.s

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=2ed01d73919824d19a3b6ed123150095afc12784

commit 2ed01d73919824d19a3b6ed123150095afc12784
Author: Chris Metcalf <cmetcalf@tilera.com>
Date:   Fri May 11 18:10:00 2012 -0400

    tile: add include <features.h> to <sys/dataplane.h>
    
    We were using __BEGIN_DECLS without <features.h> and it just happened
    to mostly work, but of course we should include it here.
    (cherry picked from commit 8927be2b217ad44682efd987e32320ee80c4dbe1)

diff --git a/ChangeLog.tile b/ChangeLog.tile
index 5498ffb..0c8af39 100644
--- a/ChangeLog.tile
+++ b/ChangeLog.tile
@@ -1,5 +1,9 @@
 2012-05-12  Chris Metcalf  <cmetcalf@tilera.com>
 
+	* sysdeps/unix/sysv/linux/tile/sys/dataplane.h: Add <features.h>.
+
+2012-05-12  Chris Metcalf  <cmetcalf@tilera.com>
+
 	* sysdeps/unix/sysv/linux/tile/nptl/clone.S: Add missing CFI.
 
 2012-05-12  Chris Metcalf  <cmetcalf@tilera.com>
diff --git a/sysdeps/unix/sysv/linux/tile/sys/dataplane.h b/sysdeps/unix/sysv/linux/tile/sys/dataplane.h
index d491aff..326c243 100644
--- a/sysdeps/unix/sysv/linux/tile/sys/dataplane.h
+++ b/sysdeps/unix/sysv/linux/tile/sys/dataplane.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
@@ -20,6 +20,8 @@
 #ifndef _SYS_DATAPLANE_H
 #define _SYS_DATAPLANE_H 1
 
+#include <features.h>
+
 /* Get the kernel definition for the flag bits.  */
 #include <asm/dataplane.h>
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=af447ba0570342b4d3d6f11f93b8fb2e739e6579

commit af447ba0570342b4d3d6f11f93b8fb2e739e6579
Author: Chris Metcalf <cmetcalf@tilera.com>
Date:   Fri May 11 18:08:03 2012 -0400

    tile: fix bug in CFI definitions for clone.S
    
    We were missing a critical cfi_def_cfa_offset call in .Lthread_start
    which caused backtracing to get badly confused for threads.
    (cherry picked from commit 024bb7b4a22e62faf932a7b9f071322716727d2d)

diff --git a/ChangeLog.tile b/ChangeLog.tile
index b34e4ea..5498ffb 100644
--- a/ChangeLog.tile
+++ b/ChangeLog.tile
@@ -1,5 +1,9 @@
 2012-05-12  Chris Metcalf  <cmetcalf@tilera.com>
 
+	* sysdeps/unix/sysv/linux/tile/nptl/clone.S: Add missing CFI.
+
+2012-05-12  Chris Metcalf  <cmetcalf@tilera.com>
+
 	* sysdeps/tile/tilegx/memcpy.c: Allow memcpy(p, p, n)
 	without corrupting memory at "p".
 
diff --git a/sysdeps/unix/sysv/linux/tile/nptl/clone.S b/sysdeps/unix/sysv/linux/tile/nptl/clone.S
index 73a5e84..57f2caa 100644
--- a/sysdeps/unix/sysv/linux/tile/nptl/clone.S
+++ b/sysdeps/unix/sysv/linux/tile/nptl/clone.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
@@ -168,6 +168,7 @@ ENTRY (__clone)
 	   in getpid().  Otherwise (if CLONE_VM isn't set), it's a
 	   fork-like clone, and we go ahead and write the cached values
 	   from the true system pid (retrieved via __NR_getpid syscall).  */
+	cfi_def_cfa_offset (FRAME_SIZE)
 #ifdef __tilegx__
 	{
 	 moveli r0, hw1_last(CLONE_VM)

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=25c54b2dafec70a6b143ac47f36f0a28f9a1204b

commit 25c54b2dafec70a6b143ac47f36f0a28f9a1204b
Author: Chris Metcalf <cmetcalf@tilera.com>
Date:   Fri May 11 17:59:23 2012 -0400

    tile: allow memcpy(p, p, n) without corrupting memory at "p"
    
    Although this is not required by the definition of memcpy(),
    in practice this sort of thing does happen, and it's easy to make
    the code robust by doing nothing in this case.  (Since structure
    copy causes the compiler to emit a memcpy, in the case where the
    target structure is the same as the destination, we were seeing
    corruption.)
    (cherry picked from commit 575298fcd298bb3ff7d7ba0d0bceac9429ae2b5d)

diff --git a/ChangeLog.tile b/ChangeLog.tile
index 51e5784..b34e4ea 100644
--- a/ChangeLog.tile
+++ b/ChangeLog.tile
@@ -1,3 +1,8 @@
+2012-05-12  Chris Metcalf  <cmetcalf@tilera.com>
+
+	* sysdeps/tile/tilegx/memcpy.c: Allow memcpy(p, p, n)
+	without corrupting memory at "p".
+
 2012-01-31  Chris Metcalf  <cmetcalf@tilera.com>
 
 	* sysdeps/tile/math_private.h: Ignore feraiseexcept() internally.
diff --git a/sysdeps/tile/tilegx/memcpy.c b/sysdeps/tile/tilegx/memcpy.c
index 35495be..c77866a 100644
--- a/sysdeps/tile/tilegx/memcpy.c
+++ b/sysdeps/tile/tilegx/memcpy.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
@@ -108,6 +108,17 @@ __memcpy (void *__restrict dstv, const void *__restrict srcv, size_t n)
                n -= sizeof (word_t))
             *dst8++ = *src8++;
 
+          /* If copying to self, return.  The test is cheap enough
+             that we do it despite the fact that the memcpy() contract
+             doesn't require us to support overlapping dst and src.
+             This is the most common case of overlap, and any close
+             overlap will cause corruption due to the wh64 below.
+             This case is particularly important since the compiler
+             will emit memcpy() calls for aggregate copies even if it
+             can't prove that src != dst.  */
+          if (__builtin_expect (dst8 == src8, 0))
+            return dstv;
+
           for (; n >= CHIP_L2_LINE_SIZE ();)
             {
               __insn_wh64 (dst8);

http://sources.redhat.com/git/gitweb.cgi?p=glibc-ports.git;a=commitdiff;h=9e4a17418c1efcab911b936bbe810411c19bba0f

commit 9e4a17418c1efcab911b936bbe810411c19bba0f
Author: Chris Metcalf <cmetcalf@tilera.com>
Date:   Fri May 11 15:57:05 2012 -0400

    linux-generic: add wordsize-32 version of prlimit64/fanotify syscalls
    
    (cherry picked from commit 3c19868059809171740f3f71ec0e950582b3b23b)

diff --git a/ChangeLog.linux-generic b/ChangeLog.linux-generic
index a2f6a56..e9d813d 100644
--- a/ChangeLog.linux-generic
+++ b/ChangeLog.linux-generic
@@ -1,3 +1,8 @@
+2012-05-12  Chris Metcalf  <cmetcalf@tilera.com>
+
+	* sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list:
+	Add entries for prlimit64 and fanotify_mark.
+
 2012-01-30  Chris Metcalf  <cmetcalf@tilera.com>
 
 	* sysdeps/unix/sysv/linux/generic/not-cancel.h: New file.
diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list b/sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list
index d1ae029..58b4057 100644
--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list
+++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list
@@ -3,3 +3,5 @@
 # rlimit APIs
 getrlimit	-	getrlimit	i:ip	__getrlimit	getrlimit	
 setrlimit	-	setrlimit	i:ip	__setrlimit	setrlimit	
+prlimit64	EXTRA	prlimit64	i:iipp	prlimit64
+fanotify_mark	EXTRA	fanotify_mark	i:iiiiis	fanotify_mark

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog.linux-generic                            |    5 +++
 ChangeLog.tile                                     |   31 ++++++++++++++++++++
 sysdeps/tile/dl-start.S                            |    1 +
 sysdeps/tile/fegetenv.c                            |    2 +
 sysdeps/tile/tilegx/memcpy.c                       |   13 +++++++-
 .../sysv/linux/generic/wordsize-32/syscalls.list   |    2 +
 sysdeps/unix/sysv/linux/tile/getcontext.S          |    2 +-
 sysdeps/unix/sysv/linux/tile/nptl/clone.S          |    3 +-
 sysdeps/unix/sysv/linux/tile/setcontext.S          |   12 ++++----
 sysdeps/unix/sysv/linux/tile/swapcontext.S         |   11 ++++--
 sysdeps/unix/sysv/linux/tile/sys/dataplane.h       |    4 ++-
 sysdeps/unix/sysv/linux/tile/ucontext_i.h          |    3 +-
 12 files changed, 74 insertions(+), 15 deletions(-)


hooks/post-receive
-- 
Community source repository for glibc add-on ports


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]