[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r7498 - in /fsf/trunk/libc: ChangeLog nptl/ChangeLog nptl/descr.h nptl/sysdeps/x86_64/tls.h nscd/connections.c nscd/nscd.h
- To: commits@xxxxxxxxxx
- Subject: [commits] r7498 - in /fsf/trunk/libc: ChangeLog nptl/ChangeLog nptl/descr.h nptl/sysdeps/x86_64/tls.h nscd/connections.c nscd/nscd.h
- From: eglibc@xxxxxxxxxx
- Date: Tue, 09 Dec 2008 08:01:58 -0000
Author: eglibc
Date: Tue Dec 9 00:01:58 2008
New Revision: 7498
Log:
Import glibc-mainline for 2008-12-09
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/nptl/ChangeLog
fsf/trunk/libc/nptl/descr.h
fsf/trunk/libc/nptl/sysdeps/x86_64/tls.h
fsf/trunk/libc/nscd/connections.c
fsf/trunk/libc/nscd/nscd.h
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Tue Dec 9 00:01:58 2008
@@ -1,3 +1,11 @@
+2008-12-03 Petr Baudis <pasky@xxxxxxx>
+
+ [BZ #7067]
+ * nscd/connections.c (invalidate_cache): Use prune_run_lock
+ instead of prune_lock.
+ (nscd_run_prune): Before calling prune_cache, take prune_run_lock.
+ * nscd/nscd.h (database_dyn): Add prune_run_cache.
+
2008-12-07 Ulrich Drepper <drepper@xxxxxxxxxx>
* resolv/res_send.c (send_dg): Use correct guards for SOCK_CLOEXEC
@@ -11,6 +19,16 @@
* nis/nss_nis/nis-hosts.c (_nss_nis_gethostbyname4_r): Fix memory
handling for host name aliases.
+
+2008-11-24 Arkadiusz MiÅkiewicz <arekm@xxxxxxxx>
+
+ * sysdeps/i386/dl-tlsdesc.S (_dl_tlsdesc_dynamic): Use LOAD_PIC_REG
+ instead of doing things manually.
+
+2008-11-26 Chris Steel <chris.steel.lnx@xxxxxxxxxxxxxx>
+
+ * posix/regex_internal.h (build_wcs_upper_buffer):
+ Return type is reg_error_t.
2008-12-05 Ulrich Drepper <drepper@xxxxxxxxxx>
@@ -3116,7 +3134,7 @@
* nscd/aicache.c (addhstaiX): Fix default TTL handling.
- * inet/getnetgrent.c (setup): Encrypt static pointer.
+ * inet/getnetgrent_r.c (setup): Encrypt static pointer.
2007-10-28 Ulrich Drepper <drepper@xxxxxxxxxx>
Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Tue Dec 9 00:01:58 2008
@@ -1,12 +1,9 @@
-2008-11-24 Arkadiusz MiÅkiewicz <arekm@xxxxxxxx>
-
- * sysdeps/i386/dl-tlsdesc.S (_dl_tlsdesc_dynamic): Use LOAD_PIC_REG
- instead of doing things manually.
-
-2008-11-26 Chris Steel <chris.steel.lnx@xxxxxxxxxxxxxx>
-
- * posix/regex_internal.h (build_wcs_upper_buffer):
- Return type is reg_error_t.
+2008-12-08 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ * sysdeps/x86_64/tls.h (tcbhead_t): Add fields reserved for TM
+ implementation. Add necessary padding and.
+ * descr.h (struct pthread): Increase padding for tcbhead_t to 24
+ words.
2008-12-04 Kaz Kojima <kkojima@xxxxxxxxxxxxxx>
Modified: fsf/trunk/libc/nptl/descr.h
==============================================================================
--- fsf/trunk/libc/nptl/descr.h (original)
+++ fsf/trunk/libc/nptl/descr.h Tue Dec 9 00:01:58 2008
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
@@ -143,7 +143,7 @@
is private and subject to change without affecting the official ABI.
We just have it here in case it might be convenient for some
implementation-specific instrumentation hack or suchlike. */
- void *__padding[16];
+ void *__padding[24];
};
/* This descriptor's link on the `stack_used' or `__stack_user' list. */
Modified: fsf/trunk/libc/nptl/sysdeps/x86_64/tls.h
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/x86_64/tls.h (original)
+++ fsf/trunk/libc/nptl/sysdeps/x86_64/tls.h Tue Dec 9 00:01:58 2008
@@ -1,5 +1,5 @@
/* Definition for thread-local data handling. nptl/x86_64 version.
- Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 2002-2007, 2008 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
@@ -28,6 +28,7 @@
# include <stdlib.h>
# include <sysdep.h>
# include <kernel-features.h>
+# include <bits/wordsize.h>
/* Type for the dtv. */
@@ -56,7 +57,14 @@
unsigned long int vgetcpu_cache[2];
#ifndef __ASSUME_PRIVATE_FUTEX
int private_futex;
-#endif
+#else
+ int __unused1;
+#endif
+#if __WORDSIZE == 64
+ int __pad1;
+#endif
+ /* Reservation of some values for the TM ABI. */
+ void *__private_tm[5];
} tcbhead_t;
#else /* __ASSEMBLER__ */
Modified: fsf/trunk/libc/nscd/connections.c
==============================================================================
--- fsf/trunk/libc/nscd/connections.c (original)
+++ fsf/trunk/libc/nscd/connections.c Tue Dec 9 00:01:58 2008
@@ -109,6 +109,7 @@
[pwddb] = {
.lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
.prune_lock = PTHREAD_MUTEX_INITIALIZER,
+ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER,
.enabled = 0,
.check_file = 1,
.persistent = 0,
@@ -129,6 +130,7 @@
[grpdb] = {
.lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
.prune_lock = PTHREAD_MUTEX_INITIALIZER,
+ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER,
.enabled = 0,
.check_file = 1,
.persistent = 0,
@@ -149,6 +151,7 @@
[hstdb] = {
.lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
.prune_lock = PTHREAD_MUTEX_INITIALIZER,
+ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER,
.enabled = 0,
.check_file = 1,
.persistent = 0,
@@ -169,6 +172,7 @@
[servdb] = {
.lock = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
.prune_lock = PTHREAD_MUTEX_INITIALIZER,
+ .prune_run_lock = PTHREAD_MUTEX_INITIALIZER,
.enabled = 0,
.check_file = 1,
.persistent = 0,
@@ -976,9 +980,9 @@
if (dbs[number].enabled)
{
- pthread_mutex_lock (&dbs[number].prune_lock);
+ pthread_mutex_lock (&dbs[number].prune_run_lock);
prune_cache (&dbs[number], LONG_MAX, fd);
- pthread_mutex_unlock (&dbs[number].prune_lock);
+ pthread_mutex_unlock (&dbs[number].prune_run_lock);
}
else
{
@@ -1493,6 +1497,7 @@
dbs[my_number].wakeup_time = now + CACHE_PRUNE_INTERVAL + my_number;
pthread_mutex_t *prune_lock = &dbs[my_number].prune_lock;
+ pthread_mutex_t *prune_run_lock = &dbs[my_number].prune_run_lock;
pthread_cond_t *prune_cond = &dbs[my_number].prune_cond;
pthread_mutex_lock (prune_lock);
@@ -1526,7 +1531,12 @@
pthread_mutex_unlock (prune_lock);
+ /* We use a separate lock for running the prune function (instead
+ of keeping prune_lock locked) because this enables concurrent
+ invocations of cache_add which might modify the timeout value. */
+ pthread_mutex_lock (prune_run_lock);
next_wait = prune_cache (&dbs[my_number], prune_now, -1);
+ pthread_mutex_unlock (prune_run_lock);
next_wait = MAX (next_wait, CACHE_PRUNE_INTERVAL);
/* If clients cannot determine for sure whether nscd is running
Modified: fsf/trunk/libc/nscd/nscd.h
==============================================================================
--- fsf/trunk/libc/nscd/nscd.h (original)
+++ fsf/trunk/libc/nscd/nscd.h Tue Dec 9 00:01:58 2008
@@ -69,6 +69,7 @@
pthread_rwlock_t lock;
pthread_cond_t prune_cond;
pthread_mutex_t prune_lock;
+ pthread_mutex_t prune_run_lock;
time_t wakeup_time;
int enabled;