[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r7923 - in /trunk: libc/ libc/bits/ libc/debug/ libc/elf/ libc/grp/ libc/include/ libc/include/rpc/ libc/intl/ libc/locale/p...



Author: joseph
Date: Fri Feb 13 10:31:14 2009
New Revision: 7923

Log:
Merge changes between r7867 and r7922 from /fsf/trunk.

Modified:
    trunk/libc/ChangeLog
    trunk/libc/bits/confname.h
    trunk/libc/bits/environments.h
    trunk/libc/debug/pcprofiledump.c
    trunk/libc/debug/xtrace.sh
    trunk/libc/elf/dl-load.c
    trunk/libc/elf/ldconfig.c
    trunk/libc/elf/ldd.bash.in
    trunk/libc/elf/sln.c
    trunk/libc/elf/sprof.c
    trunk/libc/grp/compat-initgroups.c
    trunk/libc/include/atomic.h
    trunk/libc/include/malloc.h
    trunk/libc/include/rpc/auth.h
    trunk/libc/intl/dcigettext.c
    trunk/libc/locale/programs/locale.c
    trunk/libc/localedata/ChangeLog
    trunk/libc/localedata/Makefile
    trunk/libc/localedata/locales/el_CY
    trunk/libc/localedata/locales/el_GR
    trunk/libc/localedata/locales/iso14651_t1_common
    trunk/libc/localedata/locales/sv_FI
    trunk/libc/malloc/arena.c
    trunk/libc/malloc/hooks.c
    trunk/libc/malloc/malloc.c
    trunk/libc/malloc/memusage.c
    trunk/libc/malloc/memusage.sh
    trunk/libc/malloc/memusagestat.c
    trunk/libc/nptl_db/ChangeLog
    trunk/libc/nptl_db/td_thr_get_info.c
    trunk/libc/nscd/nscd.c
    trunk/libc/nss/getent.c
    trunk/libc/po/Makefile
    trunk/libc/po/libc.pot
    trunk/libc/po/lt.po
    trunk/libc/posix/Makefile
    trunk/libc/posix/confstr.c
    trunk/libc/posix/confstr.inc
    trunk/libc/posix/cross-getconf.c
    trunk/libc/posix/getconf.c
    trunk/libc/posix/sysconf.c
    trunk/libc/resolv/res_libc.c
    trunk/libc/stdio-common/psignal.c
    trunk/libc/sunrpc/rpc_common.c
    trunk/libc/sunrpc/rpc_main.c
    trunk/libc/sunrpc/rpcinfo.c
    trunk/libc/sysdeps/i386/i486/bits/atomic.h
    trunk/libc/sysdeps/posix/sysconf.c
    trunk/libc/sysdeps/unix/opendir.c
    trunk/libc/sysdeps/unix/sysv/linux/i386/bits/environments.h
    trunk/libc/sysdeps/unix/sysv/linux/lddlibc4.c
    trunk/libc/sysdeps/unix/sysv/linux/ldsodefs.h
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/bits/environments.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/bits/environments.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/environments.h
    trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/environments.h
    trunk/libc/sysdeps/x86_64/bits/atomic.h
    trunk/libc/time/tzset.c
    trunk/ports/ChangeLog.arm
    trunk/ports/ChangeLog.hppa
    trunk/ports/ChangeLog.mips
    trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/unwind-forcedunwind.c
    trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c
    trunk/ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/malloc-machine.h
    trunk/ports/sysdeps/unix/sysv/linux/hppa/nptl/unwind-forcedunwind.c
    trunk/ports/sysdeps/unix/sysv/linux/mips/sys/inotify.h

Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Fri Feb 13 10:31:14 2009
@@ -1,3 +1,131 @@
+2009-02-11  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* po/lt.po: Update from translation team.
+
+2009-02-10  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* elf/dl-load.c (open_verify): In case VALID_ELF_HEADER is
+	defined, allow additional data to be added using the optional
+	MORE_ELF_HEADER_DATA macro.
+	* sysdeps/unix/sysv/linux/ldsodefs.h (VALID_ELF_HEADER,
+	VALID_ELF_OSABI, VALID_ELF_ABIVERSION, MORE_ELF_HEADER_DATA): Define.
+
+2009-02-08  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* include/atomic.h: Define catomic_and if not already defined.
+	* sysdeps/x86_64/bits/atomic.h: Define catomic_and.
+	* sysdeps/i386/i486/bits/atomic.h: Likewise.
+
+2009-02-07  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* malloc/malloc.c (_int_free): Second argument is now mchunkptr.
+	Change all callers.
+	(_int_realloc): Likewise.  Third argument is now padded size
+	All _int_* functions are now static.
+
+	* malloc/hooks.c: Change all callers to _int_free and _int_realloc.
+	* malloc/arena.c: Likewise.
+	* include/malloc.h: Remove now unnecessary declarations of the _int_*
+	functions.
+
+	* sunrpc/rpc_common.c: We cannot move _null_auth into .rodata that
+	easily.
+
+	* malloc/malloc.c: Add branch prediction for use of the hooks.
+
+	* grp/compat-initgroups.c [NOT_IN_libc] (__libc_use_alloca): Define.
+
+2009-02-06  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #7095]
+	* bits/confname.h: Add SUSv7 macros for getconf environments.
+	* bits/environments.h: Likewise.
+	* sysdeps/unix/sysv/linux/i386/bits/environments.h: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/bits/environments.h: Likewise.
+	* sysdeps/unix/sysv/linux/s390/bits/environments.h: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/bits/environments.h: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/bits/environments.h: Likewise.
+	* posix/confstr.c: Handle SUSv5 and SUSv7 environments.
+	* posix/getconf.c: Likewise.
+	* posix/sysconf.c: Likewise.
+	* sysdeps/posix/sysconf.c: Likewise.
+	* posix/Makefile (getconf.speclist): Also collect SUSv5 and SUSv7
+	environments.
+
+2009-01-16  Petr Baudis  <pasky@xxxxxxx>
+
+	[BZ #9753]
+	* resolv/res_libc.c (__res_maybe_init): Call __res_vinit()
+	even if we currently have zero nscount.
+
+2009-02-06  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #9781]
+	* grp/compat-initgroups.c (compat_call): Switch to use malloc when
+	the input line is too long.
+
+	* po/Makefile (libc.pot): Add f_print as function taking c-format
+	parameter.
+
+	* debug/xtrace.sh: Unify translatable messages.
+	* elf/ldd.bash.in: Likewise.
+	* elf/sprof.c: Likewise.
+	* locale/programs/locale.c: Likewise.
+	* malloc/memusage.sh: Likewise.
+	* nss/getent.c: Likewise.
+
+2009-02-06  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* debug/pcprofiledump.c (print_version,
+	argp_program_version_hook): New function.
+	* elf/ldconfig.c (more_help): New function.
+	(argp): Use it.
+	* elf/sln.c (usage): New function.
+	(main): Support --help and --version.
+	* malloc/memusagestat.c (print_version): New function.
+	(argp_program_version_hook): New variable.
+	* nscd/nscd.c (more_help): New function.
+	(argp): Use it.
+	* posix/getconf.c (main): Send --version output to stdout.
+	Support --help.
+	* sunrpc/rpc_main.c (usage, options_usage): Take STREAM and STATUS
+	arguments.  All callers changed.
+	(print_version): New function.
+	(parseargs): Support --help and --version.
+	* sunrpc/rpcinfo.c (usage): Take STREAM argument.  All callers
+	changed.
+	(print_version): New function.
+	(main): Use getopt_long.  Support --help and --version.
+	* sysdeps/unix/sysv/linux/lddlibc4.c (main): Support --help and
+	--version.
+
+2009-02-06  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* malloc/memusage.c (DEFAULT_BUFFER_SIZE): Change to 32768.
+	(update_data): Fix handling of wrapping back
+	to the beginning of the buffer.
+
+	[BZ #9823]
+	* stdio-common/psignal.c (psignal): Fix test for empty string.
+
+2009-02-05  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* include/rpc/auth.h: Use libc_hidden_proto for _null_auth.
+	* sunrpc/rpc_common.c: Add libc_hidden_def for _null_auth.  Also
+	move _null_auth to .rodata.
+
+	* time/tzset.c (__tzset_parse_tz): DST offset must also allow hour
+	value of 24.
+
+	* intl/dcigettext.c (DCIGETTEXT): Avoid some code duplication.
+
+	* sysdeps/unix/opendir.c (__alloc_dir): We have a lot more memory
+	today than when the original code was written.  Use larger
+	buffers.  This also makes it unnecessary to have stat information,
+	if this causes extra efforts.
+	(__opendir): In case O_DIRECTORY works, don't call fstat just for
+	__alloc_dir.
+
 2009-02-03  Andrew Stubbs  <ams@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/sh/sh4/dl-trampoline.S: Only set HAVE_FPU if __SH_FPU_ANY__

Modified: trunk/libc/bits/confname.h
==============================================================================
--- trunk/libc/bits/confname.h (original)
+++ trunk/libc/bits/confname.h Fri Feb 13 10:31:14 2009
@@ -1,5 +1,5 @@
 /* `sysconf', `pathconf', and `confstr' NAME values.  Generic version.
-   Copyright (C) 1993,1995-1998,2000,2001,2003,2004,2007
+   Copyright (C) 1993,1995-1998,2000,2001,2003,2004,2007,2009
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -498,8 +498,17 @@
 
     _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
 #define _SC_IPV6			_SC_IPV6
-    _SC_RAW_SOCKETS
+    _SC_RAW_SOCKETS,
 #define _SC_RAW_SOCKETS			_SC_RAW_SOCKETS
+
+    _SC_V7_ILP32_OFF32,
+#define _SC_V7_ILP32_OFF32		_SC_V7_ILP32_OFF32
+    _SC_V7_ILP32_OFFBIG,
+#define _SC_V7_ILP32_OFFBIG		_SC_V7_ILP32_OFFBIG
+    _SC_V7_LP64_OFF64,
+#define _SC_V7_LP64_OFF64		_SC_V7_LP64_OFF64
+    _SC_V7_LPBIG_OFFBIG,
+#define _SC_V7_LPBIG_OFFBIG		_SC_V7_LPBIG_OFFBIG
   };
 
 /* Values for the NAME argument to `confstr'.  */
@@ -516,6 +525,14 @@
 #define _CS_GNU_LIBC_VERSION	_CS_GNU_LIBC_VERSION
     _CS_GNU_LIBPTHREAD_VERSION,
 #define _CS_GNU_LIBPTHREAD_VERSION	_CS_GNU_LIBPTHREAD_VERSION
+
+    _CS_V5_WIDTH_RESTRICTED_ENVS,
+#define _CS_V5_WIDTH_RESTRICTED_ENVS	_CS_V5_WIDTH_RESTRICTED_ENVS
+#define _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS	_CS_V5_WIDTH_RESTRICTED_ENVS
+
+    _CS_V7_WIDTH_RESTRICTED_ENVS,
+#define _CS_V7_WIDTH_RESTRICTED_ENVS	_CS_V7_WIDTH_RESTRICTED_ENVS
+#define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS	_CS_V7_WIDTH_RESTRICTED_ENVS
 
     _CS_LFS_CFLAGS = 1000,
 #define _CS_LFS_CFLAGS	_CS_LFS_CFLAGS
@@ -597,6 +614,39 @@
 #define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
     _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
 #define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
-    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
 #define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+
+    _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
+#define _CS_POSIX_V7_ILP32_OFF32_CFLAGS _CS_POSIX_V7_ILP32_OFF32_CFLAGS
+    _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
+#define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS _CS_POSIX_V7_ILP32_OFF32_LDFLAGS
+    _CS_POSIX_V7_ILP32_OFF32_LIBS,
+#define _CS_POSIX_V7_ILP32_OFF32_LIBS _CS_POSIX_V7_ILP32_OFF32_LIBS
+    _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
+#define _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS
+    _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
+#define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
+    _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
+#define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
+    _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
+#define _CS_POSIX_V7_ILP32_OFFBIG_LIBS _CS_POSIX_V7_ILP32_OFFBIG_LIBS
+    _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
+#define _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS
+    _CS_POSIX_V7_LP64_OFF64_CFLAGS,
+#define _CS_POSIX_V7_LP64_OFF64_CFLAGS _CS_POSIX_V7_LP64_OFF64_CFLAGS
+    _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
+#define _CS_POSIX_V7_LP64_OFF64_LDFLAGS _CS_POSIX_V7_LP64_OFF64_LDFLAGS
+    _CS_POSIX_V7_LP64_OFF64_LIBS,
+#define _CS_POSIX_V7_LP64_OFF64_LIBS _CS_POSIX_V7_LP64_OFF64_LIBS
+    _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
+#define _CS_POSIX_V7_LP64_OFF64_LINTFLAGS _CS_POSIX_V7_LP64_OFF64_LINTFLAGS
+    _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
+#define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
+    _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
+#define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
+    _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
+#define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
+    _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
+#define _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
   };

Modified: trunk/libc/bits/environments.h
==============================================================================
--- trunk/libc/bits/environments.h (original)
+++ trunk/libc/bits/environments.h Fri Feb 13 10:31:14 2009
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2001, 2004, 2009 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
@@ -27,30 +27,36 @@
    `-1' means it is never supported.  Undefined means it cannot be
    statically decided.
 
-   _POSIX_V6_ILP32_OFF32   32bit int, long, pointers, and off_t type
-   _POSIX_V6_ILP32_OFFBIG  32bit int, long, and pointers and larger off_t type
+   _POSIX_V7_ILP32_OFF32   32bit int, long, pointers, and off_t type
+   _POSIX_V7_ILP32_OFFBIG  32bit int, long, and pointers and larger off_t type
 
-   _POSIX_V6_LP64_OFF32	   64bit long and pointers and 32bit off_t type
-   _POSIX_V6_LPBIG_OFFBIG  64bit long and pointers and large off_t type
+   _POSIX_V7_LP64_OFF32	   64bit long and pointers and 32bit off_t type
+   _POSIX_V7_LPBIG_OFFBIG  64bit long and pointers and large off_t type
 
-   The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and
-   _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard
-   and are available only for compatibility.
+   The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
+   _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
+   _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
+   used in previous versions of the Unix standard and are available
+   only for compatibility.
 */
 
 #if __WORDSIZE == 64
 
 /* We can never provide environments with 32-bit wide pointers.  */
+# define _POSIX_V7_ILP32_OFF32	-1
+# define _POSIX_V7_ILP32_OFFBIG	-1
 # define _POSIX_V6_ILP32_OFF32	-1
 # define _POSIX_V6_ILP32_OFFBIG	-1
 # define _XBS5_ILP32_OFF32	-1
 # define _XBS5_ILP32_OFFBIG	-1
 /* We also have no use (for now) for an environment with bigger pointers
    and offsets.  */
+# define _POSIX_V7_LPBIG_OFFBIG	-1
 # define _POSIX_V6_LPBIG_OFFBIG	-1
 # define _XBS5_LPBIG_OFFBIG	-1
 
 /* By default we have 64-bit wide `long int', pointers and `off_t'.  */
+# define _POSIX_V7_LP64_OFF64	1
 # define _POSIX_V6_LP64_OFF64	1
 # define _XBS5_LP64_OFF64	1
 
@@ -58,15 +64,19 @@
 
 /* By default we have 32-bit wide `int', `long int', pointers and `off_t'
    and all platforms support LFS.  */
+# define _POSIX_V7_ILP32_OFF32	1
+# define _POSIX_V7_ILP32_OFFBIG	1
 # define _POSIX_V6_ILP32_OFF32	1
 # define _POSIX_V6_ILP32_OFFBIG	1
 # define _XBS5_ILP32_OFF32	1
 # define _XBS5_ILP32_OFFBIG	1
 
 /* We optionally provide an environment with the above size but an 64-bit
-   side `off_t'.  Therefore we don't define _XBS5_ILP32_OFFBIG.  */
+   side `off_t'.  Therefore we don't define _POSIX_V7_ILP32_OFFBIG.  */
 
 /* We can never provide environments with 64-bit wide pointers.  */
+# define _POSIX_V7_LP64_OFF64	-1
+# define _POSIX_V7_LPBIG_OFFBIG	-1
 # define _POSIX_V6_LP64_OFF64	-1
 # define _POSIX_V6_LPBIG_OFFBIG	-1
 # define _XBS5_LP64_OFF64	-1

Modified: trunk/libc/debug/pcprofiledump.c
==============================================================================
--- trunk/libc/debug/pcprofiledump.c (original)
+++ trunk/libc/debug/pcprofiledump.c Fri Feb 13 10:31:14 2009
@@ -1,5 +1,5 @@
 /* Dump information generated by PC profiling.
-   Copyright (C) 1999, 2002, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2007, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1999.
 
@@ -226,6 +226,6 @@
 Copyright (C) %s Free Software Foundation, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2008");
+"), "2009");
   fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
 }

Modified: trunk/libc/debug/xtrace.sh
==============================================================================
--- trunk/libc/debug/xtrace.sh (original)
+++ trunk/libc/debug/xtrace.sh Fri Feb 13 10:31:14 2009
@@ -54,8 +54,10 @@
 Mandatory arguments to long options are also mandatory for any corresponding
 short options.
 
-For bug reporting instructions, please see:
-%s.\n" "@REPORT_BUGS_TO@"
+"
+  printf $"For bug reporting instructions, please see:
+%s.
+" "@REPORT_BUGS_TO@"
   exit 0
 }
 

Modified: trunk/libc/elf/dl-load.c
==============================================================================
--- trunk/libc/elf/dl-load.c (original)
+++ trunk/libc/elf/dl-load.c Fri Feb 13 10:31:14 2009
@@ -1,5 +1,5 @@
 /* Map in a shared object's segments from the file.
-   Copyright (C) 1995-2005, 2006, 2007  Free Software Foundation, Inc.
+   Copyright (C) 1995-2005, 2006, 2007, 2009 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
@@ -1574,6 +1574,8 @@
 # define VALID_ELF_HEADER(hdr,exp,size)	(memcmp (hdr, exp, size) == 0)
 # define VALID_ELF_OSABI(osabi)		(osabi == ELFOSABI_SYSV)
 # define VALID_ELF_ABIVERSION(ver)	(ver == 0)
+#elif defined MORE_ELF_HEADER_DATA
+  MORE_ELF_HEADER_DATA;
 #endif
   static const unsigned char expected[EI_PAD] =
   {

Modified: trunk/libc/elf/ldconfig.c
==============================================================================
--- trunk/libc/elf/ldconfig.c (original)
+++ trunk/libc/elf/ldconfig.c Fri Feb 13 10:31:14 2009
@@ -132,6 +132,9 @@
 void (*argp_program_version_hook) (FILE *, struct argp_state *)
      = print_version;
 
+/* Function to print some extra text in the help message.  */
+static char *more_help (int key, const char *text, void *input);
+
 /* Definitions of arguments for argp functions.  */
 static const struct argp_option options[] =
 {
@@ -153,9 +156,7 @@
 #include <dl-procinfo.c>
 
 /* Short description of program.  */
-static const char doc[] = N_("Configure Dynamic Linker Run Time Bindings.\v\
-For bug reporting instructions, please see:\n\
-"REPORT_BUGS_TO".\n");
+static const char doc[] = N_("Configure Dynamic Linker Run Time Bindings.");
 
 /* Prototype for option handler.  */
 static error_t parse_opt (int key, char *arg, struct argp_state *state);
@@ -163,7 +164,7 @@
 /* Data structure to communicate with argp functions.  */
 static struct argp argp =
 {
-  options, parse_opt, NULL, doc, NULL, NULL, NULL
+  options, parse_opt, NULL, doc, NULL, more_help, NULL
 };
 
 /* Check if string corresponds to an important hardware capability or
@@ -288,6 +289,26 @@
     }
 
   return 0;
+}
+
+/* Print bug-reporting information in the help message.  */
+static char *
+more_help (int key, const char *text, void *input)
+{
+  char *tp = NULL;
+  switch (key)
+    {
+    case ARGP_KEY_HELP_EXTRA:
+      /* We print some extra information.  */
+      if (asprintf (&tp, gettext ("\
+For bug reporting instructions, please see:\n\
+%s.\n"), REPORT_BUGS_TO) < 0)
+	return NULL;
+      return tp;
+    default:
+      break;
+    }
+  return (char *) text;
 }
 
 /* Print the version information.  */

Modified: trunk/libc/elf/ldd.bash.in
==============================================================================
--- trunk/libc/elf/ldd.bash.in (original)
+++ trunk/libc/elf/ldd.bash.in Fri Feb 13 10:31:14 2009
@@ -52,7 +52,8 @@
   -r, --function-relocs   process data and function relocations
   -u, --unused            print unused direct dependencies
   -v, --verbose           print all information
-For bug reporting instructions, please see:
+"
+    printf $"For bug reporting instructions, please see:
 %s.
 " "@REPORT_BUGS_TO@"
     exit 0

Modified: trunk/libc/elf/sln.c
==============================================================================
--- trunk/libc/elf/sln.c (original)
+++ trunk/libc/elf/sln.c Fri Feb 13 10:31:14 2009
@@ -1,5 +1,5 @@
 /* `sln' program to create symbolic links between files.
-   Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2001, 2009 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
@@ -16,9 +16,15 @@
    License along with the GNU C Library; if not, write to the Free
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
-
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
 #include <error.h>
 #include <errno.h>
+#include <libintl.h>
+#include <locale.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
@@ -30,6 +36,8 @@
 
 #include "../version.h"
 
+#define PACKAGE _libc_intl_domainname
+
 #if !defined S_ISDIR && defined S_IFDIR
 #define	S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
 #endif
@@ -41,13 +49,19 @@
 int
 main (int argc, char **argv)
 {
+  /* Set locale via LC_ALL.  */
+  setlocale (LC_ALL, "");
+
+  /* Set the text message domain.  */
+  textdomain (PACKAGE);
+
   switch (argc)
     {
     case 2:
-      if (!strcmp (argv[1], "--version")) {
+      if (strcmp (argv[1], "--version") == 0) {
 	printf ("sln %s%s\n", PKGVERSION, VERSION);
 	return 0;
-      } else if (!strcmp (argv[1], "--help")) {
+      } else if (strcmp (argv[1], "--help") == 0) {
 	usage ();
 	return 0;
       }
@@ -68,10 +82,9 @@
 static void
 usage (void)
 {
-  printf ("Usage: sln src dest|file\n\
-\n\
-For bug reporting instructions, please see:\n\
-%s.\n", REPORT_BUGS_TO);
+  printf (_("Usage: sln src dest|file\n\n"));
+  printf (_("For bug reporting instructions, please see:\n\
+%s.\n"), REPORT_BUGS_TO);
 }
 
 static int
@@ -94,7 +107,7 @@
       fp = fopen (file, "r");
       if (fp == NULL)
 	{
-	  fprintf (stderr, "%s: file open error: %m\n", file);
+	  fprintf (stderr, _("%s: file open error: %m\n"), file);
 	  return 1;
 	}
     }
@@ -131,7 +144,7 @@
 	++cp;
       if (*cp == '\0')
 	{
-	  fprintf (stderr, "No target in line %d\n", lineno);
+	  fprintf (stderr, _("No target in line %d\n"), lineno);
 	  ret = 1;
 	  continue;
 	}
@@ -163,13 +176,13 @@
     {
       if (S_ISDIR (stats.st_mode))
 	{
-	  fprintf (stderr, "%s: destination must not be a directory\n",
+	  fprintf (stderr, _("%s: destination must not be a directory\n"),
 	  	   dest);
 	  return 1;
 	}
       else if (unlink (dest) && errno != ENOENT)
 	{
-	  fprintf (stderr, "%s: failed to remove the old destination\n",
+	  fprintf (stderr, _("%s: failed to remove the old destination\n"),
 	  	   dest);
 	  return 1;
 	}
@@ -177,7 +190,7 @@
   else if (errno != ENOENT)
     {
       error = strerror (errno);
-      fprintf (stderr, "%s: invalid destination: %s\n", dest, error);
+      fprintf (stderr, _("%s: invalid destination: %s\n"), dest, error);
       return -1;
     }
 
@@ -192,7 +205,7 @@
         {
 	  error = strerror (errno);
 	  unlink (dest);
-	  fprintf (stderr, "Invalid link from \"%s\" to \"%s\": %s\n",
+	  fprintf (stderr, _("Invalid link from \"%s\" to \"%s\": %s\n"),
 	  	   src, dest, error);
 	  return 1;
 	}
@@ -201,7 +214,7 @@
   else
     {
       error = strerror (errno);
-      fprintf (stderr, "Invalid link from \"%s\" to \"%s\": %s\n",
+      fprintf (stderr, _("Invalid link from \"%s\" to \"%s\": %s\n"),
       	       src, dest, error);
       return 1;
     }

Modified: trunk/libc/elf/sprof.c
==============================================================================
--- trunk/libc/elf/sprof.c (original)
+++ trunk/libc/elf/sprof.c Fri Feb 13 10:31:14 2009
@@ -86,9 +86,9 @@
 };
 
 /* Short description of program.  */
-static const char doc[] = N_("Read and display shared object profiling data.\v\
-For bug reporting instructions, please see:\n\
-"REPORT_BUGS_TO".\n");
+static const char doc[] = N_("Read and display shared object profiling data.");
+//For bug reporting instructions, please see:\n		\
+//<http://www.gnu.org/software/libc/bugs.html>.\n");
 
 /* Strings for arguments in help texts.  */
 static const char args_doc[] = N_("SHOBJ [PROFDATA]");
@@ -96,10 +96,13 @@
 /* Prototype for option handler.  */
 static error_t parse_opt (int key, char *arg, struct argp_state *state);
 
+/* Function to print some extra text in the help message.  */
+static char *more_help (int key, const char *text, void *input);
+
 /* Data structure to communicate with argp functions.  */
 static struct argp argp =
 {
-  options, parse_opt, args_doc, doc
+  options, parse_opt, args_doc, doc, NULL, more_help
 };
 
 
@@ -344,6 +347,26 @@
       return ARGP_ERR_UNKNOWN;
     }
   return 0;
+}
+
+
+static char *
+more_help (int key, const char *text, void *input)
+{
+  char *tp = NULL;
+  switch (key)
+    {
+    case ARGP_KEY_HELP_EXTRA:
+      /* We print some extra information.  */
+      if (asprintf (&tp, gettext ("\
+For bug reporting instructions, please see:\n\
+%s.\n"), REPORT_BUGS_TO) < 0)
+	return NULL;
+      return tp;
+    default:
+      break;
+    }
+  return (char *) text;
 }
 
 

Modified: trunk/libc/grp/compat-initgroups.c
==============================================================================
--- trunk/libc/grp/compat-initgroups.c (original)
+++ trunk/libc/grp/compat-initgroups.c Fri Feb 13 10:31:14 2009
@@ -8,13 +8,19 @@
 typedef enum nss_status (*get_function) (struct group *, char *,
 					 size_t, int *);
 
+/* This file is also used in nscd where __libc_alloca_cutoff is not
+   available.  */
+#ifdef NOT_IN_libc
+# define __libc_use_alloca(size) ((size) < __MAX_ALLOCA_CUTOFF * 4)
+#endif
+
+
 static enum nss_status
 compat_call (service_user *nip, const char *user, gid_t group, long int *start,
 	     long int *size, gid_t **groupsp, long int limit, int *errnop)
 {
   struct group grpbuf;
   size_t buflen = __sysconf (_SC_GETGR_R_SIZE_MAX);
-  char *tmpbuf;
   enum nss_status status;
   set_function setgrent_fct;
   get_function getgrent_fct;
@@ -35,7 +41,9 @@
 
   endgrent_fct = __nss_lookup_function (nip, "endgrent");
 
-  tmpbuf = __alloca (buflen);
+  char *tmpbuf = __alloca (buflen);
+  bool use_malloc = false;
+  enum nss_status result = NSS_STATUS_SUCCESS;
 
   do
     {
@@ -44,8 +52,20 @@
 	      status == NSS_STATUS_TRYAGAIN)
 	     && *errnop == ERANGE)
         {
-          buflen *= 2;
-          tmpbuf = __alloca (buflen);
+	  if (__libc_use_alloca (buflen * 2))
+	    tmpbuf = extend_alloca (tmpbuf, buflen, buflen * 2);
+	  else
+	    {
+	      buflen *= 2;
+	      char *newbuf = realloc (use_malloc ? tmpbuf : NULL, buflen);
+	      if (newbuf == NULL)
+		{
+		  result = NSS_STATUS_TRYAGAIN;
+		  goto done;
+		}
+	      use_malloc = true;
+	      tmpbuf = newbuf;
+	    }
         }
 
       if (status != NSS_STATUS_SUCCESS)
@@ -102,8 +122,11 @@
   while (status == NSS_STATUS_SUCCESS);
 
  done:
+  if (use_malloc)
+    free (tmpbuf);
+
   if (endgrent_fct)
     DL_CALL_FCT (endgrent_fct, ());
 
-  return NSS_STATUS_SUCCESS;
+  return result;
 }

Modified: trunk/libc/include/atomic.h
==============================================================================
--- trunk/libc/include/atomic.h (original)
+++ trunk/libc/include/atomic.h Fri Feb 13 10:31:14 2009
@@ -1,5 +1,5 @@
 /* Internal macros for atomic operations for GNU C Library.
-   Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2002-2006, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
 
@@ -415,6 +415,22 @@
   } while (0)
 #endif
 
+#ifndef catomic_and
+# define catomic_and(mem, mask) \
+  do {									      \
+    __typeof (*(mem)) __atg20_old;					      \
+    __typeof (mem) __atg20_memp = (mem);				      \
+    __typeof (*(mem)) __atg20_mask = (mask);				      \
+									      \
+    do									      \
+      __atg20_old = (*__atg20_memp);					      \
+    while (__builtin_expect						      \
+	   (catomic_compare_and_exchange_bool_acq (__atg20_memp,	      \
+						   __atg20_old & __atg20_mask,\
+						   __atg20_old), 0));	      \
+  } while (0)
+#endif
+
 /* Atomically *mem &= mask and return the old value of *mem.  */
 #ifndef atomic_and_val
 # define atomic_and_val(mem, mask) \

Modified: trunk/libc/include/malloc.h
==============================================================================
--- trunk/libc/include/malloc.h (original)
+++ trunk/libc/include/malloc.h Fri Feb 13 10:31:14 2009
@@ -8,20 +8,7 @@
 /* Nonzero if the malloc is already initialized.  */
 extern int __malloc_initialized attribute_hidden;
 
-/* Internal routines, operating on "arenas".  */
 struct malloc_state;
 typedef struct malloc_state *mstate;
 
-extern __malloc_ptr_t _int_malloc (mstate __m, size_t __size) attribute_hidden;
-extern void           _int_free (mstate __m, __malloc_ptr_t __ptr)
-     attribute_hidden;
-extern __malloc_ptr_t _int_realloc (mstate __m,
-				    __malloc_ptr_t __ptr,
-				    size_t __size) attribute_hidden;
-extern __malloc_ptr_t _int_memalign (mstate __m, size_t __alignment,
-				     size_t __size)
-     attribute_hidden;
-extern __malloc_ptr_t _int_valloc (mstate __m, size_t __size)
-     attribute_hidden;
-
 #endif

Modified: trunk/libc/include/rpc/auth.h
==============================================================================
--- trunk/libc/include/rpc/auth.h (original)
+++ trunk/libc/include/rpc/auth.h Fri Feb 13 10:31:14 2009
@@ -39,4 +39,6 @@
 libc_hidden_proto (key_encryptsession_pk)
 libc_hidden_proto (key_decryptsession_pk)
 
+libc_hidden_proto (_null_auth)
+
 #endif

Modified: trunk/libc/intl/dcigettext.c
==============================================================================
--- trunk/libc/intl/dcigettext.c (original)
+++ trunk/libc/intl/dcigettext.c Fri Feb 13 10:31:14 2009
@@ -1,5 +1,5 @@
 /* Implementation of the internal dcigettext function.
-   Copyright (C) 1995-2005, 2006, 2007, 2008
+   Copyright (C) 1995-2005, 2006, 2007, 2008, 2009
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -565,20 +565,7 @@
 	}
 
       if (ret == NULL)
-	{
-	  /* We cannot get the current working directory.  Don't signal an
-	     error but simply return the default string.  */
-	  FREE_BLOCKS (block_list);
-#if __OPTION_EGLIBC_LOCALE_CODE
-	  __libc_rwlock_unlock (__libc_setlocale_lock);
-#endif
-	  __libc_rwlock_unlock (_nl_state_lock);
-	  __set_errno (saved_errno);
-	  return (plural == 0
-		  ? (char *) msgid1
-		  /* Use the Germanic plural rule.  */
-		  : n == 1 ? (char *) msgid1 : (char *) msgid2);
-	}
+	goto no_translation;
 
       stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
     }

Modified: trunk/libc/locale/programs/locale.c
==============================================================================
--- trunk/libc/locale/programs/locale.c (original)
+++ trunk/libc/locale/programs/locale.c Fri Feb 13 10:31:14 2009
@@ -84,9 +84,7 @@
 };
 
 /* Short description of program.  */
-static const char doc[] = N_("Get locale-specific information.\v\
-For bug reporting instructions, please see:\n\
-"REPORT_BUGS_TO".\n");
+static const char doc[] = N_("Get locale-specific information.");
 
 /* Strings for arguments in help texts.  */
 static const char args_doc[] = N_("NAME\n[-a|-m]");
@@ -94,10 +92,13 @@
 /* Prototype for option handler.  */
 static error_t parse_opt (int key, char *arg, struct argp_state *state);
 
+/* Function to print some extra text in the help message.  */
+static char *more_help (int key, const char *text, void *input);
+
 /* Data structure to communicate with argp functions.  */
 static struct argp argp =
 {
-  options, parse_opt, args_doc, doc
+  options, parse_opt, args_doc, doc, NULL, more_help
 };
 
 
@@ -264,6 +265,26 @@
       return ARGP_ERR_UNKNOWN;
     }
   return 0;
+}
+
+
+static char *
+more_help (int key, const char *text, void *input)
+{
+  char *tp = NULL;
+  switch (key)
+    {
+    case ARGP_KEY_HELP_EXTRA:
+      /* We print some extra information.  */
+      if (asprintf (&tp, gettext ("\
+For bug reporting instructions, please see:\n\
+%s.\n"), REPORT_BUGS_TO) < 0)
+	return NULL;
+      return tp;
+    default:
+      break;
+    }
+  return (char *) text;
 }
 
 

Modified: trunk/libc/localedata/ChangeLog
==============================================================================
--- trunk/libc/localedata/ChangeLog (original)
+++ trunk/libc/localedata/ChangeLog Fri Feb 13 10:31:14 2009
@@ -1,5 +1,26 @@
+2009-02-11  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* locales/iso14651_t1_common: Add rules for sorting Malayalam.
+	Patch by Santhosh Thottingal <santhosh.thottingal@xxxxxxxxx>.
+
+2009-02-06  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #7098]
+	* Makefile ($(inst_i18ndir)/charmaps/%.gz): No need to save
+	timestamp in compressed charmaps.
+	Patch by Gilles Espinasse <g.esp@xxxxxxx>.
+
+	[BZ #9730]
+	* locales/sv_FI: Fix time formats.
+
+	[BZ #9736]
+	* locales/el_CY: Fix frac_digits and int_frac_digits.
+	* locales/el_GR: Likewise.
+	Patch by Clint Adams <schizo@xxxxxxxxxx>.
+
 2009-01-28  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
+	[BZ #9791]
 	* locales/as_IN: Break circular include loops introduced in last patch.
 	* locales/bn_BD: Likewise.
 	* locales/bn_IN: Likewise.

Modified: trunk/libc/localedata/Makefile
==============================================================================
--- trunk/libc/localedata/Makefile (original)
+++ trunk/libc/localedata/Makefile Fri Feb 13 10:31:14 2009
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2003, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 1996-2003,2005,2007,2008,2009 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
@@ -129,7 +129,7 @@
 	$(make-target-directory)
 	rm -f $(@:.gz=) $@
 	$(INSTALL_DATA) $< $(@:.gz=)
-	gzip -9 $(@:.gz=)
+	gzip -9n $(@:.gz=)
 
 # Install the locale source files in the appropriate directory.
 $(inst_i18ndir)/locales/%: locales/% $(+force); $(do-install)

Modified: trunk/libc/localedata/locales/el_CY
==============================================================================
--- trunk/libc/localedata/locales/el_CY (original)
+++ trunk/libc/localedata/locales/el_CY Fri Feb 13 10:31:14 2009
@@ -51,8 +51,8 @@
 mon_grouping          3
 positive_sign         ""
 negative_sign         "<U002D>"
-int_frac_digits       4
-frac_digits           4
+int_frac_digits       2
+frac_digits           2
 p_cs_precedes         0
 p_sep_by_space        0
 n_cs_precedes         1

Modified: trunk/libc/localedata/locales/el_GR
==============================================================================
--- trunk/libc/localedata/locales/el_GR (original)
+++ trunk/libc/localedata/locales/el_GR Fri Feb 13 10:31:14 2009
@@ -70,8 +70,8 @@
 mon_grouping          3
 positive_sign         ""
 negative_sign         "<U002D>"
-int_frac_digits       4
-frac_digits           4
+int_frac_digits       2
+frac_digits           2
 p_cs_precedes         0
 p_sep_by_space        0
 n_cs_precedes         1

Modified: trunk/libc/localedata/locales/iso14651_t1_common
==============================================================================
--- trunk/libc/localedata/locales/iso14651_t1_common (original)
+++ trunk/libc/localedata/locales/iso14651_t1_common Fri Feb 13 10:31:14 2009
@@ -66,6 +66,7 @@
 script <GURUMUKHI>
 script <KANNADA>
 script <SINHALA>
+script <MALAYALAM>
 
 # Déclaration des symboles internes / Declaration of internal symbols
 #
@@ -910,6 +911,129 @@
 collating-symbol <k-halant>
 collating-symbol <k-lenght_mark>
 collating-symbol <k-ai_lenght_mark>
+#
+# <MALAYALAM>
+# mlvs-  denotes Malayalam vowel sign
+# mlvw- denotes Malayalam vowel
+# ml-visarga - dentos Malayalam Visarga
+# consonant + virama is considered half of consonant or consonant without vowel part
+# so it consonant + virama should be considered as cluster and should be 
+# sorted before the consonant. All consonants are considered to have an implicit a vowel
+# part associated with it.
+collating-element <ml-chillu-n> from "<U0D28><U0D4D>"
+collating-element <ml-chillu-nn> from "<U0D23><U0D4D>"
+collating-element <ml-chillu-r> from "<U0D30><U0D4D>"
+collating-element <ml-chillu-l> from "<U0D32><U0D4D>"
+collating-element <ml-chillu-ll> from "<U0D33><U0D4D>"
+collating-element <ml-chillu-k> from "<U0D15><U0D4D>"
+collating-element <ml-kh> from "<U0D16><U0D4D>"
+collating-element <ml-g> from "<U0D17><U0D4D>"
+collating-element <ml-gh> from "<U0D18><U0D4D>"
+collating-element <ml-ng> from "<U0D19><U0D4D>"
+collating-element <ml-ch> from "<U0D1A><U0D4D>"
+collating-element <ml-chh> from "<U0D1B><U0D4D>"
+collating-element <ml-j> from "<U0D1C><U0D4D>"
+collating-element <ml-jh> from "<U0D1D><U0D4D>"
+collating-element <ml-ny> from "<U0D1E><U0D4D>"
+collating-element <ml-t> from "<U0D1F><U0D4D>"
+collating-element <ml-tt> from "<U0D20><U0D4D>"
+collating-element <ml-d> from "<U0D21><U0D4D>"
+collating-element <ml-dh> from "<U0D22><U0D4D>"
+collating-element <ml-th> from "<U0D24><U0D4D>"
+collating-element <ml-thh> from "<U0D25><U0D4D>"
+collating-element <ml-dd> from "<U0D26><U0D4D>"
+collating-element <ml-ddh> from "<U0D27><U0D4D>"
+collating-element <ml-p> from "<U0D2A><U0D4D>"
+collating-element <ml-ph> from "<U0D2B><U0D4D>"
+collating-element <ml-b> from "<U0D2C><U0D4D>"
+collating-element <ml-bh> from "<U0D2D><U0D4D>"
+collating-element <ml-m> from "<U0D2E><U0D4D>"
+collating-element <ml-y> from "<U0D2F><U0D4D>"
+collating-element <ml-v> from "<U0D35><U0D4D>"
+collating-element <ml-s> from "<U0D38><U0D4D>"
+collating-element <ml-ss> from "<U0D36><U0D4D>"
+collating-element <ml-sh> from "<U0D37><U0D4D>"
+collating-element <ml-h> from "<U0D39><U0D4D>"
+collating-element <ml-zh> from "<U0D34><U0D4D>"
+collating-element <ml-rr> from "<U0D31><U0D4D>"
+collating-element <ml-samvruthokaram> from "<U0D41><U0D4D>"
+collating-element <ml-split-o> from "<U0D46><U0D3E>"  # U+0D4A MALAYALAM VOWEL SIGN O = U+0D46 MALAYALAM VOWEL SIGN E + U+0D3E MALAYALAM VOWEL SIGN AA
+collating-element <ml-split-oo> from "<U0D47><U0D3E>"  # U+0D4B MALAYALAM VOWEL SIGN OO = U+0D47 MALAYALAM VOWEL SIGN EE + U+0D3E MALAYALAM VOWEL SIGN AA
+collating-element <ml-split-au> from "<U0D46><U0D57>" # U+0D4C MALAYALAM VOWEL SIGN AU = U+0D46 MALAYALAM VOWEL SIGN E + U+0D57 MALAYALAM AU LENGTH MARK
+# defning symbols
+collating-symbol <mlvw-shorta>
+collating-symbol <mlvw-aa>
+collating-symbol <mlvw-i>
+collating-symbol <mlvw-ii>
+collating-symbol <mlvw-u>
+collating-symbol <mlvw-uu>
+collating-symbol <mlvw-vocalicr>
+collating-symbol <mlvw-vocalicrr>
+collating-symbol <mlvw-vocalicl>
+collating-symbol <mlvw-vocalicll>
+collating-symbol <mlvw-shorte>
+collating-symbol <mlvw-e>
+collating-symbol <mlvw-ai>
+collating-symbol <mlvw-shorto>
+collating-symbol <mlvw-o>
+collating-symbol <mlvw-au>
+collating-symbol <ml-ka>
+collating-symbol <ml-kha>
+collating-symbol <ml-ga>
+collating-symbol <ml-gga>
+collating-symbol <ml-gha>
+collating-symbol <ml-nga>
+collating-symbol <ml-cha>
+collating-symbol <ml-chha>
+collating-symbol <ml-ja>
+collating-symbol <ml-jja>
+collating-symbol <ml-jha>
+collating-symbol <ml-nya>
+collating-symbol <ml-ta>
+collating-symbol <ml-tta>
+collating-symbol <ml-da>
+collating-symbol <ml-dha>
+collating-symbol <ml-nna>
+collating-symbol <ml-tha>
+collating-symbol <ml-thha>
+collating-symbol <ml-dda>
+collating-symbol <ml-ddha>
+collating-symbol <ml-na>
+collating-symbol <ml-pa>
+collating-symbol <ml-pha>
+collating-symbol <ml-ba>
+collating-symbol <ml-bba>
+collating-symbol <ml-bha>
+collating-symbol <ml-ma>
+collating-symbol <ml-ya>
+collating-symbol <ml-ra>
+collating-symbol <ml-rra>
+collating-symbol <ml-la>
+collating-symbol <ml-lla>
+collating-symbol <ml-va>
+collating-symbol <ml-sha>
+collating-symbol <ml-ssa>
+collating-symbol <ml-sa>
+collating-symbol <ml-ha>
+collating-symbol <ml-avagrah>
+collating-symbol <ml-zha>
+collating-symbol <mlvs-aa>
+collating-symbol <mlvs-i>
+collating-symbol <mlvs-ii>
+collating-symbol <mlvs-u>
+collating-symbol <mlvs-uu>
+collating-symbol <mlvs-vocalicr>
+collating-symbol <mlvs-vocalicrr>
+collating-symbol <mlvs-vocalicl>
+collating-symbol <mlvs-vocalicll>
+collating-symbol <mlvs-shorte>
+collating-symbol <mlvs-e>
+collating-symbol <mlvs-ai>
+collating-symbol <mlvs-shorto>
+collating-symbol <mlvs-o>
+collating-symbol <mlvs-au>
+collating-symbol <ml-visarga>
+collating-symbol <ml-virama>
 
 # Ordre des symboles internes / Order of internal symbols
 #
@@ -1733,6 +1857,83 @@
 <k-halant>
 <k-lenght_mark>
 <k-ai_lenght_mark>
+#
+# <MALAYALAM>
+#
+# collation weights in order
+<mlvw-shorta>
+<mlvw-aa>
+<mlvw-i>
+<mlvw-ii>
+<mlvw-u>
+<mlvw-uu>
+<mlvw-vocalicr>
+<mlvw-vocalicrr>
+<mlvw-vocalicl>
+<mlvw-vocalicll>
+<mlvw-shorte>
+<mlvw-e>
+<mlvw-ai>
+<mlvw-shorto>
+<mlvw-o>
+<mlvw-au>
+<ml-ka>
+<ml-kha>
+<ml-ga>
+<ml-gga>
+<ml-gha>
+<ml-nga>
+<ml-cha>
+<ml-chha>
+<ml-ja>
+<ml-jja>
+<ml-jha>
+<ml-nya>
+<ml-ta>
+<ml-tta>
+<ml-da>
+<ml-dha>
+<ml-nna>
+<ml-tha>
+<ml-thha>
+<ml-dda>
+<ml-ddha>
+<ml-na>
+<ml-pa>
+<ml-pha>
+<ml-ba>
+<ml-bba>
+<ml-bha>
+<ml-ma>
+<ml-ya>
+<ml-ra>
+<ml-la>
+<ml-va>
+<ml-ssa>
+<ml-sha>
+<ml-sa>
+<ml-ha>
+<ml-lla>
+<ml-zha>
+<ml-rra>
+<ml-avagrah>
+<ml-virama>
+<mlvs-aa>
+<mlvs-i>
+<mlvs-ii>
+<mlvs-u>
+<mlvs-uu>
+<mlvs-vocalicr>
+<mlvs-vocalicrr>
+<mlvs-vocalicl>
+<mlvs-vocalicll>
+<mlvs-shorte>
+<mlvs-e>
+<mlvs-ai>
+<mlvs-shorto>
+<mlvs-o>
+<mlvs-au>
+<ml-visarga>
 
 order_start <SPECIAL>;forward;backward;forward;forward,position
 #
@@ -4052,6 +4253,130 @@
 <U0DDE> <U0DDE>;<BAS>;<MIN>;IGNORE
 <U0DCA> <U0DCA>;<BAS>;<MIN>;IGNORE
 
+order_start <MALAYALAM>;forward;forward;forward;forward,position
+<U0D66> <0>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0D67> <1>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0D68> <2>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0D69> <3>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0D6A> <4>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0D6B> <5>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0D6C> <6>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0D6D> <7>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0D6E> <8>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0D6F> <9>;"<BAS><NUM>";"<MIN><MIN>";IGNORE
+<U0D05> <mlvw-shorta> ;<BAS>;<MIN>;IGNORE
+<U0D06> <mlvw-aa> ;<BAS>;<MIN>;IGNORE
+<U0D07> <mlvw-i> ;<BAS>;<MIN>;IGNORE
+<U0D08> <mlvw-ii> ;<BAS>;<MIN>;IGNORE
+<U0D09> <mlvw-u> ;<BAS>;<MIN>;IGNORE
+<U0D0A> <mlvw-uu>;<BAS>;<MIN>;IGNORE
+<U0D0B> <mlvw-vocalicr>;<BAS>;<MIN>;IGNORE
+<U0D60> <mlvw-vocalicrr>;<BAS>;<MIN>;IGNORE
+<U0D0C> <mlvw-vocalicl>;<BAS>;<MIN>;IGNORE
+<U0D61> <mlvw-vocalicll>;<BAS>;<MIN>;IGNORE
+<U0D0E> <mlvw-shorte>;<BAS>;<MIN>;IGNORE
+<U0D0F> <mlvw-e>;<BAS>;<MIN>;IGNORE
+<U0D10> <mlvw-ai>;<BAS>;<MIN>;IGNORE
+<U0D12> <mlvw-shorto>;<BAS>;<MIN>;IGNORE
+<U0D13> <mlvw-o>;<BAS>;<MIN>;IGNORE
+<U0D14> <mlvw-au>;<BAS>;<MIN>;IGNORE
+<ml-chillu-k>  "<ml-ka><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D15>	"<ml-ka><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-kh>	"<ml-kha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D16>	"<ml-kha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-g>	"<ml-ga><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D17>	"<ml-ga><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-gh>	"<ml-gha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D18>	"<ml-gha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-ng>	"<ml-nga><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D19>	"<ml-nga><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-ch>	"<ml-cha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D1A>	"<ml-cha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-chh> "<ml-chha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D1B>	"<ml-chha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-j>	"<ml-ja><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D1C>	"<ml-ja><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-jh>	"<ml-jha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D1D>	"<ml-jha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-ny>	"<ml-nya><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D1E>	"<ml-nya><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-t>	"<ml-ta><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D1F>	"<ml-ta><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-tt>	"<ml-tta><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D20>	"<ml-tta><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-d>	"<ml-da><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D21>	"<ml-da><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-dh>	"<ml-dha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D22>	"<ml-dha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-chillu-nn> "<ml-nna><ml-virama>";<BAS>;<MIN>;IGNORE # ണ്‍ = ണ  + ്  + zwj
+<U0D23>	"<ml-nna><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE # ണ = ണ + ് + അ 
+<ml-th>	"<ml-tha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D24>	"<ml-tha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-thh> "<ml-thha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D25>	"<ml-thha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-dd>	"<ml-dda><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D26>	"<ml-dda><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-ddh> "<ml-ddha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D27>	"<ml-ddha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-chillu-n> "<ml-chillu-n>";<BAS>;<MIN>;IGNORE # ന്‍= ന  + ്  + zwj
+<U0D28>	"<ml-chillu-n><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE  #ന = ന + ് + അ
+<ml-p>	"<ml-pa><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D2A>	"<ml-pa><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-ph>	"<ml-pha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D2B>	"<ml-pha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-b>	"<ml-ba><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D2C>	"<ml-ba><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-bh>	"<ml-bha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D2D>	"<ml-bha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<U0D02>	"<ml-ma><ml-virama>";<BAS>;<MIN>;IGNORE # ം = മ + ്
+<ml-m>	"<ml-ma><ml-virama>";"<BAS><ml-virama>";<MIN>;IGNORE # ം = മ + ്  
+<U0D2E>	"<ml-ma><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE # മ = മ + ് + അ 
+<ml-y>  "<ml-ya><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D2F>	"<ml-ya><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-chillu-r> "<ml-ra><ml-virama>";<BAS>;<MIN>;IGNORE # ര = ര + ്  + zwj
+<U0D30>	"<ml-ra><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE # ര = ര + ് + അ 
+<ml-chillu-l> <ml-la>;<BAS>;<MIN>;IGNORE # ല്‍ = ല + ്  + zwj
+<U0D32>	"<ml-la><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE # ല = ല + ് + അ 
+<ml-v>	"<ml-va><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D35>	"<ml-va><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-ss>	"<ml-ssa><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D37>	"<ml-ssa><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-sh>	"<ml-sha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D36>	"<ml-sha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-s>	"<ml-sa><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D38>	"<ml-sa><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-h>	"<ml-ha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D39>	"<ml-ha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-chillu-ll> "<ml-lla><ml-virama>";<BAS>;<MIN>;IGNORE # ള്‍ = ള  + ്  + zwj
+<U0D33>	"<ml-lla><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE # ള = ള + ് + അ 
+<ml-zh>	"<ml-zha><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D34>	"<ml-zha><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<ml-rr>	"<ml-rra><ml-virama>";<BAS>;<MIN>;IGNORE
+<U0D31>	"<ml-rra><ml-virama><mlvw-shorta>";<BAS>;<MIN>;IGNORE
+<U0D3D>	<ml-avagrah>;<BAS>;<MIN>;IGNORE
+<U0D3E> <mlvs-aa>;<BAS>;<MIN>;IGNORE
+<U0D3F> <mlvs-i>;<BAS>;<MIN>;IGNORE
+<U0D40> <mlvs-ii>;<BAS>;<MIN>;IGNORE
+<ml-samvruthokaram> <mlvs-u>;<BAS>;<MIN>;IGNORE
+<U0D41> <mlvs-u>;"<BAS><ml-samvruthokaram>";<MIN>;IGNORE # sort it after samvruthokaram
+<U0D42> <mlvs-uu>;<BAS>;<MIN>;IGNORE
+<U0D43> <mlvs-vocalicr>;<BAS>;<MIN>;IGNORE
+<U0D44> <mlvs-vocalicrr>;<BAS>;<MIN>;IGNORE
+<U0D62> <mlvs-vocalicl>;<BAS>;<MIN>;IGNORE
+<U0D63> <mlvs-vocalicll>;<BAS>;<MIN>;IGNORE
+<U0D46> <mlvs-shorte>;<BAS>;<MIN>;IGNORE
+<U0D47> <mlvs-e>;<BAS>;<MIN>;IGNORE
+<U0D48> <mlvs-ai>;<BAS>;<MIN>;IGNORE
+<U0D4A> <mlvs-shorto>;<BAS>;<MIN>;IGNORE
+<U0D4B> <mlvs-o>;<BAS>;<MIN>;IGNORE
+<U0D4C> <mlvs-au>;<BAS>;<MIN>;IGNORE
+<U0D57> <mlvs-au>;<BAS>;<MIN>;IGNORE
+<U0D4D> <ml-virama>;<BAS>;<MIN>;IGNORE
+<U0D03> <ml-visarga>;<BAS>;<MIN>;IGNORE
+<ml-split-o>  <mlvs-shorto>;<BAS>;<MIN>;IGNORE
+<ml-split-oo> <mlvs-o>;<BAS>;<MIN>;IGNORE
+<ml-split-au> <mlvs-au>;<BAS>;<MIN>;IGNORE
+
 order_end
 
 END LC_COLLATE

Modified: trunk/libc/localedata/locales/sv_FI
==============================================================================
--- trunk/libc/localedata/locales/sv_FI (original)
+++ trunk/libc/localedata/locales/sv_FI Fri Feb 13 10:31:14 2009
@@ -97,14 +97,16 @@
           "<U006F><U006B><U0074><U006F><U0062><U0065><U0072>";/
           "<U006E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
           "<U0064><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
-d_t_fmt   "<U0025><U0061><U0020><U0025><U0065><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0048><U002E><U0025><U004D><U002E><U0025><U0053>"
-d_fmt     "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
+d_t_fmt  "<U0025><U0061><U0020><U0025><U0065><U002E><U0020><U0025><U0042>/
+<U0074><U0061><U0020><U0025><U0059><U0020><U0025><U0048><U002E><U0025>/
+<U004D><U002E><U0025><U0053>"
+d_fmt    "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
 t_fmt     "<U0025><U0048><U002E><U0025><U004D><U002E><U0025><U0053>"
 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>"
+date_fmt       "<U0025><U0061><U0020><U0025><U002D><U0064><U002E><U0025>/
+<U002D><U006D><U002E><U0025><U0059><U0020><U0025><U0048><U002E><U0025>/
+<U004D><U002E><U0025><U0053><U0020><U0025><U007A>"
 END LC_TIME
 
 LC_PAPER

Modified: trunk/libc/malloc/arena.c
==============================================================================
--- trunk/libc/malloc/arena.c (original)
+++ trunk/libc/malloc/arena.c Fri Feb 13 10:31:14 2009
@@ -223,7 +223,7 @@
   tsd_getspecific(arena_key, vptr);
   if(vptr != ATFORK_ARENA_PTR)
     (void)mutex_lock(&ar_ptr->mutex);
-  _int_free(ar_ptr, mem);
+  _int_free(ar_ptr, p);
   if(vptr != ATFORK_ARENA_PTR)
     (void)mutex_unlock(&ar_ptr->mutex);
 }

Modified: trunk/libc/malloc/hooks.c
==============================================================================
--- trunk/libc/malloc/hooks.c (original)
+++ trunk/libc/malloc/hooks.c Fri Feb 13 10:31:14 2009
@@ -1,5 +1,5 @@
 /* Malloc implementation for multiple threads without lock contention.
-   Copyright (C) 2001-2006, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2001-2006, 2007, 2008, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Wolfram Gloger <wg@xxxxxxxxx>, 2001.
 
@@ -293,7 +293,7 @@
 #if 0 /* Erase freed memory. */
   memset(mem, 0, chunksize(p) - (SIZE_SZ+1));
 #endif
-  _int_free(&main_arena, mem);
+  _int_free(&main_arena, p);
   (void)mutex_unlock(&main_arena.mutex);
 }
 
@@ -305,8 +305,7 @@
      Void_t* oldmem; size_t bytes; const Void_t *caller;
 #endif
 {
-  mchunkptr oldp;
-  INTERNAL_SIZE_T nb, oldsize;
+  INTERNAL_SIZE_T nb;
   Void_t* newmem = 0;
   unsigned char *magic_p;
 
@@ -320,13 +319,13 @@
     return NULL;
   }
   (void)mutex_lock(&main_arena.mutex);
-  oldp = mem2chunk_check(oldmem, &magic_p);
+  const mchunkptr oldp = mem2chunk_check(oldmem, &magic_p);
   (void)mutex_unlock(&main_arena.mutex);
   if(!oldp) {
     malloc_printerr(check_action, "realloc(): invalid pointer", oldmem);
     return malloc_check(bytes, NULL);
   }
-  oldsize = chunksize(oldp);
+  const INTERNAL_SIZE_T oldsize = chunksize(oldp);
 
   checked_request2size(bytes+1, nb);
   (void)mutex_lock(&main_arena.mutex);
@@ -355,8 +354,11 @@
     }
   } else {
 #endif /* HAVE_MMAP */
-    if (top_check() >= 0)
-      newmem = _int_realloc(&main_arena, oldmem, bytes+1);
+    if (top_check() >= 0) {
+      INTERNAL_SIZE_T nb;
+      checked_request2size(bytes + 1, nb);
+      newmem = _int_realloc(&main_arena, oldp, nb);
+    }
 #if 0 /* Erase freed memory. */
     if(newmem)
       newp = mem2chunk(newmem);
@@ -470,7 +472,7 @@
     return;
   }
 #endif
-  _int_free(&main_arena, mem);
+  _int_free(&main_arena, p);
 }
 
 # endif	/* !defiend NO_STARTER */

Modified: trunk/libc/malloc/malloc.c
==============================================================================
--- trunk/libc/malloc/malloc.c (original)
+++ trunk/libc/malloc/malloc.c Fri Feb 13 10:31:14 2009
@@ -1581,11 +1581,11 @@
 
 #if __STD_C
 
-Void_t*         _int_malloc(mstate, size_t);
-void            _int_free(mstate, Void_t*);
-Void_t*         _int_realloc(mstate, Void_t*, size_t);
-Void_t*         _int_memalign(mstate, size_t, size_t);
-Void_t*         _int_valloc(mstate, size_t);
+static Void_t*  _int_malloc(mstate, size_t);
+static void     _int_free(mstate, mchunkptr);
+static Void_t*  _int_realloc(mstate, mchunkptr, INTERNAL_SIZE_T);
+static Void_t*  _int_memalign(mstate, size_t, size_t);
+static Void_t*  _int_valloc(mstate, size_t);
 static Void_t*  _int_pvalloc(mstate, size_t);
 /*static Void_t*  cALLOc(size_t, size_t);*/
 #ifndef _LIBC
@@ -1632,12 +1632,12 @@
 
 #else
 
-Void_t*         _int_malloc();
-void            _int_free();
-Void_t*         _int_realloc();
-Void_t*         _int_memalign();
-Void_t*         _int_valloc();
-Void_t*         _int_pvalloc();
+static Void_t*  _int_malloc();
+static void     _int_free();
+static Void_t*  _int_realloc();
+static Void_t*  _int_memalign();
+static Void_t*  _int_valloc();
+static Void_t*  _int_pvalloc();
 /*static Void_t*  cALLOc();*/
 static Void_t** _int_icalloc();
 static Void_t** _int_icomalloc();
@@ -3084,7 +3084,7 @@
 	set_head(chunk_at_offset(old_top, old_size), (2*SIZE_SZ)|PREV_INUSE);
 	set_foot(chunk_at_offset(old_top, old_size), (2*SIZE_SZ));
 	set_head(old_top, old_size|PREV_INUSE|NON_MAIN_ARENA);
-	_int_free(av, chunk2mem(old_top));
+	_int_free(av, old_top);
       } else {
 	set_head(old_top, (old_size + 2*SIZE_SZ)|PREV_INUSE);
 	set_foot(old_top, (old_size + 2*SIZE_SZ));
@@ -3131,7 +3131,7 @@
 
   if (brk != (char*)(MORECORE_FAILURE)) {
     /* Call the `morecore' hook if necessary.  */
-    if (__after_morecore_hook)
+    if (__builtin_expect (__after_morecore_hook != NULL, 0))
       (*__after_morecore_hook) ();
   } else {
   /*
@@ -3270,7 +3270,7 @@
           snd_brk = (char*)(MORECORE(0));
         } else
 	  /* Call the `morecore' hook if necessary.  */
-	  if (__after_morecore_hook)
+	  if (__builtin_expect (__after_morecore_hook != NULL, 0))
 	    (*__after_morecore_hook) ();
       }
 
@@ -3323,7 +3323,7 @@
 
           /* If possible, release the rest. */
           if (old_size >= MINSIZE) {
-            _int_free(av, chunk2mem(old_top));
+            _int_free(av, old_top);
           }
 
         }
@@ -3415,7 +3415,7 @@
 
       MORECORE(-extra);
       /* Call the `morecore' hook if necessary.  */
-      if (__after_morecore_hook)
+      if (__builtin_expect (__after_morecore_hook != NULL, 0))
 	(*__after_morecore_hook) ();
       new_brk = (char*)(MORECORE(0));
 
@@ -3542,7 +3542,7 @@
   Void_t *victim;
 
   __malloc_ptr_t (*hook) (size_t, __const __malloc_ptr_t) = __malloc_hook;
-  if (hook != NULL)
+  if (__builtin_expect (hook != NULL, 0))
     return (*hook)(bytes, RETURN_ADDRESS (0));
 
   arena_get(ar_ptr, bytes);
@@ -3585,7 +3585,7 @@
   mchunkptr p;                          /* chunk corresponding to mem */
 
   void (*hook) (__malloc_ptr_t, __const __malloc_ptr_t) = __free_hook;
-  if (hook != NULL) {
+  if (__builtin_expect (hook != NULL, 0)) {
     (*hook)(mem, RETURN_ADDRESS (0));
     return;
   }
@@ -3622,7 +3622,7 @@
 #else
   (void)mutex_lock(&ar_ptr->mutex);
 #endif
-  _int_free(ar_ptr, mem);
+  _int_free(ar_ptr, p);
   (void)mutex_unlock(&ar_ptr->mutex);
 }
 #ifdef libc_hidden_def
@@ -3635,14 +3635,11 @@
   mstate ar_ptr;
   INTERNAL_SIZE_T    nb;      /* padded request size */
 
-  mchunkptr oldp;             /* chunk corresponding to oldmem */
-  INTERNAL_SIZE_T    oldsize; /* its size */
-
   Void_t* newp;             /* chunk to return */
 
   __malloc_ptr_t (*hook) (__malloc_ptr_t, size_t, __const __malloc_ptr_t) =
     __realloc_hook;
-  if (hook != NULL)
+  if (__builtin_expect (hook != NULL, 0))
     return (*hook)(oldmem, bytes, RETURN_ADDRESS (0));
 
 #if REALLOC_ZERO_BYTES_FREES
@@ -3652,8 +3649,10 @@
   /* realloc of null is supposed to be same as malloc */
   if (oldmem == 0) return public_mALLOc(bytes);
 
-  oldp    = mem2chunk(oldmem);
-  oldsize = chunksize(oldp);
+  /* chunk corresponding to oldmem */
+  const mchunkptr oldp    = mem2chunk(oldmem);
+  /* its size */
+  const INTERNAL_SIZE_T oldsize = chunksize(oldp);
 
   /* Little security check which won't hurt performance: the
      allocator never wrapps around at the end of the address space.
@@ -3705,7 +3704,7 @@
   tsd_setspecific(arena_key, (Void_t *)ar_ptr);
 #endif
 
-  newp = _int_realloc(ar_ptr, oldmem, bytes);
+  newp = _int_realloc(ar_ptr, oldp, nb);
 
   (void)mutex_unlock(&ar_ptr->mutex);
   assert(!newp || chunk_is_mmapped(mem2chunk(newp)) ||
@@ -3728,7 +3727,7 @@
 #else
 	  (void)mutex_lock(&ar_ptr->mutex);
 #endif
-	  _int_free(ar_ptr, oldmem);
+	  _int_free(ar_ptr, oldp);
 	  (void)mutex_unlock(&ar_ptr->mutex);
 	}
     }
@@ -3748,7 +3747,7 @@
   __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t,
 					__const __malloc_ptr_t)) =
     __memalign_hook;
-  if (hook != NULL)
+  if (__builtin_expect (hook != NULL, 0))
     return (*hook)(alignment, bytes, RETURN_ADDRESS (0));
 
   /* If need less alignment than we give anyway, just relay to malloc */
@@ -3805,7 +3804,7 @@
   __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t,
 					__const __malloc_ptr_t)) =
     __memalign_hook;
-  if (hook != NULL)
+  if (__builtin_expect (hook != NULL, 0))
     return (*hook)(pagesz, bytes, RETURN_ADDRESS (0));
 
   arena_get(ar_ptr, bytes + pagesz + MINSIZE);
@@ -3852,7 +3851,7 @@
   __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t,
 					__const __malloc_ptr_t)) =
     __memalign_hook;
-  if (hook != NULL)
+  if (__builtin_expect (hook != NULL, 0))
     return (*hook)(pagesz, rounded_bytes, RETURN_ADDRESS (0));
 
   arena_get(ar_ptr, bytes + 2*pagesz + MINSIZE);
@@ -3906,7 +3905,7 @@
     }
   }
 
-  if (hook != NULL) {
+  if (__builtin_expect (hook != NULL, 0)) {
     sz = bytes;
     mem = (*hook)(sz, RETURN_ADDRESS (0));
     if(mem == 0)
@@ -4125,7 +4124,7 @@
   ------------------------------ malloc ------------------------------
 */
 
-Void_t*
+static Void_t*
 _int_malloc(mstate av, size_t bytes)
 {
   INTERNAL_SIZE_T nb;               /* normalized request size */
@@ -4589,10 +4588,9 @@
   ------------------------------ free ------------------------------
 */
 
-void
-_int_free(mstate av, Void_t* mem)
+static void
+_int_free(mstate av, mchunkptr p)
 {
-  mchunkptr       p;           /* chunk corresponding to mem */
   INTERNAL_SIZE_T size;        /* its size */
   mfastbinptr*    fb;          /* associated fastbin */
   mchunkptr       nextchunk;   /* next contiguous chunk */
@@ -4604,7 +4602,6 @@
 
   const char *errstr = NULL;
 
-  p = mem2chunk(mem);
   size = chunksize(p);
 
   /* Little security check which won't hurt performance: the
@@ -4616,7 +4613,7 @@
     {
       errstr = "free(): invalid pointer";
     errout:
-      malloc_printerr (check_action, errstr, mem);
+      malloc_printerr (check_action, errstr, chunk2mem(p));
       return;
     }
   /* We know that each chunk is at least MINSIZE bytes in size.  */
@@ -4663,7 +4660,7 @@
       }
 
     if (__builtin_expect (perturb_byte, 0))
-      free_perturb (mem, size - SIZE_SZ);
+      free_perturb (chunk2mem(p), size - SIZE_SZ);
 
     p->fd = *fb;
     *fb = p;
@@ -4707,7 +4704,7 @@
       }
 
     if (__builtin_expect (perturb_byte, 0))
-      free_perturb (mem, size - SIZE_SZ);
+      free_perturb (chunk2mem(p), size - SIZE_SZ);
 
     /* consolidate backward */
     if (!prev_inuse(p)) {
@@ -4943,13 +4940,8 @@
 */
 
 Void_t*
-_int_realloc(mstate av, Void_t* oldmem, size_t bytes)
+_int_realloc(mstate av, mchunkptr oldp, INTERNAL_SIZE_T nb)
 {
-  INTERNAL_SIZE_T  nb;              /* padded request size */
-
-  mchunkptr        oldp;            /* chunk corresponding to oldmem */
-  INTERNAL_SIZE_T  oldsize;         /* its size */
-
   mchunkptr        newp;            /* chunk to return */
   INTERNAL_SIZE_T  newsize;         /* its size */
   Void_t*          newmem;          /* corresponding user mem */
@@ -4968,21 +4960,19 @@
   INTERNAL_SIZE_T* d;               /* copy destination */
 
   const char *errstr = NULL;
-
-
-  checked_request2size(bytes, nb);
-
-  oldp    = mem2chunk(oldmem);
-  oldsize = chunksize(oldp);
 
   /* Simple tests for old block integrity.  */
   if (__builtin_expect (misaligned_chunk (oldp), 0))
     {
       errstr = "realloc(): invalid pointer";
     errout:
-      malloc_printerr (check_action, errstr, oldmem);
+      malloc_printerr (check_action, errstr, chunk2mem(oldp));
       return NULL;
     }
+
+  /* oldmem size */
+  const INTERNAL_SIZE_T oldsize = chunksize(oldp);
+
   if (__builtin_expect (oldp->size <= 2 * SIZE_SZ, 0)
       || __builtin_expect (oldsize >= av->system_mem, 0))
     {
@@ -5054,7 +5044,7 @@
           */
 
           copysize = oldsize - SIZE_SZ;
-          s = (INTERNAL_SIZE_T*)(oldmem);
+          s = (INTERNAL_SIZE_T*)(chunk2mem(oldp));
           d = (INTERNAL_SIZE_T*)(newmem);
           ncopies = copysize / sizeof(INTERNAL_SIZE_T);
           assert(ncopies >= 3);
@@ -5080,7 +5070,7 @@
             }
           }
 
-          _int_free(av, oldmem);
+          _int_free(av, oldp);
           check_inuse_chunk(av, newp);
           return chunk2mem(newp);
         }
@@ -5104,7 +5094,7 @@
 	       (av != &main_arena ? NON_MAIN_ARENA : 0));
       /* Mark remainder as inuse so free() won't complain */
       set_inuse_bit_at_offset(remainder, remainder_size);
-      _int_free(av, chunk2mem(remainder));
+      _int_free(av, remainder);
     }
 
     check_inuse_chunk(av, newp);
@@ -5129,7 +5119,7 @@
 
     /* don't need to remap if still within same page */
     if (oldsize == newsize - offset)
-      return oldmem;
+      return chunk2mem(oldp);
 
     cp = (char*)mremap((char*)oldp - offset, oldsize + offset, newsize, 1);
 
@@ -5157,13 +5147,13 @@
 
     /* Note the extra SIZE_SZ overhead. */
     if ((unsigned long)(oldsize) >= (unsigned long)(nb + SIZE_SZ))
-      newmem = oldmem; /* do nothing */
+      newmem = chunk2mem(oldp); /* do nothing */
     else {
       /* Must alloc, copy, free. */
       newmem = _int_malloc(av, nb - MALLOC_ALIGN_MASK);
       if (newmem != 0) {
-        MALLOC_COPY(newmem, oldmem, oldsize - 2*SIZE_SZ);
-        _int_free(av, oldmem);
+        MALLOC_COPY(newmem, chunk2mem(oldp), oldsize - 2*SIZE_SZ);
+        _int_free(av, oldp);
       }
     }
     return newmem;
@@ -5181,7 +5171,7 @@
   ------------------------------ memalign ------------------------------
 */
 
-Void_t*
+static Void_t*
 _int_memalign(mstate av, size_t alignment, size_t bytes)
 {
   INTERNAL_SIZE_T nb;             /* padded  request size */
@@ -5257,7 +5247,7 @@
 	     (av != &main_arena ? NON_MAIN_ARENA : 0));
     set_inuse_bit_at_offset(newp, newsize);
     set_head_size(p, leadsize | (av != &main_arena ? NON_MAIN_ARENA : 0));
-    _int_free(av, chunk2mem(p));
+    _int_free(av, p);
     p = newp;
 
     assert (newsize >= nb &&
@@ -5273,7 +5263,7 @@
       set_head(remainder, remainder_size | PREV_INUSE |
 	       (av != &main_arena ? NON_MAIN_ARENA : 0));
       set_head_size(p, nb);
-      _int_free(av, chunk2mem(remainder));
+      _int_free(av, remainder);
     }
   }
 
@@ -5514,7 +5504,7 @@
   ------------------------------ valloc ------------------------------
 */
 
-Void_t*
+static Void_t*
 #if __STD_C
 _int_valloc(mstate av, size_t bytes)
 #else
@@ -5531,7 +5521,7 @@
 */
 
 
-Void_t*
+static Void_t*
 #if __STD_C
 _int_pvalloc(mstate av, size_t bytes)
 #else
@@ -6020,7 +6010,7 @@
 
   /* Call the hook here, so that caller is posix_memalign's caller
      and not posix_memalign itself.  */
-  if (hook != NULL)
+  if (__builtin_expect (hook != NULL, 0))
     mem = (*hook)(alignment, size, RETURN_ADDRESS (0));
   else
     mem = public_mEMALIGn (alignment, size);

Modified: trunk/libc/malloc/memusage.c
==============================================================================
--- trunk/libc/malloc/memusage.c (original)
+++ trunk/libc/malloc/memusage.c Fri Feb 13 10:31:14 2009
@@ -1,5 +1,5 @@
 /* Profile heap and stack memory usage of running program.
-   Copyright (C) 1998-2002, 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1998-2002, 2004-2006, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1998.
 
@@ -18,6 +18,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <assert.h>
 #include <atomic.h>
 #include <dlfcn.h>
 #include <errno.h>
@@ -92,7 +93,7 @@
 #define peak_stack	peak_use[1]
 #define peak_total	peak_use[2]
 
-#define DEFAULT_BUFFER_SIZE	1024
+#define DEFAULT_BUFFER_SIZE	32768
 static size_t buffer_size;
 
 static int fd = -1;
@@ -168,10 +169,11 @@
 	     this fails because of another thread increasing the
 	     counter it does not matter since that thread will take
 	     care of the correction.  */
-	  unsigned int reset = idx - 2 * buffer_size;
-	  catomic_compare_and_exchange_val_acq (&buffer_size, reset, idx);
+	  uatomic32_t reset = idx % (2 * buffer_size);
+	  catomic_compare_and_exchange_val_acq (&buffer_cnt, reset, idx);
 	  idx = reset;
 	}
+      assert (idx < 2 * DEFAULT_BUFFER_SIZE);
 
       buffer[idx].heap = current_heap;
       buffer[idx].stack = current_stack;

Modified: trunk/libc/malloc/memusage.sh
==============================================================================
--- trunk/libc/malloc/memusage.sh (original)
+++ trunk/libc/malloc/memusage.sh Fri Feb 13 10:31:14 2009
@@ -61,7 +61,8 @@
 Mandatory arguments to long options are also mandatory for any corresponding
 short options.
 
-For bug reporting instructions, please see:
+"
+  printf $"For bug reporting instructions, please see:
 %s.
 " "@REPORT_BUGS_TO@"
   exit 0

Modified: trunk/libc/malloc/memusagestat.c
==============================================================================
--- trunk/libc/malloc/memusagestat.c (original)
+++ trunk/libc/malloc/memusagestat.c Fri Feb 13 10:31:14 2009
@@ -1,5 +1,6 @@
 /* Generate graphic from memory profiling data.
-   Copyright (C) 1998, 1999, 2000, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2005, 2006,
+   2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1998.
 
@@ -39,6 +40,7 @@
 #include <gdfonts.h>
 
 #include "../version.h"
+#define PACKAGE _libc_intl_domainname
 
 /* Default size of the generated image.  */
 #define XSIZE 800
@@ -547,6 +549,6 @@
 Copyright (C) %s Free Software Foundation, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
-"), "2008");
+"), "2009");
   fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper");
 }

Modified: trunk/libc/nptl_db/ChangeLog
==============================================================================
--- trunk/libc/nptl_db/ChangeLog (original)
+++ trunk/libc/nptl_db/ChangeLog Fri Feb 13 10:31:14 2009
@@ -1,3 +1,8 @@
+2009-02-06  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* td_thr_get_info.c (td_thr_get_info): Initialize schedpolicy in
+	the special case [Coverity CID 251].
+
 2008-03-25  Roland McGrath  <roland@xxxxxxxxxx>
 
 	[BZ #5983]

Modified: trunk/libc/nptl_db/td_thr_get_info.c
==============================================================================
--- trunk/libc/nptl_db/td_thr_get_info.c (original)
+++ trunk/libc/nptl_db/td_thr_get_info.c Fri Feb 13 10:31:14 2009
@@ -1,5 +1,5 @@
 /* Get thread information.
-   Copyright (C) 1999,2000,2001,2002,2003,2007 Free Software Foundation, Inc.
+   Copyright (C) 1999-2003,2007,2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1999.
 
@@ -38,6 +38,7 @@
       copy = NULL;
       tls = 0;
       cancelhandling = 0;
+      schedpolicy = SCHED_OTHER;
       schedprio = 0;
       tid = 0;
       err = DB_GET_VALUE (report_events, th->th_ta_p,

Modified: trunk/libc/nscd/nscd.c
==============================================================================
--- trunk/libc/nscd/nscd.c (original)
+++ trunk/libc/nscd/nscd.c Fri Feb 13 10:31:14 2009
@@ -91,6 +91,9 @@
 static void print_version (FILE *stream, struct argp_state *state);
 void (*argp_program_version_hook) (FILE *, struct argp_state *) = print_version;
 
+/* Function to print some extra text in the help message.  */
+static char *more_help (int key, const char *text, void *input);
+
 /* Definitions of arguments for argp functions.  */
 static const struct argp_option options[] =
 {
@@ -109,9 +112,7 @@
 };
 
 /* Short description of program.  */
-static const char doc[] = N_("Name Service Cache Daemon.\v\
-For bug reporting instructions, please see:\n\
-"REPORT_BUGS_TO".\n");
+static const char doc[] = N_("Name Service Cache Daemon.");
 
 /* Prototype for option handler.  */
 static error_t parse_opt (int key, char *arg, struct argp_state *state);
@@ -119,7 +120,7 @@
 /* Data structure to communicate with argp functions.  */
 static struct argp argp =
 {
-  options, parse_opt, NULL, doc,
+  options, parse_opt, NULL, doc, NULL, more_help
 };
 
 /* True if only statistics are requested.  */
@@ -403,6 +404,26 @@
   return 0;
 }
 
+/* Print bug-reporting information in the help message.  */
+static char *
+more_help (int key, const char *text, void *input)
+{
+  char *tp = NULL;
+  switch (key)
+    {
+    case ARGP_KEY_HELP_EXTRA:
+      /* We print some extra information.  */
+      if (asprintf (&tp, gettext ("\
+For bug reporting instructions, please see:\n\
+%s.\n"), REPORT_BUGS_TO) < 0)
+	return NULL;
+      return tp;
+    default:
+      break;
+    }
+  return (char *) text;
+}
+
 /* Print the version information.  */
 static void
 print_version (FILE *stream, struct argp_state *state)

Modified: trunk/libc/nss/getent.c
==============================================================================
--- trunk/libc/nss/getent.c (original)
+++ trunk/libc/nss/getent.c Fri Feb 13 10:31:14 2009
@@ -60,9 +60,7 @@
   };
 
 /* Short description of program.  */
-static const char doc[] = N_("Get entries from administrative database.\v\
-For bug reporting instructions, please see:\n\
-"REPORT_BUGS_TO".\n");
+static const char doc[] = N_("Get entries from administrative database.");
 
 /* Prototype for option handler.  */
 static error_t parse_option (int key, char *arg, struct argp_state *state);
@@ -861,6 +859,12 @@
 	      col += len + 1;
 	    }
 
+	  fputs ("\n\n", fp);
+
+	  fprintf (fp, gettext ("\
+For bug reporting instructions, please see:\n\
+%s.\n"), REPORT_BUGS_TO);
+
 	  if (fclose (fp) == 0)
 	    return doc;
 	}

Modified: trunk/libc/po/Makefile
==============================================================================
--- trunk/libc/po/Makefile (original)
+++ trunk/libc/po/Makefile Fri Feb 13 10:31:14 2009
@@ -1,4 +1,4 @@
-# Copyright (C) 1996,1997,1998,1999,2001,2002,2006,2007
+# Copyright (C) 1996-1999,2001,2002,2006,2007,2009
 #	Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
@@ -64,6 +64,7 @@
 	    $< > $@.new
 	cd ..; $(XGETTEXT) --keyword=_ --keyword=N_ \
 			   --add-comments=TRANS --flag=error:3:c-format \
+			   --flag=f_print:2:c-format \
 			   --sort-by-file --omit-header -E -n -d - \
 			   -f po/$(word 2,$^) >> po/$@.new
 	mv -f $@.new $@

Modified: trunk/libc/po/libc.pot
==============================================================================
--- trunk/libc/po/libc.pot (original)
+++ trunk/libc/po/libc.pot Fri Feb 13 10:31:14 2009
@@ -5,8 +5,8 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: libc 2.7.90\n"
-"POT-Creation-Date: 2008-04-09 08:07-0700\n"
+"Project-Id-Version: libc 2.9.90\n"
+"POT-Creation-Date: 2009-02-06 12:40-0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@xxxxxx>\n"
@@ -100,7 +100,7 @@
 msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
 msgstr ""
 
-#: catgets/gencat.c:110 catgets/gencat.c:114 nscd/nscd.c:97 nss/makedb.c:61
+#: catgets/gencat.c:110 catgets/gencat.c:114 nscd/nscd.c:100 nss/makedb.c:61
 msgid "NAME"
 msgstr ""
 
@@ -129,20 +129,27 @@
 "[OUTPUT-FILE [INPUT-FILE]...]"
 msgstr ""
 
-#: catgets/gencat.c:232 debug/pcprofiledump.c:204 iconv/iconv_prog.c:408
-#: iconv/iconvconfig.c:380 locale/programs/localedef.c:371
-#: login/programs/pt_chown.c:88 malloc/memusagestat.c:526 nss/makedb.c:231
+#: catgets/gencat.c:232 debug/pcprofiledump.c:208 debug/xtrace.sh:58
+#: elf/ldconfig.c:302 elf/ldd.bash.in:56 elf/sln.c:86 elf/sprof.c:360
+#: iconv/iconv_prog.c:408 iconv/iconvconfig.c:380 locale/programs/locale.c:278
+#: locale/programs/localedef.c:371 login/programs/pt_chown.c:88
+#: malloc/memusage.sh:65 malloc/memusagestat.c:533 nscd/nscd.c:415
+#: nss/getent.c:842 nss/makedb.c:231 posix/getconf.c:1030
+#: sunrpc/rpc_main.c:1494 sunrpc/rpcinfo.c:699
+#: sysdeps/unix/sysv/linux/lddlibc4.c:62
+#, c-format
 msgid ""
 "For bug reporting instructions, please see:\n"
 "<http://www.gnu.org/software/libc/bugs.html>.\n"
 msgstr ""
 
-#: catgets/gencat.c:246 debug/xtrace.sh:64 elf/ldconfig.c:296
-#: elf/ldd.bash.in:39 elf/sprof.c:355 iconv/iconv_prog.c:423
-#: iconv/iconvconfig.c:395 locale/programs/locale.c:275
+#: catgets/gencat.c:246 debug/pcprofiledump.c:222 debug/xtrace.sh:66
+#: elf/ldconfig.c:316 elf/ldd.bash.in:39 elf/sprof.c:375
+#: iconv/iconv_prog.c:423 iconv/iconvconfig.c:395 locale/programs/locale.c:293
 #: locale/programs/localedef.c:387 login/programs/pt_chown.c:59
-#: malloc/memusage.sh:71 nscd/nscd.c:406 nss/getent.c:83 nss/makedb.c:245
-#: posix/getconf.c:1012
+#: malloc/memusage.sh:73 malloc/memusagestat.c:551 nscd/nscd.c:429
+#: nss/getent.c:81 nss/makedb.c:245 posix/getconf.c:1012
+#: sysdeps/unix/sysv/linux/lddlibc4.c:69
 #, c-format
 msgid ""
 "Copyright (C) %s Free Software Foundation, Inc.\n"
@@ -150,10 +157,12 @@
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
 msgstr ""
 
-#: catgets/gencat.c:251 debug/xtrace.sh:68 elf/ldconfig.c:301 elf/sprof.c:361
-#: iconv/iconv_prog.c:428 iconv/iconvconfig.c:400 locale/programs/locale.c:280
-#: locale/programs/localedef.c:392 malloc/memusage.sh:75 nscd/nscd.c:411
-#: nss/getent.c:88 nss/makedb.c:250 posix/getconf.c:1017
+#: catgets/gencat.c:251 debug/pcprofiledump.c:227 debug/xtrace.sh:70
+#: elf/ldconfig.c:321 elf/sprof.c:381 iconv/iconv_prog.c:428
+#: iconv/iconvconfig.c:400 locale/programs/locale.c:298
+#: locale/programs/localedef.c:392 malloc/memusage.sh:77
+#: malloc/memusagestat.c:556 nscd/nscd.c:434 nss/getent.c:86 nss/makedb.c:250
+#: posix/getconf.c:1017
 #, c-format
 msgid "Written by %s.\n"
 msgstr ""
@@ -254,17 +263,17 @@
 msgid "[FILE]"
 msgstr ""
 
-#: debug/pcprofiledump.c:104
+#: debug/pcprofiledump.c:108
 #, c-format
 msgid "cannot open input file"
 msgstr ""
 
-#: debug/pcprofiledump.c:111
+#: debug/pcprofiledump.c:115
 #, c-format
 msgid "cannot read header"
 msgstr ""
 
-#: debug/pcprofiledump.c:175
+#: debug/pcprofiledump.c:179
 #, c-format
 msgid "invalid pointer size"
 msgstr ""
@@ -296,24 +305,22 @@
 "corresponding\n"
 "short options.\n"
 "\n"
-"For bug reporting instructions, please see:\n"
-"<http://www.gnu.org/software/libc/bugs.html>.\\n"
-msgstr ""
-
-#: debug/xtrace.sh:125
+msgstr ""
+
+#: debug/xtrace.sh:127
 msgid "xtrace: unrecognized option \\`$1'\\n"
 msgstr ""
 
-#: debug/xtrace.sh:138
+#: debug/xtrace.sh:140
 msgid "No program name given\\n"
 msgstr ""
 
-#: debug/xtrace.sh:146
+#: debug/xtrace.sh:148
 #, sh-format
 msgid "executable \\`$program' not found\\n"
 msgstr ""
 
-#: debug/xtrace.sh:150
+#: debug/xtrace.sh:152
 #, sh-format
 msgid "\\`$program' is no executable\\n"
 msgstr ""
@@ -334,7 +341,7 @@
 msgid "invalid mode"
 msgstr ""
 
-#: dlfcn/dlopen.c:64
+#: dlfcn/dlopen.c:65
 msgid "invalid mode parameter"
 msgstr ""
 
@@ -351,7 +358,7 @@
 msgid ", OS ABI: %s %d.%d.%d"
 msgstr ""
 
-#: elf/cache.c:134 elf/ldconfig.c:1269
+#: elf/cache.c:134 elf/ldconfig.c:1289
 #, c-format
 msgid "Can't open cache file %s\n"
 msgstr ""
@@ -470,11 +477,11 @@
 msgid "cannot open zero fill device"
 msgstr ""
 
-#: elf/dl-load.c:979 elf/dl-load.c:2224
+#: elf/dl-load.c:979 elf/dl-load.c:2215
 msgid "cannot create shared object descriptor"
 msgstr ""
 
-#: elf/dl-load.c:998 elf/dl-load.c:1656 elf/dl-load.c:1748
+#: elf/dl-load.c:998 elf/dl-load.c:1647 elf/dl-load.c:1739
 msgid "cannot read file data"
 msgstr ""
 
@@ -538,63 +545,59 @@
 msgid "cannot close file descriptor"
 msgstr ""
 
-#: elf/dl-load.c:1478
-msgid "cannot create searchlist"
-msgstr ""
-
-#: elf/dl-load.c:1656
+#: elf/dl-load.c:1647
 msgid "file too short"
 msgstr ""
 
-#: elf/dl-load.c:1685
+#: elf/dl-load.c:1676
 msgid "invalid ELF header"
 msgstr ""
 
-#: elf/dl-load.c:1697
+#: elf/dl-load.c:1688
 msgid "ELF file data encoding not big-endian"
 msgstr ""
 
-#: elf/dl-load.c:1699
+#: elf/dl-load.c:1690
 msgid "ELF file data encoding not little-endian"
 msgstr ""
 
+#: elf/dl-load.c:1694
+msgid "ELF file version ident does not match current one"
+msgstr ""
+
+#: elf/dl-load.c:1698
+msgid "ELF file OS ABI invalid"
+msgstr ""
+
+#: elf/dl-load.c:1700
+msgid "ELF file ABI version invalid"
+msgstr ""
+
 #: elf/dl-load.c:1703
-msgid "ELF file version ident does not match current one"
-msgstr ""
-
-#: elf/dl-load.c:1707
-msgid "ELF file OS ABI invalid"
-msgstr ""
-
-#: elf/dl-load.c:1709
-msgid "ELF file ABI version invalid"
-msgstr ""
-
-#: elf/dl-load.c:1712
 msgid "internal error"
 msgstr ""
 
-#: elf/dl-load.c:1719
+#: elf/dl-load.c:1710
 msgid "ELF file version does not match current one"
 msgstr ""
 
-#: elf/dl-load.c:1727
+#: elf/dl-load.c:1718
 msgid "only ET_DYN and ET_EXEC can be loaded"
 msgstr ""
 
-#: elf/dl-load.c:1733
+#: elf/dl-load.c:1724
 msgid "ELF file's phentsize not the expected size"
 msgstr ""
 
-#: elf/dl-load.c:2240
+#: elf/dl-load.c:2231
 msgid "wrong ELF class: ELFCLASS64"
 msgstr ""
 
-#: elf/dl-load.c:2241
+#: elf/dl-load.c:2232
 msgid "wrong ELF class: ELFCLASS32"
 msgstr ""
 
-#: elf/dl-load.c:2244
+#: elf/dl-load.c:2235
 msgid "cannot open shared object file"
 msgstr ""
 
@@ -626,29 +629,29 @@
 msgid "invalid target namespace in dlmopen()"
 msgstr ""
 
-#: elf/dl-reloc.c:56
+#: elf/dl-reloc.c:121
 msgid "cannot allocate memory in static TLS block"
 msgstr ""
 
-#: elf/dl-reloc.c:198
+#: elf/dl-reloc.c:211
 msgid "cannot make segment writable for relocation"
 msgstr ""
 
-#: elf/dl-reloc.c:281
+#: elf/dl-reloc.c:277
 #, c-format
 msgid "%s: no PLTREL found in object %s\n"
 msgstr ""
 
-#: elf/dl-reloc.c:292
+#: elf/dl-reloc.c:288
 #, c-format
 msgid "%s: out of memory to store relocation results for %s\n"
 msgstr ""
 
-#: elf/dl-reloc.c:308
+#: elf/dl-reloc.c:304
 msgid "cannot restore segment prot after reloc"
 msgstr ""
 
-#: elf/dl-reloc.c:333
+#: elf/dl-reloc.c:329
 msgid "cannot apply additional memory protection after relocation"
 msgstr ""
 
@@ -656,11 +659,11 @@
 msgid "RTLD_NEXT used in code not dynamically loaded"
 msgstr ""
 
-#: elf/dl-sysdep.c:475 elf/dl-sysdep.c:487
+#: elf/dl-sysdep.c:481 elf/dl-sysdep.c:493
 msgid "cannot create capability list"
 msgstr ""
 
-#: elf/dl-tls.c:848
+#: elf/dl-tls.c:864
 msgid "cannot create TLS data structures"
 msgstr ""
 
@@ -668,222 +671,222 @@
 msgid "cannot allocate version reference table"
 msgstr ""
 
-#: elf/ldconfig.c:138
+#: elf/ldconfig.c:141
 msgid "Print cache"
 msgstr ""
 
-#: elf/ldconfig.c:139
+#: elf/ldconfig.c:142
 msgid "Generate verbose messages"
 msgstr ""
 
-#: elf/ldconfig.c:140
+#: elf/ldconfig.c:143
 msgid "Don't build cache"
 msgstr ""
 
-#: elf/ldconfig.c:141
+#: elf/ldconfig.c:144
 msgid "Don't generate links"
 msgstr ""
 
-#: elf/ldconfig.c:142
+#: elf/ldconfig.c:145
 msgid "Change to and use ROOT as root directory"
 msgstr ""
 
-#: elf/ldconfig.c:142
+#: elf/ldconfig.c:145
 msgid "ROOT"
 msgstr ""
 
-#: elf/ldconfig.c:143
+#: elf/ldconfig.c:146
 msgid "CACHE"
 msgstr ""
 
-#: elf/ldconfig.c:143
+#: elf/ldconfig.c:146
 msgid "Use CACHE as cache file"
 msgstr ""
 
-#: elf/ldconfig.c:144
+#: elf/ldconfig.c:147
 msgid "CONF"
 msgstr ""
 
-#: elf/ldconfig.c:144
+#: elf/ldconfig.c:147
 msgid "Use CONF as configuration file"
 msgstr ""
 
-#: elf/ldconfig.c:145
+#: elf/ldconfig.c:148
 msgid ""
 "Only process directories specified on the command line.  Don't build cache."
 msgstr ""
 
-#: elf/ldconfig.c:146
+#: elf/ldconfig.c:149
 msgid "Manually link individual libraries."
 msgstr ""
 
-#: elf/ldconfig.c:147
+#: elf/ldconfig.c:150
 msgid "FORMAT"
 msgstr ""
 
-#: elf/ldconfig.c:147
+#: elf/ldconfig.c:150
 msgid "Format to use: new, old or compat (default)"
 msgstr ""
 
-#: elf/ldconfig.c:148
+#: elf/ldconfig.c:151
 msgid "Ignore auxiliary cache file"
 msgstr ""
 
-#: elf/ldconfig.c:156
+#: elf/ldconfig.c:159
 msgid "Configure Dynamic Linker Run Time Bindings."
 msgstr ""
 
-#: elf/ldconfig.c:319
+#: elf/ldconfig.c:339
 #, c-format
 msgid "Path `%s' given more than once"
 msgstr ""
 
-#: elf/ldconfig.c:359
+#: elf/ldconfig.c:379
 #, c-format
 msgid "%s is not a known library type"
 msgstr ""
 
-#: elf/ldconfig.c:384
+#: elf/ldconfig.c:404
 #, c-format
 msgid "Can't stat %s"
 msgstr ""
 
-#: elf/ldconfig.c:458
+#: elf/ldconfig.c:478
 #, c-format
 msgid "Can't stat %s\n"
 msgstr ""
 
-#: elf/ldconfig.c:468
+#: elf/ldconfig.c:488
 #, c-format
 msgid "%s is not a symbolic link\n"
 msgstr ""
 
-#: elf/ldconfig.c:487
+#: elf/ldconfig.c:507
 #, c-format
 msgid "Can't unlink %s"
 msgstr ""
 
-#: elf/ldconfig.c:493
+#: elf/ldconfig.c:513
 #, c-format
 msgid "Can't link %s to %s"
 msgstr ""
 
-#: elf/ldconfig.c:499
+#: elf/ldconfig.c:519
 msgid " (changed)\n"
 msgstr ""
 
-#: elf/ldconfig.c:501
+#: elf/ldconfig.c:521
 msgid " (SKIPPED)\n"
 msgstr ""
 
-#: elf/ldconfig.c:556
+#: elf/ldconfig.c:576
 #, c-format
 msgid "Can't find %s"
 msgstr ""
 
-#: elf/ldconfig.c:572 elf/ldconfig.c:745 elf/ldconfig.c:793 elf/ldconfig.c:827
+#: elf/ldconfig.c:592 elf/ldconfig.c:765 elf/ldconfig.c:813 elf/ldconfig.c:847
 #, c-format
 msgid "Cannot lstat %s"
 msgstr ""
 
-#: elf/ldconfig.c:579
+#: elf/ldconfig.c:599
 #, c-format
 msgid "Ignored file %s since it is not a regular file."
 msgstr ""
 
-#: elf/ldconfig.c:588
+#: elf/ldconfig.c:608
 #, c-format
 msgid "No link created since soname could not be found for %s"
 msgstr ""
 
-#: elf/ldconfig.c:671
+#: elf/ldconfig.c:691
 #, c-format
 msgid "Can't open directory %s"
 msgstr ""
 
-#: elf/ldconfig.c:759
+#: elf/ldconfig.c:779
 #, c-format
 msgid "Cannot stat %s"
 msgstr ""
 
-#: elf/ldconfig.c:814 elf/readlib.c:91
+#: elf/ldconfig.c:834 elf/readlib.c:91
 #, c-format
 msgid "Input file %s not found.\n"
 msgstr ""
 
-#: elf/ldconfig.c:888
+#: elf/ldconfig.c:908
 #, c-format
 msgid "libc5 library %s in wrong directory"
 msgstr ""
 
-#: elf/ldconfig.c:891
+#: elf/ldconfig.c:911
 #, c-format
 msgid "libc6 library %s in wrong directory"
 msgstr ""
 
-#: elf/ldconfig.c:894
+#: elf/ldconfig.c:914
 #, c-format
 msgid "libc4 library %s in wrong directory"
 msgstr ""
 
-#: elf/ldconfig.c:922
+#: elf/ldconfig.c:942
 #, c-format
 msgid ""
 "libraries %s and %s in directory %s have same soname but different type."
 msgstr ""
 
-#: elf/ldconfig.c:1031
+#: elf/ldconfig.c:1051
 #, c-format
 msgid "Can't open configuration file %s"
 msgstr ""
 
-#: elf/ldconfig.c:1095
+#: elf/ldconfig.c:1115
 #, c-format
 msgid "%s:%u: bad syntax in hwcap line"
 msgstr ""
 
-#: elf/ldconfig.c:1101
+#: elf/ldconfig.c:1121
 #, c-format
 msgid "%s:%u: hwcap index %lu above maximum %u"
 msgstr ""
 
-#: elf/ldconfig.c:1108 elf/ldconfig.c:1116
+#: elf/ldconfig.c:1128 elf/ldconfig.c:1136
 #, c-format
 msgid "%s:%u: hwcap index %lu already defined as %s"
 msgstr ""
 
-#: elf/ldconfig.c:1119
+#: elf/ldconfig.c:1139
 #, c-format
 msgid "%s:%u: duplicate hwcap %lu %s"
 msgstr ""
 
-#: elf/ldconfig.c:1141
+#: elf/ldconfig.c:1161
 #, c-format
 msgid "need absolute file name for configuration file when using -r"
 msgstr ""
 
-#: elf/ldconfig.c:1148 locale/programs/xmalloc.c:70 malloc/obstack.c:434
-#: malloc/obstack.c:436 posix/getconf.c:985 posix/getconf.c:1163
+#: elf/ldconfig.c:1168 locale/programs/xmalloc.c:70 malloc/obstack.c:434
+#: malloc/obstack.c:436 posix/getconf.c:985 posix/getconf.c:1177
 #, c-format
 msgid "memory exhausted"
 msgstr ""
 
-#: elf/ldconfig.c:1178
+#: elf/ldconfig.c:1198
 #, c-format
 msgid "%s:%u: cannot read directory %s"
 msgstr ""
 
-#: elf/ldconfig.c:1222
+#: elf/ldconfig.c:1242
 #, c-format
 msgid "relative path `%s' used to build cache"
 msgstr ""
 
-#: elf/ldconfig.c:1248
+#: elf/ldconfig.c:1268
 #, c-format
 msgid "Can't chdir to /"
 msgstr ""
 
-#: elf/ldconfig.c:1290
+#: elf/ldconfig.c:1310
 #, c-format
 msgid "Can't open cache file directory %s\n"
 msgstr ""
@@ -901,50 +904,48 @@
 "  -r, --function-relocs   process data and function relocations\n"
 "  -u, --unused            print unused direct dependencies\n"
 "  -v, --verbose           print all information\n"
-"For bug reporting instructions, please see:\n"
-"<http://www.gnu.org/software/libc/bugs.html>."
-msgstr ""
-
-#: elf/ldd.bash.in:80
+msgstr ""
+
+#: elf/ldd.bash.in:82
 msgid "ldd: option \\`$1' is ambiguous"
 msgstr ""
 
-#: elf/ldd.bash.in:87
+#: elf/ldd.bash.in:89
 msgid "unrecognized option"
 msgstr ""
 
-#: elf/ldd.bash.in:88 elf/ldd.bash.in:126
+#: elf/ldd.bash.in:90 elf/ldd.bash.in:128
 msgid "Try \\`ldd --help' for more information."
 msgstr ""
 
-#: elf/ldd.bash.in:125
+#: elf/ldd.bash.in:127
 msgid "missing file arguments"
 msgstr ""
 
 #. TRANS No such file or directory.  This is a ``file doesn't exist'' error
 #. TRANS for ordinary files that are referenced in contexts where they are
 #. TRANS expected to already exist.
-#: elf/ldd.bash.in:148 sysdeps/gnu/errlist.c:36
+#: elf/ldd.bash.in:150 sysdeps/gnu/errlist.c:36
 msgid "No such file or directory"
 msgstr ""
 
-#: elf/ldd.bash.in:151 inet/rcmd.c:483
+#: elf/ldd.bash.in:153 inet/rcmd.c:483
 msgid "not regular file"
 msgstr ""
 
-#: elf/ldd.bash.in:154
+#: elf/ldd.bash.in:156
 msgid "warning: you do not have execution permission for"
 msgstr ""
 
-#: elf/ldd.bash.in:183
+#: elf/ldd.bash.in:185
 msgid "\tnot a dynamic executable"
 msgstr ""
 
-#: elf/ldd.bash.in:191
+#: elf/ldd.bash.in:193
 msgid "exited with unknown exit code"
 msgstr ""
 
-#: elf/ldd.bash.in:196
+#: elf/ldd.bash.in:198
 msgid "error: you do not have read permission for"
 msgstr ""
 
@@ -1001,6 +1002,43 @@
 #: elf/readlib.c:162
 #, c-format
 msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n"
+msgstr ""
+
+#: elf/sln.c:85
+#, c-format
+msgid ""
+"Usage: sln src dest|file\n"
+"\n"
+msgstr ""
+
+#: elf/sln.c:110
+#, c-format
+msgid "%s: file open error: %m\n"
+msgstr ""
+
+#: elf/sln.c:147
+#, c-format
+msgid "No target in line %d\n"
+msgstr ""
+
+#: elf/sln.c:179
+#, c-format
+msgid "%s: destination must not be a directory\n"
+msgstr ""
+
+#: elf/sln.c:185
+#, c-format
+msgid "%s: failed to remove the old destination\n"
+msgstr ""
+
+#: elf/sln.c:193
+#, c-format
+msgid "%s: invalid destination: %s\n"
+msgstr ""
+
+#: elf/sln.c:208 elf/sln.c:217
+#, c-format
+msgid "Invalid link from \"%s\" to \"%s\": %s\n"
 msgstr ""
 
 #: elf/sprof.c:77
@@ -1020,102 +1058,99 @@
 msgstr ""
 
 #: elf/sprof.c:89
-msgid ""
-"Read and display shared object profiling data.\vFor bug reporting "
-"instructions, please see:\n"
-"<http://www.gnu.org/software/libc/bugs.html>.\n"
+msgid "Read and display shared object profiling data."
 msgstr ""
 
 #: elf/sprof.c:94
 msgid "SHOBJ [PROFDATA]"
 msgstr ""
 
-#: elf/sprof.c:400
+#: elf/sprof.c:420
 #, c-format
 msgid "failed to load shared object `%s'"
 msgstr ""
 
-#: elf/sprof.c:409
+#: elf/sprof.c:429
 #, c-format
 msgid "cannot create internal descriptors"
 msgstr ""
 
-#: elf/sprof.c:528
+#: elf/sprof.c:548
 #, c-format
 msgid "Reopening shared object `%s' failed"
 msgstr ""
 
-#: elf/sprof.c:535 elf/sprof.c:629
+#: elf/sprof.c:555 elf/sprof.c:649
 #, c-format
 msgid "reading of section headers failed"
 msgstr ""
 
-#: elf/sprof.c:543 elf/sprof.c:637
+#: elf/sprof.c:563 elf/sprof.c:657
 #, c-format
 msgid "reading of section header string table failed"
 msgstr ""
 
-#: elf/sprof.c:569
+#: elf/sprof.c:589
 #, c-format
 msgid "*** Cannot read debuginfo file name: %m\n"
 msgstr ""
 
-#: elf/sprof.c:589
+#: elf/sprof.c:609
 #, c-format
 msgid "cannot determine file name"
 msgstr ""
 
-#: elf/sprof.c:622
+#: elf/sprof.c:642
 #, c-format
 msgid "reading of ELF header failed"
 msgstr ""
 
-#: elf/sprof.c:658
+#: elf/sprof.c:678
 #, c-format
 msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
 msgstr ""
 
-#: elf/sprof.c:688
+#: elf/sprof.c:708
 #, c-format
 msgid "failed to load symbol data"
 msgstr ""
 
-#: elf/sprof.c:755
+#: elf/sprof.c:775
 #, c-format
 msgid "cannot load profiling data"
 msgstr ""
 
-#: elf/sprof.c:764
+#: elf/sprof.c:784
 #, c-format
 msgid "while stat'ing profiling data file"
 msgstr ""
 
-#: elf/sprof.c:772
+#: elf/sprof.c:792
 #, c-format
 msgid "profiling data file `%s' does not match shared object `%s'"
 msgstr ""
 
-#: elf/sprof.c:783
+#: elf/sprof.c:803
 #, c-format
 msgid "failed to mmap the profiling data file"
 msgstr ""
 
-#: elf/sprof.c:791
+#: elf/sprof.c:811
 #, c-format
 msgid "error while closing the profiling data file"
 msgstr ""
 
-#: elf/sprof.c:800 elf/sprof.c:870
+#: elf/sprof.c:820 elf/sprof.c:890
 #, c-format
 msgid "cannot create internal descriptor"
 msgstr ""
 
-#: elf/sprof.c:846
+#: elf/sprof.c:866
 #, c-format
 msgid "`%s' is no correct profile data file for `%s'"
 msgstr ""
 
-#: elf/sprof.c:1027 elf/sprof.c:1085
+#: elf/sprof.c:1047 elf/sprof.c:1105
 #, c-format
 msgid "cannot allocate symbol data"
 msgstr ""
@@ -1482,8 +1517,8 @@
 msgid "no symbolic name given for end of range"
 msgstr ""
 
-#: locale/programs/charmap.c:610 locale/programs/ld-address.c:600
-#: locale/programs/ld-collate.c:2767 locale/programs/ld-collate.c:3928
+#: locale/programs/charmap.c:610 locale/programs/ld-address.c:602
+#: locale/programs/ld-collate.c:2767 locale/programs/ld-collate.c:3924
 #: locale/programs/ld-ctype.c:2232 locale/programs/ld-ctype.c:2984
 #: locale/programs/ld-identification.c:452
 #: locale/programs/ld-measurement.c:238 locale/programs/ld-messages.c:332
@@ -1509,8 +1544,8 @@
 msgid "%s: error in state machine"
 msgstr ""
 
-#: locale/programs/charmap.c:850 locale/programs/ld-address.c:616
-#: locale/programs/ld-collate.c:2764 locale/programs/ld-collate.c:4121
+#: locale/programs/charmap.c:850 locale/programs/ld-address.c:618
+#: locale/programs/ld-collate.c:2764 locale/programs/ld-collate.c:4117
 #: locale/programs/ld-ctype.c:2229 locale/programs/ld-ctype.c:3001
 #: locale/programs/ld-identification.c:468
 #: locale/programs/ld-measurement.c:254 locale/programs/ld-messages.c:348
@@ -1534,7 +1569,7 @@
 "same: %d vs %d"
 msgstr ""
 
-#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:3045
+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:3044
 #: locale/programs/repertoire.c:419
 msgid "invalid names for character range"
 msgstr ""
@@ -1556,7 +1591,7 @@
 msgid "resulting bytes for range not representable."
 msgstr ""
 
-#: locale/programs/ld-address.c:133 locale/programs/ld-collate.c:1556
+#: locale/programs/ld-address.c:135 locale/programs/ld-collate.c:1556
 #: locale/programs/ld-ctype.c:420 locale/programs/ld-identification.c:133
 #: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97
 #: locale/programs/ld-monetary.c:194 locale/programs/ld-name.c:94
@@ -1566,10 +1601,10 @@
 msgid "No definition for %s category found"
 msgstr ""
 
-#: locale/programs/ld-address.c:144 locale/programs/ld-address.c:182
-#: locale/programs/ld-address.c:200 locale/programs/ld-address.c:229
-#: locale/programs/ld-address.c:301 locale/programs/ld-address.c:320
-#: locale/programs/ld-address.c:333 locale/programs/ld-identification.c:146
+#: locale/programs/ld-address.c:146 locale/programs/ld-address.c:184
+#: locale/programs/ld-address.c:202 locale/programs/ld-address.c:231
+#: locale/programs/ld-address.c:303 locale/programs/ld-address.c:322
+#: locale/programs/ld-address.c:335 locale/programs/ld-identification.c:146
 #: locale/programs/ld-measurement.c:105 locale/programs/ld-monetary.c:206
 #: locale/programs/ld-monetary.c:250 locale/programs/ld-monetary.c:266
 #: locale/programs/ld-monetary.c:278 locale/programs/ld-name.c:105
@@ -1582,46 +1617,46 @@
 msgid "%s: field `%s' not defined"
 msgstr ""
 
-#: locale/programs/ld-address.c:156 locale/programs/ld-address.c:208
-#: locale/programs/ld-address.c:238 locale/programs/ld-address.c:276
+#: locale/programs/ld-address.c:158 locale/programs/ld-address.c:210
+#: locale/programs/ld-address.c:240 locale/programs/ld-address.c:278
 #: locale/programs/ld-name.c:117 locale/programs/ld-telephone.c:117
 #, c-format
 msgid "%s: field `%s' must not be empty"
 msgstr ""
 
-#: locale/programs/ld-address.c:168
+#: locale/programs/ld-address.c:170
 #, c-format
 msgid "%s: invalid escape `%%%c' sequence in field `%s'"
 msgstr ""
 
-#: locale/programs/ld-address.c:219
+#: locale/programs/ld-address.c:221
 #, c-format
 msgid "%s: terminology language code `%s' not defined"
 msgstr ""
 
-#: locale/programs/ld-address.c:244
+#: locale/programs/ld-address.c:246
 #, c-format
 msgid "%s: field `%s' must not be defined"
 msgstr ""
 
-#: locale/programs/ld-address.c:258 locale/programs/ld-address.c:287
+#: locale/programs/ld-address.c:260 locale/programs/ld-address.c:289
 #, c-format
 msgid "%s: language abbreviation `%s' not defined"
 msgstr ""
 
-#: locale/programs/ld-address.c:265 locale/programs/ld-address.c:293
-#: locale/programs/ld-address.c:327 locale/programs/ld-address.c:339
+#: locale/programs/ld-address.c:267 locale/programs/ld-address.c:295
+#: locale/programs/ld-address.c:329 locale/programs/ld-address.c:341
 #, c-format
 msgid "%s: `%s' value does not match `%s' value"
 msgstr ""
 
-#: locale/programs/ld-address.c:312
+#: locale/programs/ld-address.c:314
 #, c-format
 msgid "%s: numeric country code `%d' not valid"
 msgstr ""
 
-#: locale/programs/ld-address.c:508 locale/programs/ld-address.c:545
-#: locale/programs/ld-address.c:583 locale/programs/ld-ctype.c:2608
+#: locale/programs/ld-address.c:510 locale/programs/ld-address.c:547
+#: locale/programs/ld-address.c:585 locale/programs/ld-ctype.c:2608
 #: locale/programs/ld-identification.c:364
 #: locale/programs/ld-measurement.c:221 locale/programs/ld-messages.c:301
 #: locale/programs/ld-monetary.c:701 locale/programs/ld-monetary.c:736
@@ -1633,7 +1668,7 @@
 msgid "%s: field `%s' declared more than once"
 msgstr ""
 
-#: locale/programs/ld-address.c:512 locale/programs/ld-address.c:550
+#: locale/programs/ld-address.c:514 locale/programs/ld-address.c:552
 #: locale/programs/ld-identification.c:368 locale/programs/ld-messages.c:311
 #: locale/programs/ld-monetary.c:705 locale/programs/ld-monetary.c:740
 #: locale/programs/ld-name.c:284 locale/programs/ld-numeric.c:267
@@ -1643,7 +1678,7 @@
 msgid "%s: unknown character in field `%s'"
 msgstr ""
 
-#: locale/programs/ld-address.c:597 locale/programs/ld-collate.c:3926
+#: locale/programs/ld-address.c:599 locale/programs/ld-collate.c:3922
 #: locale/programs/ld-ctype.c:2981 locale/programs/ld-identification.c:449
 #: locale/programs/ld-measurement.c:235 locale/programs/ld-messages.c:330
 #: locale/programs/ld-monetary.c:941 locale/programs/ld-name.c:305
@@ -1653,10 +1688,10 @@
 msgid "%s: incomplete `END' line"
 msgstr ""
 
-#: locale/programs/ld-address.c:607 locale/programs/ld-collate.c:542
+#: locale/programs/ld-address.c:609 locale/programs/ld-collate.c:542
 #: locale/programs/ld-collate.c:594 locale/programs/ld-collate.c:890
 #: locale/programs/ld-collate.c:903 locale/programs/ld-collate.c:2733
-#: locale/programs/ld-collate.c:2754 locale/programs/ld-collate.c:4111
+#: locale/programs/ld-collate.c:2754 locale/programs/ld-collate.c:4107
 #: locale/programs/ld-ctype.c:1960 locale/programs/ld-ctype.c:2219
 #: locale/programs/ld-ctype.c:2806 locale/programs/ld-ctype.c:2992
 #: locale/programs/ld-identification.c:459
@@ -1763,7 +1798,7 @@
 msgid "`%s' and `%.*s' are not valid names for symbolic range"
 msgstr ""
 
-#: locale/programs/ld-collate.c:1369 locale/programs/ld-collate.c:3862
+#: locale/programs/ld-collate.c:1369 locale/programs/ld-collate.c:3858
 #, c-format
 msgid "%s: order for `%.*s' already defined at %s:%Zu"
 msgstr ""
@@ -1804,7 +1839,7 @@
 msgid "too many errors; giving up"
 msgstr ""
 
-#: locale/programs/ld-collate.c:2659 locale/programs/ld-collate.c:4050
+#: locale/programs/ld-collate.c:2659 locale/programs/ld-collate.c:4046
 #, c-format
 msgid "%s: nested conditionals not supported"
 msgstr ""
@@ -1824,112 +1859,112 @@
 msgid "%s: duplicate declaration of section `%s'"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3025
+#: locale/programs/ld-collate.c:3024
 #, c-format
 msgid "%s: unknown character in collating symbol name"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3155
+#: locale/programs/ld-collate.c:3153
 #, c-format
 msgid "%s: unknown character in equivalent definition name"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3168
+#: locale/programs/ld-collate.c:3164
 #, c-format
 msgid "%s: unknown character in equivalent definition value"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3178
+#: locale/programs/ld-collate.c:3174
 #, c-format
 msgid "%s: unknown symbol `%s' in equivalent definition"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3187
+#: locale/programs/ld-collate.c:3183
 msgid "error while adding equivalent collating symbol"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3225
+#: locale/programs/ld-collate.c:3221
 #, c-format
 msgid "duplicate definition of script `%s'"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3273
+#: locale/programs/ld-collate.c:3269
 #, c-format
 msgid "%s: unknown section name `%.*s'"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3302
+#: locale/programs/ld-collate.c:3298
 #, c-format
 msgid "%s: multiple order definitions for section `%s'"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3330
+#: locale/programs/ld-collate.c:3326
 #, c-format
 msgid "%s: invalid number of sorting rules"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3357
+#: locale/programs/ld-collate.c:3353
 #, c-format
 msgid "%s: multiple order definitions for unnamed section"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3411 locale/programs/ld-collate.c:3541
-#: locale/programs/ld-collate.c:3904
+#: locale/programs/ld-collate.c:3407 locale/programs/ld-collate.c:3537
+#: locale/programs/ld-collate.c:3900
 #, c-format
 msgid "%s: missing `order_end' keyword"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3474
+#: locale/programs/ld-collate.c:3470
 #, c-format
 msgid "%s: order for collating symbol %.*s not yet defined"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3492
+#: locale/programs/ld-collate.c:3488
 #, c-format
 msgid "%s: order for collating element %.*s not yet defined"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3503
+#: locale/programs/ld-collate.c:3499
 #, c-format
 msgid "%s: cannot reorder after %.*s: symbol not known"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3555 locale/programs/ld-collate.c:3916
+#: locale/programs/ld-collate.c:3551 locale/programs/ld-collate.c:3912
 #, c-format
 msgid "%s: missing `reorder-end' keyword"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3589 locale/programs/ld-collate.c:3787
+#: locale/programs/ld-collate.c:3585 locale/programs/ld-collate.c:3783
 #, c-format
 msgid "%s: section `%.*s' not known"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3654
+#: locale/programs/ld-collate.c:3650
 #, c-format
 msgid "%s: bad symbol <%.*s>"
 msgstr ""
 
-#: locale/programs/ld-collate.c:3850
+#: locale/programs/ld-collate.c:3846
 #, c-format

[... 3924 lines stripped ...]