From 975cdd1f9d4c91cba6a2d69e3214947187c46241 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Jun 13 2008 17:17:16 +0000 Subject: 2.8.90-7 --- diff --git a/.cvsignore b/.cvsignore index 226d590..65d108f 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ -glibc-20080612T1619.tar.bz2 -glibc-fedora-20080612T1619.tar.bz2 +glibc-20080613T1601.tar.bz2 +glibc-fedora-20080613T1601.tar.bz2 diff --git a/glibc-fedora.patch b/glibc-fedora.patch index ef6f0e5..99f1cd8 100644 --- a/glibc-fedora.patch +++ b/glibc-fedora.patch @@ -2315,3 +2315,79 @@ cfi_startproc; PSEUDO_END (BP_SYM (__clone)) +--- libc/nscd/connections.c 12 Jun 2008 22:39:35 -0000 1.113 ++++ libc/nscd/connections.c 13 Jun 2008 16:30:09 -0000 1.114 +@@ -51,6 +51,7 @@ + #include "nscd.h" + #include "dbg_log.h" + #include "selinux.h" ++#include + #ifdef HAVE_SENDFILE + # include + #endif +@@ -228,6 +229,9 @@ static int sock; + #ifdef HAVE_INOTIFY + /* Inotify descriptor. */ + static int inotify_fd = -1; ++ ++/* Watch descriptor for resolver configuration file. */ ++static int resolv_conf_descr = -1; + #endif + + /* Number of times clients had to wait. */ +@@ -824,7 +828,7 @@ cannot set socket to close on exec: %s; + if (dbs[cnt].check_file) + { + #ifdef HAVE_INOTIFY +- if (inotify_fd == -1 ++ if (inotify_fd < 0 + || (dbs[cnt].inotify_descr + = inotify_add_watch (inotify_fd, dbs[cnt].filename, + IN_DELETE_SELF | IN_MODIFY)) < 0) +@@ -845,6 +849,14 @@ cannot set socket to close on exec: %s; + dbs[cnt].file_mtime = st.st_mtime; + } + } ++ ++#ifdef HAVE_INOTIFY ++ if (cnt == hstdb && inotify_fd >= -1) ++ /* We also monitor the resolver configuration file. */ ++ resolv_conf_descr = inotify_add_watch (inotify_fd, ++ _PATH_RESCONF, ++ IN_DELETE_SELF | IN_MODIFY); ++#endif + } + + /* Create the socket. */ +@@ -1798,6 +1810,7 @@ main_loop_poll (void) + { + if (conns[1].revents != 0) + { ++ bool done[lastdb] = { false, }; + union + { + struct inotify_event i; +@@ -1810,12 +1823,21 @@ main_loop_poll (void) + { + /* Check which of the files changed. */ + for (size_t dbcnt = 0; dbcnt < lastdb; ++dbcnt) +- if (inev.i.wd == dbs[dbcnt].inotify_descr) ++ if (!done[dbcnt] ++ && (inev.i.wd == dbs[dbcnt].inotify_descr ++ || (dbcnt == hstdb ++ && inev.i.wd == resolv_conf_descr))) + { +- pthread_mutex_trylock (&dbs[dbcnt].prune_lock); ++ if (dbcnt == hstdb ++ && inev.i.wd == resolv_conf_descr) ++ res_init (); ++ ++ pthread_mutex_lock (&dbs[dbcnt].prune_lock); + dbs[dbcnt].clear_cache = 1; + pthread_mutex_unlock (&dbs[dbcnt].prune_lock); + pthread_cond_signal (&dbs[dbcnt].prune_cond); ++ ++ done[dbcnt] = true; + break; + } + } diff --git a/glibc.spec b/glibc.spec index 4189c0d..6df7d4e 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,6 +1,6 @@ -%define glibcdate 20080612T1619 +%define glibcdate 20080613T1601 %define glibcname glibc -%define glibcsrcdir glibc-20080612T1619 +%define glibcsrcdir glibc-20080613T1601 %define glibc_release_tarballs 0 %define run_glibc_tests 1 %define auxarches i586 i686 athlon sparcv9v sparc64v alphaev6 @@ -23,7 +23,7 @@ Summary: The GNU libc libraries Name: glibc Version: 2.8.90 -Release: 6 +Release: 7 # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries. # Things that are linked directly into dynamically linked programs # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional @@ -980,6 +980,12 @@ rm -f *.filelist* %endif %changelog +* Fri Jun 13 2008 Jakub Jelinek 2.8.90-7 +- update from trunk + - avoid *lround* on ppc* clobbering cr3/cr4 registers (#450790) + - further nscd fixes (#450704) + - use inotify in nscd to watch files + * Thu Jun 12 2008 Jakub Jelinek 2.8.90-6 - update from trunk - nscd fixes (#450704) diff --git a/sources b/sources index 85320be..126cca3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -3b2be111f54cb4c762794621c7ff7041 glibc-20080612T1619.tar.bz2 -094c545fc02eb210379cb80853075baa glibc-fedora-20080612T1619.tar.bz2 +d23b4641cc3075ed31a5e8b78ff47fc5 glibc-20080613T1601.tar.bz2 +347dbe3afa3cfb62f67b8175c0e432ab glibc-fedora-20080613T1601.tar.bz2