summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2010-04-12 13:40:20 +0200
committerAndreas Schwab <schwab@redhat.com>2010-04-12 13:40:20 +0200
commit1fd194fb757480a11ebd877e17dd627c90d76dd1 (patch)
tree9ad22d95dd8673bc036d14b0055a8dcd6febe09e
parent4ac4e460b116fb6da6e80124f4c4f6968eb86341 (diff)
parentea42a20caed5b343ff20a0d4622ae6c17b77161b (diff)
Merge remote branch 'origin/master' into fedora/master
-rw-r--r--ChangeLog113
-rw-r--r--Makerules15
-rw-r--r--NEWS99
-rw-r--r--elf/dl-cache.c13
-rw-r--r--elf/dl-support.c10
-rw-r--r--localedata/ChangeLog69
-rw-r--r--localedata/SUPPORTED3
-rw-r--r--localedata/locales/ar_AE4
-rw-r--r--localedata/locales/ar_BH4
-rw-r--r--localedata/locales/ar_DZ4
-rw-r--r--localedata/locales/ar_EG4
-rw-r--r--localedata/locales/ar_IQ4
-rw-r--r--localedata/locales/ar_JO4
-rw-r--r--localedata/locales/ar_KW4
-rw-r--r--localedata/locales/ar_LB4
-rw-r--r--localedata/locales/ar_LY4
-rw-r--r--localedata/locales/ar_MA4
-rw-r--r--localedata/locales/ar_OM4
-rw-r--r--localedata/locales/ar_QA4
-rw-r--r--localedata/locales/ar_SD4
-rw-r--r--localedata/locales/ar_SY4
-rw-r--r--localedata/locales/ar_TN4
-rw-r--r--localedata/locales/ar_YE4
-rw-r--r--localedata/locales/ber_DZ2
-rw-r--r--localedata/locales/ber_MA2
-rw-r--r--localedata/locales/bn_IN2
-rw-r--r--localedata/locales/cv_RU238
-rw-r--r--localedata/locales/en_HK4
-rw-r--r--localedata/locales/en_IN4
-rw-r--r--localedata/locales/en_PH4
-rw-r--r--localedata/locales/en_SG4
-rw-r--r--localedata/locales/es_GT57
-rw-r--r--localedata/locales/gu_IN4
-rw-r--r--localedata/locales/hi_IN4
-rw-r--r--localedata/locales/hne_IN2
-rw-r--r--localedata/locales/kn_IN4
-rw-r--r--localedata/locales/kok_IN4
-rw-r--r--localedata/locales/ks_IN@devanagari2
-rw-r--r--localedata/locales/ml_IN4
-rw-r--r--localedata/locales/mr_IN4
-rw-r--r--localedata/locales/ms_MY4
-rw-r--r--localedata/locales/mt_MT4
-rw-r--r--localedata/locales/my_MM2
-rw-r--r--localedata/locales/ne_NP4
-rw-r--r--localedata/locales/nn_NO4
-rw-r--r--localedata/locales/pa_IN2
-rw-r--r--localedata/locales/sa_IN4
-rw-r--r--localedata/locales/sd_IN@devanagari2
-rw-r--r--localedata/locales/sq_AL62
-rw-r--r--localedata/locales/sq_MK105
-rw-r--r--localedata/locales/ta_IN4
-rw-r--r--localedata/locales/te_IN4
-rw-r--r--localedata/locales/zh_HK4
-rw-r--r--localedata/locales/zh_SG4
-rw-r--r--malloc/malloc.c1
-rw-r--r--math/libm-test.inc4
-rw-r--r--math/s_cproj.c15
-rw-r--r--math/s_cprojf.c15
-rw-r--r--math/s_cprojl.c16
-rw-r--r--nis/libnsl.h3
-rw-r--r--nis/nss11
-rw-r--r--nis/nss-default.c5
-rw-r--r--nis/nss_nis/nis-pwd.c51
-rw-r--r--nis/nss_nis/nis-spwd.c79
-rw-r--r--nptl/ChangeLog11
-rw-r--r--nptl/Makefile6
-rw-r--r--nptl/Versions2
-rw-r--r--nptl/sysdeps/pthread/pthread.h12
-rw-r--r--nptl/sysdeps/unix/sysv/linux/pthread_getname.c64
-rw-r--r--nptl/sysdeps/unix/sysv/linux/pthread_setname.c66
-rw-r--r--nscd/aicache.c10
-rw-r--r--nscd/nscd_stat.c9
-rw-r--r--posix/Makefile6
-rw-r--r--posix/bug-getopt1.c73
-rw-r--r--posix/bug-getopt2.c72
-rw-r--r--posix/bug-getopt3.c81
-rw-r--r--posix/bug-getopt4.c86
-rw-r--r--posix/bug-getopt5.c81
-rw-r--r--posix/getopt.c15
-rw-r--r--resolv/nss_dns/dns-host.c16
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_cprojl.c22
-rw-r--r--sysdeps/unix/sysv/linux/getlogin_r.c16
-rw-r--r--sysdeps/unix/sysv/linux/i386/fallocate.c8
-rw-r--r--sysdeps/unix/sysv/linux/i386/fallocate64.c8
84 files changed, 1516 insertions, 288 deletions
diff --git a/ChangeLog b/ChangeLog
index 082130d761..bed6dfea8c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
diff --git a/Makerules b/Makerules
index d5ff383770..9bfe55056d 100644
--- a/Makerules
+++ b/Makerules
@@ -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
diff --git a/NEWS b/NEWS
index e1fb6a5766..d55a844d4e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
-GNU C Library NEWS -- history of user-visible changes. 2009-12-8
-Copyright (C) 1992-2008, 2009 Free Software Foundation, Inc.
+GNU C Library NEWS -- history of user-visible changes. 2010-4-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. */
diff --git a/nis/nss b/nis/nss
index b7007a6bd4..d720e71926 100644
--- a/nis/nss
+++ b/nis/nss
@@ -1,7 +1,7 @@
# /etc/default/nss
# This file can theoretically contain a bunch of customization variables
# for Name Service Switch in the GNU C library. For now there are only
-# three variables:
+# four variables:
#
# NETID_AUTHORITATIVE
# If set to TRUE, the initgroups() function will accept the information
@@ -26,3 +26,12 @@
# might result into a network communication with the server to get
# the next entry.
SETENT_BATCH_READ=TRUE
+#
+# ADJUNCT_AS_SHADOW
+# If set to TRUE, the passwd routines in the NIS NSS module will not
+# use the passwd.adjunct.byname tables to fill in the password data
+# in the passwd structure. This is a security problem if the NIS
+# server cannot be trusted to send the passwd.adjuct table only to
+# privileged clients. Instead the passwd.adjunct.byname table is
+# used to synthesize the shadow.byname table if it does not exist.
+#ADJUNCT_AS_SHADOW=TRUE
diff --git a/nis/nss-default.c b/nis/nss-default.c
index 046ddfee8d..d7a3293a49 100644
--- a/nis/nss-default.c
+++ b/nis/nss-default.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 2001, 2004, 2006, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 1996,2001,2004,2006,2007,2010 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -47,7 +47,8 @@ static const struct
#define STRNLEN(s) s, sizeof (s) - 1
{ STRNLEN ("NETID_AUTHORITATIVE"), NSS_FLAG_NETID_AUTHORITATIVE },
{ STRNLEN ("SERVICES_AUTHORITATIVE"), NSS_FLAG_SERVICES_AUTHORITATIVE },
- { STRNLEN ("SETENT_BATCH_READ"), NSS_FLAG_SETENT_BATCH_READ }
+ { STRNLEN ("SETENT_BATCH_READ"), NSS_FLAG_SETENT_BATCH_READ },
+ { STRNLEN ("ADJUNCT_AS_SHADOW"), NSS_FLAG_ADJUNCT_AS_SHADOW },
};
#define nvars (sizeof (vars) / sizeof (vars[0]))
diff --git a/nis/nss_nis/nis-pwd.c b/nis/nss_nis/nis-pwd.c
index fdc7dc9e1e..89de350c4d 100644
--- a/nis/nss_nis/nis-pwd.c
+++ b/nis/nss_nis/nis-pwd.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1996-1998,2001-2003,2006,2009 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1998,2001-2003,2006,2009,2010
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <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;