From 68357f8e9f15f7a0a083b7a157292f984d54299c Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Tue, 24 Jan 2012 21:23:41 -0700 Subject: [PATCH] - Fix first workday/weekday for it_IT (#622499) - Fix type to uint16_t based on upstream comments (729661) - Do not cache negative results in nscd if these are transient (#784402) --- glibc-rh622499.patch | 13 ++++ glibc-rh729661.patch | 8 +-- glibc-rh784402.patch | 144 +++++++++++++++++++++++++++++++++++++++++++ glibc.spec | 7 +++ 4 files changed, 168 insertions(+), 4 deletions(-) create mode 100644 glibc-rh622499.patch create mode 100644 glibc-rh784402.patch diff --git a/glibc-rh622499.patch b/glibc-rh622499.patch new file mode 100644 index 0000000..6e26a85 --- /dev/null +++ b/glibc-rh622499.patch @@ -0,0 +1,13 @@ +diff --git a/localedata/locales/lt_LT b/localedata/locales/lt_LT +index b709d83..63cb6de 100644 +--- a/localedata/locales/lt_LT ++++ b/localedata/locales/lt_LT +@@ -2191,6 +2191,8 @@ t_fmt_ampm "" + date_fmt "/ + / + " ++first_weekday 2 ++first_workday 2 + END LC_TIME + + LC_MESSAGES diff --git a/glibc-rh729661.patch b/glibc-rh729661.patch index f297970..5d4ba8d 100644 --- a/glibc-rh729661.patch +++ b/glibc-rh729661.patch @@ -6,7 +6,7 @@ diff -rup a/elf/dl-deps.c b/elf/dl-deps.c of the search list. */ i = 1; - char seen[nlist]; -+ unsigned short seen[nlist]; ++ uint16_t seen[nlist]; memset (seen, 0, nlist * sizeof (seen[0])); while (1) { @@ -22,7 +22,7 @@ diff -rup a/elf/dl-deps.c b/elf/dl-deps.c } - char this_seen = seen[i]; -+ unsigned short this_seen = seen[i]; ++ uint16_t this_seen = seen[i]; memmove (&seen[i], &seen[i + 1], (k - i) * sizeof (seen[0])); seen[k] = this_seen; @@ -34,7 +34,7 @@ diff -rup a/elf/dl-fini.c b/elf/dl-fini.c of the search list for the main namespace. */ unsigned int i = ns == LM_ID_BASE; - char seen[nmaps]; -+ unsigned short seen[nmaps]; ++ uint16_t seen[nmaps]; memset (seen, 0, nmaps * sizeof (seen[0])); while (1) { @@ -50,7 +50,7 @@ diff -rup a/elf/dl-fini.c b/elf/dl-fini.c } - char this_seen = seen[i]; -+ unsigned short this_seen = seen[i]; ++ uint16_t this_seen = seen[i]; memmove (&seen[i], &seen[i + 1], (k - i) * sizeof (seen[0])); seen[k] = this_seen; diff --git a/glibc-rh784402.patch b/glibc-rh784402.patch new file mode 100644 index 0000000..5e783f5 --- /dev/null +++ b/glibc-rh784402.patch @@ -0,0 +1,144 @@ +commit 3e1aa84e7f9f38815f5db9cd7654b1a9497cf6e4 +Author: Ulrich Drepper +Date: Fri Jan 20 22:39:54 2012 -0500 + + Do not cache negative results in nscd if these are transient + +diff --git a/nscd/aicache.c b/nscd/aicache.c +index aaaf80d..e1f1244 100644 +--- a/nscd/aicache.c ++++ b/nscd/aicache.c +@@ -1,5 +1,5 @@ + /* Cache handling for host lookup. +- Copyright (C) 2004-2008, 2009, 2010, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2004-2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2004. + +@@ -514,8 +514,9 @@ next_nip: + if (fd != -1) + TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL)); + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store the ++ result, so be it. */ ++ if (rc4 == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/grpcache.c b/nscd/grpcache.c +index e9607c6..a698f36 100644 +--- a/nscd/grpcache.c ++++ b/nscd/grpcache.c +@@ -1,5 +1,5 @@ + /* Cache handling for group lookup. +- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1998. + +@@ -120,8 +120,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req, + else + written = total; + +- /* If we cannot permanently store the result, so be it. */ +- if (db->negtimeout == 0) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/hstcache.c b/nscd/hstcache.c +index 4d68ade..c72feaa 100644 +--- a/nscd/hstcache.c ++++ b/nscd/hstcache.c +@@ -1,5 +1,5 @@ + /* Cache handling for host lookup. +- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1998. + +@@ -141,8 +141,9 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req, + MSG_NOSIGNAL)) != total) + all_written = false; + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c +index 4ac9942..2019991 100644 +--- a/nscd/initgrcache.c ++++ b/nscd/initgrcache.c +@@ -1,5 +1,5 @@ + /* Cache handling for host lookup. +- Copyright (C) 2004-2006, 2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2004-2006, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2004. + +@@ -202,8 +202,9 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (all_tryagain || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c +index 49e130c..e2ba09d 100644 +--- a/nscd/pwdcache.c ++++ b/nscd/pwdcache.c +@@ -1,5 +1,5 @@ + /* Cache handling for passwd lookup. +- Copyright (C) 1998-2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 1998-2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1998. + +@@ -124,8 +124,9 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) +diff --git a/nscd/servicescache.c b/nscd/servicescache.c +index d3d5dce..a6337e3 100644 +--- a/nscd/servicescache.c ++++ b/nscd/servicescache.c +@@ -1,5 +1,5 @@ + /* Cache handling for services lookup. +- Copyright (C) 2007, 2008, 2009, 2011 Free Software Foundation, Inc. ++ Copyright (C) 2007, 2008, 2009, 2011, 2012 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2007. + +@@ -108,8 +108,9 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req, + written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, + MSG_NOSIGNAL)); + +- /* If we cannot permanently store the result, so be it. */ +- if (__builtin_expect (db->negtimeout == 0, 0)) ++ /* If we have a transient error or cannot permanently store ++ the result, so be it. */ ++ if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0)) + { + /* Mark the old entry as obsolete. */ + if (dh != NULL) diff --git a/glibc.spec b/glibc.spec index 9203f2f..c9aaae5 100644 --- a/glibc.spec +++ b/glibc.spec @@ -56,6 +56,8 @@ Patch5: %{name}-rh769421.patch Patch6: %{name}-rh729661.patch Patch7: %{name}-rh446078.patch Patch8: %{name}-rh454629.patch +Patch9: %{name}-rh784402.patch +Patch10: %{name}-rh622499.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Obsoletes: glibc-profile < 2.4 @@ -282,6 +284,8 @@ rm -rf %{glibcportsdir} %patch6 -p1 %patch7 -p1 %patch8 -p1 +%patch9 -p1 +%patch10 -p1 # A lot of programs still misuse memcpy when they have to use # memmove. The memcpy implementation below is not tolerant at @@ -1136,6 +1140,9 @@ rm -f *.filelist* %changelog * Tue Jan 24 2012 Jeff Law - 2.15-4 - Update ports from master. + - Fix first workday/weekday for it_IT (#622499) + - Fix type to uint16_t based on upstream comments (729661) + - Do not cache negative results in nscd if these are transient (#784402) * Mon Jan 23 2012 Jeff Law - 2.15-3 - Fix cycle detection (#729661)