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]

GNU C Library master sources branch master updated. glibc-2.21-654-gcf31a2c


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 "GNU C Library master sources".

The branch, master has been updated
       via  cf31a2c79957936b60de34ea1e718e892baf669c (commit)
       via  18855eca3202da90bd4111168a1bf15f7100c435 (commit)
      from  1eb8bf804937bea53f5e8cfa2f84d256373cdb64 (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://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=cf31a2c79957936b60de34ea1e718e892baf669c

commit cf31a2c79957936b60de34ea1e718e892baf669c
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Tue Jul 28 02:19:49 2015 -0400

    ia64: atomic.h: fix atomic_exchange_and_add 64bit handling
    
    Way back in 2005 the atomic_exchange_and_add function was cleaned up to
    avoid the explicit size checking and instead let gcc handle things itself.
    Unfortunately that change ended up leaving beyond a cast to int, even when
    the incoming value was a long.  This has flown under the radar for a long
    time due to the function not being heavily used in the tree (especially as
    a full 64bit field), but a recent change to semaphores made some nptl tests
    fail reliably.  This is due to the code packing two 32bit values into one
    64bit variable (where the high 32bits contained the number of waiters), and
    then the whole variable being atomically updated between threads.  On ia64,
    that meant we never atomically updated the count, so sometimes the sem_post
    would not wake up the waiters.

diff --git a/ChangeLog b/ChangeLog
index b177adc..cd2d827 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2015-07-27  Mike Frysinger  <vapier@gentoo.org>
 
+	* sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Define
+	directly in terms of __sync_fetch_and_add and delete (int) cast.
+
+2015-07-27  Mike Frysinger  <vapier@gentoo.org>
+
 	* sysdeps/unix/sysv/linux/ia64/Makefile (CPPFLAGS): Delete
 	the -D_ASM_IA64_CURRENT_H flag.
 
diff --git a/sysdeps/ia64/bits/atomic.h b/sysdeps/ia64/bits/atomic.h
index 0e9dfc7..4c2b540 100644
--- a/sysdeps/ia64/bits/atomic.h
+++ b/sysdeps/ia64/bits/atomic.h
@@ -82,9 +82,7 @@ typedef uintmax_t uatomic_max_t;
   (__sync_synchronize (), __sync_lock_test_and_set (mem, value))
 
 #define atomic_exchange_and_add(mem, value) \
-  ({ __typeof (*mem) __result;						      \
-     __result = __sync_fetch_and_add ((mem), (int) (value));		      \
-     __result; })
+  __sync_fetch_and_add ((mem), (value))
 
 #define atomic_decrement_if_positive(mem) \
   ({ __typeof (*mem) __oldval, __val;					      \

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=18855eca3202da90bd4111168a1bf15f7100c435

commit 18855eca3202da90bd4111168a1bf15f7100c435
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Tue Jul 28 00:15:18 2015 -0400

    ia64: clean up old kernel headers cruft
    
    This define made more sense in the pre-sanitized kernel headers days,
    but since we require kernel versions that are sanitized, we don't need
    this hack anymore.

diff --git a/ChangeLog b/ChangeLog
index cf1efcc..b177adc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2015-07-27  Mike Frysinger  <vapier@gentoo.org>
 
+	* sysdeps/unix/sysv/linux/ia64/Makefile (CPPFLAGS): Delete
+	the -D_ASM_IA64_CURRENT_H flag.
+
+2015-07-27  Mike Frysinger  <vapier@gentoo.org>
+
 	[BZ #18641]
 	* pwd/pwd.h (putpwent): Delete __nonnull markings.
 
diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile
index 359e0c2..1de62c5 100644
--- a/sysdeps/unix/sysv/linux/ia64/Makefile
+++ b/sysdeps/unix/sysv/linux/ia64/Makefile
@@ -21,10 +21,6 @@ ifeq ($(subdir),rt)
 librt-routines += rt-sysdep
 endif
 
-# This is a crude attempt to silence the compiler which complains about
-# then 'current' definition in the kernel headers.
-CPPFLAGS += -D_ASM_IA64_CURRENT_H
-
 ifeq ($(subdir),nptl)
 libpthread-sysdep_routines += __ia64_longjmp unwind_longjmp __sigstack_longjmp
 endif

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

Summary of changes:
 ChangeLog                             |   10 ++++++++++
 sysdeps/ia64/bits/atomic.h            |    4 +---
 sysdeps/unix/sysv/linux/ia64/Makefile |    4 ----
 3 files changed, 11 insertions(+), 7 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


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