diff options
author | Andreas Schwab <schwab@redhat.com> | 2010-04-12 13:40:20 +0200 |
---|---|---|
committer | Andreas Schwab <schwab@redhat.com> | 2010-04-12 13:40:20 +0200 |
commit | 1fd194fb757480a11ebd877e17dd627c90d76dd1 (patch) | |
tree | 9ad22d95dd8673bc036d14b0055a8dcd6febe09e | |
parent | 4ac4e460b116fb6da6e80124f4c4f6968eb86341 (diff) | |
parent | ea42a20caed5b343ff20a0d4622ae6c17b77161b (diff) |
Merge remote branch 'origin/master' into fedora/master
84 files changed, 1516 insertions, 288 deletions
@@ -1,3 +1,110 @@ +2010-04-09 Ulrich Drepper <drepper@redhat.com> + + * 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 <roland@redhat.com> + + * 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 <drepper@redhat.com> + + [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. + + * malloc/malloc.c (_int_malloc): Return NULL if printing error message + returns. + +2010-04-07 Andreas Schwab <schwab@redhat.com> + + * sysdeps/unix/sysv/linux/i386/fallocate.c: Set errno on error. + * sysdeps/unix/sysv/linux/i386/fallocate64.c: Likewise. + +2010-04-08 Andreas Jaeger <aj@suse.de> + + [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-08 Roland McGrath <roland@redhat.com> + + * 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 <drepper@redhat.com> + + * 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 <ebb9@byu.net> + + [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. + +2009-12-02 Eric Blake <ebb9@byu.net> + + [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 <drepper@redhat.com> + + [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): 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 + 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 <hongjiu.lu@intel.com> + + * Makerules (libc-abis): Add $(..) to libc-abis. + +2010-04-06 Joseph Myers <joseph@codesourcery.com> + + * Makerules (libc-abis): Fix search for libc-abis in add-ons. + 2010-04-06 Ulrich Drepper <drepper@redhat.com> * sysdeps/posix/getaddrinfo.c (default_scopes): Assign global @@ -13,6 +120,10 @@ 2010-04-05 Roland McGrath <roland@redhat.com> + * 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-03-30 Paul Pluzhnikov <ppluzhnikov@google.com> @@ -172,6 +283,7 @@ 2010-03-25 Andreas Schwab <schwab@redhat.com> + [BZ #11001] * sysdeps/posix/getaddrinfo.c (gaih_inet): Reset no_data before each action. @@ -969,6 +1081,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 <rsa@us.ibm.com> @@ -111,13 +111,16 @@ 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) -$(common-objpfx)libc-abis.h: $(..)scripts/gen-libc-abis $(libc-abis) - $(SHELL) $(..)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) \ - < $(libc-abis) > $@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 @@ -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-9 +Copyright (C) 1992-2009, 2010 Free Software Foundation, Inc. See the end for copying conditions. Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/> @@ -7,11 +7,46 @@ 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, 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 + * 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 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. @@ -64,10 +99,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. @@ -114,10 +156,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. @@ -155,6 +204,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. @@ -188,6 +247,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. @@ -228,15 +295,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. 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; diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 16e2898ce9..e362e29886 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,72 @@ +2010-04-08 Ulrich Drepper <drepper@redhat.com> + + * 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] + * locales/cv_RU: New file. + Contributed by Adi Roiban <adi@roiban.ro>. + + [BZ #10936] + * locales/es_GT: Change paper size to letter. + + * SUPPORTED (SUPPORTED-LOCALES): Add kok_IN and sq_MK. + + [BZ #11470] + * locales/sq_MK: New file. + Contributed by Agron Selimaj <linuxmaster@verizon.net>. + +2010-04-07 Ulrich Drepper <drepper@redhat.com> + + [BZ #11471] + * locales/sq_AL: Fix Mr. Mrs. Ms. and Miss. + Patch by Agron Selimaj <linuxmaster@verizon.net>. + 2010-04-05 Ulrich Drepper <drepper@redhat.com> [BZ #11007] diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED index 2db559d60e..75e1a00a76 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 \ @@ -262,6 +263,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 \ @@ -358,6 +360,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 \ 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 "<U0041><U0045><U0044><U0020>" @@ -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 "<U0042><U0048><U0044><U0020>" @@ -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 "<U0044><U005A><U0044><U0020>" @@ -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 "<U0045><U0047><U0050><U0020>" @@ -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 "<U0049><U0051><U0044><U0020>" @@ -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 "<U004A><U004F><U0044><U0020>" @@ -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 "<U004B><U0057><U0044><U0020>" @@ -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 "<U004C><U0042><U0050><U0020>" @@ -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 "<U004C><U0059><U0044><U0020>" @@ -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 "<U004D><U0041><U0044><U0020>" @@ -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 "<U004F><U004D><U0052><U0020>" @@ -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 "<U0051><U0041><U0052><U0020>" @@ -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 "<U0053><U0044><U0044><U0020>" @@ -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 "<U0053><U0059><U0050><U0020>" @@ -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 "<U0054><U004E><U0044><U0020>" @@ -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 "<U0059><U0045><U0052><U0020>" @@ -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 "<U0044><U005A><U0044><U0020>" 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 "<U004D><U0041><U0044><U0020>" 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/cv_RU b/localedata/locales/cv_RU new file mode 100644 index 0000000000..0eae6d4d46 --- /dev/null +++ b/localedata/locales/cv_RU @@ -0,0 +1,238 @@ +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 <adi@roiban.ro> +% 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 <a(> +collating-symbol <e(> +collating-symbol <s<> +collating-symbol <s,> +collating-symbol <u-diaerisis> + +reorder-after <a> +<a(> +reorder-after <e> +<e(> +reorder-after <r> +<s<> +reorder-after <s> +<s,> +reorder-after <u> +<u-diaerisis> + +reorder-after <U0061> +<U0103> <a(>;<BRE>;<MIN>;IGNORE +reorder-after <U0041> +<U0102> <a(>;<BRE>;<CAP>;IGNORE + +reorder-after <U0065> +<U0115> <e(>;<BRE>;<MIN>;IGNORE +reorder-after <U0045> +<U0114> <e(>;<BRE>;<CAP>;IGNORE + +reorder-after <U0072> +<U0161> <s<>;<CAR>;<MIN>;IGNORE +reorder-after <U0053> +<U0160> <s<>;<CAR>;<CAP>;IGNORE + +reorder-after <U0073> +<U0219> <s,>;<CDI>;<MIN>;IGNORE +<U015F> <s,>;<CDI>;<MIN>;IGNORE +reorder-after <U0053> +<U0218> <s,>;<CDI>;<CAP>;IGNORE +<U015E> <s,>;<CDI>;<CAP>;IGNORE + +reorder-after <U0074> +<U00FC> <u-diaerisis>;<BAS>;<MIN>;IGNORE +reorder-after <U0055> +<U00DC> <u-diaerisis>;<BAS>;<CAP>;IGNORE + +reorder-end + +END LC_COLLATE + +LC_CTYPE +copy "i18n" + +translit_start +include "translit_combining";"" +translit_end +END LC_CTYPE + +LC_MESSAGES +% "^[yY].*" +yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>" +% "^[nN].*" +noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>" +END LC_MESSAGES + +LC_MONETARY +int_curr_symbol "<U0052><U0055><U0042><U0020>" + +% "t." - short for tenke(, Chuvash name for rouble +currency_symbol "<U0074>" + +mon_decimal_point "<U002E>" +mon_thousands_sep "<U00A0>" +mon_grouping 3;3 +positive_sign "" +negative_sign "<U002D>" +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<a(matkun (Saturday) s<m + +day "<U0076><U0079><U0072><U0073><U0061><U0072><U006E><U0069><U006B><U0075><U006E>";/ + "<U0074><U0075><U006E><U0074><U0069><U006B><U0075><U006E>";/ + "<U0079><U0074><U006C><U0061><U0072><U0069><U006B><U0075><U006E>";/ + "<U006A><U0075><U006E><U006B><U0075><U006E>";/ + "<U006B><U0115><U015F><U006E><U0065><U0072><U006E><U0069><U006B><U0075><U006E>";/ + "<U0065><U0072><U006E><U0065><U006B><U0075><U006E>";/ + "<U0161><U0103><U006D><U0061><U0074><U006B><U0075><U006E>" + +abday "<U0076><U0072>";/ + "<U0074><U006E>";/ + "<U0079><U0074>";/ + "<U006A><U006E>";/ + "<U006B><U015F>";/ + "<U0065><U0072>";/ + "<U0161><U006D>" + +% 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<tav (December) RAS< + +mon "<U006B><U0103><U0072><U006C><U0061><U0063>";/ + "<U006E><U0061><U0072><U0103><U0073>";/ + "<U0070><U0075><U0161>";/ + "<U0061><U006B><U0061>";/ + "<U015F><U0075>";/ + "<U015F><U0115><U0072><U0074><U006D><U0065>";/ + "<U0075><U0074><U0103>";/ + "<U015F><U0075><U0072><U006C><U0061>";/ + "<U0061><U0076><U0103><U006E>";/ + "<U006A><U0075><U0070><U0061>";/ + "<U0063><U00FC><U006B>";/ + "<U0072><U0061><U0161><U0074><U0061><U0076>" +abmon "<U004B><U0102><U0052>";/ + "<U004E><U0041><U0052>";/ + "<U0050><U0055><U0160>";/ + "<U0041><U004B><U0041>";/ + "<U015E><U0055>";/ + "<U015E><U0114><U0052>";/ + "<U0055><U0054><U0102>";/ + "<U015E><U0055><U0052>";/ + "<U0041><U0056><U0102>";/ + "<U004A><U0055><U0050>";/ + "<U0043><U00DC><U004B>";/ + "<U0052><U0041><U0160>" +d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062>/ +<U0020><U0025><U0059><U0020><U0025><U0054>" +d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>" +t_fmt "<U0025><U0054>" +am_pm "";"" +t_fmt_ampm "" +date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/ +<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/ +<U0025><U005A><U0020><U0025><U0059>" +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 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/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 "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/ - "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ - "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ - "<U0073><U00E1><U0062>" + "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/ + "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/ + "<U0073><U00E1><U0062>" day "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/ - "<U006C><U0075><U006E><U0065><U0073>";/ - "<U006D><U0061><U0072><U0074><U0065><U0073>";/ - "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ - "<U006A><U0075><U0065><U0076><U0065><U0073>";/ - "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ - "<U0073><U00E1><U0062><U0061><U0064><U006F>" + "<U006C><U0075><U006E><U0065><U0073>";/ + "<U006D><U0061><U0072><U0074><U0065><U0073>";/ + "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/ + "<U006A><U0075><U0065><U0076><U0065><U0073>";/ + "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/ + "<U0073><U00E1><U0062><U0061><U0064><U006F>" abmon "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/ - "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ - "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ - "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ - "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ - "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" + "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/ + "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/ + "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/ + "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/ + "<U006E><U006F><U0076>";"<U0064><U0069><U0063>" mon "<U0065><U006E><U0065><U0072><U006F>";/ - "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ - "<U006D><U0061><U0072><U007A><U006F>";/ - "<U0061><U0062><U0072><U0069><U006C>";/ - "<U006D><U0061><U0079><U006F>";/ - "<U006A><U0075><U006E><U0069><U006F>";/ - "<U006A><U0075><U006C><U0069><U006F>";/ - "<U0061><U0067><U006F><U0073><U0074><U006F>";/ - "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ - "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ - "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ - "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" + "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/ + "<U006D><U0061><U0072><U007A><U006F>";/ + "<U0061><U0062><U0072><U0069><U006C>";/ + "<U006D><U0061><U0079><U006F>";/ + "<U006A><U0075><U006E><U0069><U006F>";/ + "<U006A><U0075><U006C><U0069><U006F>";/ + "<U0061><U0067><U006F><U0073><U0074><U006F>";/ + "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/ + "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/ + "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/ + "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>" d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" t_fmt "<U0025><U0054>" @@ -125,10 +124,8 @@ date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/ END LC_TIME LC_PAPER -% FIXME -height 297 -% FIXME -width 210 +height 279 +width 216 END LC_PAPER LC_TELEPHONE 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 "<U0049><U004E><U0052><U0020>" @@ -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 "<U0049><U004E><U0052><U0020>" @@ -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 "<U0049><U004E><U0052><U0020>" @@ -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 "<U0049><U004E><U0052><U0020>" @@ -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 "<U004E><U004F><U004B><U0020>" @@ -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 "<U0049><U004E><U0052><U0020>" @@ -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 4aeb3dc810..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 "<U0041><U004C><U004C><U0020>" @@ -223,46 +223,46 @@ 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) abday "<U0044><U0069><U0065><U0020>";"<U0048><U00EB><U006E><U0020>";/ - "<U004D><U0061><U0072><U0020>";"<U004D><U00EB><U0072><U0020>";/ - "<U0045><U006E><U006A><U0020>";"<U0050><U0072><U0065><U0020>";/ - "<U0053><U0068><U0074><U0020>" + "<U004D><U0061><U0072><U0020>";"<U004D><U00EB><U0072><U0020>";/ + "<U0045><U006E><U006A><U0020>";"<U0050><U0072><U0065><U0020>";/ + "<U0053><U0068><U0074><U0020>" % % Full weekday names (%A) day "<U0065><U0020><U0064><U0069><U0065><U006C><U0020>";/ - "<U0065><U0020><U0068><U00EB><U006E><U00EB><U0020>";/ - "<U0065><U0020><U006D><U0061><U0072><U0074><U00EB><U0020>";/ - "<U0065><U0020><U006D><U00EB><U0072><U006B><U0075><U0072>/ + "<U0065><U0020><U0068><U00EB><U006E><U00EB><U0020>";/ + "<U0065><U0020><U006D><U0061><U0072><U0074><U00EB><U0020>";/ + "<U0065><U0020><U006D><U00EB><U0072><U006B><U0075><U0072>/ <U00EB><U0020>";/ - "<U0065><U0020><U0065><U006E><U006A><U0074><U0065><U0020>";/ - "<U0065><U0020><U0070><U0072><U0065><U006D><U0074><U0065><U0020>";/ - "<U0065><U0020><U0073><U0068><U0074><U0075><U006E><U00EB><U0020>" + "<U0065><U0020><U0065><U006E><U006A><U0074><U0065><U0020>";/ + "<U0065><U0020><U0070><U0072><U0065><U006D><U0074><U0065><U0020>";/ + "<U0065><U0020><U0073><U0068><U0074><U0075><U006E><U00EB><U0020>" % % Abbreviated month names (%b) abmon "<U004A><U0061><U006E>";"<U0053><U0068><U006B>";/ - "<U004D><U0061><U0072>";"<U0050><U0072><U0069>";/ - "<U004D><U0061><U006A>";"<U0051><U0065><U0072>";/ - "<U004B><U006F><U0072>";"<U0047><U0073><U0068>";/ - "<U0053><U0068><U0074>";"<U0054><U0065><U0074>";/ - "<U004E><U00EB><U006E>";"<U0044><U0068><U006A>" + "<U004D><U0061><U0072>";"<U0050><U0072><U0069>";/ + "<U004D><U0061><U006A>";"<U0051><U0065><U0072>";/ + "<U004B><U006F><U0072>";"<U0047><U0073><U0068>";/ + "<U0053><U0068><U0074>";"<U0054><U0065><U0074>";/ + "<U004E><U00EB><U006E>";"<U0044><U0068><U006A>" % % Full month names (%B) mon "<U006A><U0061><U006E><U0061><U0072>";/ - "<U0073><U0068><U006B><U0075><U0072><U0074>";/ - "<U006D><U0061><U0072><U0073>";/ - "<U0070><U0072><U0069><U006C><U006C>";/ - "<U006D><U0061><U006A>";/ - "<U0071><U0065><U0072><U0073><U0068><U006F><U0072>";/ - "<U006B><U006F><U0072><U0072><U0069><U006B>";/ - "<U0067><U0075><U0073><U0068><U0074>";/ - "<U0073><U0068><U0074><U0061><U0074><U006F><U0072>";/ - "<U0074><U0065><U0074><U006F><U0072>";/ - "<U006E><U00EB><U006E><U0074><U006F><U0072>";/ - "<U0064><U0068><U006A><U0065><U0074><U006F><U0072>" + "<U0073><U0068><U006B><U0075><U0072><U0074>";/ + "<U006D><U0061><U0072><U0073>";/ + "<U0070><U0072><U0069><U006C><U006C>";/ + "<U006D><U0061><U006A>";/ + "<U0071><U0065><U0072><U0073><U0068><U006F><U0072>";/ + "<U006B><U006F><U0072><U0072><U0069><U006B>";/ + "<U0067><U0075><U0073><U0068><U0074>";/ + "<U0073><U0068><U0074><U0061><U0074><U006F><U0072>";/ + "<U0074><U0065><U0074><U006F><U0072>";/ + "<U006E><U00EB><U006E><U0074><U006F><U0072>";/ + "<U0064><U0068><U006A><U0065><U0074><U006F><U0072>" % % Equivalent of AM PM am_pm "<U0050><U0044>";"<U004D><U0044>" @@ -315,10 +315,10 @@ LC_NAME name_fmt "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/ <U0025><U0067>" name_gen "" -name_mr "<U004D><U0072><U002E>" -name_mrs "<U004D><U0072><U0073><U002E>" -name_miss "<U004D><U0069><U0073><U0073><U002E>" -name_ms "<U004D><U0073><U002E>" +name_mr "<U005A><U002E>" +name_mrs "<U005A><U006E><U006A><U002E>" +name_miss "<U005A><U0073><U0068><U002E>" +name_ms "<U005A><U006E><U006A><U002E>" END LC_NAME diff --git a/localedata/locales/sq_MK b/localedata/locales/sq_MK new file mode 100644 index 0000000000..eb3c7eb64c --- /dev/null +++ b/localedata/locales/sq_MK @@ -0,0 +1,105 @@ +comment_char % +escape_char / +% Albanian language locale for Macedonia. +% Contributed by Agron Selimaj <linuxmaster@verizon.net> + +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 definition file +% for IBM Class for Unicode/Java +% +int_curr_symbol "<U004D><U004B><U0044><U0020>" +currency_symbol "<U0064><U0065><U006E>" +mon_decimal_point "<U002C>" +mon_thousands_sep "<U0020>" +mon_grouping 3;3 +positive_sign "" +negative_sign "<U002D>" +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 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 "<U005E><U005B><U0B86><U0BAE><U0BCD><U0079><U0059><U005D>" 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 "<U0048><U004B><U0044><U0020>" @@ -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 <anthony@thizlinux.com>, 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] 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; 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 <aj@suse.de>, 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..cff75c40cf 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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 <drepper@cygnus.com>, 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/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. */ @@ -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 <kukuk@vt.uni-paderborn.de>, 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 <kukuk@vt.uni-paderborn.de>, 1996. @@ -31,6 +31,7 @@ #include <rpcsvc/ypclnt.h> #include "nss-nis.h" +#include <libnsl.h> /* 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); diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 811b0842f4..bda3391558 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,14 @@ +2010-04-09 Ulrich Drepper <drepper@redhat.com> + + [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 <thomas@schwinge.name> * sysdeps/pthread/unwind-resume.c: Moved to main tree sysdeps/gnu/. diff --git a/nptl/Makefile b/nptl/Makefile index 34940b59d6..8a6f3f2d28 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..593219b8ff --- /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 <errno.h> +#include <fcntl.h> +#include <pthreadP.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <sys/prctl.h> + +#include <not-cancel.h> + + +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_GET_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 <errno.h> +#include <fcntl.h> +#include <pthreadP.h> +#include <stdio.h> +#include <string.h> +#include <unistd.h> +#include <sys/prctl.h> + +#include <not-cancel.h> + + +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; +} 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 <drepper@redhat.com>, 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/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 <kukuk@vt.uni-paderborn.de>, 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) { diff --git a/posix/Makefile b/posix/Makefile index 0249977fd6..bb2b054249 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 @@ -177,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 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 <unistd.h> +#include <stdio.h> + +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 <unistd.h> +#include <stdio.h> + +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 <getopt.h> +#include <unistd.h> +#include <stdio.h> + +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 <getopt.h> +#include <unistd.h> +#include <stdio.h> + +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 <getopt.h> +#include <unistd.h> +#include <stdio.h> + +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" diff --git a/posix/getopt.c b/posix/getopt.c index 88acff0e2f..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 @@ -789,7 +791,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) { @@ -911,7 +913,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 +1033,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; 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; } 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 <drepper@cygnus.com>, 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); 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) 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; |