From 7bfa311ff51999f9e92620268e493959a2f7bfb4 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 5 Apr 2010 19:43:05 -0700 Subject: [PATCH 01/35] Obey LD_HWCAP_MASK in ld.so.cache lookups. --- ChangeLog | 4 ++++ elf/dl-cache.c | 13 ++++++++----- elf/dl-support.c | 10 +++++++++- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7485ec5429..cb02ba1e8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2010-04-05 Roland McGrath + * elf/dl-cache.c (_dl_load_cache_lookup): Obey dl_hwcap_mask. + + * elf/dl-support.c (_dl_hwcap_mask): New variable. + * elf/rtld.c (dl_main) [HAVE_AUX_VECTOR]: Add a cast. 2010-04-05 Ulrich Drepper diff --git a/elf/dl-cache.c b/elf/dl-cache.c index bbeba77e4a..5a01c2ed1d 100644 --- a/elf/dl-cache.c +++ b/elf/dl-cache.c @@ -1,5 +1,6 @@ /* Support for reading /etc/ld.so.cache files written by Linux ldconfig. - Copyright (C) 1996-2002, 2003, 2004, 2006 Free Software Foundation, Inc. + Copyright (C) 1996-2002,2003,2004,2006,2010 + 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 @@ -255,17 +256,19 @@ _dl_load_cache_lookup (const char *name) if (platform != (uint64_t) -1) platform = 1ULL << platform; - /* Only accept hwcap if it's for the right platform. */ #define _DL_HWCAP_TLS_MASK (1LL << 63) + uint64_t hwcap_exclude = ~((GLRO(dl_hwcap) & GLRO(dl_hwcap_mask)) + | _DL_HWCAP_PLATFORM | _DL_HWCAP_TLS_MASK); + + /* Only accept hwcap if it's for the right platform. */ #define HWCAP_CHECK \ + if (lib->hwcap & hwcap_exclude) \ + continue; \ if (GLRO(dl_osversion) && lib->osversion > GLRO(dl_osversion)) \ continue; \ if (_DL_PLATFORMS_COUNT \ && (lib->hwcap & _DL_HWCAP_PLATFORM) != 0 \ && (lib->hwcap & _DL_HWCAP_PLATFORM) != platform) \ - continue; \ - if (lib->hwcap \ - & ~(GLRO(dl_hwcap) | _DL_HWCAP_PLATFORM | _DL_HWCAP_TLS_MASK)) \ continue SEARCH_CACHE (cache_new); } diff --git a/elf/dl-support.c b/elf/dl-support.c index bcf0e2a560..65b25750de 100644 --- a/elf/dl-support.c +++ b/elf/dl-support.c @@ -1,5 +1,5 @@ /* Support for dynamic linking code in static libc. - Copyright (C) 1996-2008, 2009 Free Software Foundation, Inc. + Copyright (C) 1996-2008,2009,2010 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 @@ -126,6 +126,14 @@ ElfW(Phdr) *_dl_phdr; size_t _dl_phnum; uint64_t _dl_hwcap __attribute__ ((nocommon)); +/* This is not initialized to HWCAP_IMPORTANT, matching the definition + of _dl_important_hwcaps, below, where no hwcap strings are ever + used. This mask is still used to mediate the lookups in the cache + file. Since there is no way to set this nonzero (we don't grok the + LD_HWCAP_MASK environment variable here), there is no real point in + setting _dl_hwcap nonzero below, but we do anyway. */ +uint64_t _dl_hwcap_mask __attribute__ ((nocommon)); + /* Prevailing state of the stack, PF_X indicating it's executable. */ ElfW(Word) _dl_stack_flags = PF_R|PF_W|PF_X; From 8824d4aa66d0bf343eac5176ebd0f5601462b677 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 6 Apr 2010 17:32:29 -0700 Subject: [PATCH 02/35] Fix libc-abis handling for add-ons. --- ChangeLog | 4 ++++ Makerules | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 48bdfecec4..71652e44d5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-04-06 Joseph Myers + + * Makerules (libc-abis): Fix search for libc-abis in add-ons. + 2010-04-05 Thomas Schwinge * sysdeps/gnu/unwind-resume.c: New, moved from nptl/sysdeps/pthread/. diff --git a/Makerules b/Makerules index d5ff383770..debac299c2 100644 --- a/Makerules +++ b/Makerules @@ -111,7 +111,8 @@ endif # $(versioning) = yes ifndef avoid-generated before-compile := $(common-objpfx)libc-abis.h $(before-compile) -libc-abis := $(firstword $(wildcard $(foreach D,$(add-ons), $(..)libc-abis)) \ +libc-abis := $(firstword $(wildcard $(foreach D,$(add-ons), \ + $(..)$D/libc-abis)) \ libc-abis) $(common-objpfx)libc-abis.h: $(..)scripts/gen-libc-abis $(libc-abis) $(SHELL) $(..)scripts/gen-libc-abis \ From 76b667f12d08588854a93774176ff37116049ff6 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 7 Apr 2010 06:38:35 -0700 Subject: [PATCH 03/35] Fix non-add-on handling of libc-abis. --- ChangeLog | 4 ++++ Makerules | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 71652e44d5..e46656b1b4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-04-06 H.J. Lu + + * Makerules (libc-abis): Add $(..) to libc-abis. + 2010-04-06 Joseph Myers * Makerules (libc-abis): Fix search for libc-abis in add-ons. diff --git a/Makerules b/Makerules index debac299c2..9c15a27a5d 100644 --- a/Makerules +++ b/Makerules @@ -113,7 +113,7 @@ ifndef avoid-generated before-compile := $(common-objpfx)libc-abis.h $(before-compile) libc-abis := $(firstword $(wildcard $(foreach D,$(add-ons), \ $(..)$D/libc-abis)) \ - libc-abis) + $(..)libc-abis) $(common-objpfx)libc-abis.h: $(..)scripts/gen-libc-abis $(libc-abis) $(SHELL) $(..)scripts/gen-libc-abis \ $(base-machine)-$(config-vendor)-$(config-os) \ From 71170aa0a956c59d8bad0cf6f5ed31d78c90e332 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 7 Apr 2010 07:37:39 -0700 Subject: [PATCH 04/35] Implement new mode for NIS passwd.adjunct.byname table. The passwd.adjunct.byname table will not be used to fill in password fields in the passwd.byname replies. Instead it is used to synthesize the shadow.byname table, should it be missing. This is a useful mode in some installations involving Solaris. --- ChangeLog | 22 ++++++++++++ NEWS | 10 ++++-- nis/libnsl.h | 3 +- nis/nss | 11 +++++- nis/nss-default.c | 5 +-- nis/nss_nis/nis-pwd.c | 51 +++++++++++++++------------ nis/nss_nis/nis-spwd.c | 79 +++++++++++++++++++++++++++++++----------- 7 files changed, 132 insertions(+), 49 deletions(-) diff --git a/ChangeLog b/ChangeLog index e46656b1b4..d59224b46d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +2010-04-07 Ulrich Drepper + + [BZ #11134] + * nis/libnsl.h (NSS_FLAG_ADJUNCT_AS_SHADOW): Define. + * nis/nss: Document new ADJUNCT_AS_SHADOW variable. + * nis/nss-default.c: Handle ADJUNCT_AS_SHADOW variable. + * nis/nss_nis/nis-pwd.c (internal_nis_endpwent): Minor cleanups. + (internal_nis_getpwent_r): Don't fill in password from adjunct table + if NSS_FLAG_ADJUNCT_AS_SHADOW is set. + (_nss_nis_getpwnam_r): Likewise. + (_nss_nis_getpwuid_r): Likewise. + * nis/nss_nis/nis-spwd.c (ent_adjunct_used): Nee global variable. + (_nss_nis_setspent): Also reset ent_adjunct_used. + (internal_nis_getspent_r): If new_start is set and shadow.byname table + does not exist and NSS_FLAG_ADJUNCT_AS_SHADOW is set, try to get + passwd.adjunct.byname table. If new_start is not set get next entry + from the initially used table. Synthesize shadow.byname table if + necessary by adding two empty fields. + (_nss_nis_getspnam_r): If shadow.byname table does not exist and + NSS_FLAG_ADJUNCT_AS_SHADOW is set, try to get passwd.adjunct.byname + table and synthesize shadow.byname table. + 2010-04-06 H.J. Lu * Makerules (libc-abis): Add $(..) to libc-abis. diff --git a/NEWS b/NEWS index e1fb6a5766..c19f3ae712 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ -GNU C Library NEWS -- history of user-visible changes. 2009-12-8 -Copyright (C) 1992-2008, 2009 Free Software Foundation, Inc. +GNU C Library NEWS -- history of user-visible changes. 2010-4-7 +Copyright (C) 1992-2009, 2010 Free Software Foundation, Inc. See the end for copying conditions. Please send GNU C library bug reports via @@ -9,6 +9,12 @@ Version 2.12 * New Linux interface: recvmmsg +* New NIS mode selector ADJUNCT_AS_SHADOW. The passwd.adjunct.byname table + will not be used to fill in password fields in the passwd.byname replies. + Instead it is used to synthesize the shadow.byname table, should it be + missing. This is a useful mode in some installations involving Solaris. + Implemented by Ulrich Drepper. + Version 2.11 diff --git a/nis/libnsl.h b/nis/libnsl.h index c6ceb321d7..dc15930716 100644 --- a/nis/libnsl.h +++ b/nis/libnsl.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2005, 2006 Free Software Foundation, Inc. +/* Copyright (C) 2005, 2006, 2010 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 @@ -21,6 +21,7 @@ #define NSS_FLAG_NETID_AUTHORITATIVE 1 #define NSS_FLAG_SERVICES_AUTHORITATIVE 2 #define NSS_FLAG_SETENT_BATCH_READ 4 +#define NSS_FLAG_ADJUNCT_AS_SHADOW 8 /* Get current set of default flags. */ diff --git a/nis/nss b/nis/nss index aab40ab3f0..0ac6774a1f 100644 --- a/nis/nss +++ b/nis/nss @@ -1,7 +1,7 @@ # /etc/default/nss # This file can theoretically contain a bunch of customization variables # for Name Service Switch in the GNU C library. For now there are only -# three variables: +# four variables: # # NETID_AUTHORITATIVE # If set to TRUE, the initgroups() function will accept the information @@ -26,3 +26,12 @@ # might result into a network communication with the server to get # the next entry. #SETENT_BATCH_READ=TRUE +# +# ADJUNCT_AS_SHADOW +# If set to TRUE, the passwd routines in the NIS NSS module will not +# use the passwd.adjunct.byname tables to fill in the password data +# in the passwd structure. This is a security problem if the NIS +# server cannot be trusted to send the passwd.adjuct table only to +# privileged clients. Instead the passwd.adjunct.byname table is +# used to synthesize the shadow.byname table if it does not exist. +#ADJUNCT_AS_SHADOW=TRUE diff --git a/nis/nss-default.c b/nis/nss-default.c index 046ddfee8d..d7a3293a49 100644 --- a/nis/nss-default.c +++ b/nis/nss-default.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 2001, 2004, 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 1996,2001,2004,2006,2007,2010 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 @@ -47,7 +47,8 @@ static const struct #define STRNLEN(s) s, sizeof (s) - 1 { STRNLEN ("NETID_AUTHORITATIVE"), NSS_FLAG_NETID_AUTHORITATIVE }, { STRNLEN ("SERVICES_AUTHORITATIVE"), NSS_FLAG_SERVICES_AUTHORITATIVE }, - { STRNLEN ("SETENT_BATCH_READ"), NSS_FLAG_SETENT_BATCH_READ } + { STRNLEN ("SETENT_BATCH_READ"), NSS_FLAG_SETENT_BATCH_READ }, + { STRNLEN ("ADJUNCT_AS_SHADOW"), NSS_FLAG_ADJUNCT_AS_SHADOW }, }; #define nvars (sizeof (vars) / sizeof (vars[0])) diff --git a/nis/nss_nis/nis-pwd.c b/nis/nss_nis/nis-pwd.c index fdc7dc9e1e..89de350c4d 100644 --- a/nis/nss_nis/nis-pwd.c +++ b/nis/nss_nis/nis-pwd.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1996-1998,2001-2003,2006,2009 Free Software Foundation, Inc. +/* Copyright (C) 1996-1998,2001-2003,2006,2009,2010 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1996. @@ -39,7 +40,7 @@ /* Protect global state against multiple changers */ __libc_lock_define_initialized (static, lock) -static bool_t new_start = 1; +static bool new_start = true; static char *oldkey; static int oldkeylen; static intern_t intern; @@ -108,13 +109,10 @@ _nis_saveit (int instatus, char *inkey, int inkeylen, char *inval, static void internal_nis_endpwent (void) { - new_start = 1; - if (oldkey != NULL) - { - free (oldkey); - oldkey = NULL; - oldkeylen = 0; - } + new_start = true; + free (oldkey); + oldkey = NULL; + oldkeylen = 0; struct response_t *curr = intern.start; @@ -264,18 +262,21 @@ internal_nis_getpwent_r (struct passwd *pwd, char *buffer, size_t buflen, } /* Check for adjunct style secret passwords. They can be - recognized by a password starting with "##". */ + recognized by a password starting with "##". We do not use + it if the passwd.adjunct.byname table is supposed to be used + as a shadow.byname replacement. */ char *p = strchr (result, ':'); size_t namelen; char *result2; int len2; - if (p != NULL /* This better should be true in all cases. */ + if ((_nsl_default_nss () & NSS_FLAG_ADJUNCT_AS_SHADOW) == 0 + && p != NULL /* This better should be true in all cases. */ && p[1] == '#' && p[2] == '#' && (namelen = p - result, yp_match (domain, "passwd.adjunct.byname", result, namelen, &result2, &len2)) == YPERR_SUCCESS) { - /* We found a passwd.adjunct entry. Merge encrypted + /* We found a passwd.adjunct.byname entry. Merge encrypted password therein into original result. */ char *encrypted = strchr (result2, ':'); char *endp; @@ -325,7 +326,7 @@ internal_nis_getpwent_r (struct passwd *pwd, char *buffer, size_t buflen, } while (isspace (*p)) - ++p; + ++p; if (!batch_read) free (result); @@ -346,7 +347,7 @@ internal_nis_getpwent_r (struct passwd *pwd, char *buffer, size_t buflen, free (oldkey); oldkey = outkey; oldkeylen = keylen; - new_start = 0; + new_start = false; } } while (parse_res < 1); @@ -399,16 +400,19 @@ _nss_nis_getpwnam_r (const char *name, struct passwd *pwd, } /* Check for adjunct style secret passwords. They can be recognized - by a password starting with "##". */ + by a password starting with "##". We do not use it if the + passwd.adjunct.byname table is supposed to be used as a shadow.byname + replacement. */ char *result2; int len2; char *p = strchr (result, ':'); - if (p != NULL /* This better should be true in all cases. */ + if ((_nsl_default_nss () & NSS_FLAG_ADJUNCT_AS_SHADOW) == 0 + && p != NULL /* This better should be true in all cases. */ && p[1] == '#' && p[2] == '#' && yp_match (domain, "passwd.adjunct.byname", name, namelen, &result2, &len2) == YPERR_SUCCESS) { - /* We found a passwd.adjunct entry. Merge encrypted password + /* We found a passwd.adjunct.byname entry. Merge encrypted password therein into original result. */ char *encrypted = strchr (result2, ':'); char *endp; @@ -465,7 +469,7 @@ _nss_nis_getpwnam_r (const char *name, struct passwd *pwd, if (__builtin_expect (parse_res < 1, 0)) { if (parse_res == -1) - return NSS_STATUS_TRYAGAIN; + return NSS_STATUS_TRYAGAIN; else return NSS_STATUS_NOTFOUND; } @@ -498,18 +502,21 @@ _nss_nis_getpwuid_r (uid_t uid, struct passwd *pwd, } /* Check for adjunct style secret passwords. They can be recognized - by a password starting with "##". */ + by a password starting with "##". We do not use it if the + passwd.adjunct.byname table is supposed to be used as a shadow.byname + replacement. */ char *result2; int len2; size_t namelen; char *p = strchr (result, ':'); - if (p != NULL /* This better should be true in all cases. */ + if ((_nsl_default_nss () & NSS_FLAG_ADJUNCT_AS_SHADOW) == 0 + && p != NULL /* This better should be true in all cases. */ && p[1] == '#' && p[2] == '#' && (namelen = p - result, yp_match (domain, "passwd.adjunct.byname", result, namelen, &result2, &len2)) == YPERR_SUCCESS) { - /* We found a passwd.adjunct entry. Merge encrypted password + /* We found a passwd.adjunct.byname entry. Merge encrypted password therein into original result. */ char *encrypted = strchr (result2, ':'); char *endp; @@ -567,7 +574,7 @@ _nss_nis_getpwuid_r (uid_t uid, struct passwd *pwd, if (__builtin_expect (parse_res < 1, 0)) { if (parse_res == -1) - return NSS_STATUS_TRYAGAIN; + return NSS_STATUS_TRYAGAIN; else return NSS_STATUS_NOTFOUND; } diff --git a/nis/nss_nis/nis-spwd.c b/nis/nss_nis/nis-spwd.c index 0fc4e17c42..3cf913b4cd 100644 --- a/nis/nss_nis/nis-spwd.c +++ b/nis/nss_nis/nis-spwd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-1998,2001,2002,2003,2006 Free Software Foundation, Inc. +/* Copyright (C) 1996-1998,2001-2003,2006,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1996. @@ -31,6 +31,7 @@ #include #include "nss-nis.h" +#include /* Get the declaration of the parser function. */ #define ENTNAME spent @@ -41,7 +42,8 @@ /* Protect global state against multiple changers */ __libc_lock_define_initialized (static, lock) -static bool_t new_start = 1; +static bool new_start = true; +static bool ent_adjunct_used; static char *oldkey; static int oldkeylen; @@ -50,7 +52,8 @@ _nss_nis_setspent (int stayopen) { __libc_lock_lock (lock); - new_start = 1; + new_start = true; + ent_adjunct_used = false; free (oldkey); oldkey = NULL; oldkeylen = 0; @@ -83,32 +86,50 @@ internal_nis_getspent_r (struct spwd *sp, char *buffer, size_t buflen, int yperr; if (new_start) - yperr = yp_first (domain, "shadow.byname", &outkey, &keylen, &result, - &len); + { + yperr = yp_first (domain, "shadow.byname", &outkey, &keylen, &result, + &len); + if (__builtin_expect (yperr == YPERR_MAP, 0) + && (_nsl_default_nss () & NSS_FLAG_ADJUNCT_AS_SHADOW)) + { + free (result); + yperr = yp_first (domain, "passwd.adjunct.byname", &outkey, + &keylen, &result, &len); + ent_adjunct_used = true; + } + } else - yperr = yp_next (domain, "shadow.byname", oldkey, oldkeylen, &outkey, - &keylen, &result, &len); + yperr = yp_next (domain, (ent_adjunct_used + ? "passwd.adjunct.byname" : "shadow.byname"), + oldkey, oldkeylen, &outkey, &keylen, &result, &len); if (__builtin_expect (yperr != YPERR_SUCCESS, 0)) - { + { enum nss_status retval = yperr2nss (yperr); if (retval == NSS_STATUS_TRYAGAIN) *errnop = errno; - return retval; - } + return retval; + } - if (__builtin_expect ((size_t) (len + 1) > buflen, 0)) - { - free (result); + if (__builtin_expect ((size_t) (len + (ent_adjunct_used ? 3 : 1)) + > buflen, 0)) + { + free (result); *errnop = ERANGE; - return NSS_STATUS_TRYAGAIN; - } + return NSS_STATUS_TRYAGAIN; + } char *p = strncpy (buffer, result, len); - buffer[len] = '\0'; + if (ent_adjunct_used) + /* This is an ugly trick. The format of passwd.adjunct.byname almost + matches the shadow.byname format except that the last two fields + are missing. Synthesize them by marking them empty. */ + strcpy (&buffer[len], "::"); + else + buffer[len] = '\0'; while (isspace (*p)) - ++p; + ++p; free (result); parse_res = _nss_files_parse_spent (p, sp, (void *) buffer, buflen, @@ -123,7 +144,7 @@ internal_nis_getspent_r (struct spwd *sp, char *buffer, size_t buflen, free (oldkey); oldkey = outkey; oldkeylen = keylen; - new_start = 0; + new_start = false; } while (!parse_res); @@ -154,15 +175,25 @@ _nss_nis_getspnam_r (const char *name, struct spwd *sp, *errnop = EINVAL; return NSS_STATUS_UNAVAIL; } + const size_t name_len = strlen (name); char *domain; if (__builtin_expect (yp_get_default_domain (&domain), 0)) return NSS_STATUS_UNAVAIL; + bool adjunct_used = false; char *result; int len; - int yperr = yp_match (domain, "shadow.byname", name, strlen (name), &result, + int yperr = yp_match (domain, "shadow.byname", name, name_len, &result, &len); + if (__builtin_expect (yperr == YPERR_MAP, 0) + && (_nsl_default_nss () & NSS_FLAG_ADJUNCT_AS_SHADOW)) + { + free (result); + yperr = yp_match (domain, "passwd.adjunct.byname", name, name_len, + &result, &len); + adjunct_used = true; + } if (__builtin_expect (yperr != YPERR_SUCCESS, 0)) { @@ -173,7 +204,7 @@ _nss_nis_getspnam_r (const char *name, struct spwd *sp, return retval; } - if (__builtin_expect ((size_t) (len + 1) > buflen, 0)) + if (__builtin_expect ((size_t) (len + (adjunct_used ? 3 : 1)) > buflen, 0)) { free (result); *errnop = ERANGE; @@ -181,7 +212,13 @@ _nss_nis_getspnam_r (const char *name, struct spwd *sp, } char *p = strncpy (buffer, result, len); - buffer[len] = '\0'; + if (__builtin_expect (adjunct_used, false)) + /* This is an ugly trick. The format of passwd.adjunct.byname almost + matches the shadow.byname format except that the last two fields + are missing. Synthesize them by marking them empty. */ + strcpy (&buffer[len], "::"); + else + buffer[len] = '\0'; while (isspace (*p)) ++p; free (result); From 22ef35456ea0b36e09f3241043f894eb71d2c9da Mon Sep 17 00:00:00 2001 From: Agron Selimaj Date: Wed, 7 Apr 2010 13:08:19 -0700 Subject: [PATCH 05/35] Fix Mr. Mrs. Ms. and Miss in sq_AL --- localedata/ChangeLog | 6 +++++ localedata/locales/sq_AL | 58 ++++++++++++++++++++-------------------- 2 files changed, 35 insertions(+), 29 deletions(-) diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 16e2898ce9..32862dd630 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,9 @@ +2010-04-07 Ulrich Drepper + + [BZ #11471] + * locales/sq_AL: Fix Mr. Mrs. Ms. and Miss. + Patch by Agron Selimaj . + 2010-04-05 Ulrich Drepper [BZ #11007] diff --git a/localedata/locales/sq_AL b/localedata/locales/sq_AL index 4aeb3dc810..e28b03db98 100644 --- a/localedata/locales/sq_AL +++ b/localedata/locales/sq_AL @@ -228,41 +228,41 @@ LC_TIME % % Abbreviated weekday names (%a) abday "";"";/ - "";"";/ - "";"";/ - "" + "";"";/ + "";"";/ + "" % % Full weekday names (%A) day "";/ - "";/ - "";/ - "/ + "";/ + "";/ + "/ ";/ - "";/ - "";/ - "" + "";/ + "";/ + "" % % Abbreviated month names (%b) abmon "";"";/ - "";"";/ - "";"";/ - "";"";/ - "";"";/ - "";"" + "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"" % % Full month names (%B) mon "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "" + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" % % Equivalent of AM PM am_pm "";"" @@ -315,10 +315,10 @@ LC_NAME name_fmt "/ " name_gen "" -name_mr "" -name_mrs "" -name_miss "" -name_ms "" +name_mr "" +name_mrs "" +name_miss "" +name_ms "" END LC_NAME From aa7f642769abcfbce658aeaaffdc9fb4790cd905 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 7 Apr 2010 17:16:27 -0700 Subject: [PATCH 06/35] Fix -W with optional parameters in getopt. According to the getopt documentation, if "W;" is part of optstring, then '-W foo' should behave like '--foo'. But if "foo" uses an optional_argument, this is not the case, since optarg is not NULL when using -W. --- ChangeLog | 8 +++++++- posix/getopt.c | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index d59224b46d..e1de2dffbc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-12-02 Eric Blake + + [BZ #11041] + * posix/getopt.c (_getopt_internal_r): Handle '-Wfoo' identically + to '--foo', with optional argument or non-ambiguous prefix. + 2010-04-07 Ulrich Drepper [BZ #11134] @@ -9,7 +15,7 @@ if NSS_FLAG_ADJUNCT_AS_SHADOW is set. (_nss_nis_getpwnam_r): Likewise. (_nss_nis_getpwuid_r): Likewise. - * nis/nss_nis/nis-spwd.c (ent_adjunct_used): Nee global variable. + * nis/nss_nis/nis-spwd.c (ent_adjunct_used): New global variable. (_nss_nis_setspent): Also reset ent_adjunct_used. (internal_nis_getspent_r): If new_start is set and shadow.byname table does not exist and NSS_FLAG_ADJUNCT_AS_SHADOW is set, try to get diff --git a/posix/getopt.c b/posix/getopt.c index 88acff0e2f..01c1071ecb 100644 --- a/posix/getopt.c +++ b/posix/getopt.c @@ -911,7 +911,10 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring, pfound = p; indfound = option_index; } - else + else if (long_only + || pfound->has_arg != p->has_arg + || pfound->flag != p->flag + || pfound->val != p->val) /* Second or later nonexact match found. */ ambig = 1; } @@ -1028,6 +1031,8 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring, return optstring[0] == ':' ? ':' : '?'; } } + else + d->optarg = NULL; d->__nextchar += strlen (d->__nextchar); if (longind != NULL) *longind = option_index; From cf0b68196c837ad591f0e7fc0f8e8a0f690b847c Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 7 Apr 2010 17:28:36 -0700 Subject: [PATCH 07/35] getopt mistakenly allows '-;' as short option --- ChangeLog | 8 +++++++- posix/getopt.c | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index e1de2dffbc..b9e162f726 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,10 @@ -2009-12-02 Eric Blake +2009-12-01 Eric Blake + + [BZ #11040] + * posix/getopt.c (_getopt_internal_r): Reject '-;' as short + option, since it conflicts with "W;" optstring extension. + +2009-12-02 Eric Blake [BZ #11041] * posix/getopt.c (_getopt_internal_r): Handle '-Wfoo' identically diff --git a/posix/getopt.c b/posix/getopt.c index 01c1071ecb..b778047cd9 100644 --- a/posix/getopt.c +++ b/posix/getopt.c @@ -789,7 +789,7 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring, if (*d->__nextchar == '\0') ++d->optind; - if (temp == NULL || c == ':') + if (temp == NULL || c == ':' || c == ';') { if (print_errors) { From 66b93be793af309fb78d54199aed2306650079d0 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 7 Apr 2010 17:56:20 -0700 Subject: [PATCH 08/35] getopt mishandles optstring of "+:" --- ChangeLog | 4 ++++ posix/getopt.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index b9e162f726..bb85ba9d0f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2009-12-01 Eric Blake + [BZ #11039] + * posix/getopt.c (_getopt_internal_r): Skip optional - or + before + checking lead byte of optstring for :. + [BZ #11040] * posix/getopt.c (_getopt_internal_r): Reject '-;' as short option, since it conflicts with "W;" optstring extension. diff --git a/posix/getopt.c b/posix/getopt.c index b778047cd9..2746364fc7 100644 --- a/posix/getopt.c +++ b/posix/getopt.c @@ -395,8 +395,6 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring, int long_only, struct _getopt_data *d, int posixly_correct) { int print_errors = d->opterr; - if (optstring[0] == ':') - print_errors = 0; if (argc < 1) return -1; @@ -411,6 +409,10 @@ _getopt_internal_r (int argc, char *const *argv, const char *optstring, posixly_correct); d->__initialized = 1; } + else if (optstring[0] == '-' || optstring[0] == '+') + optstring++; + if (optstring[0] == ':') + print_errors = 0; /* Test whether ARGV[optind] points to a non-option argument. Either it does not have option syntax, or there is an environment flag From e326768467620173d3fe7204b3960db49faf7fa8 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 7 Apr 2010 22:59:40 -0700 Subject: [PATCH 09/35] Add tests for recent getopt changes. --- ChangeLog | 8 +++++ posix/Makefile | 4 ++- posix/bug-getopt1.c | 73 ++++++++++++++++++++++++++++++++++++++ posix/bug-getopt2.c | 72 +++++++++++++++++++++++++++++++++++++ posix/bug-getopt3.c | 81 ++++++++++++++++++++++++++++++++++++++++++ posix/bug-getopt4.c | 86 +++++++++++++++++++++++++++++++++++++++++++++ posix/bug-getopt5.c | 81 ++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 404 insertions(+), 1 deletion(-) create mode 100644 posix/bug-getopt1.c create mode 100644 posix/bug-getopt2.c create mode 100644 posix/bug-getopt3.c create mode 100644 posix/bug-getopt4.c create mode 100644 posix/bug-getopt5.c diff --git a/ChangeLog b/ChangeLog index bb85ba9d0f..c2ce3a994a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2010-04-07 Ulrich Drepper + + * posix/bug-getopt1.c: New file. + * posix/bug-getopt2.c: New file. + * posix/bug-getopt3.c: New file. + * posix/bug-getopt4.c: New file. + * posix/bug-getopt5.c: New file. + 2009-12-01 Eric Blake [BZ #11039] diff --git a/posix/Makefile b/posix/Makefile index 1a369ddf84..df0e6f1053 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -92,7 +92,9 @@ tests := tstgetopt testfnm runtests runptests \ tst-execve1 tst-execve2 tst-execle1 tst-execle2 \ tst-execvp3 tst-execvp4 tst-rfc3484 tst-rfc3484-2 \ tst-rfc3484-3 \ - tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset + tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset \ + bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \ + bug-getopt5 xtests := bug-ga2 ifeq (yes,$(build-shared)) test-srcs := globtest diff --git a/posix/bug-getopt1.c b/posix/bug-getopt1.c new file mode 100644 index 0000000000..a47dc7e229 --- /dev/null +++ b/posix/bug-getopt1.c @@ -0,0 +1,73 @@ +/* BZ 11039 */ +#include +#include + +static int +one_test (const char *fmt, int argc, char *argv[], int expected[argc - 1]) +{ + optind = 1; + + int res = 0; + for (int i = 0; i < argc - 1; ++i) + { + rewind (stderr); + if (ftruncate (fileno (stderr), 0) != 0) + { + puts ("cannot truncate file"); + return 1; + } + + int c = getopt (argc, argv, fmt); + if (c != expected[i]) + { + printf ("format '%s' test %d failed: expected '%c', got '%c'\n", + fmt, i, expected[i], c); + res = 1; + } + if (ftell (stderr) != 0) + { + printf ("format '%s' test %d failed: printed to stderr\n", + fmt, i); + res = 1; + } + } + + return res; +} + + +static int +do_test (void) +{ + char *fname = tmpnam (NULL); + if (fname == NULL) + { + puts ("cannot generate name for temporary file"); + return 1; + } + + if (freopen (fname, "w+", stderr) == NULL) + { + puts ("cannot redirect stderr"); + return 1; + } + + remove (fname); + + int ret = one_test ("+:a:b", 2, + (char *[2]) { (char *) "bug-getopt1", (char *) "-a" }, + (int [1]) { ':' }); + + ret |= one_test ("+:a:b", 3, + (char *[3]) { (char *) "bug-getopt1", (char *) "-b", + (char *) "-a" }, + (int [2]) { 'b', ':' }); + + if (ret == 0) + puts ("all OK"); + + return ret; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" diff --git a/posix/bug-getopt2.c b/posix/bug-getopt2.c new file mode 100644 index 0000000000..93c3035ccd --- /dev/null +++ b/posix/bug-getopt2.c @@ -0,0 +1,72 @@ +/* BZ 11039 */ +#include +#include + +static int +one_test (const char *fmt, int argc, char *argv[], int expected[argc - 1]) +{ + int res = 0; + for (int i = 0; i < argc - 1; ++i) + { + rewind (stderr); + if (ftruncate (fileno (stderr), 0) != 0) + { + puts ("cannot truncate file"); + return 1; + } + + int c = getopt (argc, argv, fmt); + if (c != expected[i]) + { + printf ("format '%s' test %d failed: expected '%c', got '%c'\n", + fmt, i, expected[i], c); + res = 1; + } + if (ftell (stderr) == 0) + { + printf ("format '%s' test %d failed: not printed to stderr\n", + fmt, i); + res = 1; + } + } + + return res; +} + + +static int +do_test (void) +{ + char *fname = tmpnam (NULL); + if (fname == NULL) + { + puts ("cannot generate name for temporary file"); + return 1; + } + + if (freopen (fname, "w+", stderr) == NULL) + { + puts ("cannot redirect stderr"); + return 1; + } + + remove (fname); + + optind = 0; + int ret = one_test ("+a", 2, + (char *[2]) { (char *) "bug-getopt2", (char *) "-+" }, + (int [1]) { '?' }); + + optind = 1; + ret |= one_test ("+a", 2, + (char *[2]) { (char *) "bug-getopt2", (char *) "-+" }, + (int [1]) { '?' }); + + if (ret == 0) + puts ("all OK"); + + return ret; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" diff --git a/posix/bug-getopt3.c b/posix/bug-getopt3.c new file mode 100644 index 0000000000..c3a8cb225b --- /dev/null +++ b/posix/bug-getopt3.c @@ -0,0 +1,81 @@ +/* BZ 11040 */ +#include +#include +#include + +static const struct option opts[] = + { + { "alpha", no_argument, NULL, 'a' }, + { "beta", required_argument, NULL, 'b' }, + { NULL, 0, NULL, 0 } + }; + +static int +one_test (const char *fmt, int argc, char *argv[], int n, int expected[n], + int out[n]) +{ + optind = 1; + + int res = 0; + for (int i = 0; i < n; ++i) + { + rewind (stderr); + if (ftruncate (fileno (stderr), 0) != 0) + { + puts ("cannot truncate file"); + return 1; + } + + int c = getopt_long (argc, argv, fmt, opts, NULL); + if (c != expected[i]) + { + printf ("format '%s' test %d failed: expected '%c', got '%c'\n", + fmt, i, expected[i], c); + res = 1; + } + if ((ftell (stderr) != 0) != out[i]) + { + printf ("format '%s' test %d failed: %sprinted to stderr\n", + fmt, i, out[i] ? "not " : ""); + res = 1; + } + } + + return res; +} + + +static int +do_test (void) +{ + char *fname = tmpnam (NULL); + if (fname == NULL) + { + puts ("cannot generate name for temporary file"); + return 1; + } + + if (freopen (fname, "w+", stderr) == NULL) + { + puts ("cannot redirect stderr"); + return 1; + } + + remove (fname); + + int ret = one_test ("ab:W;", 2, + (char *[2]) { (char *) "bug-getopt3", (char *) "-a;" }, + 2, (int [2]) { 'a', '?' }, (int [2]) { 0, 1 }); + + ret |= one_test ("ab:W;", 2, + (char *[2]) { (char *) "bug-getopt3", (char *) "-a:" }, 2, + (int [2]) { 'a', '?' }, (int [2]) { 0, 1 }); + + if (ret == 0) + puts ("all OK"); + + return ret; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" diff --git a/posix/bug-getopt4.c b/posix/bug-getopt4.c new file mode 100644 index 0000000000..1daffd1d34 --- /dev/null +++ b/posix/bug-getopt4.c @@ -0,0 +1,86 @@ +/* BZ 11041 */ +#include +#include +#include + +static const struct option opts[] = + { + { "alpha", optional_argument, NULL, 'a' }, + { NULL, 0, NULL, 0 } + }; + +static int +one_test (const char *fmt, int argc, char *argv[], int n, int expected[n]) +{ + optind = 1; + + int res = 0; + for (int i = 0; i < n; ++i) + { + rewind (stderr); + if (ftruncate (fileno (stderr), 0) != 0) + { + puts ("cannot truncate file"); + return 1; + } + + int c = getopt_long (argc, argv, fmt, opts, NULL); + if (c != expected[i]) + { + printf ("format '%s' test %d failed: expected '%c', got '%c'\n", + fmt, i, expected[i], c); + res = 1; + } + else if (optarg != NULL) + { + printf ("format '%s' test %d failed: optarg is \"%s\", not NULL\n", + fmt, i, optarg); + res = 1; + } + if (ftell (stderr) != 0) + { + printf ("format '%s' test %d failed: printed to stderr\n", + fmt, i); + res = 1; + } + } + + return res; +} + + +static int +do_test (void) +{ + char *fname = tmpnam (NULL); + if (fname == NULL) + { + puts ("cannot generate name for temporary file"); + return 1; + } + + if (freopen (fname, "w+", stderr) == NULL) + { + puts ("cannot redirect stderr"); + return 1; + } + + remove (fname); + + int ret = one_test ("W;", 2, + (char *[2]) { (char *) "bug-getopt4", (char *) "--a" }, + 1, (int [1]) { 'a' }); + + ret |= one_test ("W;", 3, + (char *[3]) { (char *) "bug-getopt4", (char *) "-W", + (char *) "a" }, + 1, (int [1]) { 'a' }); + + if (ret == 0) + puts ("all OK"); + + return ret; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" diff --git a/posix/bug-getopt5.c b/posix/bug-getopt5.c new file mode 100644 index 0000000000..ed2639d35b --- /dev/null +++ b/posix/bug-getopt5.c @@ -0,0 +1,81 @@ +/* BZ 11041 */ +#include +#include +#include + +static const struct option opts[] = + { + { "a1", no_argument, NULL, 'a' }, + { "a2", no_argument, NULL, 'a' }, + { NULL, 0, NULL, 0 } + }; + +static int +one_test (const char *fmt, int argc, char *argv[], int n, int expected[n]) +{ + optind = 1; + + int res = 0; + for (int i = 0; i < n; ++i) + { + rewind (stderr); + if (ftruncate (fileno (stderr), 0) != 0) + { + puts ("cannot truncate file"); + return 1; + } + + int c = getopt_long (argc, argv, fmt, opts, NULL); + if (c != expected[i]) + { + printf ("format '%s' test %d failed: expected '%c', got '%c'\n", + fmt, i, expected[i], c); + res = 1; + } + if (ftell (stderr) != 0) + { + printf ("format '%s' test %d failed: printed to stderr\n", + fmt, i); + res = 1; + } + } + + return res; +} + + +static int +do_test (void) +{ + char *fname = tmpnam (NULL); + if (fname == NULL) + { + puts ("cannot generate name for temporary file"); + return 1; + } + + if (freopen (fname, "w+", stderr) == NULL) + { + puts ("cannot redirect stderr"); + return 1; + } + + remove (fname); + + int ret = one_test (":W;", 2, + (char *[2]) { (char *) "bug-getopt5", (char *) "--a" }, + 1, (int [1]) { 'a' }); + + ret |= one_test (":W;", 3, + (char *[3]) { (char *) "bug-getopt5", (char *) "-W", + (char *) "a" }, + 1, (int [1]) { 'a' }); + + if (ret == 0) + puts ("all OK"); + + return ret; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" From 8feb2a4f2e1431e39897001197fc49d2a8df48b4 Mon Sep 17 00:00:00 2001 From: Agron Selimaj Date: Thu, 8 Apr 2010 07:15:17 -0700 Subject: [PATCH 10/35] Albanian language locale for Macedonia --- localedata/locales/sq_MK | 105 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 localedata/locales/sq_MK diff --git a/localedata/locales/sq_MK b/localedata/locales/sq_MK new file mode 100644 index 0000000000..c590c35d39 --- /dev/null +++ b/localedata/locales/sq_MK @@ -0,0 +1,105 @@ +comment_char % +escape_char / +% Albanian language locale for Macedonia. +% Contributed by Agron Selimaj + +LC_IDENTIFICATION +title "Albanian language locale for Macedonia" +source "Albanian Language Team" +address "465 4th St. 2nd Floor, Palisades Park, NJ 07650, U.S.A." +contact "" +email "bug-glibc-locales@gnu.org" +tel "" +fax "" +language "Albanian" +territory "Macedonia" +revision "0.01" +date "2010-04-06" +% +category "sq_MK:2000";LC_IDENTIFICATION +category "sq_MK:2000";LC_CTYPE +category "sq_MK:2000";LC_COLLATE +category "sq_MK:2000";LC_TIME +category "sq_MK:2000";LC_NUMERIC +category "sq_MK:2000";LC_MONETARY +category "sq_MK:2000";LC_MESSAGES +category "sq_MK:2000";LC_PAPER +category "sq_MK:2000";LC_NAME +category "sq_MK:2000";LC_ADDRESS +category "sq_MK:2000";LC_TELEPHONE + +END LC_IDENTIFICATION + +LC_CTYPE +copy "sq_AL" +END LC_CTYPE + +LC_COLLATE +copy "sq_AL" +END LC_COLLATE + +LC_MONETARY +% This is the POSIX Locale definition the LC_MONETARY category. +% These are generated based on XML base Locale difintion file +% for IBM Class for Unicode/Java +% +int_curr_symbol "" +currency_symbol "" +mon_decimal_point "" +mon_thousands_sep "" +mon_grouping 3;3 +positive_sign "" +negative_sign "" +int_frac_digits 2 +frac_digits 2 +p_cs_precedes 0 +p_sep_by_space 1 +n_cs_precedes 0 +n_sep_by_space 1 +p_sign_posn 1 +n_sign_posn 1 +% +END LC_MONETARY + + +LC_NUMERIC +copy "sq_AL" +END LC_NUMERIC + + +LC_TIME +copy "sq_AL" +END LC_TIME + + +LC_MESSAGES +copy "sq_AL" +END LC_MESSAGES + + +LC_PAPER +copy "mk_MK" +END LC_PAPER + + +LC_NAME +copy "sq_AL" +END LC_NAME + + +LC_ADDRESS +copy "mk_MK" +END LC_ADDRESS + + +LC_TELEPHONE +copy "mk_MK" +END LC_TELEPHONE + + +LC_MEASUREMENT +% This is the ISO_IEC TR14652 Locale definition for the +% +measurement 1 + +END LC_MEASUREMENT From 30f0c8da71e5c50ec519d8bf5f3f9e8d9ada6ba6 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 07:15:31 -0700 Subject: [PATCH 11/35] Hook up sq_MK locale. --- NEWS | 4 +++- localedata/ChangeLog | 8 ++++++++ localedata/SUPPORTED | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index c19f3ae712..0a0d2c3391 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -GNU C Library NEWS -- history of user-visible changes. 2010-4-7 +GNU C Library NEWS -- history of user-visible changes. 2010-4-8 Copyright (C) 1992-2009, 2010 Free Software Foundation, Inc. See the end for copying conditions. @@ -15,6 +15,8 @@ Version 2.12 missing. This is a useful mode in some installations involving Solaris. Implemented by Ulrich Drepper. +* New locale: sq_MK + Version 2.11 diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 32862dd630..2e7028b6f9 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,11 @@ +2010-04-08 Ulrich Drepper + + * SUPPORTED (SUPPORTED-LOCALES): Add sq_MK. + + [BZ #11470] + * locales/sq_MK: New file. + Contributed by Agron Selimaj . + 2010-04-07 Ulrich Drepper [BZ #11471] diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED index f94570dcfb..497651f97c 100644 --- a/localedata/SUPPORTED +++ b/localedata/SUPPORTED @@ -353,6 +353,7 @@ so_SO.UTF-8/UTF-8 \ so_SO/ISO-8859-1 \ sq_AL.UTF-8/UTF-8 \ sq_AL/ISO-8859-1 \ +sq_MK/UTF-8 \ sr_ME/UTF-8 \ sr_RS/UTF-8 \ sr_RS@latin/UTF-8 \ From 0e67bd3c3bb56679020d3344110356775df43241 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 07:59:38 -0700 Subject: [PATCH 12/35] kok_IN locale should have been support for some time. --- localedata/ChangeLog | 2 +- localedata/SUPPORTED | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 2e7028b6f9..7a9aac09a9 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,6 +1,6 @@ 2010-04-08 Ulrich Drepper - * SUPPORTED (SUPPORTED-LOCALES): Add sq_MK. + * SUPPORTED (SUPPORTED-LOCALES): Add kok_IN and sq_MK. [BZ #11470] * locales/sq_MK: New file. diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED index 497651f97c..575c44780c 100644 --- a/localedata/SUPPORTED +++ b/localedata/SUPPORTED @@ -259,6 +259,7 @@ km_KH/UTF-8 \ kn_IN/UTF-8 \ ko_KR.EUC-KR/EUC-KR \ ko_KR.UTF-8/UTF-8 \ +kok_IN/UTF-8 \ ks_IN/UTF-8 \ ks_IN@devanagari/UTF-8 \ ku_TR.UTF-8/UTF-8 \ From 5e4295fb58a41f27e5158746deb8e40421d2e67b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 08:00:12 -0700 Subject: [PATCH 13/35] More NEWS for 2.12. --- NEWS | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 0a0d2c3391..e00372ac6c 100644 --- a/NEWS +++ b/NEWS @@ -9,13 +9,19 @@ Version 2.12 * New Linux interface: recvmmsg +* STT_GNU_IFUNC implemented for Sparc by David Miller. + +* The dynamic linker now recognizes supported ABI versions from the + EI_ABIVERSION field in the ELF header. + Implemented by Ulrich Drepper. + * New NIS mode selector ADJUNCT_AS_SHADOW. The passwd.adjunct.byname table will not be used to fill in password fields in the passwd.byname replies. Instead it is used to synthesize the shadow.byname table, should it be missing. This is a useful mode in some installations involving Solaris. Implemented by Ulrich Drepper. -* New locale: sq_MK +* New locales: kok_IN, sq_MK Version 2.11 From df5efd61b01c52573bfd011b93a96966047308c6 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 8 Apr 2010 15:29:19 -0700 Subject: [PATCH 14/35] Fix libc-abis rules to be correct for add-on ports. --- ChangeLog | 7 +++++++ Makerules | 12 ++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index c2ce3a994a..71a392e8c5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2010-04-08 Roland McGrath + + * Makerules (libc-abis): Variable removed. + ($(common-objpfx)libc-abis.h): Depend on Makerules too. + Use automatic variables in commands. + Depend on first libc-abis from $(sysdirs) or $(..). + 2010-04-07 Ulrich Drepper * posix/bug-getopt1.c: New file. diff --git a/Makerules b/Makerules index 9c15a27a5d..bf03b38a9c 100644 --- a/Makerules +++ b/Makerules @@ -111,13 +111,13 @@ endif # $(versioning) = yes ifndef avoid-generated before-compile := $(common-objpfx)libc-abis.h $(before-compile) -libc-abis := $(firstword $(wildcard $(foreach D,$(add-ons), \ - $(..)$D/libc-abis)) \ - $(..)libc-abis) -$(common-objpfx)libc-abis.h: $(..)scripts/gen-libc-abis $(libc-abis) - $(SHELL) $(..)scripts/gen-libc-abis \ +$(common-objpfx)libc-abis.h: $(..)scripts/gen-libc-abis \ + $(firstword $(wildcard $(sysdirs:=/libc-abis)) \ + $(..)libc-abis) \ + $(..)Makerules + $(SHELL) $< \ $(base-machine)-$(config-vendor)-$(config-os) \ - < $(libc-abis) > $@T + < $(word 2,$^) > $@T $(move-if-change) $@T $@ common-generated += $(common-objpfx)libc-abis.h endif # avoid-generated From 88e236a627d7195a938bce0b7cde92c2da2abedf Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 15:32:51 -0700 Subject: [PATCH 15/35] Fix cproj implmentation. --- ChangeLog | 10 ++++++++++ math/libm-test.inc | 4 ++-- math/s_cproj.c | 17 ++++++----------- math/s_cprojf.c | 15 +++++---------- math/s_cprojl.c | 16 +++++----------- sysdeps/ieee754/ldbl-128ibm/s_cprojl.c | 22 +++++----------------- 6 files changed, 33 insertions(+), 51 deletions(-) diff --git a/ChangeLog b/ChangeLog index c2ce3a994a..d3f1ac88fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2010-04-08 Andreas Jaeger + + [BZ #10401] + * math/s_cprojl.c (__cprojl): Fix implementation to follow C99 + standard. + * math/s_cprojf.c (__cprojf): Likewise. + * math/s_cproj.c (__cproj): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_cprojl.c (__cprojl): Likewise. + * math/libm-test.inc (cproj_test): Fix test. + 2010-04-07 Ulrich Drepper * posix/bug-getopt1.c: New file. diff --git a/math/libm-test.inc b/math/libm-test.inc index 260d3ec665..6650b889c5 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2006, 2007, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1997-2006, 2007, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger , 1997. @@ -2087,7 +2087,7 @@ cproj_test (void) TEST_c_c (cproj, minus_infty, minus_infty, plus_infty, minus_zero); TEST_c_c (cproj, 1.0, 0.0, 1.0, 0.0); - TEST_c_c (cproj, 2.0, 3.0, 0.2857142857142857142857142857142857L, 0.42857142857142857142857142857142855L); + TEST_c_c (cproj, 2.0, 3.0, 2.0, 3.0); END (cproj, complex); } diff --git a/math/s_cproj.c b/math/s_cproj.c index 8e7ca41df8..90e5ebaa4e 100644 --- a/math/s_cproj.c +++ b/math/s_cproj.c @@ -1,5 +1,5 @@ /* Compute projection of complex double value to Riemann sphere. - Copyright (C) 1997, 1999 Free Software Foundation, Inc. + Copyright (C) 1997, 1999, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -25,24 +25,19 @@ __complex__ double __cproj (__complex__ double x) { - __complex__ double res; - if (isnan (__real__ x) && isnan (__imag__ x)) return x; else if (!isfinite (__real__ x) || !isfinite (__imag__ x)) { + __complex__ double res; + __real__ res = INFINITY; __imag__ res = __copysign (0.0, __imag__ x); - } - else - { - double den = __real__ x * __real__ x + __imag__ x * __imag__ x + 1.0; - - __real__ res = (2.0 * __real__ x) / den; - __imag__ res = (2.0 * __imag__ x) / den; + + return res; } - return res; + return x; } weak_alias (__cproj, cproj) #ifdef NO_LONG_DOUBLE diff --git a/math/s_cprojf.c b/math/s_cprojf.c index 83df13cfa9..e7eacafbaf 100644 --- a/math/s_cprojf.c +++ b/math/s_cprojf.c @@ -1,5 +1,5 @@ /* Compute projection of complex float value to Riemann sphere. - Copyright (C) 1997, 1999 Free Software Foundation, Inc. + Copyright (C) 1997, 1999, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -25,24 +25,19 @@ __complex__ float __cprojf (__complex__ float x) { - __complex__ float res; - if (isnan (__real__ x) && isnan (__imag__ x)) return x; else if (!isfinite (__real__ x) || !isfinite (__imag__ x)) { + __complex__ float res; + __real__ res = INFINITY; __imag__ res = __copysignf (0.0, __imag__ x); - } - else - { - float den = __real__ x * __real__ x + __imag__ x * __imag__ x + 1.0; - __real__ res = (2.0 * __real__ x) / den; - __imag__ res = (2.0 * __imag__ x) / den; + return res; } - return res; + return x; } #ifndef __cprojf weak_alias (__cprojf, cprojf) diff --git a/math/s_cprojl.c b/math/s_cprojl.c index c70cdc47db..19c17a82bd 100644 --- a/math/s_cprojl.c +++ b/math/s_cprojl.c @@ -1,5 +1,5 @@ /* Compute projection of complex long double value to Riemann sphere. - Copyright (C) 1997, 1999 Free Software Foundation, Inc. + Copyright (C) 1997, 1999, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -25,24 +25,18 @@ __complex__ long double __cprojl (__complex__ long double x) { - __complex__ long double res; - if (isnan (__real__ x) && isnan (__imag__ x)) return x; else if (!isfinite (__real__ x) || !isfinite (__imag__ x)) { + __complex__ long double res; + __real__ res = INFINITY; __imag__ res = __copysignl (0.0, __imag__ x); - } - else - { - long double den = (__real__ x * __real__ x + __imag__ x * __imag__ x - + 1.0); - __real__ res = (2.0 * __real__ x) / den; - __imag__ res = (2.0 * __imag__ x) / den; + return res; } - return res; + return x; } weak_alias (__cprojl, cprojl) diff --git a/sysdeps/ieee754/ldbl-128ibm/s_cprojl.c b/sysdeps/ieee754/ldbl-128ibm/s_cprojl.c index 2167db3d91..b2a09ae885 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_cprojl.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_cprojl.c @@ -1,5 +1,5 @@ /* Compute projection of complex long double value to Riemann sphere. - Copyright (C) 1997,1999,2006 Free Software Foundation, Inc. + Copyright (C) 1997,1999,2006,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -25,30 +25,18 @@ __complex__ long double __cprojl (__complex__ long double x) { - __complex__ long double res; - if (isnan (__real__ x) && isnan (__imag__ x)) return x; else if (!isfinite (__real__ x) || !isfinite (__imag__ x)) { + __complex__ long double res; + __real__ res = INFINITY; __imag__ res = __copysignl (0.0, __imag__ x); - } - else - { - long double den = (__real__ x * __real__ x + __imag__ x * __imag__ x - + 1.0); - - __real__ res = (2.0 * __real__ x) / den; - __imag__ res = (2.0 * __imag__ x) / den; - /* __gcc_qmul does not respect -0.0 so we need the following fixup. */ - if (__real__ x == 0.0) - __real__ res = __real__ x; - if (__imag__ x == 0.0) - __imag__ res = __imag__ x; + return res; } - return res; + return x; } long_double_symbol (libm, __cprojl, cprojl); From de240a05b3638879af2f9ab663c56ad8b26b1ad3 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Thu, 8 Apr 2010 15:44:55 -0700 Subject: [PATCH 16/35] Fix fallocate error return on i386. --- ChangeLog | 5 +++++ sysdeps/unix/sysv/linux/i386/fallocate.c | 8 +++++++- sysdeps/unix/sysv/linux/i386/fallocate64.c | 8 +++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index d3f1ac88fe..03ba71f859 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-04-07 Andreas Schwab + + * sysdeps/unix/sysv/linux/i386/fallocate.c: Set errno on error. + * sysdeps/unix/sysv/linux/i386/fallocate64.c: Likewise. + 2010-04-08 Andreas Jaeger [BZ #10401] diff --git a/sysdeps/unix/sysv/linux/i386/fallocate.c b/sysdeps/unix/sysv/linux/i386/fallocate.c index 14e788386c..1434a833f9 100644 --- a/sysdeps/unix/sysv/linux/i386/fallocate.c +++ b/sysdeps/unix/sysv/linux/i386/fallocate.c @@ -30,7 +30,13 @@ int fallocate (int fd, int mode, __off_t offset, __off_t len) { #ifdef __NR_fallocate - return __call_fallocate (fd, mode, offset, len); + int err = __call_fallocate (fd, mode, offset, len); + if (__builtin_expect (err, 0)) + { + __set_errno (err); + err = -1; + } + return err; #else __set_errno (ENOSYS); return -1; diff --git a/sysdeps/unix/sysv/linux/i386/fallocate64.c b/sysdeps/unix/sysv/linux/i386/fallocate64.c index 85f315c9b6..063bab06e9 100644 --- a/sysdeps/unix/sysv/linux/i386/fallocate64.c +++ b/sysdeps/unix/sysv/linux/i386/fallocate64.c @@ -30,7 +30,13 @@ int fallocate64 (int fd, int mode, __off64_t offset, __off64_t len) { #ifdef __NR_fallocate - return __call_fallocate (fd, mode, offset, len); + int err = __call_fallocate (fd, mode, offset, len); + if (__builtin_expect (err, 0)) + { + __set_errno (err); + err = -1; + } + return err; #else __set_errno (ENOSYS); return -1; From a7b420eadcd706702b5244dfa3beee06c7a990aa Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 16:09:15 -0700 Subject: [PATCH 17/35] Fix whitespaces. --- math/s_cproj.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/math/s_cproj.c b/math/s_cproj.c index 90e5ebaa4e..cff75c40cf 100644 --- a/math/s_cproj.c +++ b/math/s_cproj.c @@ -33,7 +33,7 @@ __cproj (__complex__ double x) __real__ res = INFINITY; __imag__ res = __copysign (0.0, __imag__ x); - + return res; } From 59d9f1d6983fc9b606a1f9214fb817efe3d6cff8 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Thu, 8 Apr 2010 16:48:17 -0700 Subject: [PATCH 18/35] Shorten build commands This patch scratches an itch. Each individual gcc command in the glibc build is over 1K, which means it takes up a good chunk of my terminal. Most of that is include paths. Any version of GCC new enough to build glibc supports response files, which were added in 2005. So use a response file for the static list of include paths. Now the build commands are a lot shorter, and easier to use when developing glibc. --- ChangeLog | 8 ++++++++ Makeconfig | 5 +++-- Makefile | 2 +- Makerules | 14 ++++++++++++++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index e53d5bff15..c35f5ff1a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2010-03-30 Daniel Jacobowitz + + * Makeconfig (+common-includes): Define. + (+includes): Use @$(common-objpfx)includes. + * Makefile (postclean): Remove includes and includes.mk. + * Makerules ($(common-objpfx)includes.mk): Include and create + includes.mk. Create includes. + 2010-04-07 Andreas Schwab * sysdeps/unix/sysv/linux/i386/fallocate.c: Set errno on error. diff --git a/Makeconfig b/Makeconfig index cd77fe16b8..dc81545070 100644 --- a/Makeconfig +++ b/Makeconfig @@ -670,9 +670,10 @@ endif # $(+cflags) == "" # library source directory, in the include directory, and in the # current directory. +sysdep-includes = $(addprefix -I,$(+sysdep_dirs)) ++common-includes = $(+sysdep-includes) $(includes) $(sysincludes) +includes = -I$(..)include $(if $(subdir),$(objpfx:%/=-I%)) \ - $(+sysdep-includes) $(includes) \ - $(patsubst %/,-I%,$(..)) $(libio-include) -I. $(sysincludes) + @$(common-objpfx)includes \ + $(patsubst %/,-I%,$(..)) $(libio-include) -I. # Since libio has several internal header files, we use a -I instead # of many little headers in the include directory. diff --git a/Makefile b/Makefile index 61cfa436c4..d2327b3cd9 100644 --- a/Makefile +++ b/Makefile @@ -227,7 +227,7 @@ parent-mostlyclean: common-mostlyclean # common-mostlyclean is in Makerules. parent-clean: parent-mostlyclean common-clean postclean = $(addprefix $(common-objpfx),$(postclean-generated)) \ - $(addprefix $(objpfx),sysd-dirs sysd-rules) \ + $(addprefix $(objpfx),sysd-dirs sysd-rules includes includes.mk) \ $(addprefix $(objpfx),sysd-sorted soversions.mk soversions.i) clean: parent-clean diff --git a/Makerules b/Makerules index bf03b38a9c..9986730d97 100644 --- a/Makerules +++ b/Makerules @@ -267,6 +267,20 @@ ifndef sysd-rules-done no_deps=t endif +-include $(common-objpfx)includes.mk +ifneq ($(+common-includes),$(saved-includes)) +# Recreate includes.mk (and includes). +includes-force = FORCE +FORCE: +endif +$(common-objpfx)includes.mk: $(includes-force) + -@rm -f $@T $(common-objpfx)includesT + for inc in $(+common-includes); do echo "$$inc"; done \ + > $(common-objpfx)includesT + mv -f $(common-objpfx)includesT $(common-objpfx)includes + echo 'saved-includes := $(+common-includes)' > $@T + mv -f $@T $@ + define o-iterator-doit $(objpfx)%$o: %.S $(before-compile); $$(compile-command.S) endef From ad3d3e8f20c95aae9d26970c169bca6f48072681 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 17:12:42 -0700 Subject: [PATCH 19/35] Fix possibly uninitilized variable handling. If malloc errors are ignored (which say aren't by default and never should be) malloc in the old, slow form might use an uninitialized variable. --- ChangeLog | 5 +++++ malloc/malloc.c | 1 + 2 files changed, 6 insertions(+) diff --git a/ChangeLog b/ChangeLog index c35f5ff1a4..9d837772b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-04-08 Ulrich Drepper + + * malloc/malloc.c (_int_malloc): Return NULL if printing error message + returns. + 2010-03-30 Daniel Jacobowitz * Makeconfig (+common-includes): Define. diff --git a/malloc/malloc.c b/malloc/malloc.c index 558e8bab0a..722b1d4961 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -4306,6 +4306,7 @@ _int_malloc(mstate av, size_t bytes) errstr = "malloc(): memory corruption (fast)"; errout: malloc_printerr (check_action, errstr, chunk2mem (victim)); + return NULL; } #ifndef ATOMIC_FASTBINS *fb = victim->fd; From aa6436d6adc6570e5c934d02a656b4569ee703e6 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 19:04:33 -0700 Subject: [PATCH 20/35] Fix reading loginuid file in getlogin{,_r}. --- ChangeLog | 4 ++++ sysdeps/unix/sysv/linux/getlogin_r.c | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9d837772b2..540d1b4f5e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2010-04-08 Ulrich Drepper + * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): When + reading the loginuid file use a buffer which is always large enough. + NUL-terminate the string. + * malloc/malloc.c (_int_malloc): Return NULL if printing error message returns. diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c b/sysdeps/unix/sysv/linux/getlogin_r.c index d07846ccb8..d9c66fe259 100644 --- a/sysdeps/unix/sysv/linux/getlogin_r.c +++ b/sysdeps/unix/sysv/linux/getlogin_r.c @@ -37,13 +37,20 @@ __getlogin_r_loginuid (name, namesize) if (fd == -1) return 1; - ssize_t n = TEMP_FAILURE_RETRY (read_not_cancel (fd, name, namesize)); + /* We are reading a 32-bit number. 12 bytes are enough for the text + representation. If not, something is wrong. */ + char uidbuf[12]; + ssize_t n = TEMP_FAILURE_RETRY (read_not_cancel (fd, uidbuf, + sizeof (uidbuf))); close_not_cancel_no_status (fd); uid_t uid; char *endp; if (n <= 0 - || (uid = strtoul (name, &endp, 10), endp == name || *endp != '\0')) + || n == sizeof (uidbuf) + || (uidbuf[n] = '\0', + uid = strtoul (uidbuf, &endp, 10), + endp == uidbuf || *endp != '\0')) return 1; size_t buflen = 1024; @@ -84,8 +91,9 @@ __getlogin_r_loginuid (name, namesize) } -/* Return the login name of the user, or NULL if it can't be determined. - The returned pointer, if not NULL, is good only until the next call. */ +/* Return at most NAME_LEN characters of the login name of the user in NAME. + If it cannot be determined or some other error occurred, return the error + code. Otherwise return 0. */ int getlogin_r (name, namesize) From 42464d7fe8a4fab468b12466e52f9552e4940fcf Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 19:44:21 -0700 Subject: [PATCH 21/35] Change es_GT paper sizxe to letter. --- localedata/ChangeLog | 3 +++ localedata/locales/es_GT | 57 +++++++++++++++++++--------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 7a9aac09a9..ca2b62d2ca 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,5 +1,8 @@ 2010-04-08 Ulrich Drepper + [BZ #10936] + * locales/es_GT: Change paper size to letter. + * SUPPORTED (SUPPORTED-LOCALES): Add kok_IN and sq_MK. [BZ #11470] diff --git a/localedata/locales/es_GT b/localedata/locales/es_GT index 2d06fa51f1..455b076c43 100644 --- a/localedata/locales/es_GT +++ b/localedata/locales/es_GT @@ -15,7 +15,6 @@ escape_char / % Date: 1997-11-05 % Application: general % Users: general -% Repertoiremap: mnemonic.ds % Charset: ISO-8859-1 % Distribution and use is free, also % for commercial purposes. @@ -86,34 +85,34 @@ END LC_NUMERIC LC_TIME abday "";"";/ - "";"";/ - "";"";/ - "" + "";"";/ + "";"";/ + "" day "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "" + "";/ + "";/ + "";/ + "";/ + "";/ + "" abmon "";"";/ - "";"";/ - "";"";/ - "";"";/ - "";"";/ - "";"" + "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"" mon "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "" + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" d_t_fmt "" d_fmt "" t_fmt "" @@ -125,10 +124,8 @@ date_fmt "/ END LC_TIME LC_PAPER -% FIXME -height 297 -% FIXME -width 210 +height 279 +width 216 END LC_PAPER LC_TELEPHONE From d55d558b4ecf2a9ef4869982ce6c32f9c496bbe7 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 19:58:29 -0700 Subject: [PATCH 22/35] Print reload count in nscd statistics. --- ChangeLog | 5 +++++ nscd/nscd_stat.c | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 540d1b4f5e..fe493ba408 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2010-04-08 Ulrich Drepper + [BZ #10915] + * nscd/nscd_stat.c (struct statdata): Add reload_count field. + (send_stats): Fill in reload_count. + (receive_print_stats): Print reload_count. + * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): When reading the loginuid file use a buffer which is always large enough. NUL-terminate the string. diff --git a/nscd/nscd_stat.c b/nscd/nscd_stat.c index 7f6bd1c83e..658fd56fa3 100644 --- a/nscd/nscd_stat.c +++ b/nscd/nscd_stat.c @@ -1,4 +1,4 @@ -/* Copyright (c) 1998, 2003, 2004, 2005 Free Software Foundation, Inc. +/* Copyright (c) 1998, 2003, 2004, 2005, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1998. @@ -80,6 +80,7 @@ struct statdata int max_nthreads; int paranoia; time_t restart_interval; + unsigned int reload_count; int ndbs; struct dbstat dbs[lastdb]; #ifdef HAVE_SELINUX @@ -102,6 +103,7 @@ send_stats (int fd, struct database_dyn dbs[lastdb]) data.max_nthreads = max_nthreads; data.paranoia = paranoia; data.restart_interval = restart_interval; + data.reload_count = reload_count; data.ndbs = lastdb; for (cnt = 0; cnt < lastdb; ++cnt) @@ -240,10 +242,11 @@ receive_print_stats (void) "%15d maximum number of threads\n" "%15lu number of times clients had to wait\n" "%15s paranoia mode enabled\n" - "%15lu restart internal\n"), + "%15lu restart internal\n" + "%15u reload count\n"), data.nthreads, data.max_nthreads, data.client_queued, data.paranoia ? yesstr : nostr, - (unsigned long int) data.restart_interval); + (unsigned long int) data.restart_interval, data.reload_count); for (i = 0; i < lastdb; ++i) { From 0a62a349193052d8327a2b146149a460aa174cfc Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 20:10:26 -0700 Subject: [PATCH 23/35] Add BZ number. --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index fe493ba408..9acf264835 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1052,6 +1052,7 @@ re_node_set_insert failure; return REG_ESPACE. Patch by Paul Eggert. + [BZ #10864] * bits/confname.h: Make pre-C99-safe. 2010-01-14 Ryan S. Arnold From 2e5d4bd6bb88b4190c779823167c0dacb13b5875 Mon Sep 17 00:00:00 2001 From: Adi Roiban Date: Thu, 8 Apr 2010 20:16:27 -0700 Subject: [PATCH 24/35] Chuvash language locale for Russia. --- localedata/locales/cv_RU | 239 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 239 insertions(+) create mode 100644 localedata/locales/cv_RU diff --git a/localedata/locales/cv_RU b/localedata/locales/cv_RU new file mode 100644 index 0000000000..d59dcc77fe --- /dev/null +++ b/localedata/locales/cv_RU @@ -0,0 +1,239 @@ +comment_char % +escape_char / +% +% Chuvash Language Locale for Russia +% Language: cv +% Territory: RU +% Revision: 1.0 +% Date: 2009-10-13 +% Application: general +% Users: general +% Charset: UTF-8 +% Distribution and use is free, also +% for commercial purposes. +% +% Based on the ru_RO +% Modifed by: +% Adi Roiban +% Ali Savatar +% + +LC_IDENTIFICATION +title "Chuvash locale for Russia" +source "RAP" +address "Sankt Jorgens Alle 8, DK-1615 Kobenhavn V, Danmark" +contact "" +email "bug-glibc-locales@gnu.org" +tel "" +fax "" +language "Chuvash" +territory "Russia" +revision "1.0" +date "2000-06-29" +% +category "cv_RU:2000";LC_IDENTIFICATION +category "cv_RU:2000";LC_CTYPE +category "cv_RU:2000";LC_COLLATE +category "cv_RU:2000";LC_TIME +category "cv_RU:2000";LC_NUMERIC +category "cv_RU:2000";LC_MONETARY +category "cv_RU:2000";LC_MESSAGES +category "cv_RU:2000";LC_PAPER +category "cv_RU:2000";LC_NAME +category "cv_RU:2000";LC_ADDRESS +category "cv_RU:2000";LC_TELEPHONE + +END LC_IDENTIFICATION + +LC_COLLATE +copy "iso14651_t1" + +% The Chuvash alphabet has the following letters, ordered as below: +% a a( c e e( h i j k l m n p r s< s s, t u u: v y + +collating-symbol +collating-symbol +collating-symbol +collating-symbol +collating-symbol + +reorder-after + +reorder-after + +reorder-after + +reorder-after + +reorder-after + + +reorder-after + ;;;IGNORE +reorder-after + ;;;IGNORE + +reorder-after + ;;;IGNORE +reorder-after + ;;;IGNORE + +reorder-after + ;;;IGNORE +reorder-after + ;;;IGNORE + +reorder-after + ;;;IGNORE + ;;;IGNORE +reorder-after + ;;;IGNORE + ;;;IGNORE + +reorder-after + ;;;IGNORE +reorder-after + ;;;IGNORE + +reorder-end + +END LC_COLLATE + +LC_CTYPE +copy "i18n" + +translit_start +include "translit_combining";"" +translit_end +END LC_CTYPE + +LC_MESSAGES +% "^[yY].*" +yesexpr "" +% "^[nN].*" +noexpr "" +END LC_MESSAGES + +LC_MONETARY +int_curr_symbol "" + +% "t." - short for tenke(, Chuvash name for rouble +currency_symbol "" + +mon_decimal_point "" +mon_thousands_sep "" +mon_grouping 3;3 +positive_sign "" +negative_sign "" +int_frac_digits 2 +frac_digits 2 +p_cs_precedes 0 +p_sep_by_space 1 +n_cs_precedes 0 +n_sep_by_space 1 +p_sign_posn 1 +n_sign_posn 1 +END LC_MONETARY + +LC_NUMERIC +copy "ru_RU" +END LC_NUMERIC + +LC_TIME + +% Days of week: +% vyrsarnikun (Sunday) - short vr +% tuntikun (Monday) tn +% ytlarikun (Tuesday) yt +% junkun (Wednesday) jn +% ke(s,nernikun (Thursday) ks, +% ernekun (Friday) er +% s";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" + +abday "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" + +% Month names: +% ka(rlac (January) - short KA(R +% nara(s (February) NAR +% pus< (March) PUS< +% aka (April) AKA +% s,u (May) S,U +% s,e(rtme (June) S,E(R +% uta( (July) UTA( +% s,urla (August) S,UR +% ava(n (September) AVA( +% jupa (October) JUP +% cu:k (November) CU:K +% ras";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" +abmon "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" +d_t_fmt "/ +" +d_fmt "" +t_fmt "" +am_pm "";"" +t_fmt_ampm "" +date_fmt "/ +/ +" +first_weekday 2 +first_workday 2 +END LC_TIME + +LC_PAPER +copy "ru_RU" +END LC_PAPER + +LC_TELEPHONE +copy "ru_RU" +END LC_TELEPHONE + +LC_MEASUREMENT +copy "ru_RU" +END LC_MEASUREMENT + +LC_NAME +copy "ru_RU" +END LC_NAME + +LC_ADDRESS +copy "ru_RU" +END LC_ADDRESS + From 13a05731d33043a20960972b9d0c692670292cb6 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 20:16:53 -0700 Subject: [PATCH 25/35] Build cv_RU locale. --- localedata/ChangeLog | 6 ++++++ localedata/SUPPORTED | 1 + 2 files changed, 7 insertions(+) diff --git a/localedata/ChangeLog b/localedata/ChangeLog index ca2b62d2ca..370592e8f0 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,5 +1,11 @@ 2010-04-08 Ulrich Drepper + * SUPPORTED (SUPPORTED-LOCALES): Add cv_RU. + + [BZ #10824] + * locales/cv_RU: New file. + Contributed by Adi Roiban . + [BZ #10936] * locales/es_GT: Change paper size to letter. diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED index 575c44780c..a1ebcac0ce 100644 --- a/localedata/SUPPORTED +++ b/localedata/SUPPORTED @@ -80,6 +80,7 @@ crh_UA/UTF-8 \ cs_CZ.UTF-8/UTF-8 \ cs_CZ/ISO-8859-2 \ csb_PL/UTF-8 \ +cv_RU/UTF-8 \ cy_GB.UTF-8/UTF-8 \ cy_GB/ISO-8859-14 \ da_DK.UTF-8/UTF-8 \ From d36b9613b03b57acc8bd30400f2d59689bd9251d Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 20:28:05 -0700 Subject: [PATCH 26/35] More news. Add BZ info for current and previous releases. --- NEWS | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 78 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index e00372ac6c..6438f0db47 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,17 @@ using `glibc' in the "product" field. Version 2.12 +* The following bugs are resolved with this release: + + 3662, 4457, 5553, 10162, 10401, 10414, 10554, 10824, 10864, 10915, 10918, + 10936, 10939, 10958, 10968, 10969, 10972, 10992, 11000, 11007, 11010, + 11027, 11039, 11040, 11041, 11043, 11046, 11056, 11070, 11093, 11115, + 11120, 11125, 11126, 11127, 11134, 11141, 11149, 11183, 11184, 11185, + 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11200, + 11230, 11235, 11242, 11254, 11258, 11271, 11272, 11276, 11279, 11287, + 11292, 11319, 11332, 11333, 11387, 11389, 11394, 11397, 11410, 11438, + 11449, 11470, 11471 + * New Linux interface: recvmmsg * STT_GNU_IFUNC implemented for Sparc by David Miller. @@ -21,11 +32,19 @@ Version 2.12 missing. This is a useful mode in some installations involving Solaris. Implemented by Ulrich Drepper. -* New locales: kok_IN, sq_MK - +* New locales: kok_IN, sq_MK, cv_RU Version 2.11 +* The following bugs are resolved with this release: + + 3270, 7094, 9924, 9986, 10011, 10085, 10107, 10159, 10162, 10166, 10183, + 10195, 10196, 10200, 10203, 10207, 10211, 10213, 10217, 10221, 10229, + 10262, 10286, 10312, 10315, 10319, 10349, 10360, 10391, 10402, 10416, + 10418, 10422, 10425, 10446, 10448, 10452, 10540, 10553, 10560, 10564, + 10609, 10643, 10692, 10713, 10717, 10730, 10731, 10742, 10780, 10784, + 10789, 10817, 10823, 10840, 10847 + * New interfaces: execvpe, pthread_sigqueue, mkstemps, mkstemps64, mkostemps, mkostemps64 Implemented by Ulrich Drepper. @@ -78,10 +97,17 @@ Version 2.11 Implemented by Ulrich Drepper. * New locales: ps_AF, my_MM - Version 2.10 +* The following bugs are resolved with this release: + + 697, 5381, 5807, 6411, 6545, 7040, 7058, 7067, 7080, 7083, 7095, 7098, + 9677, 9694, 9697, 9701, 9704, 9705, 9706, 9720, 9726, 9730, 9733, 9736, + 9741, 9750, 9753, 9759, 9781, 9791, 9793, 9823, 9833, 9844, 9880, 9881, + 9891, 9893, 9895, 9913, 9916, 9920, 9948, 9955, 9957, 9963, 9985, 10052, + 10069, 10086, 10087, 10090, 10092, 10093, 10100, 10118, 10128 + * New interfaces: preadv, preadv64, pwritev, pwritev64, malloc_info Implemented by Ulrich Drepper. @@ -128,10 +154,17 @@ Version 2.10 in case of a broken server. To avoid it, users can run nscd or put 'options single-request' in /etc/resolv.conf. Implemented by Ulrich Drepper. - Version 2.9 +* The following bugs are resolved with this release: + + 3406, 5209, 5210, 5381, 5794, 5814, 5911, 6428, 6438, 6442, 6447, 6461, + 6472, 6505, 6544, 6589, 6612, 6634, 6653, 6654, 6657, 6698, 6712, 6713, + 6719, 6723, 6724, 6740, 6763, 6771, 6790, 6791, 6817, 6824, 6839, 6843, + 6845, 6856, 6857, 6860, 6867, 6875, 6919, 6920, 6942, 6947, 6955, 6966, + 6968, 6974, 6980, 6995, 7008, 7009, 7029 + * Unified lookup for getaddrinfo: IPv4 and IPv6 addresses are now looked up at the same time. Implemented by Ulrich Drepper. @@ -169,6 +202,16 @@ Version 2.9 Version 2.8 +* The following bugs are resolved with this release: + + 2549, 3112, 4314, 4407, 4997, 5012, 5040, 5112, 5204, 5208, 5209, 5220, + 5222, 5224, 5225, 5237, 5238, 5240, 5245, 5277, 5346, 5375, 5378, 5382, + 5424, 5427, 5428, 5435, 5436, 5439, 5441, 5442, 5443, 5451, 5452, 5454, + 5455, 5463, 5464, 5465, 5475, 5477, 5478, 5520, 5541, 5545, 5553, 5600, + 5602, 5607, 5614, 5627, 5628, 5736, 5737, 5741, 5753, 5760, 5762, 5768, + 5774, 5777, 5778, 5779, 5786, 5790, 5818, 5854, 5857, 5903, 5939, 5979, + 5983, 5995, 5998, 6004, 6007, 6020, 6021, 6024, 6040, 6042 + * New locales: bo_CN, bo_IN, shs_CA. * New encoding: HP-ROMAN9, HP-GREEK8, HP-THAI8, HP-TURKISH8. @@ -202,6 +245,14 @@ Version 2.8 Version 2.7 +* The following bugs are resolved with this release: + + 4125, 4126, 4178, 4359, 4407, 4512, 4514, 4525, 4554, 4556, 4557, 4566, + 4582, 4586, 4588, 4599, 4610, 4647, 4702, 4705, 4726, 4745, 4772, 4773, + 4775, 4776, 4792, 4813, 4814, 4816, 4833, 4858, 4860, 4896, 4905, 4925, + 4936, 4937, 4938, 4941, 4946, 4963, 4972, 5010, 5028, 5043, 5058, 5063, + 5071, 5103, 5104, 5112, 5113, 5184, 5186 + * More checking functions: fread, fread_unlocked, open*, mq_open. Implemented by Jakub Jelinek and Ulrich Drepper. @@ -242,15 +293,37 @@ Version 2.7 Version 2.6 +* The following bugs are resolved with this release: + + 3156, 3213, 3285, 3291, 3306, 3313, 3320, 3322, 3325, 3326, 3334, 3348, + 3352, 3363, 3369, 3426, 3427, 3429, 3451, 3458, 3465, 3480, 3483, 3493, + 3514, 3515, 3559, 3632, 3664, 3673, 3674, 3745, 3747, 3818, 3840, 3842, + 3851, 3855, 3884, 3885, 3902, 3905, 3919, 3944, 3954, 3955, 3957, 3991, + 3995, 3996, 4024, 4040, 4069, 4070, 4074, 4076, 4096, 4101, 4102, 4114, + 4130, 4131, 4181, 4276, 4306, 4342, 4344, 4349, 4364, 4368, 4381, 4392, + 4403, 4405, 4406, 4411, 4438, 4439, 4455, 4456, 4465, 4512, 4514, 4586, + 4702, 4858 + * New Linux interfaces: epoll_pwait, sched_getcpu. * New generic interfaces: strerror_l. * nscd can now cache the services database. Implemented by Ulrich Drepper. - Version 2.5 +* The following bugs are resolved with this release: + + 39, 68, 192, 352, 388, 531, 935, 1006, 1201, 1203, 1386, 1782, 1783, 1784, + 1785, 1786, 1787, 1951, 1974, 1996, 2072, 2098, 2125, 2134, 2158, 2182, + 2349, 2376, 2386, 2389, 2415, 2418, 2420, 2423, 2450, 2451, 2466, 2472, + 2473, 2477, 2498, 2499, 2501, 2502, 2505, 2507, 2508, 2509, 2517, 2526, + 2569, 2571, 2592, 2611, 2625, 2632, 2644, 2662, 2680, 2683, 2684, 2693, + 2695, 2703, 2734, 2751, 2764, 2766, 2775, 2792, 2821, 2823, 2832, 2841, + 2843, 2883, 2892, 2908, 2914, 2926, 2961, 2978, 2980, 2987, 2997, 2998, + 3013, 3018, 3034, 3040, 3044, 3123, 3124, 3137, 3138, 3143, 3155, 3189, + 3225, 3251, 3252, 3253, 3273 + * For Linux, the sorting of addresses returned by getaddrinfo now also handles rules 3, 4, and 7 from RFC 3484. I.e., all rules are handled. Implemented by Ulrich Drepper. From 7a06b66766596452c5630a601c25d20eb0c5d637 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 20:29:15 -0700 Subject: [PATCH 27/35] Whitespace issues. --- localedata/locales/cv_RU | 71 ++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/localedata/locales/cv_RU b/localedata/locales/cv_RU index d59dcc77fe..0eae6d4d46 100644 --- a/localedata/locales/cv_RU +++ b/localedata/locales/cv_RU @@ -15,7 +15,7 @@ escape_char / % Based on the ru_RO % Modifed by: % Adi Roiban -% Ali Savatar +% Ali Savatar % LC_IDENTIFICATION @@ -151,20 +151,20 @@ LC_TIME % s";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "" + "";/ + "";/ + "";/ + "";/ + "";/ + "" abday "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "" + "";/ + "";/ + "";/ + "";/ + "";/ + "" % Month names: % ka(rlac (January) - short KA(R @@ -181,29 +181,29 @@ abday "";/ % ras";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "" + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" abmon "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "";/ - "" + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "";/ + "" d_t_fmt "/ " d_fmt "" @@ -236,4 +236,3 @@ END LC_NAME LC_ADDRESS copy "ru_RU" END LC_ADDRESS - From 80a18ba74d658d9216173b60382ef1c87aa1ae06 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 8 Apr 2010 22:54:15 -0700 Subject: [PATCH 28/35] Fix typo in locale source file. --- localedata/ChangeLog | 46 +++++++++++++++++++++++++++++ localedata/locales/ar_AE | 4 +-- localedata/locales/ar_BH | 4 +-- localedata/locales/ar_DZ | 4 +-- localedata/locales/ar_EG | 4 +-- localedata/locales/ar_IQ | 4 +-- localedata/locales/ar_JO | 4 +-- localedata/locales/ar_KW | 4 +-- localedata/locales/ar_LB | 4 +-- localedata/locales/ar_LY | 4 +-- localedata/locales/ar_MA | 4 +-- localedata/locales/ar_OM | 4 +-- localedata/locales/ar_QA | 4 +-- localedata/locales/ar_SD | 4 +-- localedata/locales/ar_SY | 4 +-- localedata/locales/ar_TN | 4 +-- localedata/locales/ar_YE | 4 +-- localedata/locales/ber_DZ | 2 +- localedata/locales/ber_MA | 2 +- localedata/locales/bn_IN | 2 +- localedata/locales/en_HK | 4 +-- localedata/locales/en_IN | 4 +-- localedata/locales/en_PH | 4 +-- localedata/locales/en_SG | 4 +-- localedata/locales/gu_IN | 4 +-- localedata/locales/hi_IN | 4 +-- localedata/locales/hne_IN | 2 +- localedata/locales/kn_IN | 4 +-- localedata/locales/kok_IN | 4 +-- localedata/locales/ks_IN@devanagari | 2 +- localedata/locales/ml_IN | 4 +-- localedata/locales/mr_IN | 4 +-- localedata/locales/ms_MY | 4 +-- localedata/locales/mt_MT | 4 +-- localedata/locales/my_MM | 2 +- localedata/locales/ne_NP | 4 +-- localedata/locales/nn_NO | 4 +-- localedata/locales/pa_IN | 2 +- localedata/locales/sa_IN | 4 +-- localedata/locales/sd_IN@devanagari | 2 +- localedata/locales/sq_AL | 4 +-- localedata/locales/sq_MK | 2 +- localedata/locales/ta_IN | 4 +-- localedata/locales/te_IN | 4 +-- localedata/locales/zh_HK | 4 +-- localedata/locales/zh_SG | 4 +-- 46 files changed, 127 insertions(+), 81 deletions(-) diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 370592e8f0..e362e29886 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,5 +1,51 @@ 2010-04-08 Ulrich Drepper + * locales/ar_AE: Fix typo. + * locales/ar_BH: Likewise. + * locales/ar_DZ: Likewise. + * locales/ar_EG: Likewise. + * locales/ar_IQ: Likewise. + * locales/ar_JO: Likewise. + * locales/ar_KW: Likewise. + * locales/ar_LB: Likewise. + * locales/ar_LY: Likewise. + * locales/ar_MA: Likewise. + * locales/ar_OM: Likewise. + * locales/ar_QA: Likewise. + * locales/ar_SD: Likewise. + * locales/ar_SY: Likewise. + * locales/ar_TN: Likewise. + * locales/ar_YE: Likewise. + * locales/ber_DZ: Likewise. + * locales/ber_MA: Likewise. + * locales/bn_IN: Likewise. + * locales/en_HK: Likewise. + * locales/en_IN: Likewise. + * locales/en_PH: Likewise. + * locales/en_SG: Likewise. + * locales/gu_IN: Likewise. + * locales/hi_IN: Likewise. + * locales/hne_IN: Likewise. + * locales/kn_IN: Likewise. + * locales/kok_IN: Likewise. + * locales/ks_IN@devanagari: Likewise. + * locales/ml_IN: Likewise. + * locales/mr_IN: Likewise. + * locales/ms_MY: Likewise. + * locales/mt_MT: Likewise. + * locales/my_MM: Likewise. + * locales/ne_NP: Likewise. + * locales/nn_NO: Likewise. + * locales/pa_IN: Likewise. + * locales/sa_IN: Likewise. + * locales/sd_IN@devanagari: Likewise. + * locales/sq_AL: Likewise. + * locales/sq_MK: Likewise. + * locales/ta_IN: Likewise. + * locales/te_IN: Likewise. + * locales/zh_HK: Likewise. + * locales/zh_SG: Likewise. + * SUPPORTED (SUPPORTED-LOCALES): Add cv_RU. [BZ #10824] diff --git a/localedata/locales/ar_AE b/localedata/locales/ar_AE index ab4fc40c6f..e787bf3422 100644 --- a/localedata/locales/ar_AE +++ b/localedata/locales/ar_AE @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -75,7 +75,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_BH b/localedata/locales/ar_BH index c47c45d934..4839d5fa4e 100644 --- a/localedata/locales/ar_BH +++ b/localedata/locales/ar_BH @@ -45,7 +45,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -79,7 +79,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_DZ b/localedata/locales/ar_DZ index cd7f039a2a..1e2838e84f 100644 --- a/localedata/locales/ar_DZ +++ b/localedata/locales/ar_DZ @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_EG b/localedata/locales/ar_EG index d26d43854f..ec0e9e2979 100644 --- a/localedata/locales/ar_EG +++ b/localedata/locales/ar_EG @@ -48,7 +48,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -82,7 +82,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_IQ b/localedata/locales/ar_IQ index 9a458d4009..fc4a9fce44 100644 --- a/localedata/locales/ar_IQ +++ b/localedata/locales/ar_IQ @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_JO b/localedata/locales/ar_JO index 9a6c2ca582..8102187ee0 100644 --- a/localedata/locales/ar_JO +++ b/localedata/locales/ar_JO @@ -45,7 +45,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -79,7 +79,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_KW b/localedata/locales/ar_KW index 6bfa609efe..e2d1735a87 100644 --- a/localedata/locales/ar_KW +++ b/localedata/locales/ar_KW @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_LB b/localedata/locales/ar_LB index c8fdafc688..cb0b7d7b0a 100644 --- a/localedata/locales/ar_LB +++ b/localedata/locales/ar_LB @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_LY b/localedata/locales/ar_LY index 2ca3f06f97..5ab5838dfc 100644 --- a/localedata/locales/ar_LY +++ b/localedata/locales/ar_LY @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_MA b/localedata/locales/ar_MA index 703c118854..744b8a64c1 100644 --- a/localedata/locales/ar_MA +++ b/localedata/locales/ar_MA @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_OM b/localedata/locales/ar_OM index 1966d19649..b43475ef64 100644 --- a/localedata/locales/ar_OM +++ b/localedata/locales/ar_OM @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_QA b/localedata/locales/ar_QA index 5603b6ab7d..979325652f 100644 --- a/localedata/locales/ar_QA +++ b/localedata/locales/ar_QA @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_SD b/localedata/locales/ar_SD index 23778596a0..c4a2f866e4 100644 --- a/localedata/locales/ar_SD +++ b/localedata/locales/ar_SD @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_SY b/localedata/locales/ar_SY index 073625420e..8bc02e469d 100644 --- a/localedata/locales/ar_SY +++ b/localedata/locales/ar_SY @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_TN b/localedata/locales/ar_TN index 2895f7ccd7..f2ffc4e2a2 100644 --- a/localedata/locales/ar_TN +++ b/localedata/locales/ar_TN @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ar_YE b/localedata/locales/ar_YE index bc4a2a9465..91da9e92b9 100644 --- a/localedata/locales/ar_YE +++ b/localedata/locales/ar_YE @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ber_DZ b/localedata/locales/ber_DZ index c354a05234..4256a513cf 100644 --- a/localedata/locales/ber_DZ +++ b/localedata/locales/ber_DZ @@ -175,7 +175,7 @@ END LC_MESSAGES LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" diff --git a/localedata/locales/ber_MA b/localedata/locales/ber_MA index 31ce069138..1333b8c66d 100644 --- a/localedata/locales/ber_MA +++ b/localedata/locales/ber_MA @@ -95,7 +95,7 @@ END LC_MESSAGES LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" diff --git a/localedata/locales/bn_IN b/localedata/locales/bn_IN index 1a792acd8a..d049a23a14 100644 --- a/localedata/locales/bn_IN +++ b/localedata/locales/bn_IN @@ -84,7 +84,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) diff --git a/localedata/locales/en_HK b/localedata/locales/en_HK index 6ccbdfdddb..7f00765a19 100644 --- a/localedata/locales/en_HK +++ b/localedata/locales/en_HK @@ -84,7 +84,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) @@ -139,7 +139,7 @@ END LC_TIME LC_MESSAGES % This is the POSIX Locale definition for the LC_MESSAGES category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % ^[yY] diff --git a/localedata/locales/en_IN b/localedata/locales/en_IN index 5eccc0e55b..3af445afd9 100644 --- a/localedata/locales/en_IN +++ b/localedata/locales/en_IN @@ -83,7 +83,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) @@ -138,7 +138,7 @@ END LC_TIME LC_MESSAGES % This is the POSIX Locale definition for the LC_MESSAGES category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % ^[yY] diff --git a/localedata/locales/en_PH b/localedata/locales/en_PH index 895e7c890a..9f78c1faa6 100644 --- a/localedata/locales/en_PH +++ b/localedata/locales/en_PH @@ -84,7 +84,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) @@ -139,7 +139,7 @@ END LC_TIME LC_MESSAGES % This is the POSIX Locale definition for the LC_MESSAGES category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % ^[yY] diff --git a/localedata/locales/en_SG b/localedata/locales/en_SG index 21479fa93f..0e9196c1f9 100644 --- a/localedata/locales/en_SG +++ b/localedata/locales/en_SG @@ -82,7 +82,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) @@ -137,7 +137,7 @@ END LC_TIME LC_MESSAGES % This is the POSIX Locale definition for the LC_MESSAGES category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % ^[yY] diff --git a/localedata/locales/gu_IN b/localedata/locales/gu_IN index 0d7ffc98a8..2c3d729dbd 100644 --- a/localedata/locales/gu_IN +++ b/localedata/locales/gu_IN @@ -67,7 +67,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -95,7 +95,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/hi_IN b/localedata/locales/hi_IN index 5ce3e03520..5aca5d90df 100644 --- a/localedata/locales/hi_IN +++ b/localedata/locales/hi_IN @@ -65,7 +65,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -99,7 +99,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/hne_IN b/localedata/locales/hne_IN index b32398aec4..f1c3cfdc61 100644 --- a/localedata/locales/hne_IN +++ b/localedata/locales/hne_IN @@ -51,7 +51,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/kn_IN b/localedata/locales/kn_IN index 4a0a2e3409..9b61dc0c86 100644 --- a/localedata/locales/kn_IN +++ b/localedata/locales/kn_IN @@ -67,7 +67,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -100,7 +100,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/kok_IN b/localedata/locales/kok_IN index 7c0f0278f4..1600359599 100644 --- a/localedata/locales/kok_IN +++ b/localedata/locales/kok_IN @@ -75,7 +75,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) @@ -152,7 +152,7 @@ END LC_TIME LC_MESSAGES % This is the POSIX Locale definition for the LC_MESSAGES category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % ^(Yes|[yY]) diff --git a/localedata/locales/ks_IN@devanagari b/localedata/locales/ks_IN@devanagari index ebc523481c..37d6a67eea 100644 --- a/localedata/locales/ks_IN@devanagari +++ b/localedata/locales/ks_IN@devanagari @@ -51,7 +51,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ml_IN b/localedata/locales/ml_IN index 18196bb5de..6c97a5a2c5 100644 --- a/localedata/locales/ml_IN +++ b/localedata/locales/ml_IN @@ -98,7 +98,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) @@ -168,7 +168,7 @@ END LC_TIME LC_MESSAGES % This is the POSIX Locale definition for the LC_MESSAGES category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % ^[\u0d05\u0d24\u0d46] diff --git a/localedata/locales/mr_IN b/localedata/locales/mr_IN index 174e0e3f1d..e5658a1a42 100644 --- a/localedata/locales/mr_IN +++ b/localedata/locales/mr_IN @@ -96,7 +96,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) @@ -176,7 +176,7 @@ END LC_TIME LC_MESSAGES % This is the POSIX Locale definition for the LC_MESSAGES category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % ^(Yes|[yY]) diff --git a/localedata/locales/ms_MY b/localedata/locales/ms_MY index 27b01d213a..84c866e627 100644 --- a/localedata/locales/ms_MY +++ b/localedata/locales/ms_MY @@ -90,7 +90,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) @@ -145,7 +145,7 @@ END LC_TIME LC_MESSAGES % This is the POSIX Locale definition for the LC_MESSAGES category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % ^[yY] diff --git a/localedata/locales/mt_MT b/localedata/locales/mt_MT index d6af96b1ef..d31908e612 100644 --- a/localedata/locales/mt_MT +++ b/localedata/locales/mt_MT @@ -166,7 +166,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) @@ -240,7 +240,7 @@ END LC_TIME LC_MESSAGES % This is the POSIX Locale definition for the LC_MESSAGES category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % ^(Yes|[yY]) diff --git a/localedata/locales/my_MM b/localedata/locales/my_MM index d9bd5ba8b1..d7c40f364b 100644 --- a/localedata/locales/my_MM +++ b/localedata/locales/my_MM @@ -98,7 +98,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) diff --git a/localedata/locales/ne_NP b/localedata/locales/ne_NP index ec26144b98..875d7a3961 100644 --- a/localedata/locales/ne_NP +++ b/localedata/locales/ne_NP @@ -45,7 +45,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -79,7 +79,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/nn_NO b/localedata/locales/nn_NO index 50950673c5..efd4e5bae8 100644 --- a/localedata/locales/nn_NO +++ b/localedata/locales/nn_NO @@ -42,7 +42,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -71,7 +71,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/pa_IN b/localedata/locales/pa_IN index c4c4732349..98cb91619e 100644 --- a/localedata/locales/pa_IN +++ b/localedata/locales/pa_IN @@ -91,7 +91,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/sa_IN b/localedata/locales/sa_IN index 1e0d80c9d8..8dac294ba2 100644 --- a/localedata/locales/sa_IN +++ b/localedata/locales/sa_IN @@ -48,7 +48,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -82,7 +82,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/sd_IN@devanagari b/localedata/locales/sd_IN@devanagari index 7a211c4a23..e54fc92e2e 100644 --- a/localedata/locales/sd_IN@devanagari +++ b/localedata/locales/sd_IN@devanagari @@ -79,7 +79,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) diff --git a/localedata/locales/sq_AL b/localedata/locales/sq_AL index e28b03db98..ec2e30d2d6 100644 --- a/localedata/locales/sq_AL +++ b/localedata/locales/sq_AL @@ -189,7 +189,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -223,7 +223,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Abbreviated weekday names (%a) diff --git a/localedata/locales/sq_MK b/localedata/locales/sq_MK index c590c35d39..eb3c7eb64c 100644 --- a/localedata/locales/sq_MK +++ b/localedata/locales/sq_MK @@ -40,7 +40,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" diff --git a/localedata/locales/ta_IN b/localedata/locales/ta_IN index 68bcf4ab85..19c41f6fff 100644 --- a/localedata/locales/ta_IN +++ b/localedata/locales/ta_IN @@ -105,7 +105,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) @@ -160,7 +160,7 @@ END LC_TIME LC_MESSAGES % This is the POSIX Locale definition for the LC_MESSAGES category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % yesexpr "" diff --git a/localedata/locales/te_IN b/localedata/locales/te_IN index d3456244b0..38040f8bd5 100644 --- a/localedata/locales/te_IN +++ b/localedata/locales/te_IN @@ -104,7 +104,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) @@ -162,7 +162,7 @@ END LC_TIME LC_MESSAGES % This is the POSIX Locale definition for the LC_MESSAGES category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Syntax on Unicode Regular Expression Guidelines TR#18 diff --git a/localedata/locales/zh_HK b/localedata/locales/zh_HK index 42dccc28d8..1674d816fb 100644 --- a/localedata/locales/zh_HK +++ b/localedata/locales/zh_HK @@ -44,7 +44,7 @@ END LC_COLLATE LC_MONETARY % This is the POSIX Locale definition the LC_MONETARY category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % int_curr_symbol "" @@ -78,7 +78,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode/Java % % Removed trailing space, by Anthony Fok , Feb 2002 diff --git a/localedata/locales/zh_SG b/localedata/locales/zh_SG index 7be5b647a6..2d052f45bb 100644 --- a/localedata/locales/zh_SG +++ b/localedata/locales/zh_SG @@ -81,7 +81,7 @@ END LC_NUMERIC LC_TIME % This is the POSIX Locale definition for the LC_TIME category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % Abbreviated weekday names (%a) @@ -136,7 +136,7 @@ END LC_TIME LC_MESSAGES % This is the POSIX Locale definition for the LC_MESSAGES category % generated by IBM Basic CountryPack Transformer. -% These are generated based on XML base Locale difintion file +% These are generated based on XML base Locale definition file % for IBM Class for Unicode. % % ^[yY] From 86a4c67fb91b82c7b47c115b88ab01b1a696f10f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 9 Apr 2010 01:09:24 -0700 Subject: [PATCH 29/35] Implement interfaces to set and get names of threads. At least the Linux kernel provides field where the kernel originally stores the command which is executed by the thread. The value can subsequently be overwritten. The added functions allow to do that for threads, providing and abstraction around the syscalls or /proc file system accesses needed. --- NEWS | 9 ++- nptl/ChangeLog | 11 ++++ nptl/Makefile | 6 +- nptl/Versions | 2 + nptl/sysdeps/pthread/pthread.h | 12 ++++ .../sysdeps/unix/sysv/linux/pthread_getname.c | 64 ++++++++++++++++++ .../sysdeps/unix/sysv/linux/pthread_setname.c | 66 +++++++++++++++++++ 7 files changed, 165 insertions(+), 5 deletions(-) create mode 100644 nptl/sysdeps/unix/sysv/linux/pthread_getname.c create mode 100644 nptl/sysdeps/unix/sysv/linux/pthread_setname.c diff --git a/NEWS b/NEWS index 6438f0db47..5824edeab6 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -GNU C Library NEWS -- history of user-visible changes. 2010-4-8 +GNU C Library NEWS -- history of user-visible changes. 2010-4-9 Copyright (C) 1992-2009, 2010 Free Software Foundation, Inc. See the end for copying conditions. @@ -15,8 +15,11 @@ Version 2.12 11120, 11125, 11126, 11127, 11134, 11141, 11149, 11183, 11184, 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11200, 11230, 11235, 11242, 11254, 11258, 11271, 11272, 11276, 11279, 11287, - 11292, 11319, 11332, 11333, 11387, 11389, 11394, 11397, 11410, 11438, - 11449, 11470, 11471 + 11292, 11319, 11332, 11333, 11387, 11389, 11390, 11394, 11397, 11410, + 11438, 11449, 11470, 11471 + + +* New interfaces: pthread_getname_np, pthread_setname_np * New Linux interface: recvmmsg diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 5b8b0e5555..e69e44f7cd 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,14 @@ +2010-04-09 Ulrich Drepper + + [BZ #11390] + * sysdeps/unix/sysv/linux/pthread_getname.c: New file. + * sysdeps/unix/sysv/linux/pthread_setname.c: New file. + * nptl/sysdeps/pthread/pthread.h: Declare pthread_getname and + pthread_setname. + * Makefile (libpthread-routines): Add pthread_getname and + pthread_setname. + * Versions: Export pthread_getname and pthread_setname for GLIBC_2.12. + 2010-04-05 Thomas Schwinge * sysdeps/pthread/unwind-resume.c: Moved to main tree sysdeps/gnu/. diff --git a/nptl/Makefile b/nptl/Makefile index a7b53ed15d..982db8e205 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2008,2009 Free Software Foundation, Inc. +# Copyright (C) 2002-2008,2009,2010 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 @@ -124,7 +124,9 @@ libpthread-routines = nptl-init vars events version \ pthread_mutexattr_setprotocol \ pthread_mutexattr_getprioceiling \ pthread_mutexattr_setprioceiling tpp \ - pthread_mutex_getprioceiling pthread_mutex_setprioceiling + pthread_mutex_getprioceiling \ + pthread_mutex_setprioceiling \ + pthread_setname pthread_getname # pthread_setuid pthread_seteuid pthread_setreuid \ # pthread_setresuid \ # pthread_setgid pthread_setegid pthread_setregid \ diff --git a/nptl/Versions b/nptl/Versions index 1f2de79fd4..f74941fa92 100644 --- a/nptl/Versions +++ b/nptl/Versions @@ -247,6 +247,8 @@ libpthread { GLIBC_2.12 { pthread_mutex_consistent; pthread_mutexattr_getrobust; pthread_mutexattr_setrobust; + + pthread_setname_np; pthread_getname_np; }; GLIBC_PRIVATE { diff --git a/nptl/sysdeps/pthread/pthread.h b/nptl/sysdeps/pthread/pthread.h index b84fd5c7a4..44cf9f0cac 100644 --- a/nptl/sysdeps/pthread/pthread.h +++ b/nptl/sysdeps/pthread/pthread.h @@ -425,6 +425,18 @@ extern int pthread_setschedprio (pthread_t __target_thread, int __prio) __THROW; +#ifdef __USE_GNU +/* Get thread name visible in the kernel and its interfaces. */ +extern int pthread_getname_np (pthread_t __target_thread, char *__buf, + size_t __buflen) + __THROW __nonnull ((2)); + +/* Set thread name visible in the kernel and its interfaces. */ +extern int pthread_setname_np (pthread_t __target_thread, __const char *__name) + __THROW __nonnull ((2)); +#endif + + #ifdef __USE_UNIX98 /* Determine level of concurrency. */ extern int pthread_getconcurrency (void) __THROW; diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_getname.c b/nptl/sysdeps/unix/sysv/linux/pthread_getname.c new file mode 100644 index 0000000000..c6d78df39f --- /dev/null +++ b/nptl/sysdeps/unix/sysv/linux/pthread_getname.c @@ -0,0 +1,64 @@ +/* pthread_getname_np -- Get thread name. Linux version + Copyright (C) 2010 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 + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#include +#include +#include +#include +#include +#include + +#include + + +int +pthread_getname_np (th, buf, len) + pthread_t th; + char *buf; + size_t len; +{ + const struct pthread *pd = (const struct pthread *) th; + + /* Unfortunately the kernel headers do not export the TASK_COMM_LEN + macro. So we have to define it here. */ +#define TASK_COMM_LEN 16 + if (len < TASK_COMM_LEN) + return ERANGE; + + if (th == THREAD_SELF) + return prctl (PR_SET_NAME, buf) ? errno : 0; + +#define FMT "/proc/self/task/%u/comm" + char fname[sizeof (FMT) + 8]; + sprintf (fname, FMT, (unsigned int) pd->tid); + + int fd = open_not_cancel_2 (fname, O_RDONLY); + if (fd == -1) + return errno; + + int res = 0; + ssize_t n = TEMP_FAILURE_RETRY (read_not_cancel (fd, buf, len)); + if (n < 0) + res = errno; + + close_not_cancel_no_status (fd); + + return res; +} diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_setname.c b/nptl/sysdeps/unix/sysv/linux/pthread_setname.c new file mode 100644 index 0000000000..34c08d9ea1 --- /dev/null +++ b/nptl/sysdeps/unix/sysv/linux/pthread_setname.c @@ -0,0 +1,66 @@ +/* pthread_setname_np -- Set thread name. Linux version + Copyright (C) 2010 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 + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#include +#include +#include +#include +#include +#include + +#include + + +int +pthread_setname_np (th, name) + pthread_t th; + const char *name; +{ + const struct pthread *pd = (const struct pthread *) th; + + /* Unfortunately the kernel headers do not export the TASK_COMM_LEN + macro. So we have to define it here. */ +#define TASK_COMM_LEN 16 + size_t name_len = strlen (name); + if (name_len >= TASK_COMM_LEN) + return ERANGE; + + if (pd == THREAD_SELF) + return prctl (PR_SET_NAME, name) ? errno : 0; + +#define FMT "/proc/self/task/%u/comm" + char fname[sizeof (FMT) + 8]; + sprintf (fname, FMT, (unsigned int) pd->tid); + + int fd = open_not_cancel_2 (fname, O_RDWR); + if (fd == -1) + return errno; + + int res = 0; + ssize_t n = TEMP_FAILURE_RETRY (write_not_cancel (fd, name, name_len)); + if (n < 0) + res = errno; + else if (n != name_len) + res = EIO; + + close_not_cancel_no_status (fd); + + return res; +} From fc97f36d7fe49286d864f3996bcb9b40d9a1f7f4 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 9 Apr 2010 07:56:29 -0700 Subject: [PATCH 30/35] Add BZ to an older patch. --- ChangeLog | 1 + NEWS | 15 +++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9acf264835..2cafb715fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -268,6 +268,7 @@ 2010-03-25 Andreas Schwab + [BZ #11001] * sysdeps/posix/getaddrinfo.c (gaih_inet): Reset no_data before each action. diff --git a/NEWS b/NEWS index 5824edeab6..d55a844d4e 100644 --- a/NEWS +++ b/NEWS @@ -10,14 +10,13 @@ Version 2.12 * The following bugs are resolved with this release: 3662, 4457, 5553, 10162, 10401, 10414, 10554, 10824, 10864, 10915, 10918, - 10936, 10939, 10958, 10968, 10969, 10972, 10992, 11000, 11007, 11010, - 11027, 11039, 11040, 11041, 11043, 11046, 11056, 11070, 11093, 11115, - 11120, 11125, 11126, 11127, 11134, 11141, 11149, 11183, 11184, 11185, - 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11200, - 11230, 11235, 11242, 11254, 11258, 11271, 11272, 11276, 11279, 11287, - 11292, 11319, 11332, 11333, 11387, 11389, 11390, 11394, 11397, 11410, - 11438, 11449, 11470, 11471 - + 10936, 10939, 10958, 10968, 10969, 10972, 10992, 11000, 11001, 11007, + 11010, 11027, 11039, 11040, 11041, 11043, 11046, 11056, 11070, 11093, + 11115, 11120, 11125, 11126, 11127, 11134, 11141, 11149, 11183, 11184, + 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, + 11200, 11230, 11235, 11242, 11254, 11258, 11271, 11272, 11276, 11279, + 11287, 11292, 11319, 11332, 11333, 11387, 11389, 11390, 11394, 11397, + 11410, 11438, 11449, 11470, 11471 * New interfaces: pthread_getname_np, pthread_setname_np From 5d7a6541c2365c64622904366bc4f5c1cb2a73d5 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 9 Apr 2010 12:29:18 -0700 Subject: [PATCH 31/35] Fix typo in last commit. --- nptl/sysdeps/unix/sysv/linux/pthread_getname.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_getname.c b/nptl/sysdeps/unix/sysv/linux/pthread_getname.c index c6d78df39f..593219b8ff 100644 --- a/nptl/sysdeps/unix/sysv/linux/pthread_getname.c +++ b/nptl/sysdeps/unix/sysv/linux/pthread_getname.c @@ -43,7 +43,7 @@ pthread_getname_np (th, buf, len) return ERANGE; if (th == THREAD_SELF) - return prctl (PR_SET_NAME, buf) ? errno : 0; + return prctl (PR_GET_NAME, buf) ? errno : 0; #define FMT "/proc/self/task/%u/comm" char fname[sizeof (FMT) + 8]; From 3aa6513708820aad6304c86c62e25b3b294b23f5 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 9 Apr 2010 13:59:34 -0700 Subject: [PATCH 32/35] Fix tst-chmod not to write into srcdir. --- ChangeLog | 4 ++++ posix/Makefile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2cafb715fe..2c80d69674 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-04-09 Roland McGrath + + * posix/Makefile (tst-chmod-ARGS): Pass $(objdir), not `pwd`. + 2010-04-08 Ulrich Drepper [BZ #10915] diff --git a/posix/Makefile b/posix/Makefile index df0e6f1053..643d7e5374 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -179,7 +179,7 @@ tstgetopt-ARGS = -a -b -cfoobar --required foobar --optional=bazbug \ tst-exec-ARGS = -- $(built-program-cmd) tst-spawn-ARGS = -- $(built-program-cmd) tst-dir-ARGS = `pwd` `cd $(common-objdir)/$(subdir); pwd` `cd $(common-objdir); pwd` $(objpfx)tst-dir -tst-chmod-ARGS = `pwd` +tst-chmod-ARGS = $(objdir) tst-vfork3-ARGS = --test-dir=$(objpfx) tst-fnmatch-ENV = LOCPATH=$(common-objpfx)localedata From 4ae73ca00adbf6bf54bafe93d1318e3446af5919 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 9 Apr 2010 15:18:58 -0700 Subject: [PATCH 33/35] Revert "Shorten build commands" This reverts commit 59d9f1d6983fc9b606a1f9214fb817efe3d6cff8. --- ChangeLog | 8 -------- Makeconfig | 5 ++--- Makefile | 2 +- Makerules | 14 -------------- 4 files changed, 3 insertions(+), 26 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2c80d69674..7d8f1cded9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16,14 +16,6 @@ * malloc/malloc.c (_int_malloc): Return NULL if printing error message returns. -2010-03-30 Daniel Jacobowitz - - * Makeconfig (+common-includes): Define. - (+includes): Use @$(common-objpfx)includes. - * Makefile (postclean): Remove includes and includes.mk. - * Makerules ($(common-objpfx)includes.mk): Include and create - includes.mk. Create includes. - 2010-04-07 Andreas Schwab * sysdeps/unix/sysv/linux/i386/fallocate.c: Set errno on error. diff --git a/Makeconfig b/Makeconfig index dc81545070..cd77fe16b8 100644 --- a/Makeconfig +++ b/Makeconfig @@ -670,10 +670,9 @@ endif # $(+cflags) == "" # library source directory, in the include directory, and in the # current directory. +sysdep-includes = $(addprefix -I,$(+sysdep_dirs)) -+common-includes = $(+sysdep-includes) $(includes) $(sysincludes) +includes = -I$(..)include $(if $(subdir),$(objpfx:%/=-I%)) \ - @$(common-objpfx)includes \ - $(patsubst %/,-I%,$(..)) $(libio-include) -I. + $(+sysdep-includes) $(includes) \ + $(patsubst %/,-I%,$(..)) $(libio-include) -I. $(sysincludes) # Since libio has several internal header files, we use a -I instead # of many little headers in the include directory. diff --git a/Makefile b/Makefile index d2327b3cd9..61cfa436c4 100644 --- a/Makefile +++ b/Makefile @@ -227,7 +227,7 @@ parent-mostlyclean: common-mostlyclean # common-mostlyclean is in Makerules. parent-clean: parent-mostlyclean common-clean postclean = $(addprefix $(common-objpfx),$(postclean-generated)) \ - $(addprefix $(objpfx),sysd-dirs sysd-rules includes includes.mk) \ + $(addprefix $(objpfx),sysd-dirs sysd-rules) \ $(addprefix $(objpfx),sysd-sorted soversions.mk soversions.i) clean: parent-clean diff --git a/Makerules b/Makerules index 9986730d97..bf03b38a9c 100644 --- a/Makerules +++ b/Makerules @@ -267,20 +267,6 @@ ifndef sysd-rules-done no_deps=t endif --include $(common-objpfx)includes.mk -ifneq ($(+common-includes),$(saved-includes)) -# Recreate includes.mk (and includes). -includes-force = FORCE -FORCE: -endif -$(common-objpfx)includes.mk: $(includes-force) - -@rm -f $@T $(common-objpfx)includesT - for inc in $(+common-includes); do echo "$$inc"; done \ - > $(common-objpfx)includesT - mv -f $(common-objpfx)includesT $(common-objpfx)includes - echo 'saved-includes := $(+common-includes)' > $@T - mv -f $@T $@ - define o-iterator-doit $(objpfx)%$o: %.S $(before-compile); $$(compile-command.S) endef From 17ad3877276b37af45c380b07b975406cf2e95de Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 9 Apr 2010 15:31:45 -0700 Subject: [PATCH 34/35] Use a stamp file for libc-abis.h rule. --- ChangeLog | 5 +++++ Makerules | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7d8f1cded9..c38784e7c0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2010-04-09 Roland McGrath + * Makerules ($(common-objpfx)libc-abis.h): Depend on libc-abis.stamp. + ($(common-objpfx)libc-abis.stamp): New target, rule moved from + libc-abis.h target. Use a stamp file to avoid repeating no-op + move-if-change on every run. + * posix/Makefile (tst-chmod-ARGS): Pass $(objdir), not `pwd`. 2010-04-08 Ulrich Drepper diff --git a/Makerules b/Makerules index bf03b38a9c..9bfe55056d 100644 --- a/Makerules +++ b/Makerules @@ -111,14 +111,16 @@ endif # $(versioning) = yes ifndef avoid-generated before-compile := $(common-objpfx)libc-abis.h $(before-compile) -$(common-objpfx)libc-abis.h: $(..)scripts/gen-libc-abis \ +$(common-objpfx)libc-abis.h: $(common-objpfx)libc-abis.stamp; @: +$(common-objpfx)libc-abis.stamp: $(..)scripts/gen-libc-abis \ $(firstword $(wildcard $(sysdirs:=/libc-abis)) \ $(..)libc-abis) \ $(..)Makerules $(SHELL) $< \ $(base-machine)-$(config-vendor)-$(config-os) \ - < $(word 2,$^) > $@T - $(move-if-change) $@T $@ + < $(word 2,$^) > $(@:.stamp=.h)T + $(move-if-change) $(@:.stamp=.h)T $(@:.stamp=.h) + touch $@ common-generated += $(common-objpfx)libc-abis.h endif # avoid-generated From ea42a20caed5b343ff20a0d4622ae6c17b77161b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 9 Apr 2010 21:38:20 -0700 Subject: [PATCH 35/35] Fix crash on reloading of gai data in nscd. --- ChangeLog | 8 ++++++++ nscd/aicache.c | 10 ++++++---- resolv/nss_dns/dns-host.c | 16 ++-------------- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index c38784e7c0..606bc229cc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2010-04-09 Ulrich Drepper + + * nscd/aicache.c (addhstaiX): Correct passing memory to address + list to gethostbyname4_r functions. + + * resolv/nss_dns/dns-host.c (gaih_getanswer_slice): Optimize + copying of h_name. + 2010-04-09 Roland McGrath * Makerules ($(common-objpfx)libc-abis.h): Depend on libc-abis.stamp. diff --git a/nscd/aicache.c b/nscd/aicache.c index 992357d2fe..3cb2208035 100644 --- a/nscd/aicache.c +++ b/nscd/aicache.c @@ -1,5 +1,5 @@ /* Cache handling for host lookup. - Copyright (C) 2004-2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2004-2008, 2009, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2004. @@ -111,7 +111,7 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req, int old_res_options = _res.options; _res.options &= ~RES_USE_INET6; - size_t tmpbuf6len = 512; + size_t tmpbuf6len = 1024; char *tmpbuf6 = alloca (tmpbuf6len); size_t tmpbuf4len = 0; char *tmpbuf4 = NULL; @@ -133,9 +133,11 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req, "gethostbyname4_r"); if (fct4 != NULL) { - struct gaih_addrtuple *at = NULL; + struct gaih_addrtuple atmem; + struct gaih_addrtuple *at; while (1) { + at = &atmem; rc6 = 0; herrno = 0; status[1] = DL_CALL_FCT (fct4, (key, &at, tmpbuf6, tmpbuf6len, @@ -153,7 +155,7 @@ addhstaiX (struct database_dyn *db, int fd, request_header *req, goto next_nip; /* We found the data. Count the addresses and the size. */ - for (const struct gaih_addrtuple *at2 = at; at2 != NULL; + for (const struct gaih_addrtuple *at2 = at = &atmem; at2 != NULL; at2 = at2->next) { ++naddrs; diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c index e0c4978c3b..8592183f62 100644 --- a/resolv/nss_dns/dns-host.c +++ b/resolv/nss_dns/dns-host.c @@ -1050,7 +1050,7 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, ++had_error; continue; } - if (*firstp) + if (*firstp && canon == NULL) { h_name = buffer; buffer += h_namelen; @@ -1166,19 +1166,7 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, if (ttl != 0 && ttlp != NULL) *ttlp = ttl; - if (canon != NULL) - { - (*pat)->name = canon; - - /* Reclaim buffer space. */ - if (h_name + h_namelen == buffer) - { - buffer = h_name; - buflen += h_namelen; - } - } - else - (*pat)->name = h_name; + (*pat)->name = canon ?: h_name; *firstp = 0; }