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

[commits] r7868 - in /trunk: libc/ libc/elf/ libc/iconv/ libc/include/ libc/libio/ libc/localedata/ libc/localedata/locales/ libc/mall...



Author: joseph
Date: Thu Feb  5 06:29:56 2009
New Revision: 7868

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

Added:
    trunk/libc/iconv/tst-iconv4.c
      - copied unchanged from r7867, fsf/trunk/libc/iconv/tst-iconv4.c
    trunk/libc/libio/tst-fgetwc.c
      - copied unchanged from r7867, fsf/trunk/libc/libio/tst-fgetwc.c
    trunk/libc/libio/tst-fgetwc.input
      - copied unchanged from r7867, fsf/trunk/libc/libio/tst-fgetwc.input
    trunk/libc/misc/bug-hsearch1.c
      - copied unchanged from r7867, fsf/trunk/libc/misc/bug-hsearch1.c
    trunk/ports/sysdeps/unix/sysv/linux/mips/dl-static.c
      - copied unchanged from r7867, fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/dl-static.c
    trunk/ports/sysdeps/unix/sysv/linux/mips/ldsodefs.h
      - copied unchanged from r7867, fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/ldsodefs.h
Modified:
    trunk/libc/ChangeLog
    trunk/libc/FAQ
    trunk/libc/FAQ.in
    trunk/libc/Makeconfig
    trunk/libc/NEWS
    trunk/libc/elf/Makefile
    trunk/libc/iconv/Makefile
    trunk/libc/iconv/gconv_trans.c
    trunk/libc/include/alloca.h
    trunk/libc/libio/Makefile
    trunk/libc/libio/wfileops.c
    trunk/libc/localedata/ChangeLog
    trunk/libc/localedata/locales/as_IN
    trunk/libc/localedata/locales/bn_BD
    trunk/libc/localedata/locales/bn_IN
    trunk/libc/localedata/locales/hi_IN
    trunk/libc/localedata/locales/mr_IN
    trunk/libc/malloc/malloc.c
    trunk/libc/misc/Makefile
    trunk/libc/misc/hsearch_r.c
    trunk/libc/misc/sbrk.c
    trunk/libc/nptl/ChangeLog
    trunk/libc/nptl/allocatestack.c
    trunk/libc/nptl/init.c
    trunk/libc/nptl/pthreadP.h
    trunk/libc/nptl/pthread_mutex_lock.c
    trunk/libc/nptl/sysdeps/pthread/unwind-forcedunwind.c
    trunk/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
    trunk/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
    trunk/libc/nscd/connections.c
    trunk/libc/nscd/mem.c
    trunk/libc/nss/getent.c
    trunk/libc/po/ru.po
    trunk/libc/string/string.h
    trunk/libc/string/strings.h
    trunk/libc/sysdeps/generic/dl-osinfo.h
    trunk/libc/sysdeps/i386/stackinfo.h
    trunk/libc/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c
    trunk/libc/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
    trunk/libc/sysdeps/powerpc/powerpc64/__longjmp-common.S
    trunk/libc/sysdeps/sh/sh4/__longjmp.S
    trunk/libc/sysdeps/sh/sh4/dl-trampoline.S
    trunk/libc/sysdeps/sh/sh4/setjmp.S
    trunk/libc/sysdeps/unix/sysv/linux/bits/shm.h
    trunk/libc/sysdeps/unix/sysv/linux/i386/sysconf.c
    trunk/libc/sysdeps/unix/sysv/linux/ia64/bits/shm.h
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/bits/shm.h
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
    trunk/libc/sysdeps/unix/sysv/linux/s390/bits/shm.h
    trunk/libc/sysdeps/unix/sysv/linux/sh/Makefile
    trunk/libc/sysdeps/unix/sysv/linux/sh/bits/shm.h
    trunk/libc/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
    trunk/libc/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h
    trunk/libc/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
    trunk/libc/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
    trunk/libc/sysdeps/unix/sysv/linux/sh/sysdep.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/shm.h
    trunk/libc/sysdeps/unix/sysv/linux/sys/inotify.h
    trunk/libc/sysdeps/unix/sysv/linux/tst-clone.c
    trunk/libc/sysdeps/unix/sysv/linux/x86_64/bits/shm.h
    trunk/libc/sysdeps/x86_64/cacheinfo.c
    trunk/libc/sysdeps/x86_64/stackinfo.h
    trunk/libc/wcsmbs/wchar.h
    trunk/ports/ChangeLog.arm
    trunk/ports/ChangeLog.mips
    trunk/ports/sysdeps/arm/elf/start.S
    trunk/ports/sysdeps/arm/memset.S
    trunk/ports/sysdeps/unix/sysv/linux/arm/bits/shm.h
    trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
    trunk/ports/sysdeps/unix/sysv/linux/arm/sysdep.h
    trunk/ports/sysdeps/unix/sysv/linux/mips/Makefile
    trunk/ports/sysdeps/unix/sysv/linux/mips/Versions
    trunk/ports/sysdeps/unix/sysv/linux/mips/bits/shm.h

Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Thu Feb  5 06:29:56 2009
@@ -1,3 +1,161 @@
+2009-02-03  Andrew Stubbs  <ams@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/sh/sh4/dl-trampoline.S: Only set HAVE_FPU if __SH_FPU_ANY__
+	is set.
+	* sysdeps/sh/sh4/setjmp.S: Support SH4-NOFPU.
+	* sysdeps/sh/sh4/__longjmp.S: Likewise.
+	* sysdeps/unix/sysv/linux/sh/sh4/getcontext.S: Likewise.
+	* sysdeps/unix/sysv/linux/sh/sh4/setcontext.S: Likewise.
+	* sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S: Likewise.
+	* sysdeps/unix/sysv/linux/sh/sh4/register-dump.h: Likewise.
+
+2009-02-04  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* po/ru.po: Update from translation team.
+
+2008-11-17  Nathan Sidwell  <nathan@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/sparc/bits/siginfo.h (struct sigevent):
+	Add _tid slot to maintain consistency with kernel.
+
+2009-02-04  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* libio/wfileops.c (_IO_wfile_underflow): Fix handling of
+	incomplete characters at end of input buffer.
+	* libio/Makefile (tests): Add tst-fgetwc.
+	* libio/tst-fgetwc.c: New file.
+	* libio/tst-fgetwc.input: New file.
+
+2009-02-02  Andrew Stubbs  <ams@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/sh/Makefile (libm.so-no-z-defs): Define.
+
+2009-02-02  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #9793]
+	* iconv/gconv_trans.c (__gconv_transliterate): Don't change
+	*OUTBUFSTART unless the whole output fit into the buffer.
+	* iconv/Makefile (tests): Add tst-iconv4.
+	* iconv/tst-iconv4.c: New file.
+
+2009-02-01  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/x86_64/cacheinfo.c (intel_02_known): Add new descriptors.
+	* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_02_known): Likewise.
+
+2009-01-29  Andrew Stubbs  <ams@xxxxxxxxxxxxxxxx>
+
+	* elf/Makefile (ld.so): Adjust the sed script to insert _begin in to
+	newer linker scripts.
+
+2009-01-30  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #7040]
+	* sysdeps/unix/sysv/linux/sys/inotify.h: Second parameter of
+	inotify_rm_watch should have type int.
+
+2009-01-06  Steven Munroe  <sjmunroe@xxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S (__longjmp):
+	Make aligned_restore_vmx a local symbol.
+	* sysdeps/powerpc/powerpc64/__longjmp-common.S (__longjmp):
+	Likewise.
+
+2009-01-30  Andreas Jaeger  <aj@xxxxxxx>
+
+	* sysdeps/unix/sysv/linux/bits/shm.h (SHM_EXEC): Define.
+	* sysdeps/unix/sysv/linux/ia64/bits/shm.h (SHM_EXEC): Define.
+	* sysdeps/unix/sysv/linux/powerpc/bits/shm.h (SHM_EXEC): Define.
+	* sysdeps/unix/sysv/linux/s390/bits/shm.h (SHM_EXEC): Define.
+	* sysdeps/unix/sysv/linux/sh/bits/shm.h (SHM_EXEC): Define.
+	* sysdeps/unix/sysv/linux/sparc/bits/shm.h (SHM_EXEC): Define.
+	* sysdeps/unix/sysv/linux/x86_64/bits/shm.h (SHM_EXEC): Define.
+
+2009-01-11  Ryan S. Arnold  <rsa@xxxxxxxxxx>
+
+	[BZ #9726]
+	* sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (_SET_DI_FPSCR,
+	_SET_SI_FPSCR): Clobber fp0 to prevent erroneous test-case passes.
+
+2009-01-08  Ryan S. Arnold  <rsa@xxxxxxxxxx>
+
+	[BZ #9726]
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
+	(__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
+	(__CONTEXT_FUNC_NAME): Fix mtfsf to use fp31 instead of fp0.
+
+2009-01-11  Thomas Schwinge  <tschwinge@xxxxxxx>
+
+	* sysdeps/generic/dl-osinfo.h (_dl_setup_stack_chk_guard): Use
+	memcpy instead of memcmp.
+	(_dl_setup_pointer_guard): Likewise.
+
+2009-01-30  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* malloc/malloc.c (sYSMALLOc): Don't use assert when detecting
+	manipulated brk, use malloc_printerr.
+	* misc/sbrk.c (__sbrk): Better error handling for nonsense
+	requests.
+
+2009-01-30  Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* string/string.h (memchr, strchr, strrchr, strpbrk, strstr, index,
+	rindex): For C++ add inlines so that they can be recognized as
+	builtins.
+	* string/strings.h: Define correct C++ prototypes for gcc 4.4.
+
+2009-01-29  Ulrich Drepper  <drepper@xxxxxxxxxx>
+	    Jakub Jelinek  <jakub@xxxxxxxxxx>
+
+	* string/string.h: Define correct C++ prototypes for gcc 4.4.
+	* wcsmbs/wchar.h: Likewise.
+
+2009-01-29  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/i386/stackinfo.h (stackinfo_get_sp): Define.
+	(stackinfo_sub_sp): Define.
+
+2009-01-28  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	[BZ #9750]
+	* nscd/mem.c (gc): Use alloca_count to get the real stack usage.
+	* include/alloca.h (alloca_account): Define.
+	* sysdeps/x86_64/stackinfo.h (stackinfo_get_sp): Define.
+	(stackinfo_sub_sp): Define.
+
+	* nscd/connections.c (nscd_init): If database file access fails
+	check whether this is due to permission problems and bail in that
+	case.
+
+	[BZ #9741]
+	* nscd/mem.c (gc): Fix assignment of he_data in case malloc is used.
+	Reported by Jun'ichi Nomura <j-nomura@xxxxxxxxxxxxx>.
+
+2009-01-14  Kaz Kojima  <kkojima@xxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/sh/sysdep.h (INTERNAL_SYSCALL):
+	Add "t" to clobber list.
+	(INTERNAL_SYSCALL_NCS): Likewise.
+
+2009-01-28  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* nss/getent.c (print_networks): Don't print comma between aliases.
+
+2009-01-23  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/tst-clone.c (do_test): Avoid warning.
+
+	* misc/hsearch_r.c (hcreate_r): We need at least three elements in
+	the hash table.
+	* misc/Makefile (tests): Add bug-hsearch1.
+	* misc/bug-hsearch1.c: New file.
+
+2009-01-22  Roland McGrath  <roland@xxxxxxxxxx>
+
+	* Makeconfig (%.v.i): Strip trailing # comments,
+	not only whole-line comments.
+
 2009-01-10  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	* sysdeps/generic/dl-osinfo.h (_dl_setup_stack_chk_guard): Take
@@ -80,7 +238,6 @@
 	* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr2_r): Check and
 	adjust the buffer alignment.
 
->>>>>>> 1.11443
 2009-01-07  Samuel Thibault  <samuel.thibault@xxxxxxxxxxxx>
 
 	* sysdeps/mach/hurd/Makefile (sysdep_headers) [subdir=socket]:
@@ -570,7 +727,7 @@
 
 	[BZ #6942]
 	* resolv/res_send.c (send_vc): Fix use of unaligned address.
-        Properly handle partial reads.
+	Properly handle partial reads.
 
 2008-10-01  Mark Shinwell  <shinwell@xxxxxxxxxxxxxxxx>
 
@@ -621,7 +778,7 @@
 	Patch by Michael Solberg <msolberg@xxxxxxxxxx>.
 
 2008-09-12  Flavio Leitner  <fleitner@xxxxxxxxxx>
-            Ulrich Drepper  <drepper@xxxxxxxxxx>
+	    Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	* malloc/malloc.c (public_vALLOc): Try other arenas in case
 	_int_valloc fails.
@@ -4574,7 +4731,7 @@
 2007-08-16  Andreas Jaeger  <aj@xxxxxxx>
 
 	* locale/localeinfo.h: Make _nl_category_name_idxs extern.
-        Reported by Peter Festner <peter.festner@xxxxxxxxxx>.
+	Reported by Peter Festner <peter.festner@xxxxxxxxxx>.
 
 2007-08-17  Jakub Jelinek  <jakub@xxxxxxxxxx>
 
@@ -5664,8 +5821,8 @@
 	* sysdeps/generic/ldsodefs.h (_dl_addr_inside_object): New prototype.
 
 2007-06-18  Jakub Jelinek  <jakub@xxxxxxxxxx>
-            Tomas Janousek  <tjanouse@xxxxxxxxxx>
-            Ulrich Drepper  <drepper@xxxxxxxxxx>
+	    Tomas Janousek  <tjanouse@xxxxxxxxxx>
+	    Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	[BZ #4647]
 	* resolv/res_send.c (send_dg): Remove socket_pf.  Use ipv6_unavail

Modified: trunk/libc/FAQ
==============================================================================
--- trunk/libc/FAQ (original)
+++ trunk/libc/FAQ Thu Feb  5 06:29:56 2009
@@ -570,8 +570,6 @@
 because of problems of the FPU emulation in the Linux kernel (the MIPS FPU
 doesn't handle all cases and needs help from the kernel).
 
-For details check also my page <http://www.suse.de/~aj/glibc-mips.html>.
-
 
 1.21.	Which compiler should I use for powerpc64?
 

Modified: trunk/libc/FAQ.in
==============================================================================
--- trunk/libc/FAQ.in (original)
+++ trunk/libc/FAQ.in Thu Feb  5 06:29:56 2009
@@ -367,7 +367,6 @@
 because of problems of the FPU emulation in the Linux kernel (the MIPS FPU
 doesn't handle all cases and needs help from the kernel).
 
-For details check also my page <http://www.suse.de/~aj/glibc-mips.html>.
 
 ??powerpc64	Which compiler should I use for powerpc64?
 

Modified: trunk/libc/Makeconfig
==============================================================================
--- trunk/libc/Makeconfig (original)
+++ trunk/libc/Makeconfig Thu Feb  5 06:29:56 2009
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2003,2004,2005,2006,2007,2008
+# Copyright (C) 1991-2003,2004,2005,2006,2007,2008,2009
 #	Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
@@ -802,7 +802,8 @@
 # listing both its input files, and any header files that it may reference
 # (but no commands).
 %.v.i: $(common-objpfx)config.h
-	sed '/^[ 	]*#/d;s/^[ 	]*%/#/' $(filter-out FORCE %.h,$^) \
+	sed 's/#.*$$//;/^[ 	]*$$/d;s/^[ 	]*%/#/' \
+	    $(filter-out FORCE %.h,$^) \
 	| $(CC) -E -undef $(CPPFLAGS) -x assembler-with-cpp - \
 		   > $@T
 	mv -f $@T $@

Modified: trunk/libc/NEWS
==============================================================================
--- trunk/libc/NEWS (original)
+++ trunk/libc/NEWS Thu Feb  5 06:29:56 2009
@@ -1,5 +1,5 @@
-GNU C Library NEWS -- history of user-visible changes.  2008-12-2
-Copyright (C) 1992-2007, 2008 Free Software Foundation, Inc.
+GNU C Library NEWS -- history of user-visible changes.  2009-1-30
+Copyright (C) 1992-2008, 2009 Free Software Foundation, Inc.
 See the end for copying conditions.
 
 Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/>
@@ -8,6 +8,9 @@
 Version 2.10
 
 * New Linux interface: accept4
+
+* Correct declarations of string function when used in C++ code.  This
+  could lead to compile error for invalid C++ code.
 
 
 Version 2.9

Modified: trunk/libc/elf/Makefile
==============================================================================
--- trunk/libc/elf/Makefile (original)
+++ trunk/libc/elf/Makefile Thu Feb  5 06:29:56 2009
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 1995-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
@@ -305,8 +305,7 @@
 		  $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 |	\
 		  LC_ALL=C \
 		  sed -e '/^=========/,/^=========/!d;/^=========/d'	\
-		      -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
-		      -e 's/\. = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
+		      -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
 		  > $@.lds
 	$(LINK.o) -nostdlib -nostartfiles -shared -o $@			\
 		  $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now))	\

Modified: trunk/libc/iconv/Makefile
==============================================================================
--- trunk/libc/iconv/Makefile (original)
+++ trunk/libc/iconv/Makefile Thu Feb  5 06:29:56 2009
@@ -1,5 +1,4 @@
-# Copyright (C) 1997,1998,2000,2001,2002,2003,2004,2007
-#	Free Software Foundation, Inc.
+# Copyright (C) 1997,1998,2000-2004,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
@@ -52,7 +51,7 @@
 CFLAGS-linereader.c = -DNO_TRANSLITERATION
 CFLAGS-simple-hash.c = -I../locale
 
-tests	= tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv5
+tests	= tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5
 
 distribute	= gconv_builtin.h gconv_int.h loop.c skeleton.c iconv_prog.h \
 		  iconv_charmap.c dummy-repertoire.c gconv_charset.h strtab.c \

Modified: trunk/libc/iconv/gconv_trans.c
==============================================================================
--- trunk/libc/iconv/gconv_trans.c (original)
+++ trunk/libc/iconv/gconv_trans.c Thu Feb  5 06:29:56 2009
@@ -1,5 +1,5 @@
 /* Transliteration using the locale's data.
-   Copyright (C) 2000 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2000.
 
@@ -141,7 +141,10 @@
 		      ++*irreversible;
 		      res = __GCONV_OK;
 		    }
-		  *outbufstart = outptr;
+		  /* Do not increment the output pointer if we could not
+		     store the entire output. */
+		  if (res != __GCONV_FULL_OUTPUT)
+		    *outbufstart = outptr;
 
 		  return res;
 		}

Modified: trunk/libc/include/alloca.h
==============================================================================
--- trunk/libc/include/alloca.h (original)
+++ trunk/libc/include/alloca.h Thu Feb  5 06:29:56 2009
@@ -46,4 +46,17 @@
   __alloca (((len) = (newlen)))
 #endif
 
+#if defined stackinfo_get_sp && defined stackinfo_sub_sp
+# define alloca_account(size, avar) \
+  ({ void *old__ = stackinfo_get_sp ();			\
+     void *m__ = __alloca (size);			\
+     avar += stackinfo_sub_sp (old__);			\
+     m__; })
+#else
+# define alloca_account(size, avar) \
+  ({ size_t s__ = (size);		    \
+     avar += s__;			    \
+     __alloca (s__); })
 #endif
+
+#endif

Modified: trunk/libc/libio/Makefile
==============================================================================
--- trunk/libc/libio/Makefile (original)
+++ trunk/libc/libio/Makefile Thu Feb  5 06:29:56 2009
@@ -1,4 +1,4 @@
-# Copyright (C) 1995-2004,2006,2007,2008 Free Software Foundation, Inc.
+# Copyright (C) 1995-2004,2006,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
@@ -76,7 +76,7 @@
      += bug-rewind bug-rewind2 bug-ungetwc1		\
 	bug-wfflush bug-wmemstream1 tst-fopenloc2	\
 	tst_getwc					\
-	tst_putwc tst_wprintf tst_wprintf2 tst_wscanf
+	tst_putwc tst_wprintf tst_wprintf2 tst_wscanf tst-fgetwc
 tests-$(OPTION_POSIX_C_LANG_WIDE_CHAR)			\
      += tst_swprintf tst_swscanf			\
 	tst-sscanf					\

Modified: trunk/libc/libio/wfileops.c
==============================================================================
--- trunk/libc/libio/wfileops.c (original)
+++ trunk/libc/libio/wfileops.c Thu Feb  5 06:29:56 2009
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993,1995,1997-2003,2004, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1993,1995,1997-2004,2006,2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Ulrich Drepper <drepper@xxxxxxxxxx>.
    Based on the single byte version by Per Bothner <bothner@xxxxxxxxxx>.
@@ -123,8 +123,6 @@
   struct _IO_codecvt *cd;
   enum __codecvt_result status;
   _IO_ssize_t count;
-  int tries;
-  const char *read_ptr_copy;
 
   if (__builtin_expect (fp->_flags & _IO_NO_READS, 0))
     {
@@ -236,13 +234,15 @@
   fp->_wide_data->_IO_write_base = fp->_wide_data->_IO_write_ptr =
     fp->_wide_data->_IO_write_end = fp->_wide_data->_IO_buf_base;
 
-  tries = 0;
+  const char *read_ptr_copy;
+  char accbuf[MB_LEN_MAX];
+  size_t naccbuf = 0;
  again:
   count = _IO_SYSREAD (fp, fp->_IO_read_end,
 		       fp->_IO_buf_end - fp->_IO_read_end);
   if (count <= 0)
     {
-      if (count == 0 && tries == 0)
+      if (count == 0 && naccbuf == 0)
 	fp->_flags |= _IO_EOF_SEEN;
       else
 	fp->_flags |= _IO_ERR_SEEN, count = 0;
@@ -250,7 +250,7 @@
   fp->_IO_read_end += count;
   if (count == 0)
     {
-      if (tries != 0)
+      if (naccbuf != 0)
 	/* There are some bytes in the external buffer but they don't
            convert to anything.  */
 	__set_errno (EILSEQ);
@@ -262,18 +262,31 @@
   /* Now convert the read input.  */
   fp->_wide_data->_IO_last_state = fp->_wide_data->_IO_state;
   fp->_IO_read_base = fp->_IO_read_ptr;
+  const char *from = fp->_IO_read_ptr;
+  const char *to = fp->_IO_read_end;
+  size_t to_copy = count;
+  if (__builtin_expect (naccbuf != 0, 0))
+    {
+      to_copy = MIN (sizeof (accbuf) - naccbuf, count);
+      to = __mempcpy (&accbuf[naccbuf], from, to_copy);
+      naccbuf += to_copy;
+      from = accbuf;
+    }
   status = (*cd->__codecvt_do_in) (cd, &fp->_wide_data->_IO_state,
-				   fp->_IO_read_ptr, fp->_IO_read_end,
-				   &read_ptr_copy,
+				   from, to, &read_ptr_copy,
 				   fp->_wide_data->_IO_read_end,
 				   fp->_wide_data->_IO_buf_end,
 				   &fp->_wide_data->_IO_read_end);
 
-  fp->_IO_read_ptr = (char *) read_ptr_copy;
+  if (__builtin_expect (naccbuf != 0, 0))
+    fp->_IO_read_ptr += MAX (0, read_ptr_copy - &accbuf[naccbuf - to_copy]);
+  else
+    fp->_IO_read_ptr = (char *) read_ptr_copy;
   if (fp->_wide_data->_IO_read_end == fp->_wide_data->_IO_buf_base)
     {
-      if (status == __codecvt_error || fp->_IO_read_end == fp->_IO_buf_end)
-	{
+      if (status == __codecvt_error)
+	{
+	out_eilseq:
 	  __set_errno (EILSEQ);
 	  fp->_flags |= _IO_ERR_SEEN;
 	  return WEOF;
@@ -281,7 +294,40 @@
 
       /* The read bytes make no complete character.  Try reading again.  */
       assert (status == __codecvt_partial);
-      ++tries;
+
+      if (naccbuf == 0)
+	{
+	  if (fp->_IO_read_base < fp->_IO_read_ptr)
+	    {
+	      /* Partially used the buffer for some input data that
+		 produces no output.  */
+	      size_t avail = fp->_IO_read_end - fp->_IO_read_ptr;
+	      memmove (fp->_IO_read_base, fp->_IO_read_ptr, avail);
+	      fp->_IO_read_ptr = fp->_IO_read_base;
+	      fp->_IO_read_end -= avail;
+	      goto again;
+	    }
+	  naccbuf = fp->_IO_read_end - fp->_IO_read_ptr;
+	  if (naccbuf >= sizeof (accbuf))
+	    goto out_eilseq;
+
+	  memcpy (accbuf, fp->_IO_read_ptr, naccbuf);
+	}
+      else
+	{
+	  size_t used = read_ptr_copy - accbuf;
+	  if (used > 0)
+	    {
+	      memmove (accbuf, read_ptr_copy, naccbuf - used);
+	      naccbuf -= used;
+	    }
+
+	  if (naccbuf == sizeof (accbuf))
+	    goto out_eilseq;
+	}
+
+      fp->_IO_read_ptr = fp->_IO_read_end = fp->_IO_read_base;
+
       goto again;
     }
 

Modified: trunk/libc/localedata/ChangeLog
==============================================================================
--- trunk/libc/localedata/ChangeLog (original)
+++ trunk/libc/localedata/ChangeLog Thu Feb  5 06:29:56 2009
@@ -1,3 +1,12 @@
+2009-01-28  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* locales/as_IN: Break circular include loops introduced in last patch.
+	* locales/bn_BD: Likewise.
+	* locales/bn_IN: Likewise.
+	* locales/hi_IN: Likewise.
+	* locales/mr_IN: Likewise.
+	Patch by Pravin Satpute <psatpute@xxxxxxxxxx>.
+
 2009-01-08  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	[BZ #9701]

Modified: trunk/libc/localedata/locales/as_IN
==============================================================================
--- trunk/libc/localedata/locales/as_IN (original)
+++ trunk/libc/localedata/locales/as_IN Thu Feb  5 06:29:56 2009
@@ -32,11 +32,7 @@
 
 %%%%%%%%%%%%%
 LC_CTYPE
-copy "bn_IN"
-
-translit_start
-include "translit_combining";""
-translit_end
+copy "bn_BD"
 END LC_CTYPE
 
 %%%%%%%%%%%%%

Modified: trunk/libc/localedata/locales/bn_BD
==============================================================================
--- trunk/libc/localedata/locales/bn_BD (original)
+++ trunk/libc/localedata/locales/bn_BD Thu Feb  5 06:29:56 2009
@@ -37,7 +37,24 @@
 END LC_COLLATE
 
 LC_CTYPE
-copy "bn_IN"
+copy "i18n"
+
+% Bengali uses the alternate digits U+09E6..U+09EF
+outdigit <U09E6>..<U09EF>
+
+% This is used in the scanf family of functions to read Bengali numbers
+% using "%Id" and such.
+map to_inpunct; /
+  (<U0030>,<U09E6>); /
+  (<U0031>,<U09E7>); /
+  (<U0032>,<U09E8>); /
+  (<U0033>,<U09E9>); /
+  (<U0034>,<U09EA>); /
+  (<U0035>,<U09EB>); /
+  (<U0036>,<U09EC>); /
+  (<U0037>,<U09ED>); /
+  (<U0038>,<U09EE>); /
+  (<U0039>,<U09EF>); 
 
 translit_start
 include "translit_combining";""

Modified: trunk/libc/localedata/locales/bn_IN
==============================================================================
--- trunk/libc/localedata/locales/bn_IN (original)
+++ trunk/libc/localedata/locales/bn_IN Thu Feb  5 06:29:56 2009
@@ -34,28 +34,7 @@
 
 
 LC_CTYPE
-copy "i18n"
-
-% Bengali uses the alternate digits U+09E6..U+09EF
-outdigit <U09E6>..<U09EF>
-
-% This is used in the scanf family of functions to read Bengali numbers
-% using "%Id" and such.
-map to_inpunct; /
-  (<U0030>,<U09E6>); /
-  (<U0031>,<U09E7>); /
-  (<U0032>,<U09E8>); /
-  (<U0033>,<U09E9>); /
-  (<U0034>,<U09EA>); /
-  (<U0035>,<U09EB>); /
-  (<U0036>,<U09EC>); /
-  (<U0037>,<U09ED>); /
-  (<U0038>,<U09EE>); /
-  (<U0039>,<U09EF>); 
-
-translit_start
-include "translit_combining";""
-translit_end
+copy "bn_BD"
 END LC_CTYPE
 
 

Modified: trunk/libc/localedata/locales/hi_IN
==============================================================================
--- trunk/libc/localedata/locales/hi_IN (original)
+++ trunk/libc/localedata/locales/hi_IN Thu Feb  5 06:29:56 2009
@@ -32,7 +32,24 @@
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "mr_IN"
+copy "i18n"
+
+% Devanagari uses the alternate digits U+0966..U+096F
+outdigit <U0966>..<U096F>
+
+% This is used in the scanf family of functions to read devanagari numbers
+% using "%Id" and such.
+map to_inpunct; /
+  (<U0030>,<U0966>); /
+  (<U0031>,<U0967>); /
+  (<U0032>,<U0968>); /
+  (<U0033>,<U0969>); /
+  (<U0034>,<U096A>); /
+  (<U0035>,<U096B>); /
+  (<U0036>,<U096C>); /
+  (<U0037>,<U096D>); /
+  (<U0038>,<U096E>); /
+  (<U0039>,<U096F>); 
 
 translit_start
 include "translit_combining";""

Modified: trunk/libc/localedata/locales/mr_IN
==============================================================================
--- trunk/libc/localedata/locales/mr_IN (original)
+++ trunk/libc/localedata/locales/mr_IN Thu Feb  5 06:29:56 2009
@@ -32,28 +32,7 @@
 END LC_IDENTIFICATION
 
 LC_CTYPE
-copy "i18n"
-
-% Devanagari uses the alternate digits U+0966..U+096F
-outdigit <U0966>..<U096F>
-
-% This is used in the scanf family of functions to read devanagari numbers
-% using "%Id" and such.
-map to_inpunct; /
-  (<U0030>,<U0966>); /
-  (<U0031>,<U0967>); /
-  (<U0032>,<U0968>); /
-  (<U0033>,<U0969>); /
-  (<U0034>,<U096A>); /
-  (<U0035>,<U096B>); /
-  (<U0036>,<U096C>); /
-  (<U0037>,<U096D>); /
-  (<U0038>,<U096E>); /
-  (<U0039>,<U096F>); 
-
-translit_start
-include  "translit_combining";""
-translit_end
+copy "hi_IN"
 END LC_CTYPE
 
 LC_COLLATE

Modified: trunk/libc/malloc/malloc.c
==============================================================================
--- trunk/libc/malloc/malloc.c (original)
+++ trunk/libc/malloc/malloc.c Thu Feb  5 06:29:56 2009
@@ -1,5 +1,5 @@
 /* Malloc implementation for multiple threads without lock contention.
-   Copyright (C) 1996-2006, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 1996-2006, 2007, 2008, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Wolfram Gloger <wg@xxxxxxxxx>
    and Doug Lea <dl@xxxxxxxxxxxxx>, 2001.
@@ -3189,7 +3189,7 @@
 
     else if (contiguous(av) && old_size && brk < old_end) {
       /* Oops!  Someone else killed our space..  Can't touch anything.  */
-      assert(0);
+      malloc_printerr (3, "break adjusted to free malloc space", brk);
     }
 
     /*

Modified: trunk/libc/misc/Makefile
==============================================================================
--- trunk/libc/misc/Makefile (original)
+++ trunk/libc/misc/Makefile Thu Feb  5 06:29:56 2009
@@ -1,4 +1,4 @@
-# Copyright (C) 1991-2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1991-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
@@ -86,7 +86,7 @@
 gpl2lgpl := error.c error.h
 
 tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \
-	 tst-pselect tst-insremque tst-mntent2
+	 tst-pselect tst-insremque tst-mntent2 bug-hsearch1
 tests-$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO) += tst-error1
 # eglibc: ifeq (no,$(cross-compiling))
 ifeq (y,$(OPTION_POSIX_WIDE_CHAR_DEVICE_IO))

Modified: trunk/libc/misc/hsearch_r.c
==============================================================================
--- trunk/libc/misc/hsearch_r.c (original)
+++ trunk/libc/misc/hsearch_r.c Thu Feb  5 06:29:56 2009
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993,1995-1997,2002,2005,2007,2008
+/* Copyright (C) 1993,1995-1997,2002,2005,2007,2008,2009
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxxxxxx>, 1993.
@@ -79,6 +79,10 @@
   if (htab->table != NULL)
     return 0;
 
+  /* We need a size of at least 3.  Otherwise the hash functions we
+     use will not work.  */
+  if (nel < 3)
+    nel = 3;
   /* Change nel to the first prime number not smaller as nel. */
   nel |= 1;      /* make odd */
   while (!isprime (nel))

Modified: trunk/libc/misc/sbrk.c
==============================================================================
--- trunk/libc/misc/sbrk.c (original)
+++ trunk/libc/misc/sbrk.c Thu Feb  5 06:29:56 2009
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,1995,1996,1997,2000,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995-1997,2000,2002,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,8 +16,9 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <errno.h>
+#include <stdint.h>
 #include <unistd.h>
-#include <errno.h>
 
 /* Defined in brk.c.  */
 extern void *__curbrk;
@@ -47,7 +48,10 @@
     return __curbrk;
 
   oldbrk = __curbrk;
-  if (__brk (oldbrk + increment) < 0)
+  if ((increment > 0
+       ? ((uintptr_t) oldbrk + (uintptr_t) increment < (uintptr_t) oldbrk)
+       : ((uintptr_t) oldbrk < (uintptr_t) -increment))
+      || __brk (oldbrk + increment) < 0)
     return (void *) -1;
 
   return oldbrk;

Modified: trunk/libc/nptl/ChangeLog
==============================================================================
--- trunk/libc/nptl/ChangeLog (original)
+++ trunk/libc/nptl/ChangeLog Thu Feb  5 06:29:56 2009
@@ -1,3 +1,34 @@
+2009-01-29  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* sysdeps/pthread/unwind-forcedunwind.c: Encrypt all function
+	pointer variables.
+
+	* allocatestack.c (__free_stacks): Renamed from free_stacks.
+	(__free_stack_cache): Removed.  Change callers to call __free_stacks.
+	* init.c (nptl_freeres): New function.
+	(pthread_functions): Initialize ptr_freeres to nptl_freeres.
+	* pthreadP.h: Don't declare __free_stack_cache.  Declare __free_stacks.
+	* sysdeps/pthread/unwind-forcedunwind.c (libgcc_s_handle): New
+	variable.
+	(pthread_cancel_init): Depend in libgcc_s_handle for decision to
+	load DSO.  Assign last.
+	(__unwind_freeres): New function.
+
+	* allocatestack.c (__reclaim_stacks): Reset in_flight_stack later
+	for better debugging.  No need to use stack_list_add here.
+
+2009-01-14  Kaz Kojima  <kkojima@xxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/sh/lowlevellock.S
+	(__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
+	instead of computing relative timeout.
+	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
+	FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
+
+2009-01-25  Ulrich Drepper  <drepper@xxxxxxxxxx>
+
+	* pthread_mutex_lock.c (__pthread_mutex_lock): Remove unused label out.
+
 2009-01-08  Ulrich Drepper  <drepper@xxxxxxxxxx>
 
 	* sysdeps/pthread/list.h (list_add): Initialize new element first.

Modified: trunk/libc/nptl/allocatestack.c
==============================================================================
--- trunk/libc/nptl/allocatestack.c (original)
+++ trunk/libc/nptl/allocatestack.c Thu Feb  5 06:29:56 2009
@@ -248,8 +248,8 @@
 
 
 /* Free stacks until cache size is lower than LIMIT.  */
-static void
-free_stacks (size_t limit)
+void
+__free_stacks (size_t limit)
 {
   /* We reduce the size of the cache.  Remove the last entries until
      the size is below the limit.  */
@@ -299,15 +299,7 @@
 
   stack_cache_actsize += stack->stackblock_size;
   if (__builtin_expect (stack_cache_actsize > stack_cache_maxsize, 0))
-    free_stacks (stack_cache_maxsize);
-}
-
-
-/* This function is called indirectly from the freeres code in libc.  */
-void
-__free_stack_cache (void)
-{
-  free_stacks (0);
+    __free_stacks (stack_cache_maxsize);
 }
 
 
@@ -849,8 +841,6 @@
 	  elem->next->prev = elem->prev;
 	  elem->prev->next = elem->next;
 	}
-
-      in_flight_stack = 0;
     }
 
   /* Mark all stacks except the still running one as free.  */
@@ -913,10 +903,12 @@
   if (__builtin_expect (THREAD_GETMEM (self, user_stack), 0))
     list_add (&self->list, &__stack_user);
   else
-    stack_list_add (&self->list, &stack_used);
+    list_add (&self->list, &stack_used);
 
   /* There is one thread running.  */
   __nptl_nthreads = 1;
+
+  in_flight_stack = 0;
 
   /* Initialize the lock.  */
   stack_cache_lock = LLL_LOCK_INITIALIZER;

Modified: trunk/libc/nptl/init.c
==============================================================================
--- trunk/libc/nptl/init.c (original)
+++ trunk/libc/nptl/init.c Thu Feb  5 06:29:56 2009
@@ -66,6 +66,8 @@
 #ifndef SHARED
 extern void __libc_setup_tls (size_t tcbsize, size_t tcbalign);
 #endif
+
+static void nptl_freeres (void);
 
 
 #ifdef SHARED
@@ -128,12 +130,24 @@
     .ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd,
     .ptr__nptl_setxid = __nptl_setxid,
     /* For now only the stack cache needs to be freed.  */
-    .ptr_freeres = __free_stack_cache
+    .ptr_freeres = nptl_freeres
   };
 # define ptr_pthread_functions &pthread_functions
 #else
 # define ptr_pthread_functions NULL
 #endif
+
+
+/* This function is called indirectly from the freeres code in libc.  */
+static void
+__libc_freeres_fn_section
+nptl_freeres (void)
+{
+#ifdef SHARED
+  __unwind_freeres ();
+#endif
+  __free_stacks (0);
+}
 
 
 /* For asynchronous cancellation we use a signal.  This is the handler.  */

Modified: trunk/libc/nptl/pthreadP.h
==============================================================================
--- trunk/libc/nptl/pthreadP.h (original)
+++ trunk/libc/nptl/pthreadP.h Thu Feb  5 06:29:56 2009
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2007, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
 
@@ -247,6 +247,7 @@
 hidden_proto (__pthread_unregister_cancel)
 # ifdef SHARED
 extern void attribute_hidden pthread_cancel_init (void);
+extern void __unwind_freeres (void);
 # endif
 #endif
 
@@ -564,7 +565,7 @@
 
 extern int __nptl_setxid (struct xid_command *cmdp) attribute_hidden;
 
-extern void __free_stack_cache (void) attribute_hidden;
+extern void __free_stacks (size_t limit) attribute_hidden;
 
 extern void __wait_lookup_done (void) attribute_hidden;
 

Modified: trunk/libc/nptl/pthread_mutex_lock.c
==============================================================================
--- trunk/libc/nptl/pthread_mutex_lock.c (original)
+++ trunk/libc/nptl/pthread_mutex_lock.c Thu Feb  5 06:29:56 2009
@@ -121,7 +121,6 @@
       goto simple;
     }
 
- out:
   /* Record the ownership.  */
   mutex->__data.__owner = id;
 #ifndef NO_INCR

Modified: trunk/libc/nptl/sysdeps/pthread/unwind-forcedunwind.c
==============================================================================
--- trunk/libc/nptl/sysdeps/pthread/unwind-forcedunwind.c (original)
+++ trunk/libc/nptl/sysdeps/pthread/unwind-forcedunwind.c Thu Feb  5 06:29:56 2009
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2005, 2006, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jakub@xxxxxxxxxx>.
 
@@ -21,7 +21,9 @@
 #include <stdio.h>
 #include <unwind.h>
 #include <pthreadP.h>
+#include <sysdep.h>
 
+static void *libgcc_s_handle;
 static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
 static _Unwind_Reason_Code (*libgcc_s_personality)
   (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
@@ -34,10 +36,13 @@
 __attribute_noinline__
 pthread_cancel_init (void)
 {
-  void *resume, *personality, *forcedunwind, *getcfa;
+  void *resume;
+  void *personality;
+  void *forcedunwind;
+  void *getcfa;
   void *handle;
 
-  if (__builtin_expect (libgcc_s_getcfa != NULL, 1))
+  if (__builtin_expect (libgcc_s_handle != NULL, 1))
     {
       /* Force gcc to reload all values.  */
       asm volatile ("" ::: "memory");
@@ -58,23 +63,42 @@
       )
     __libc_fatal ("libgcc_s.so.1 must be installed for pthread_cancel to work\n");
 
+  PTR_MANGLE (resume);
   libgcc_s_resume = resume;
+  PTR_MANGLE (personality);
   libgcc_s_personality = personality;
+  PTR_MANGLE (forcedunwind);
   libgcc_s_forcedunwind = forcedunwind;
-  /* Make sure libgcc_s_getcfa is written last.  Otherwise,
+  PTR_MANGLE (getcfa);
+  libgcc_s_getcfa = getcfa;
+  /* Make sure libgcc_s_handle is written last.  Otherwise,
      pthread_cancel_init might return early even when the pointer the
      caller is interested in is not initialized yet.  */
   atomic_write_barrier ();
-  libgcc_s_getcfa = getcfa;
+  libgcc_s_handle = handle;
+}
+
+void
+__libc_freeres_fn_section
+__unwind_freeres (void)
+{
+  void *handle = libgcc_s_handle;
+  if (handle != NULL)
+    {
+      libgcc_s_handle = NULL;
+      __libc_dlclose (handle);
+    }
 }
 
 void
 _Unwind_Resume (struct _Unwind_Exception *exc)
 {
-  if (__builtin_expect (libgcc_s_resume == NULL, 0))
+  if (__builtin_expect (libgcc_s_handle == NULL, 0))
     pthread_cancel_init ();
 
-  libgcc_s_resume (exc);
+  void (*resume) (struct _Unwind_Exception *exc) = libgcc_s_resume;
+  PTR_DEMANGLE (resume);
+  resume (exc);
 }
 
 _Unwind_Reason_Code
@@ -83,28 +107,37 @@
                       struct _Unwind_Exception *ue_header,
                       struct _Unwind_Context *context)
 {
-  if (__builtin_expect (libgcc_s_personality == NULL, 0))
+  if (__builtin_expect (libgcc_s_handle == NULL, 0))
     pthread_cancel_init ();
 
-  return libgcc_s_personality (version, actions, exception_class,
-			       ue_header, context);
+  _Unwind_Reason_Code (*personality)
+    (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
+     struct _Unwind_Context *) = libgcc_s_personality;
+  PTR_DEMANGLE (personality);
+  return personality (version, actions, exception_class, ue_header, context);
 }
 
 _Unwind_Reason_Code
 _Unwind_ForcedUnwind (struct _Unwind_Exception *exc, _Unwind_Stop_Fn stop,
 		      void *stop_argument)
 {
-  if (__builtin_expect (libgcc_s_forcedunwind == NULL, 0))
+  if (__builtin_expect (libgcc_s_handle == NULL, 0))
     pthread_cancel_init ();
 
-  return libgcc_s_forcedunwind (exc, stop, stop_argument);
+  _Unwind_Reason_Code (*forcedunwind)
+    (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *)
+    = libgcc_s_forcedunwind;
+  PTR_DEMANGLE (forcedunwind);
+  return forcedunwind (exc, stop, stop_argument);
 }
 
 _Unwind_Word
 _Unwind_GetCFA (struct _Unwind_Context *context)
 {
-  if (__builtin_expect (libgcc_s_getcfa == NULL, 0))
+  if (__builtin_expect (libgcc_s_handle == NULL, 0))
     pthread_cancel_init ();
 
-  return libgcc_s_getcfa (context);
+  _Unwind_Word (*getcfa) (struct _Unwind_Context *) = libgcc_s_getcfa;
+  PTR_DEMANGLE (getcfa);
+  return getcfa (context);
 }

Modified: trunk/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
==============================================================================
--- trunk/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S (original)
+++ trunk/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S Thu Feb  5 06:29:56 2009
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2005, 2007, 2008
+/* Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -36,6 +36,13 @@
 	mov	#(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), tmp; \
 	extu.b	tmp, tmp; \
 	xor	tmp, reg
+# define LOAD_FUTEX_WAIT_ABS(reg,tmp,tmp2) \
+	mov	#(FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG), tmp; \
+	extu.b	tmp, tmp; \
+	mov	#(FUTEX_CLOCK_REALTIME >> 8), tmp2; \
+	swap.b	tmp2, tmp2; \
+	or	tmp2, tmp; \
+	xor	tmp, reg
 # define LOAD_FUTEX_WAKE(reg,tmp,tmp2) \
 	mov	#(FUTEX_WAKE | FUTEX_PRIVATE_FLAG), tmp; \
 	extu.b	tmp, tmp; \
@@ -95,6 +102,22 @@
 	xor	tmp, reg	; \
 	and	tmp2, reg	; \
 	mov	#FUTEX_WAIT, tmp ; \
+	or	tmp, reg
+#  define LOAD_FUTEX_WAIT_ABS(reg,tmp,tmp2) \
+	stc	gbr, tmp	; \
+	mov.w	99f, tmp2	; \
+	add	tmp2, tmp 	; \
+	mov.l	@tmp, tmp2	; \
+	bra	98f		; \
+	 mov	#FUTEX_PRIVATE_FLAG, tmp ; \
+99:	.word	PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \
+98:	extu.b	tmp, tmp	; \
+	xor	tmp, reg	; \
+	and	tmp2, reg	; \
+	mov	#FUTEX_WAIT_BITSET, tmp ; \
+	mov	#(FUTEX_CLOCK_REALTIME >> 8), tmp2; \
+	swap.b	tmp2, tmp2; \
+	or	tmp2, tmp; \
 	or	tmp, reg
 # endif
 # define LOAD_FUTEX_WAKE(reg,tmp,tmp2) \
@@ -193,12 +216,85 @@
 	cfi_endproc
 	.size	__lll_lock_wait,.-__lll_lock_wait
 
+	/*      r5  (r8): futex
+		r7 (r11): flags
+		r6  (r9): timeout
+		r4 (r10): futex value
+	*/
 	.globl	__lll_timedlock_wait
 	.type	__lll_timedlock_wait,@function
 	.hidden	__lll_timedlock_wait
 	.align	5
 	cfi_startproc
 __lll_timedlock_wait:
+	mov.l	r12, @-r15
+	cfi_adjust_cfa_offset(4)
+	cfi_rel_offset (r12, 0)
+
+# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+	mov.l	.Lhave, r1
+#  ifdef PIC
+	mova	.Lgot, r0
+	mov.l	.Lgot, r12
+	add	r0, r12
+	add	r12, r1
+#  endif
+	mov.l	@r1, r0
+	tst	r0, r0
+	bt	.Lreltmo
+# endif
+
+	mov	r4, r2
+	mov	r5, r4
+	mov	r7, r5
+	mov	r6, r7
+	LOAD_FUTEX_WAIT_ABS (r5, r0, r1)
+
+	mov	#2, r6
+	cmp/eq	r6, r2
+	bf/s	2f
+	 mov	r2, r6
+
+1:
+	mov	#2, r6
+	mov	#-1, r1
+	mov	#SYS_futex, r3
+	extu.b	r3, r3
+	trapa	#0x16
+	SYSCALL_INST_PAD
+	mov	r0, r6
+
+2:
+	XCHG	(r2, @r4, r3)	/* NB:   lock is implied */
+
+	tst	r3, r3
+	bt/s	3f
+	 mov	r6, r0
+
+	cmp/eq	#-ETIMEDOUT, r0
+	bt	4f
+	cmp/eq	#-EINVAL, r0
+	bf	1b
+4:
+	neg	r0, r3
+3:
+	mov	r3, r0
+	rts
+	 mov.l	@r15+, r12
+
+	.align	2
+# ifdef PIC
+.Lgot:
+	.long	_GLOBAL_OFFSET_TABLE_
+.Lhave:
+	.long	__have_futex_clock_realtime@GOTOFF
+# else
+.Lhave:
+	.long	__have_futex_clock_realtime
+# endif
+
+# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+.Lreltmo:
 	/* Check for a valid timeout value.  */
 	mov.l	@(4,r6), r1
 	mov.l	.L1g, r0
@@ -290,12 +386,15 @@
 	mov.l	@r15+, r8
 	mov.l	@r15+, r9
 	mov.l	@r15+, r10
-	rts
-	 mov.l	@r15+, r11
+	mov.l	@r15+, r11
+	rts
+	 mov.l	@r15+, r12
 
 3:
+	mov.l	@r15+, r12
 	rts
 	 mov	#EINVAL, r0
+# endif
 	cfi_endproc
 
 .L1k:

Modified: trunk/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
==============================================================================
--- trunk/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h (original)
+++ trunk/libc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h Thu Feb  5 06:29:56 2009
@@ -1,4 +1,5 @@
-/* Copyright (C) 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2006, 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
@@ -37,6 +38,9 @@
 #define FUTEX_WAIT_BITSET	9
 #define FUTEX_WAKE_BITSET	10
 #define FUTEX_PRIVATE_FLAG	128
+#define FUTEX_CLOCK_REALTIME	256
+
+#define FUTEX_BITSET_MATCH_ANY	0xffffffff
 
 #define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE	((4 << 24) | 1)
 

Modified: trunk/libc/nscd/connections.c
==============================================================================
--- trunk/libc/nscd/connections.c (original)
+++ trunk/libc/nscd/connections.c Thu Feb  5 06:29:56 2009
@@ -1,5 +1,5 @@
 /* Inner loops of cache daemon.
-   Copyright (C) 1998-2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 1998-2007, 2008, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1998.
 
@@ -647,6 +647,9 @@
 		if (fd != -1)
 		  close (fd);
 	      }
+	    else if (errno == EACCES)
+	      error (EXIT_FAILURE, 0, _("cannot access '%s'"),
+		     dbs[cnt].db_filename);
 	  }
 
 	if (dbs[cnt].head == NULL)

Modified: trunk/libc/nscd/mem.c
==============================================================================
--- trunk/libc/nscd/mem.c (original)
+++ trunk/libc/nscd/mem.c Thu Feb  5 06:29:56 2009
@@ -1,5 +1,5 @@
 /* Cache memory handling.
-   Copyright (C) 2004, 2005, 2006, 2008 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2004.
 
@@ -134,12 +134,11 @@
     stack_used = 0;
   size_t nmark = (db->head->first_free / BLOCK_ALIGN + BITS - 1) / BITS;
   size_t memory_needed = nmark * sizeof (BITMAP_T);
-  if (stack_used + memory_needed <= MAX_STACK_USE)
-    {
-      mark = (BITMAP_T *) alloca (memory_needed);
+  if (__builtin_expect (stack_used + memory_needed <= MAX_STACK_USE, 1))
+    {
+      mark = (BITMAP_T *) alloca_account (memory_needed, stack_used);
       mark_use_malloc = false;
       memset (mark, '\0', memory_needed);
-      stack_used += memory_needed;
     }
   else
     {
@@ -153,19 +152,17 @@
   struct hashentry **he;
   struct hashentry **he_data;
   bool he_use_malloc;
-  if (stack_used + memory_needed <= MAX_STACK_USE)
-    {
-      he = alloca (db->head->nentries * sizeof (struct hashentry *));
-      he_data = alloca (db->head->nentries * sizeof (struct hashentry *));
+  if (__builtin_expect (stack_used + memory_needed <= MAX_STACK_USE, 1))
+    {
+      he = alloca_account (memory_needed, stack_used);
       he_use_malloc = false;
-      stack_used += memory_needed;
     }
   else
     {
       he = xmalloc (memory_needed);
-      he_data = &he[db->head->nentries * sizeof (struct hashentry *)];
       he_use_malloc = true;
     }
+  he_data = &he[db->head->nentries];
 
   size_t cnt = 0;
   for (size_t idx = 0; idx < db->head->module; ++idx)
@@ -373,11 +370,9 @@
       ref_t disp = off_alloc - off_free;
 
       struct moveinfo *new_move;
-      if (stack_used + sizeof (*new_move) <= MAX_STACK_USE)
-	{
-	  new_move = alloca (sizeof (*new_move));
-	  stack_used += sizeof (*new_move);
-	}
+      if (__builtin_expect (stack_used + sizeof (*new_move) <= MAX_STACK_USE,
+			    1))
+	new_move = alloca_account (sizeof (*new_move), stack_used);
       else
 	new_move = obstack_alloc (&ob, sizeof (*new_move));
       new_move->from = db->data + off_alloc;

Modified: trunk/libc/nss/getent.c
==============================================================================
--- trunk/libc/nss/getent.c (original)
+++ trunk/libc/nss/getent.c Thu Feb  5 06:29:56 2009
@@ -454,8 +454,6 @@
       putchar_unlocked (' ');
       fputs_unlocked (net->n_aliases[i], stdout);
       ++i;
-      if (net->n_aliases[i] != NULL)
-	putchar_unlocked (',');
     }
   putchar_unlocked ('\n');
 }

Modified: trunk/libc/po/ru.po
==============================================================================
--- trunk/libc/po/ru.po (original)
+++ trunk/libc/po/ru.po Thu Feb  5 06:29:56 2009
@@ -1,150 +1,155 @@
-# ÐÅÒÅ×ÏÄ ÓÏÏÂÝÅÎÉÊ GNU libc
+# Translation of libc messages to Russian
 # Copyright (C) 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the glibc package.
+#
 # Oleg Tihonov <ost@xxxxxxxxxx>, 2005, 2007.
+# Dimitriy Ryazantcev <DJm00n@xxxxxxx>, 2009.
+# Pavel Maryanov <acid_jack@xxxxxxx>, 2009.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: libc 2.5\n"
-"POT-Creation-Date: 2006-09-29 11:38-0700\n"
-"PO-Revision-Date: 2007-02-13 13:52+0300\n"
-"Last-Translator: Oleg Tihonov <ost@xxxxxxxxxx>\n"
-"Language-Team: Russian <ru@xxxxxx>\n"
+"Project-Id-Version: libc 2.7\n"
+"POT-Creation-Date: 2007-10-15 21:18-0700\n"
+"PO-Revision-Date: 2009-02-04 21:52+0200\n"
+"Last-Translator: Pavel Maryanov <acid_jack@xxxxxxx>\n"
+"Language-Team: Russian <gnu@xxxxx>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=koi8-r\n"
+"Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-
-#: argp/argp-help.c:227
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: argp/argp-help.c:228
 #, c-format
 msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
-msgstr "%.*s: ÐÁÒÁÍÅÔÒ ARGP_HELP_FMT ÔÒÅÂÕÅÔ ÚÎÁÞÅÎÉÅ"
-
-#: argp/argp-help.c:237
+msgstr "%.*s: параметр ARGP_HELP_FMT требует значение"
+
+#: argp/argp-help.c:238
 #, c-format
 msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
-msgstr "%.*s: ÎÅÉÚ×ÅÓÔÎÙÊ ÐÁÒÁÍÅÔÒ ARGP_HELP_FMT"
-
-#: argp/argp-help.c:250
+msgstr "%.*s: неизвестный параметр ARGP_HELP_FMT"
+
+#: argp/argp-help.c:251
 #, c-format
 msgid "Garbage in ARGP_HELP_FMT: %s"
-msgstr "íÕÓÏÒ × ARGP_HELP_FMT: %s"
-
-#: argp/argp-help.c:1214
+msgstr "Мусор в ARGP_HELP_FMT: %s"
+
+#: argp/argp-help.c:1215
 msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
-msgstr "ïÂÑÚÁÔÅÌØÎÙÅ ÉÌÉ ÎÅÏÂÑÚÁÔÅÌØÎÙÅ ÁÒÇÕÍÅÎÔÙ ÄÌÑ ÄÌÉÎÎÙÈ ËÌÀÞÅÊ ÔÁËÖÅ Ñ×ÌÑÀÔÓÑ ÏÂÑÚÁÔÅÌØÎÙÍÉ ÉÌÉ ÎÅÏÂÑÚÁÔÅÌØÎÙÍÉ ÄÌÑ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ËÏÒÏÔËÉÈ ËÌÀÞÅÊ."
-
-#: argp/argp-help.c:1600
+msgstr "Обязательные или необязательные аргументы для длинных ключей также являются обязательными или необязательными для соответствующих коротких ключей."
+
+#: argp/argp-help.c:1601
 msgid "Usage:"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ:"
-
-#: argp/argp-help.c:1604
+msgstr "Использование:"
+
+#: argp/argp-help.c:1605
 msgid "  or: "
-msgstr "  ÉÌÉ: "
-
-#: argp/argp-help.c:1616
+msgstr "  или: "
+
+#: argp/argp-help.c:1617
 msgid " [OPTION...]"
-msgstr " [ëìàþ...]"
-
-#: argp/argp-help.c:1643
+msgstr " [КЛЮЧ...]"
+
+#: argp/argp-help.c:1644
 #, c-format
 msgid "Try `%s --help' or `%s --usage' for more information.\n"
-msgstr "ðÏÐÒÏÂÕÊÔÅ `%s --help' ÉÌÉ `%s --usage' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ.\n"
-
-#: argp/argp-help.c:1671
+msgstr "Попробуйте «%s --help» или «%s --usage» для получения более подробного описания.\n"
+
+#: argp/argp-help.c:1672
 #, c-format
 msgid "Report bugs to %s.\n"
-msgstr "óÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ ÏÔÐÒÁ×ÌÑÊÔÅ ÐÏ ÁÄÒÅÓÕ %s.\n"
+msgstr "Сообщения об ошибках отправляйте по адресу %s.\n"
 
 #: argp/argp-parse.c:102
 msgid "Give this help list"
-msgstr "÷ÙÄÁÅÔ ÜÔÏÔ ÓÐÒÁ×ÏÞÎÙÊ ÓÐÉÓÏË"
+msgstr "Выдает этот справочный список"
 
 #: argp/argp-parse.c:103
 msgid "Give a short usage message"
-msgstr "÷ÙÄÁÅÔ ËÒÁÔËÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÓÐÏÌØÚÏ×ÁÎÉÉ"
+msgstr "Выдает краткую информацию об использовании"
 
 #: argp/argp-parse.c:104
 msgid "Set the program name"
-msgstr "õÓÔÁÎÁ×ÌÉ×ÁÅÔ ÉÍÑ ÐÒÏÇÒÁÍÍÙ"
+msgstr "Устанавливает имя программы"
 
 #: argp/argp-parse.c:106
 msgid "Hang for SECS seconds (default 3600)"
-msgstr "÷ÉÓÉÔ ÕËÁÚÁÎÎÏÅ ÞÉÓÌÏ ÓÅËÕÎÄ (ÐÏ ÕÍÏÌÞÁÎÉÀ 3600)"
+msgstr "Висит указанное число секунд (по умолчанию 3600)"
 
 #: argp/argp-parse.c:167
 msgid "Print program version"
-msgstr "ðÅÞÁÔÁÅÔ ×ÅÒÓÉÀ ÐÒÏÇÒÁÍÍÙ"
+msgstr "Печатает версию программы"
 
 #: argp/argp-parse.c:183
 msgid "(PROGRAM ERROR) No version known!?"
-msgstr "(ïûéâëá ðòïçòáííù) ÷ÅÒÓÉÑ ÎÅÉÚ×ÅÓÔÎÁ!?"
+msgstr "(ОШИБКА ПРОГРАММЫ) Версия неизвестна!?"
 
 #: argp/argp-parse.c:623
 #, c-format
 msgid "%s: Too many arguments\n"
-msgstr "%s: óÌÉÛËÏÍ ÍÎÏÇÏ ÁÒÇÕÍÅÎÔÏ×\n"
+msgstr "%s: Слишком много аргументов\n"
 
 #: argp/argp-parse.c:766
 msgid "(PROGRAM ERROR) Option should have been recognized!?"
-msgstr "(ïûéâëá ðòïçòáííù) ëÌÀÞ ÄÏÌÖÅÎ ÂÙÔØ ÒÁÓÐÏÚÎÁÎ!?"
+msgstr "(ОШИБКА ПРОГРАММЫ) Ключ должен быть распознан!?"
 
 #: assert/assert-perr.c:57
 #, c-format
 msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
-msgstr "%s%s%s:%u: %s%sîÅÏÖÉÄÁÎÎÁÑ ÏÛÉÂËÁ: %s.\n"
+msgstr "%s%s%s:%u: %s%sНеожиданная ошибка: %s.\n"
 
 #: assert/assert.c:57
 #, c-format
 msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
-msgstr "%s%s%s:%u: %s%sðÒÏ×ÅÒÏÞÎÏÅ ÕÔ×ÅÒÖÄÅÎÉÅ `%s' ÎÅ ×ÙÐÏÌÎÅÎÏ.\n"
-
-#: catgets/gencat.c:109 catgets/gencat.c:113 nscd/nscd.c:96 nss/makedb.c:61
+msgstr "%s%s%s:%u: %s%sПроверочное утверждение «%s» не выполнено.\n"
+
+#: catgets/gencat.c:110 catgets/gencat.c:114 nscd/nscd.c:97 nss/makedb.c:61
 msgid "NAME"
-msgstr "æáêì"
-
-#: catgets/gencat.c:110
+msgstr "ФАЙЛ"
+
+#: catgets/gencat.c:111
 msgid "Create C header file NAME containing symbol definitions"
-msgstr "óÏÚÄÁÅÔ ÚÁÇÏÌÏ×ÏÞÎÙÊ æáêì ÎÁ óÉ, ÓÏÄÅÒÖÁÝÉÊ ÏÐÒÅÄÅÌÅÎÉÑ ÓÉÍ×ÏÌÏ×."
-
-#: catgets/gencat.c:112
+msgstr "Создает заголовочный ФАЙЛ на Си, содержащий определения символов."
+
+#: catgets/gencat.c:113
 msgid "Do not use existing catalog, force new output file"
-msgstr "îÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÕÝÅÓÔ×ÕÀÝÉÊ ËÁÔÁÌÏÇ, ÐÒÉÎÕÄÉÔÅÌØÎÏ ÓÏÚÄÁÔØ ÎÏ×ÙÊ ×ÙÈÏÄÎÏÊ ÆÁÊÌ"
-
-#: catgets/gencat.c:113 nss/makedb.c:61
+msgstr "Не использовать существующий каталог, принудительно создать новый выходной файл"
+
+#: catgets/gencat.c:114 nss/makedb.c:61
 msgid "Write output to file NAME"
-msgstr "úÁÐÉÓÁÔØ ×Ù×ÏÄ × æáêì"
-
-#: catgets/gencat.c:118
+msgstr "Записать вывод в ФАЙЛ"
+
+#: catgets/gencat.c:119
 msgid ""
-"Generate message catalog.If INPUT-FILE is -, input is read from standard input.  If OUTPUT-FILE\n"
+"Generate message catalog.\vIf INPUT-FILE is -, input is read from standard input.  If OUTPUT-FILE\n"
 "is -, output is written to standard output.\n"
 msgstr ""
-"çÅÎÅÒÉÒÕÅÔ ËÁÔÁÌÏÇ ÓÏÏÂÝÅÎÉÊ.åÓÌÉ ÷èïäîïê-æáêì ÚÁÄÁÎ ËÁË -, ÞÉÔÁÅÔ ÓÔÁÎÄÁÒÔÎÙÊ ××ÏÄ.  åÓÌÉ\n"
-"÷ùèïäîïê-æáêì ÚÁÄÁÎ ËÁË -, ÒÅÚÕÌØÔÁÔ ÐÅÞÁÔÁÅÔÓÑ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ.\n"
-
-#: catgets/gencat.c:123
+"Генерирует каталог сообщений.\vЕсли ВХОДНОЙ-ФАЙЛ задан как -, читает стандартный ввод.  Если\n"
+"ВЫХОДНОЙ-ФАЙЛ задан как -, результат печатается на стандартный вывод.\n"
+
+#: catgets/gencat.c:124
 msgid ""
 "-o OUTPUT-FILE [INPUT-FILE]...\n"
 "[OUTPUT-FILE [INPUT-FILE]...]"
 msgstr ""
-"-o ÷ùèïäîïê-æáêì [÷èïäîïê-æáêì]...\n"
-"[÷ùèïäîïê-æáêì [÷èïäîïê-æáêì]...]"
-
-#: catgets/gencat.c:231 debug/pcprofiledump.c:199 iconv/iconv_prog.c:410
-#: iconv/iconvconfig.c:379 locale/programs/localedef.c:370
-#: login/programs/pt_chown.c:88 malloc/memusagestat.c:525 nss/makedb.c:231
+"-o ВЫХОДНОЙ-ФАЙЛ [ВХОДНОЙ-ФАЙЛ]...\n"
+"[ВЫХОДНОЙ-ФАЙЛ [ВХОДНОЙ-ФАЙЛ]...]"
+
+#: catgets/gencat.c:232 debug/pcprofiledump.c:204 iconv/iconv_prog.c:411
+#: iconv/iconvconfig.c:380 locale/programs/localedef.c:371
+#: login/programs/pt_chown.c:88 malloc/memusagestat.c:526 nss/makedb.c:231
 msgid ""
 "For bug reporting instructions, please see:\n"
 "<http://www.gnu.org/software/libc/bugs.html>.\n"
 msgstr ""
-"éÎÓÔÒÕËÃÉÉ ÐÏ ÓÏÏÂÝÅÎÉÀ Ï ÏÛÉÂËÁÈ ÓÍÏÔÒÉÔÅ ÎÁ\n"
+"Инструкции по сообщению об ошибках смотрите на\n"
 "<http://www.gnu.org/software/libc/bugs.html>.\n"
 
-#: catgets/gencat.c:245 debug/xtrace.sh:64 elf/ldconfig.c:285
-#: elf/ldd.bash.in:39 elf/sprof.c:355 iconv/iconv_prog.c:425
-#: iconv/iconvconfig.c:394 locale/programs/locale.c:274
-#: locale/programs/localedef.c:386 login/programs/pt_chown.c:59
-#: malloc/memusage.sh:71 nscd/nscd.c:401 nss/getent.c:83 nss/makedb.c:245
-#: posix/getconf.c:1007
+#: 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:426
+#: iconv/iconvconfig.c:395 locale/programs/locale.c:275
+#: 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
 #, c-format
 msgid ""
 "Copyright (C) %s Free Software Foundation, Inc.\n"
@@ -152,140 +157,142 @@
 "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
 msgstr ""
 "Copyright (C) %s Free Software Foundation, Inc.\n"
-"üÔÏ Ó×ÏÂÏÄÎÁÑ ÐÒÏÇÒÁÍÍÁ; ÐÏÄÒÏÂÎÏÓÔÉ Ï ÕÓÌÏ×ÉÑÈ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ\n"
-"ÓÍÏÔÒÉÔÅ × ÉÓÈÏÄÎÏÍ ÔÅËÓÔÅ.  íÙ îå ÐÒÅÄÏÓÔÁ×ÌÑÅÍ ÇÁÒÁÎÔÉÊ; ÄÁÖÅ ÇÁÒÁÎÔÉÊ\n"
-"ëïííåòþåóëïê ðòéçïäîïóôé ÉÌÉ ðòéçïäîïóôé äìñ ëáëïê-ìéâï ãåìé.\n"
-
-#: catgets/gencat.c:250 debug/xtrace.sh:68 elf/ldconfig.c:290 elf/sprof.c:361
-#: iconv/iconv_prog.c:430 iconv/iconvconfig.c:399 locale/programs/locale.c:279
-#: locale/programs/localedef.c:391 malloc/memusage.sh:75 nscd/nscd.c:406
-#: nss/getent.c:88 nss/makedb.c:250 posix/getconf.c:1012
+"Это свободная программа; подробности об условиях распространения\n"
+"смотрите в исходном тексте.  Мы НЕ предоставляем гарантий; даже гарантий\n"
+"КОММЕРЧЕСКОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ КАКОЙ-ЛИБО ЦЕЛИ.\n"
+
+#: catgets/gencat.c:251 debug/xtrace.sh:68 elf/ldconfig.c:301 elf/sprof.c:361
+#: iconv/iconv_prog.c:431 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
 #, c-format
 msgid "Written by %s.\n"
-msgstr "á×ÔÏÒ ÐÒÏÇÒÁÍÍÙ -- %s.\n"
-
-#: catgets/gencat.c:281
+msgstr "Автор программы -- %s.\n"
+
+#: catgets/gencat.c:282
 msgid "*standard input*"
-msgstr "*ÓÔÁÎÄÁÒÔÎÙÊ ××ÏÄ*"
-
-#: catgets/gencat.c:287 iconv/iconv_charmap.c:157 iconv/iconv_prog.c:297
+msgstr "*стандартный ввод*"
+
+#: catgets/gencat.c:288 iconv/iconv_charmap.c:158 iconv/iconv_prog.c:298
 #: nss/makedb.c:170
 #, c-format
 msgid "cannot open input file `%s'"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÈÏÄÎÏÊ ÆÁÊÌ `%s'"
-
-#: catgets/gencat.c:416 catgets/gencat.c:493
+msgstr "невозможно открыть входной файл «%s»"
+
+#: catgets/gencat.c:417 catgets/gencat.c:494
 msgid "illegal set number"
-msgstr "ÎÅ×ÅÒÎÙÊ ÎÏÍÅÒ ÍÎÏÖÅÓÔ×Á"
-
-#: catgets/gencat.c:443
+msgstr "неверный номер множества"
+
+#: catgets/gencat.c:444
 msgid "duplicate set definition"
-msgstr "ÐÏ×ÔÏÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÍÎÏÖÅÓÔ×Á"
-
-#: catgets/gencat.c:445 catgets/gencat.c:622 catgets/gencat.c:676
+msgstr "повторное определение множества"
+
+#: catgets/gencat.c:446 catgets/gencat.c:623 catgets/gencat.c:677
 msgid "this is the first definition"
-msgstr "ÜÔÏ ÐÅÒ×ÏÅ ÏÐÒÅÄÅÌÅÎÉÅ"
-
-#: catgets/gencat.c:521
+msgstr "это первое определение"
+
+#: catgets/gencat.c:522
 #, c-format
 msgid "unknown set `%s'"
-msgstr "ÎÅÉÚ×ÅÓÔÎÏÅ ÍÎÏÖÅÓÔ×Ï `%s'"
-
-#: catgets/gencat.c:562
+msgstr "неизвестное множество «%s»"
+
+#: catgets/gencat.c:563
 msgid "invalid quote character"
-msgstr "ÎÅ×ÅÒÎÙÊ ÜËÒÁÎÉÒÕÀÝÉÊ ÚÎÁË"
-
-#: catgets/gencat.c:575
+msgstr "неверный экранирующий знак"
+
+#: catgets/gencat.c:576
 #, c-format
 msgid "unknown directive `%s': line ignored"
-msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ÄÉÒÅËÔÉ×Á `%s': ÓÔÒÏËÁ ÉÇÎÏÒÉÒÏ×ÁÎÁ"
-
-#: catgets/gencat.c:620
+msgstr "неизвестная директива «%s»: строка игнорирована"
+
+#: catgets/gencat.c:621
 msgid "duplicated message number"
-msgstr "ÐÏ×ÔÏÒÎÙÊ ÎÏÍÅÒ ÓÏÏÂÝÅÎÉÑ"
-
-#: catgets/gencat.c:673
+msgstr "повторный номер сообщения"
+
+#: catgets/gencat.c:674
 msgid "duplicated message identifier"
-msgstr "ÐÏ×ÔÏÒÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÓÏÏÂÝÅÎÉÑ"
-
-#: catgets/gencat.c:730
+msgstr "повторный идентификатор сообщения"
+
+#: catgets/gencat.c:731
 msgid "invalid character: message ignored"
-msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË: ÓÏÏÂÝÅÎÉÅ ÉÇÎÏÒÉÒÏ×ÁÎÏ"
-
-#: catgets/gencat.c:773
+msgstr "недопустимый знак: сообщение игнорировано"
+
+#: catgets/gencat.c:774
 msgid "invalid line"
-msgstr "ÎÅ×ÅÒÎÁÑ ÓÔÒÏËÁ"
-
-#: catgets/gencat.c:827
+msgstr "неверная строка"
+
+#: catgets/gencat.c:828
 msgid "malformed line ignored"
-msgstr "ÎÅÐÒÁ×ÉÌØÎÁÑ ÓÔÒÏËÁ ÉÇÎÏÒÉÒÏ×ÁÎÁ"
-
-#: catgets/gencat.c:991 catgets/gencat.c:1032 nss/makedb.c:183
+msgstr "неправильная строка игнорирована"
+
+#: catgets/gencat.c:992 catgets/gencat.c:1033 nss/makedb.c:183
 #, c-format
 msgid "cannot open output file `%s'"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ `%s'"
-
-#: catgets/gencat.c:1194 locale/programs/linereader.c:559
+msgstr "невозможно открыть выходной файл «%s»"
+
+#: catgets/gencat.c:1195 locale/programs/linereader.c:560
 msgid "invalid escape sequence"
-msgstr "ÎÅ×ÅÒÎÁÑ ÕÐÒÁ×ÌÑÀÝÁÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ"
-
-#: catgets/gencat.c:1216
+msgstr "неверная управляющая последовательность"
+
+#: catgets/gencat.c:1217
 msgid "unterminated message"
-msgstr "ÎÅÚÁ×ÅÒÛÅÎÎÏÅ ÓÏÏÂÝÅÎÉÅ"
-
-#: catgets/gencat.c:1240
+msgstr "незавершенное сообщение"
+
+#: catgets/gencat.c:1241
 #, c-format
 msgid "while opening old catalog file"
-msgstr "ÐÒÉ ÏÔËÒÙÔÉÉ ÓÔÁÒÏÇÏ ÆÁÊÌÁ ËÁÔÁÌÏÇÁ"
-
-#: catgets/gencat.c:1331
+msgstr "при открытии старого файла каталога"
+
+#: catgets/gencat.c:1332
 #, c-format
 msgid "conversion modules not available"
-msgstr "ÍÏÄÕÌÉ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÎÅÄÏÓÔÕÐÎÙ"
-
-#: catgets/gencat.c:1357
+msgstr "модули преобразования недоступны"
+
+#: catgets/gencat.c:1358
 #, c-format
 msgid "cannot determine escape character"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÚÎÁË ×ÙÈÏÄÁ"
-
-#: debug/pcprofiledump.c:52
+msgstr "невозможно определить знак выхода"
+
+#: debug/pcprofiledump.c:53
 msgid "Don't buffer output"
-msgstr "îÅ ÂÕÆÅÒÉÒÏ×ÁÔØ ×Ù×ÏÄ"
-
-#: debug/pcprofiledump.c:57
+msgstr "Не буферировать вывод"
+
+#: debug/pcprofiledump.c:58
 msgid "Dump information generated by PC profiling."
-msgstr "óÂÒÁÓÙ×ÁÅÔ ÉÎÆÏÒÍÁÃÉÀ, ÓÏÂÒÁÎÎÕÀ ÐÒÉ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÉ PC."
-
-#: debug/pcprofiledump.c:60
+msgstr "Сбрасывает информацию, собранную при профилировании PC."
+
+#: debug/pcprofiledump.c:61
 msgid "[FILE]"
-msgstr "[æáêì]"
-
-#: debug/pcprofiledump.c:100
+msgstr "[ФАЙЛ]"
+
+#: debug/pcprofiledump.c:104
 #, c-format
 msgid "cannot open input file"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÈÏÄÎÏÊ ÆÁÊÌ"
-
-#: debug/pcprofiledump.c:106
+msgstr "невозможно открыть входной файл"
+
+#: debug/pcprofiledump.c:111
 #, c-format
 msgid "cannot read header"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÞÉÔÁÔØ ÚÁÇÏÌÏ×ÏË"
-
-#: debug/pcprofiledump.c:170
+msgstr "невозможно считать заголовок"
+
+#: debug/pcprofiledump.c:175
 #, c-format
 msgid "invalid pointer size"
-msgstr "ÎÅ×ÅÒÎÙÊ ÒÁÚÍÅÒ ÕËÁÚÁÔÅÌÑ"
+msgstr "неверный размер указателя"
 
 #: debug/xtrace.sh:27 debug/xtrace.sh:45
 msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: xtrace [ëìàþ]... ðòïçòáííá [ëìàþ-ðòïçòáííù]...\\n"
+msgstr "Использование: xtrace [КЛЮЧ]... ПРОГРАММА [КЛЮЧ-ПРОГРАММЫ]...\\n"
 
 #: debug/xtrace.sh:33
-msgid "Try `xtrace --help' for more information.\\n"
-msgstr "ðÏÐÒÏÂÕÊÔÅ `xtrace --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ.\\n"
+#, fuzzy
+msgid "Try \\`xtrace --help' for more information.\\n"
+msgstr "Попробуйте «xtrace --help» для получения более подробного описания.\\n"
 
 #: debug/xtrace.sh:39
-msgid "xtrace: option `$1' requires an argument.\\n"
-msgstr "xtrace: ËÌÀÞ `%1' ÔÒÅÂÕÅÔ ÁÒÇÕÍÅÎÔ.\\n"
+#, fuzzy
+msgid "xtrace: option \\`$1' requires an argument.\\n"
+msgstr "xtrace: ключ «%1» требует аргумент.\\n"
 
 #: debug/xtrace.sh:46
 msgid ""
@@ -303,623 +310,609 @@
 "For bug reporting instructions, please see:\n"
 "<http://www.gnu.org/software/libc/bugs.html>.\\n"
 msgstr ""
-"ôÒÁÓÓÉÒÕÅÔ ×ÙÐÏÌÎÅÎÉÅ ÐÒÏÇÒÁÍÍÙ, ÐÅÞÁÔÁÑ ×ÙÐÏÌÎÑÀÝÕÀÓÑ × ÄÁÎÎÏÅ ×ÒÅÍÑ ÆÕÎËÃÉÀ.\n"
+"Трассирует выполнение программы, печатая выполняющуюся в данное время функцию.\n"
 "\n"
-"     --data=æáêì          îÅ ×ÙÐÏÌÎÑÔØ ÐÒÏÇÒÁÍÍÕ, ÐÒÏÓÔÏ ÎÁÐÅÞÁÔÁÔØ ÄÁÎÎÙÅ ÉÚ æáêìá.\n"
+"     --data=ФАЙЛ          Не выполнять программу, просто напечатать данные из ФАЙЛА.\n"
 "     \n"
-"   -?,--help              ðÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ\n"
-"      --usage             ðÏËÁÚÁÔØ ËÒÁÔËÏÅ ÓÏÏÂÝÅÎÉÅ Ï ÉÓÐÏÌØÚÏ×ÁÎÉÉ\n"
-"   -V,--version           ðÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ\n"
+"   -?,--help              Показать эту справку и выйти\n"
+"      --usage             Показать краткое сообщение об использовании\n"
+"   -V,--version           Показать информацию о версии и выйти\n"
 "\n"
-"áÒÇÕÍÅÎÔÙ, ÏÂÑÚÁÔÅÌØÎÙÅ ÄÌÑ ÄÌÉÎÎÙÈ ËÌÀÞÅÊ, ÏÂÑÚÁÔÅÌØÎÙ É ÄÌÑ\n"
-"ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ËÏÒÏÔËÉÈ.\n"
+"Аргументы, обязательные для длинных ключей, обязательны и для\n"
+"соответствующих коротких.\n"
 "\n"
-"éÎÓÔÒÕËÃÉÉ ÐÏ ÓÏÏÂÝÅÎÉÀ Ï ÏÛÉÂËÁÈ ÓÍÏÔÒÉÔÅ ÎÁ\n"
+"Инструкции по сообщению об ошибках смотрите на\n"
 "<http://www.gnu.org/software/libc/bugs.html>.\\n"
 
 #: debug/xtrace.sh:125
-msgid "xtrace: unrecognized option `$1'\\n"
-msgstr "xtrace: ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ËÌÀÞ `$1'\\n"
+#, fuzzy
+msgid "xtrace: unrecognized option \\`$1'\\n"
+msgstr "xtrace: нераспознанный ключ «$1»\\n"
 
 #: debug/xtrace.sh:138
 msgid "No program name given\\n"
-msgstr "îÅ ÚÁÄÁÎÏ ÉÍÑ ÐÒÏÇÒÁÍÍÙ\\n"
+msgstr "Не задано имя программы\\n"
 
 #: debug/xtrace.sh:146
-#, sh-format
-msgid "executable `$program' not found\\n"
-msgstr "ÉÓÐÏÌÎÑÅÍÙÊ ÆÁÊÌ `$program' ÎÅ ÎÁÊÄÅÎ\\n"
+#, fuzzy, sh-format
+msgid "executable \\`$program' not found\\n"
+msgstr "исполняемый файл «$program» не найден\\n"
 
 #: debug/xtrace.sh:150
-#, sh-format
-msgid "`$program' is no executable\\n"
-msgstr "`$program' ÎÅ Ñ×ÌÑÅÔÓÑ ÉÓÐÏÌÎÑÅÍÙÍ ÆÁÊÌÏÍ\\n"
-
-#: dlfcn/dlinfo.c:67
+#, fuzzy, sh-format
+msgid "\\`$program' is no executable\\n"
+msgstr "«$program» не является исполняемым файлом\\n"
+
+#: dlfcn/dlinfo.c:64
 msgid "RTLD_SELF used in code not dynamically loaded"
-msgstr "RTLD_SELF ÉÓÐÏÌØÚÏ×ÁÎÏ × ÎÅ ÄÉÎÁÍÉÞÅÓËÉ ÚÁÇÒÕÖÅÎÎÏÍ ËÏÄÅ"
-
-#: dlfcn/dlinfo.c:76
+msgstr "RTLD_SELF использовано в не динамически загруженном коде"
+
+#: dlfcn/dlinfo.c:73
 msgid "unsupported dlinfo request"
-msgstr "ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ÚÁÐÒÏÓ dlinfo"
+msgstr "неподдерживаемый запрос dlinfo"
 
 #: dlfcn/dlmopen.c:64
 msgid "invalid namespace"
-msgstr "ÎÅ×ÅÒÎÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÉÍÅÎ"
+msgstr "неверное пространство имен"
 
 #: dlfcn/dlmopen.c:69
 msgid "invalid mode"
-msgstr "ÎÅ×ÅÒÎÙÊ ÒÅÖÉÍ"
+msgstr "неверный режим"
 
 #: dlfcn/dlopen.c:64
 msgid "invalid mode parameter"
-msgstr "ÎÅ×ÅÒÎÙÊ ÐÁÒÁÍÅÔÒ ÒÅÖÉÍÁ"
-
-#: elf/cache.c:67
+msgstr "неверный параметр режима"
+
+#: elf/cache.c:69
 msgid "unknown"
-msgstr "ÎÅÉÚ×ÅÓÔÎÏ"
-
-#: elf/cache.c:110
+msgstr "неизвестно"
+
+#: elf/cache.c:112
 msgid "Unknown OS"
-msgstr "îÅÉÚ×ÅÓÔÎÁÑ ïó"
-
-#: elf/cache.c:115
+msgstr "Неизвестная ОС"
+
+#: elf/cache.c:117
 #, c-format
 msgid ", OS ABI: %s %d.%d.%d"
-msgstr ", ABI ïó: %s %d.%d.%d"
-
-#: elf/cache.c:141 elf/ldconfig.c:1231
+msgstr ", ABI ОС: %s %d.%d.%d"
+
+#: elf/cache.c:134 elf/ldconfig.c:1270
 #, c-format
 msgid "Can't open cache file %s\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ËÜÛ-ÆÁÊÌ %s\n"
-
-#: elf/cache.c:153
+msgstr "Невозможно открыть кэш-файл %s\n"
+
+#: elf/cache.c:148
 #, c-format
 msgid "mmap of cache file failed.\n"
-msgstr "ÏÔÏÂÒÁÖÅÎÉÅ ËÜÛ-ÆÁÊÌÁ × ÐÁÍÑÔØ ÎÅ ÕÄÁÌÏÓØ.\n"
-
-#: elf/cache.c:157 elf/cache.c:167
+msgstr "отображение кэш-файла в память не удалось.\n"
+
+#: elf/cache.c:152 elf/cache.c:166
 #, c-format
 msgid "File is not a cache file.\n"
-msgstr "üÔÏ ÎÅ ËÜÛ-ÆÁÊÌ.\n"
-
-#: elf/cache.c:200 elf/cache.c:210
+msgstr "Это не кэш-файл.\n"
+
+#: elf/cache.c:199 elf/cache.c:209
 #, c-format
 msgid "%d libs found in cache `%s'\n"
-msgstr "%d ÂÉÂÌÉÏÔÅË ÎÁÊÄÅÎÏ × ËÜÛÅ `%s'\n"
-
-#: elf/cache.c:409
-#, c-format
-msgid "Can't remove old temporary cache file %s"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÓÔÁÒÙÊ ×ÒÅÍÅÎÎÙÊ ËÜÛ-ÆÁÊÌ %s"
-
-#: elf/cache.c:416
+msgstr "%d библиотек найдено в кэше «%s»\n"
+
+#: elf/cache.c:403
 #, c-format
 msgid "Can't create temporary cache file %s"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ×ÒÅÍÅÎÎÙÊ ËÜÛ-ÆÁÊÌ %s"
-
-#: elf/cache.c:424 elf/cache.c:434 elf/cache.c:438
+msgstr "Невозможно создать временный кэш-файл %s"
+
+#: elf/cache.c:411 elf/cache.c:421 elf/cache.c:425 elf/cache.c:430
 #, c-format
 msgid "Writing of cache data failed"
-msgstr "úÁÐÉÓØ ÄÁÎÎÙÈ ËÜÛÁ ÎÅÕÓÐÅÛÎÁ"
-
-#: elf/cache.c:442
-#, c-format
-msgid "Writing of cache data failed."
-msgstr "úÁÐÉÓØ ÄÁÎÎÙÈ ËÜÛÁ ÎÅÕÓÐÅÛÎÁ."
-
-#: elf/cache.c:449
+msgstr "Запись данных кэша неуспешна"
+
+#: elf/cache.c:435
 #, c-format
 msgid "Changing access rights of %s to %#o failed"
-msgstr "éÚÍÅÎÅÎÉÅ ÐÒÁ× ÄÏÓÔÕÐÁ ÄÌÑ %s ÎÁ %#o ÎÅÕÓÐÅÛÎÏ"
-
-#: elf/cache.c:454
+msgstr "Изменение прав доступа для %s на %#o неуспешно"
+
+#: elf/cache.c:440
 #, c-format
 msgid "Renaming of %s to %s failed"
-msgstr "ðÅÒÅÉÍÅÎÏ×ÁÎÉÅ %s × %s ÎÅÕÓÐÅÛÎÏ"
-
-#: elf/dl-close.c:116
+msgstr "Переименование %s в %s неуспешно"
+
+#: elf/dl-close.c:378 elf/dl-open.c:460
+msgid "cannot create scope list"
+msgstr "невозможно создать список областей"
+
+#: elf/dl-close.c:724
 msgid "shared object not open"
-msgstr "ÒÁÚÄÅÌÑÅÍÙÊ ÏÂßÅËÔ ÎÅ ÏÔËÒÙÔ"
-
-#: elf/dl-deps.c:112
+msgstr "разделяемый объект не открыт"
+
+#: elf/dl-deps.c:114
 msgid "DST not allowed in SUID/SGID programs"
-msgstr "DST ÎÅ ÄÏÐÕÓËÁÅÔÓÑ × ÐÒÏÇÒÁÍÍÁÈ Ó SUID/SGID"
-
-#: elf/dl-deps.c:125
-msgid "empty dynamics string token substitution"
-msgstr ""
-
-#: elf/dl-deps.c:131
+msgstr "DST не допускается в программах с SUID/SGID"
+
+#: elf/dl-deps.c:127 elf/dl-open.c:282
+msgid "empty dynamic string token substitution"
+msgstr "пустое вхождение динамического строкового токена"
+
+#: elf/dl-deps.c:133
 #, c-format
 msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n"
-msgstr ""
-
-#: elf/dl-deps.c:472
+msgstr "невозможно загрузить вспомогательное  «%s» из-за вхождения пустого динамического строкового токена\n"
+
+#: elf/dl-deps.c:474
 msgid "cannot allocate dependency list"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ×ÙÄÅÌÉÔØ ÐÁÍÑÔØ ÐÏÄ ÓÐÉÓÏË ÚÁ×ÉÓÉÍÏÓÔÅÊ"
-
-#: elf/dl-deps.c:505 elf/dl-deps.c:560
+msgstr "невозможно выделить память под список зависимостей"
+
+#: elf/dl-deps.c:510 elf/dl-deps.c:565
 msgid "cannot allocate symbol search list"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ×ÙÄÅÌÉÔØ ÐÁÍÑÔØ ÐÏÄ ÓÐÉÓÏË ÐÏÉÓËÁ ÓÉÍ×ÏÌÏ×"
-
-#: elf/dl-deps.c:545
+msgstr "невозможно выделить память под список поиска символов"
+
+#: elf/dl-deps.c:550
 msgid "Filters not supported with LD_TRACE_PRELINKING"
-msgstr "æÉÌØÔÒÙ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ Ó LD_TRACE_PRELINKING"
+msgstr "Фильтры не поддерживаются с LD_TRACE_PRELINKING"
 
 #: elf/dl-error.c:77
 msgid "DYNAMIC LINKER BUG!!!"
-msgstr "ïûéâëá äéîáíéþåóëïçï ëïíðïîï÷ýéëá!!!"
+msgstr "ОШИБКА ДИНАМИЧЕСКОГО КОМПОНОВЩИКА!!!"
 
 #: elf/dl-error.c:124
 msgid "error while loading shared libraries"
-msgstr "ÏÛÉÂËÁ ÐÒÉ ÚÁÇÒÕÚËÅ ÒÁÚÄÅÌÑÅÍÙÈ ÂÉÂÌÉÏÔÅË"
+msgstr "ошибка при загрузке разделяемых библиотек"
 
 #: elf/dl-fptr.c:88
 msgid "cannot map pages for fdesc table"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔÏÂÒÁÚÉÔØ ÓÔÒÁÎÉÃÙ ÄÌÑ ÔÁÂÌÉÃÙ fdesc"
+msgstr "невозможно отобразить страницы для таблицы fdesc"
 
 #: elf/dl-fptr.c:192
 msgid "cannot map pages for fptr table"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔÏÂÒÁÚÉÔØ ÓÔÒÁÎÉÃÙ ÄÌÑ ÔÁÂÌÉÃÙ fptr"
+msgstr "невозможно отобразить страницы для таблицы fptr"
 
 #: elf/dl-fptr.c:221
 msgid "internal error: symidx out of range of fptr table"
-msgstr "×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: symidx ×ÙÈÏÄÉÔ ÚÁ ÐÒÅÄÅÌÙ ÔÁÂÌÉÃÙ fptr"
+msgstr "внутренняя ошибка: symidx выходит за пределы таблицы fptr"
 
 #: elf/dl-load.c:372
 msgid "cannot allocate name record"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ×ÙÄÅÌÉÔØ ÐÁÍÑÔØ ÐÏÄ ÚÁÐÉÓØ ÉÍÅÎÉ"
-
-#: elf/dl-load.c:474 elf/dl-load.c:553 elf/dl-load.c:673 elf/dl-load.c:786
+msgstr "невозможно выделить память под запись имени"
+
+#: elf/dl-load.c:474 elf/dl-load.c:582 elf/dl-load.c:667 elf/dl-load.c:780
 msgid "cannot create cache for search path"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ËÜÛ ÄÌÑ ÐÕÔÅÊ ÐÏÉÓËÁ"
-
-#: elf/dl-load.c:576
+msgstr "невозможно создать кэш для путей поиска"
+
+#: elf/dl-load.c:565
 msgid "cannot create RUNPATH/RPATH copy"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ËÏÐÉÀ RUNPATH/RPATH"
-
-#: elf/dl-load.c:659
+msgstr "невозможно создать копию RUNPATH/RPATH"
+
+#: elf/dl-load.c:653
 msgid "cannot create search path array"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÍÁÓÓÉ× ÐÕÔÅÊ ÐÏÉÓËÁ"
-
-#: elf/dl-load.c:870
+msgstr "невозможно создать массив путей поиска"
+
+#: elf/dl-load.c:864
 msgid "cannot stat shared object"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ×ÙÐÏÌÎÉÔØ stat ÄÌÑ ÒÁÚÄÅÌÑÅÍÏÇÏ ÏÂßÅËÔÁ"
-
-#: elf/dl-load.c:940
+msgstr "невозможно выполнить stat для разделяемого объекта"
+
+#: elf/dl-load.c:934
 msgid "cannot open zero fill device"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ-ÉÓÔÏÞÎÉË ÎÕÌÅÊ"
-
-#: elf/dl-load.c:985 elf/dl-load.c:2215
+msgstr "невозможно открыть файл-источник нулей"
+
+#: elf/dl-load.c:979 elf/dl-load.c:2224
 msgid "cannot create shared object descriptor"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÄÅÓËÒÉÐÔÏÒ ÒÁÚÄÅÌÑÅÍÏÇÏ ÏÂßÅËÔÁ"
-
-#: elf/dl-load.c:1004 elf/dl-load.c:1663 elf/dl-load.c:1755
+msgstr "невозможно создать дескриптор разделяемого объекта"
+
+#: elf/dl-load.c:998 elf/dl-load.c:1656 elf/dl-load.c:1748
 msgid "cannot read file data"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ ÄÁÎÎÙÅ ÆÁÊÌÁ"
-
-#: elf/dl-load.c:1048
+msgstr "невозможно прочитать данные файла"
+
+#: elf/dl-load.c:1042
 msgid "ELF load command alignment not page-aligned"
-msgstr "×ÙÒÁ×ÎÉ×ÁÎÉÅ ËÏÍÁÎÄÙ ÚÁÇÒÕÚËÉ ELF ÎÅ ×ÙÒÏ×ÎÅÎÏ ÐÏ ÓÔÒÁÎÉÃÅ"
-
-#: elf/dl-load.c:1055
+msgstr "выравнивание команды загрузки ELF не выровнено по странице"
+
+#: elf/dl-load.c:1049
 msgid "ELF load command address/offset not properly aligned"
-msgstr "ÁÄÒÅÓ/ÓÍÅÝÅÎÉÅ ËÏÍÁÎÄÙ ÚÁÇÒÕÚËÉ ELF ÎÅ ×ÙÒÏ×ÎÅÎÏ ÐÒÁ×ÉÌØÎÏ"
-
-#: elf/dl-load.c:1139
+msgstr "адрес/смещение команды загрузки ELF не выровнено правильно"
+
+#: elf/dl-load.c:1132
 msgid "cannot allocate TLS data structures for initial thread"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ×ÙÄÅÌÉÔØ ÐÁÍÑÔØ ÐÏÄ TLS-ÓÔÒÕËÔÕÒÙ ÄÌÑ ÎÁÞÁÌØÎÏÇÏ ÔÒÅÄÁ"
-
-#: elf/dl-load.c:1163
+msgstr "невозможно выделить память под TLS-структуры для начального треда"
+
+#: elf/dl-load.c:1155
 msgid "cannot handle TLS data"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÂÒÁÂÏÔÁÔØ ÄÁÎÎÙÅ TLS"
-
-#: elf/dl-load.c:1182
+msgstr "невозможно обработать данные TLS"
+
+#: elf/dl-load.c:1174
 msgid "object file has no loadable segments"
-msgstr "× ÏÂßÅËÔÎÏÍ ÆÁÊÌÅ ÎÅÔ ÚÁÇÒÕÖÁÅÍÙÈ ÓÅÇÍÅÎÔÏ×"
-
-#: elf/dl-load.c:1218
+msgstr "в объектном файле нет загружаемых сегментов"
+
+#: elf/dl-load.c:1210
 msgid "failed to map segment from shared object"
-msgstr "ÓÂÏÊ ÏÔÏÂÒÁÖÅÎÉÑ ÓÅÇÍÅÎÔÁ ÉÚ ÒÁÚÄÅÌÑÅÍÏÇÏ ÏÂßÅËÔÁ"
-
-#: elf/dl-load.c:1242
+msgstr "сбой отображения сегмента из разделяемого объекта"
+
+#: elf/dl-load.c:1236
 msgid "cannot dynamically load executable"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÄÉÎÁÍÉÞÅÓËÉ ÚÁÇÒÕÚÉÔØ ÉÓÐÏÌÎÑÅÍÙÊ ÆÁÊÌ"
-
-#: elf/dl-load.c:1303
+msgstr "невозможно динамически загрузить исполняемый файл"
+
+#: elf/dl-load.c:1298
 msgid "cannot change memory protections"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÉÚÍÅÎÉÔØ ÚÁÝÉÔÕ ÐÁÍÑÔÉ"
-
-#: elf/dl-load.c:1322
+msgstr "невозможно изменить защиту памяти"
+
+#: elf/dl-load.c:1317
 msgid "cannot map zero-fill pages"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔÏÂÒÁÚÉÔØ ÓÔÒÁÎÉÃÙ ÚÁÐÏÌÎÅÎÉÑ ÎÕÌÑÍÉ"
-
-#: elf/dl-load.c:1336
+msgstr "невозможно отобразить страницы заполнения нулями"
+
+#: elf/dl-load.c:1331
 msgid "object file has no dynamic section"
-msgstr "× ÏÂßÅËÔÎÏÍ ÆÁÊÌÅ ÎÅÔ ÄÉÎÁÍÉÞÅÓËÏÊ ÓÅËÃÉÉ"
-
-#: elf/dl-load.c:1359
+msgstr "в объектном файле нет динамической секции"
+
+#: elf/dl-load.c:1354
 msgid "shared object cannot be dlopen()ed"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÉÍÅÎÉÔØ dlopen() Ë ÒÁÚÄÅÌÑÅÍÏÍÕ ÏÂßÅËÔÕ"
-
-#: elf/dl-load.c:1372
+msgstr "невозможно применить dlopen() к разделяемому объекту"
+
+#: elf/dl-load.c:1367
 msgid "cannot allocate memory for program header"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ×ÙÄÅÌÉÔØ ÐÁÍÑÔØ ÐÏÄ ÚÁÇÏÌÏ×ÏË ÐÒÏÇÒÁÍÍÙ"
-
-#: elf/dl-load.c:1389 elf/dl-open.c:174
+msgstr "невозможно выделить память под заголовок программы"
+
+#: elf/dl-load.c:1384 elf/dl-open.c:218
 msgid "invalid caller"
-msgstr "ÎÅ×ÅÒÎÁÑ ×ÙÚÙ×ÁÀÝÁÑ ÆÕÎËÃÉÑ"
-
-#: elf/dl-load.c:1428
+msgstr "неверная вызывающая функция"
+
+#: elf/dl-load.c:1423
 msgid "cannot enable executable stack as shared object requires"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁÄÅÊÓÔ×Ï×ÁÔØ ÉÓÐÏÌÎÑÅÍÙÊ ÓÔÅË, ËÁË ÔÒÅÂÕÅÔ ÒÁÚÄÅÌÑÅÍÙÊ ÏÂßÅËÔ"
-
-#: elf/dl-load.c:1443
+msgstr "невозможно задействовать исполняемый стек, как требует разделяемый объект"
+
+#: elf/dl-load.c:1436
 msgid "cannot close file descriptor"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁËÒÙÔØ ÄÅÓËÒÉÐÔÏÒ ÆÁÊÌÁ"
-
-#: elf/dl-load.c:1485
+msgstr "невозможно закрыть дескриптор файла"
+
+#: elf/dl-load.c:1478
 msgid "cannot create searchlist"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÓÐÉÓÏË ÐÏÉÓËÁ"
-
-#: elf/dl-load.c:1663
+msgstr "невозможно создать список поиска"
+
+#: elf/dl-load.c:1656
 msgid "file too short"
-msgstr "ÆÁÊÌ ÓÌÉÛËÏÍ ÍÁÌ"
-
-#: elf/dl-load.c:1692
+msgstr "файл слишком мал"
+
+#: elf/dl-load.c:1685
 msgid "invalid ELF header"
-msgstr "ÎÅ×ÅÒÎÙÊ ÚÁÇÏÌÏ×ÏË ELF"
-
-#: elf/dl-load.c:1704
+msgstr "неверный заголовок ELF"
+
+#: elf/dl-load.c:1697
 msgid "ELF file data encoding not big-endian"
-msgstr "ËÏÄÉÒÏ×ËÁ ÄÁÎÎÙÈ × ELF-ÆÁÊÌÅ ÎÅ ÔÕÐÏËÏÎÅÞÎÁÑ"
-
-#: elf/dl-load.c:1706
+msgstr "кодировка данных в ELF-файле не тупоконечная"
+
+#: elf/dl-load.c:1699
 msgid "ELF file data encoding not little-endian"
-msgstr "ËÏÄÉÒÏ×ËÁ ÄÁÎÎÙÈ × ELF-ÆÁÊÌÅ ÎÅ ÏÓÔÒÏËÏÎÅÞÎÁÑ"
-
-#: elf/dl-load.c:1710
+msgstr "кодировка данных в ELF-файле не остроконечная"
+
+#: elf/dl-load.c:1703
 msgid "ELF file version ident does not match current one"
-msgstr "ÉÄÅÎÔÉÆÉËÁÔÏÒ ×ÅÒÓÉÉ ELF-ÆÁÊÌÁ ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÔÅËÕÝÅÊ ×ÅÒÓÉÉ"
-
-#: elf/dl-load.c:1714
+msgstr "идентификатор версии ELF-файла не соответствует текущей версии"
+
+#: elf/dl-load.c:1707
 msgid "ELF file OS ABI invalid"
-msgstr "ÎÅ×ÅÒÎÙÊ ABI ïó ELF-ÆÁÊÌÁ"
-
-#: elf/dl-load.c:1716
+msgstr "неверный ABI ОС ELF-файла"
+
+#: elf/dl-load.c:1709
 msgid "ELF file ABI version invalid"
-msgstr "ÎÅ×ÅÒÎÁÑ ×ÅÒÓÉÑ ABI ELF-ÆÁÊÌÁ"
+msgstr "неверная версия ABI ELF-файла"
+
+#: elf/dl-load.c:1712
+msgid "internal error"
+msgstr "внутренняя ошибка"
 
 #: elf/dl-load.c:1719
-msgid "internal error"
-msgstr "×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ"
-
-#: elf/dl-load.c:1726
 msgid "ELF file version does not match current one"
-msgstr "×ÅÒÓÉÑ ELF-ÆÁÊÌÁ ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÔÅËÕÝÅÊ ×ÅÒÓÉÉ"
-
-#: elf/dl-load.c:1734
+msgstr "версия ELF-файла не соответствует текущей версии"
+
+#: elf/dl-load.c:1727
 msgid "only ET_DYN and ET_EXEC can be loaded"
-msgstr "ÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÔÏÌØËÏ ET_DYN É ET_EXEC"
+msgstr "можно загрузить только ET_DYN и ET_EXEC"
 
 # ???
-#: elf/dl-load.c:1740
+#: elf/dl-load.c:1733
 msgid "ELF file's phentsize not the expected size"
-msgstr "phentsize ELF-ÆÁÊÌÁ ÎÅ ÓÏ×ÐÁÄÁÅÔ Ó ÏÖÉÄÁÅÍÙÍ ÒÁÚÍÅÒÏÍ"
-
-#: elf/dl-load.c:2231
+msgstr "phentsize ELF-файла не совпадает с ожидаемым размером"
+
+#: elf/dl-load.c:2240
 msgid "wrong ELF class: ELFCLASS64"
-msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ ËÌÁÓÓ ELF: ELFCLASS64"
-
-#: elf/dl-load.c:2232
+msgstr "неправильный класс ELF: ELFCLASS64"
+
+#: elf/dl-load.c:2241
 msgid "wrong ELF class: ELFCLASS32"
-msgstr "ÎÅÐÒÁ×ÉÌØÎÙÊ ËÌÁÓÓ ELF: ELFCLASS32"
-
-#: elf/dl-load.c:2235
+msgstr "неправильный класс ELF: ELFCLASS32"
+
+#: elf/dl-load.c:2244
 msgid "cannot open shared object file"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÒÁÚÄÅÌÑÅÍÙÊ ÏÂßÅËÔÎÙÊ ÆÁÊÌ"
-
-#: elf/dl-lookup.c:261
+msgstr "невозможно открыть разделяемый объектный файл"
+
+#: elf/dl-lookup.c:356
 msgid "relocation error"
-msgstr "ÏÛÉÂËÁ ÐÅÒÅÍÅÝÅÎÉÑ"
-
-#: elf/dl-lookup.c:289
+msgstr "ошибка перемещения"
+
+#: elf/dl-lookup.c:384
 msgid "symbol lookup error"
-msgstr "ÏÛÉÂËÁ ÐÏÉÓËÁ ÓÉÍ×ÏÌÁ"
-
-#: elf/dl-open.c:112
+msgstr "ошибка поиска символа"
+
+#: elf/dl-open.c:114
 msgid "cannot extend global scope"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÒÁÓÛÉÒÉÔØ ÇÌÏÂÁÌØÎÕÀ ÏÂÌÁÓÔØ"
-
-#: elf/dl-open.c:237
-msgid "empty dynamic string token substitution"
-msgstr ""
-
-#: elf/dl-open.c:406 elf/dl-open.c:417 elf/dl-open.c:425
-msgid "cannot create scope list"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÓÐÉÓÏË ÏÂÌÁÓÔÅÊ"
-
-#: elf/dl-open.c:470
+msgstr "невозможно расширить глобальную область"
+
+#: elf/dl-open.c:512
 msgid "TLS generation counter wrapped!  Please report this."
-msgstr "ðÅÒÅÐÏÌÎÅÎÉÅ ÓÞÅÔÞÉËÁ ÐÏËÏÌÅÎÉÊ TLS!  ðÏÖÁÌÕÊÓÔÁ, ÓÏÏÂÝÉÔÅ Ï ÜÔÏÍ."
-
-#: elf/dl-open.c:508
+msgstr "Переполнение счетчика поколений TLS!  Пожалуйста, сообщите об этом."
+
+#: elf/dl-open.c:549
 msgid "invalid mode for dlopen()"
-msgstr "ÎÅ×ÅÒÎÙÊ ÒÅÖÉÍ ÄÌÑ dlopen()"
-
-#: elf/dl-open.c:525
+msgstr "неверный режим для dlopen()"
+
+#: elf/dl-open.c:566
 msgid "no more namespaces available for dlmopen()"
-msgstr "ÂÏÌØÛÅ ÎÅÔ ÄÏÓÔÕÐÎÙÈ ÐÒÏÓÔÒÁÎÓÔ× ÉÍÅÎ ÄÌÑ dlmopen()"
-
-#: elf/dl-open.c:538
+msgstr "больше нет доступных пространств имен для dlmopen()"
+
+#: elf/dl-open.c:579
 msgid "invalid target namespace in dlmopen()"
-msgstr "ÎÅ×ÅÒÎÏÅ ÃÅÌÅ×ÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÉÍÅÎ × dlmopen()"
-
-#: elf/dl-reloc.c:55
+msgstr "неверное целевое пространство имен в dlmopen()"
+
+#: elf/dl-reloc.c:54
 msgid "cannot allocate memory in static TLS block"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ×ÙÄÅÌÉÔØ ÐÁÍÑÔØ × ÓÔÁÔÉÞÎÏÍ ÂÌÏËÅ TLS"
-
-#: elf/dl-reloc.c:198
+msgstr "невозможно выделить память в статичном блоке TLS"
+
+#: elf/dl-reloc.c:196
 msgid "cannot make segment writable for relocation"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÄÅÌÁÔØ ÓÅÇÍÅÎÔ ÚÁÐÉÓÙ×ÁÅÍÙÍ ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÑ"
-
-#: elf/dl-reloc.c:279
+msgstr "невозможно сделать сегмент записываемым для перемещения"
+
+#: elf/dl-reloc.c:277
 #, c-format
 msgid "%s: no PLTREL found in object %s\n"
-msgstr "%s: × ÏÂßÅËÔÅ %s ÎÅ ÎÁÊÄÅÎÏ PLTREL\n"
-
-#: elf/dl-reloc.c:290
+msgstr "%s: в объекте %s не найдено PLTREL\n"
+
+#: elf/dl-reloc.c:288
 #, c-format
 msgid "%s: out of memory to store relocation results for %s\n"
-msgstr "%s: ÎÅÄÏÓÔÁÔÏÞÎÏ ÐÁÍÑÔÉ ÄÌÑ ÚÁÐÉÓÉ ÒÅÚÕÌØÔÁÔÏ× ÒÅÌÏËÁÃÉÉ ÄÌÑ %s\n"
-
-#: elf/dl-reloc.c:306
+msgstr "%s: недостаточно памяти для записи результатов релокации для %s\n"
+
+#: elf/dl-reloc.c:304
 msgid "cannot restore segment prot after reloc"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ×ÏÓÓÔÁÎÏ×ÉÔØ ÚÁÝÉÔÕ ÓÅÇÍÅÎÔÁ ÐÏÓÌÅ ÐÅÒÅÍÅÝÅÎÉÑ"
-
-#: elf/dl-reloc.c:331

[... 10012 lines stripped ...]