Updated to fedora-glibc-20070815T2049 fedora-glibc-2_6_90-10
authorjakub <jakub>
Wed, 15 Aug 2007 20:57:31 +0000 (20:57 +0000)
committerjakub <jakub>
Wed, 15 Aug 2007 20:57:31 +0000 (20:57 +0000)
42 files changed:
ChangeLog
elf/dl-misc.c
fedora/branch.mk
fedora/glibc.spec.in
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h
nptl/sysdeps/unix/sysv/linux/lowlevellock.c
nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S
nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S
nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S
nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S
nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h
nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/sparc/sem_timedwait.c [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/sparc/sem_wait.c [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c [deleted file]
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c [deleted file]
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c
po/bg.po [new file with mode: 0644]
stdlib/strtold_l.c
sysdeps/ieee754/ldbl-64-128/strtold_l.c
sysdeps/sparc/fpu/feholdexcpt.c
sysdeps/sparc/fpu/fraiseexcpt.c
sysdeps/sparc/sparc32/dl-machine.h
sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
sysdeps/unix/sysv/linux/sparc/sysdep.h

index 819ac7e..31270d2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,44 @@
+2007-08-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/sparc/fpu/fraiseexcpt.c (__feraiseexcept): Fix raising
+       FE_UNDERFLOW on Niagara CPUs.
+
+       * sysdeps/sparc/fpu/feholdexcpt.c (feholdexcept): Clear all
+       exceptions.
+
+2007-08-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup): No
+       need to check GLRO(dl_hwcap) & HWCAP_SPARC_FLUSH on sparcv9.
+       (sparc_fixup_plt): Add do_flush argument instead of figuring whether
+       flush should be used or not inside of the function.
+       (elf_machine_fixup_plt, elf_machine_rela): Adjust caller.
+
+       * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone,
+       __thread_start): Use HIDDEN_JUMPTARGET.
+       * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone,
+       __thread_start): Likewise.
+       * sysdeps/unix/sysv/linux/sparc/sysdep.h (JUMPTARGET): Define.
+
+       * sysdeps/ieee754/ldbl-64-128/strtold_l.c (__STRTOF): Declare.
+       Add libc_hidden_proto.
+       (STRTOF): Add libc_hidden_proto.
+       (___new_strtold_l, ___new_wcstold_l): New weak aliases.
+       (strtold_l, wcstold_l): Use them as second argument for
+       long_double_symbol.
+
+2007-08-14  Ulrich Drepper  <drepper@redhat.com>
+
+       * elf/dl-misc.c: Undo last change.  The kernel won't allow it.
+
+2007-08-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * stdlib/strtold_l.c: Include wchar.h if needed.  Add libc_hidden_def.
+
+2007-08-14  Ulrich Drepper  <drepper@redhat.com>
+
+       * po/bg.po: New file.  From the translation team.
+
 2007-08-13  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_PSELECT,
index 41da98d..6da1e2e 100644 (file)
@@ -1,5 +1,5 @@
 /* Miscellaneous support functions for dynamic linker
-   Copyright (C) 1997-2004, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1997-2002, 2003, 2004, 2006 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
@@ -55,11 +55,7 @@ _dl_sysdep_read_whole_file (const char *file, size_t *sizep, int prot)
 {
   void *result = MAP_FAILED;
   struct stat64 st;
-  int oflags = O_RDONLY;
-#ifdef O_NOATIME
-  oflags |= O_NOATIME;
-#endif
-  int fd = __open (file, oflags);
+  int fd = __open (file, O_RDONLY);
   if (fd >= 0)
     {
       if (__fxstat64 (_STAT_VER, fd, &st) >= 0)
index 22e86bb..293333c 100644 (file)
@@ -3,5 +3,5 @@ glibc-branch := fedora
 glibc-base := HEAD
 DIST_BRANCH := devel
 COLLECTION := dist-f8
-fedora-sync-date := 2007-08-14 07:25 UTC
-fedora-sync-tag := fedora-glibc-20070814T0725
+fedora-sync-date := 2007-08-15 20:49 UTC
+fedora-sync-tag := fedora-glibc-20070815T2049
index 535cfc6..0410094 100644 (file)
@@ -1,6 +1,6 @@
-%define glibcrelease 9
+%define glibcrelease 10
 %define run_glibc_tests 1
-%define auxarches i586 i686 athlon sparcv9 alphaev6
+%define auxarches i586 i686 athlon sparcv9v sparc64v alphaev6
 %define xenarches i686 athlon
 %ifarch %{xenarches}
 %define buildxen 1
@@ -15,7 +15,7 @@
 %define buildpower6 0
 %endif
 %define rtkaioarches %{ix86} x86_64 ia64 ppc ppc64 s390 s390x
-%define debuginfocommonarches %{ix86} alpha alphaev6 sparc sparcv9
+%define debuginfocommonarches %{ix86} alpha alphaev6 sparc sparcv9 sparcv9v sparc64 sparc64v
 %define _unpackaged_files_terminate_build 0
 Summary: The GNU libc libraries.
 Name: glibc
@@ -256,6 +256,8 @@ package or when debugging this package.
 # memmove. The memcpy implementation below is not tolerant at
 # all.
 rm -f sysdeps/alpha/alphaev6/memcpy.S
+mv sysdeps/sparc/sparc32/{,sparcv9/}sparcv9b
+mv sysdeps/sparc/sparc32/{,sparcv9/}sparcv9v
 
 find . -type f -size 0 -o -name "*.orig" -exec rm -f {} \;
 cat > find_provides.sh <<EOF
@@ -295,11 +297,21 @@ BuildFlags="-mcpu=ultrasparc -fcall-used-g6"
 GCC="gcc -m32"
 GXX="g++ -m32"
 %endif
+%ifarch sparcv9v
+BuildFlags="-mcpu=niagara -fcall-used-g6"
+GCC="gcc -m32"
+GXX="g++ -m32"
+%endif
 %ifarch sparc64
 BuildFlags="-mcpu=ultrasparc -mvis -fcall-used-g6"
 GCC="gcc -m64"
 GXX="g++ -m64"
 %endif
+%ifarch sparc64v
+BuildFlags="-mcpu=niagara -mvis -fcall-used-g6"
+GCC="gcc -m64"
+GXX="g++ -m64"
+%endif
 %ifarch ppc64
 BuildFlags="-mno-minimal-toc"
 GCC="gcc -m64"
@@ -1000,6 +1012,13 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Wed Aug 15 2007 Jakub Jelinek <jakub@redhat.com> 2.6.90-10
+- don't open /etc/ld.so.{cache,preload} with O_NOATIME (#252146)
+- s390{,x}, alpha and sparc fixes
+- sparcv9 is no longer an aux arch, as we expect
+  to not build sparc.rpm glibc any longer, only sparcv9.rpm,
+  sparc64.rpm and new two aux arches sparcv9v.rpm and sparc64v.rpm
+
 * Tue Aug 14 2007 Jakub Jelinek <jakub@redhat.com> 2.6.90-9
 - private futex even for mutexes and condvars
 - some further O_CLOEXEC changes
index f46f53a..3e4ca23 100644 (file)
@@ -1,3 +1,78 @@
+2007-08-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem,
+       sparc_old_sem): New structs.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
+       (__sem_wait_cleanup): New function.
+       (__new_sem_wait): Use sparc_new_sem structure.  Bump and afterwards
+       decrease nwaiters.  Register __sem_wait_cleanup as cleanup handler.
+       Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
+       lll_futex_wait.
+       (__old_sem_wait): New function.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include
+       nptl/sysdeps/unix/sysv/linux/sparc version.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
+       Likewise.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
+       (__new_sem_trywait): Use sparc_old_sem structure.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
+       (sem_timedwait): Use sparc_new_sem structure.  Bump and afterwards
+       decrease nwaiters.  Register __sem_wait_cleanup as cleanup handler.
+       Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
+       lll_futex_timed_wait.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post):
+       Use sparc_new_sem structure.  Only wake if nwaiters > 0.  Pass
+       isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
+       lll_futex_wake.
+       (__old_sem_post): New function.
+       * sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file.
+       * sysdeps/unix/sysv/linux/sparc/sem_init.c: New file.
+       * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file.
+       * sysdeps/unix/sysv/linux/sparc/sem_post.c: New file.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove.
+
+2007-08-14  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
+       (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
+       FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
+       Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
+       * sysdeps/unix/sysv/linux/shpthread_cond_signal.S
+       (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
+       FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
+       Use FUTEX_WAKE_OP.
+       * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
+       kernel-features.h and tcb-offsets.h.
+       (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
+       lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
+       process private.
+       * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
+       tcb-offsets.h.
+       (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE
+       to lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
+       process private.
+       * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use #ifdef
+       __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
+       * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
+       * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
+       * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
+       * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
+       * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
+
+2007-08-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
+       (__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
+       lll_futex_timed_wait.
+
+       * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
+       __lll_robust_unlock): Rewrite as macros instead of inline functions.
+       * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
+       __lll_robust_unlock, __lll_wait_tid): Likewise.
+
 2007-08-13  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
index 4f67964..4487607 100644 (file)
@@ -226,23 +226,23 @@ __lll_robust_timedlock (int *futex, const struct timespec *abstime,
   __lll_robust_timedlock (&(futex), abstime, id, private)
 
 
-static inline void __attribute__ ((always_inline))
-__lll_unlock (int *futex, int private)
-{
-  int val = atomic_exchange_rel (futex, 0);
-  if (__builtin_expect (val > 1, 0))
-    lll_futex_wake (futex, 1, private);
-}
+#define __lll_unlock(futex, private) \
+  (void)                                                       \
+    ({ int *__futex = (futex);                                 \
+    ({ int __oldval = atomic_exchange_rel (__futex, 0);                \
+       if (__builtin_expect (__oldval > 1, 0))                 \
+        lll_futex_wake (__futex, 1, private);                  \
+    })
 #define lll_unlock(futex, private) __lll_unlock(&(futex), private)
 
 
-static inline void __attribute__ ((always_inline))
-__lll_robust_unlock (int *futex, int private)
-{
-  int val = atomic_exchange_rel (futex, 0);
-  if (__builtin_expect (val & FUTEX_WAITERS, 0))
-    lll_futex_wake (futex, 1, private);
-}
+#define __lll_robust_unlock(futex, private) \
+  (void)                                                       \
+    ({ int *__futex = (futex);                                 \
+       int __oldval = atomic_exchange_rel (__futex, 0);                \
+       if (__builtin_expect (__oldval & FUTEX_WAITERS, 0))     \
+        lll_futex_wake (__futex, 1, private);                  \
+    })
 #define lll_robust_unlock(futex, private) \
   __lll_robust_unlock(&(futex), private)
 
index 1187800..f0e4295 100644 (file)
@@ -37,7 +37,7 @@ __lll_lock_wait_private (int *futex)
 }
 
 
-/* These functions doesn't get included in libc.so  */
+/* These functions don't get included in libc.so  */
 #ifdef IS_IN_libpthread
 void
 __lll_lock_wait (int *futex, int private)
index 7fee435..c9347e9 100644 (file)
@@ -291,31 +291,29 @@ __lll_robust_timedlock (int *futex, const struct timespec *abstime,
   __lll_robust_timedlock (&(futex), abstime, id, private)
 
 
-static inline void
-__attribute__ ((always_inline))
-__lll_unlock (int *futex, int private)
-{
-  int oldval;
-  int newval = 0;
-
-  lll_compare_and_swap (futex, oldval, newval, "slr %2,%2");
-  if (__builtin_expect (oldval > 1, 0))
-    lll_futex_wake (futex, 1, private);
-}
+#define __lll_unlock(futex, private) \
+  (void)                                                                     \
+    ({ int __oldval;                                                         \
+       int __newval = 0;                                                     \
+       int *__futexp = (futex);                                                      \
+                                                                             \
+       lll_compare_and_swap (__futexp, __oldval, __newval, "slr %2,%2");      \
+       if (__builtin_expect (__oldval > 1, 0))                               \
+        lll_futex_wake (__futexp, 1, private);                               \
+    })
 #define lll_unlock(futex, private) __lll_unlock(&(futex), private)
 
 
-static inline void
-__attribute__ ((always_inline))
-__lll_robust_unlock (int *futex, int private)
-{
-  int oldval;
-  int newval = 0;
-
-  lll_compare_and_swap (futex, oldval, newval, "slr %2,%2");
-  if (__builtin_expect (oldval & FUTEX_WAITERS, 0))
-    lll_futex_wake (futex, 1, private);
-}
+#define __lll_robust_unlock(futex, private) \
+  (void)                                                                     \
+    ({ int __oldval;                                                         \
+       int __newval = 0;                                                     \
+       int *__futexp = (futex);                                                      \
+                                                                             \
+       lll_compare_and_swap (__futexp, __oldval, __newval, "slr %2,%2");      \
+       if (__builtin_expect (__oldval & FUTEX_WAITERS, 0))                   \
+        lll_futex_wake (__futexp, 1, private);                               \
+    })
 #define lll_robust_unlock(futex, private) \
   __lll_robust_unlock(&(futex), private)
 
@@ -331,15 +329,15 @@ __lll_robust_unlock (int *futex, int private)
    wakeup when the clone terminates.  The memory location contains the
    thread ID while the clone is running and is reset to zero
    afterwards. */
-static inline void
-__attribute__ ((always_inline))
-__lll_wait_tid (int *ptid)
-{
-  int tid;
-
-  while ((tid = *ptid) != 0)
-    lll_futex_wait (ptid, tid, LLL_SHARED);
-}
+#define __lll_wait_tid(ptid) \
+  do                                                                         \
+    {                                                                        \
+      int __tid;                                                             \
+                                                                             \
+      while ((__tid = *ptid) != 0)                                           \
+       lll_futex_wait (ptid, __tid, LLL_SHARED);                             \
+    }                                                                        \
+  while (0)
 #define lll_wait_tid(tid) __lll_wait_tid(&(tid))
 
 extern int __lll_timedwait_tid (int *, const struct timespec *)
index b173f2d..7dff15a 100644 (file)
@@ -93,13 +93,24 @@ __pthread_cond_broadcast:
        bt/s    9f
         add    #cond_futex, r4
 
-       /* XXX: The kernel so far doesn't support requeue to PI futex.  */
+       /* XXX: The kernel only supports FUTEX_CMP_REQUEUE to the same
+          type of futex (private resp. shared).  */
        mov.l   @(MUTEX_KIND,r9), r0
-       tst     #PI_BIT, r0
+       tst     #(PI_BIT|PS_BIT), r0
        bf      9f
 
        /* Wake up all threads.  */
-       mov     #FUTEX_CMP_REQUEUE, r5
+#ifdef __ASSUME_PRIVATE_FUTEX
+       mov     #(FUTEX_CMP_REQUEUE|FUTEX_PRIVATE_FLAG), r5
+       extu.b  r5, r5
+#else
+       stc     gbr, r1
+       mov.w   .Lpfoff, r2
+       add     r2, r1
+       mov.l   @r1, r5
+       mov     #FUTEX_CMP_REQUEUE, r0
+       or      r0, r5
+#endif
        mov     #1, r6
        mov     #-1, r7
        shlr    r7              /* r7 = 0x7fffffff */
@@ -156,7 +167,12 @@ __pthread_cond_broadcast:
 #if cond_lock != 0
        add     #cond_lock, r5
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r6
        mov     #LLL_SHARED, r6
+99:    
        extu.b  r6, r6
        mov.l   .Lwait5, r1
        bsrf    r1
@@ -171,7 +187,12 @@ __pthread_cond_broadcast:
 #if cond_lock != 0
        add     #cond_lock, r4
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r5
        mov     #LLL_SHARED, r5
+99:    
        mov.l   .Lwake5, r1
        bsrf    r1
         extu.b r5, r5
@@ -185,7 +206,12 @@ __pthread_cond_broadcast:
 #if cond_lock != 0
        add     #cond_lock, r4
 #endif
+       mov     #-1, r0
+       cmp/eq  r0, r9
+       bf/s    99f
+        mov    #LLL_PRIVATE, r5
        mov     #LLL_SHARED, r5
+99:    
        mov.l   .Lwake6, r1
        bsrf    r1
         extu.b r5, r5
@@ -194,7 +220,22 @@ __pthread_cond_broadcast:
         nop
 
 9:
-       mov     #FUTEX_WAKE, r5
+       mov     #-1, r0
+       cmp/eq  r0, r9
+       bt/s    99f
+        mov    #FUTEX_WAKE, r5
+#ifdef __ASSUME_PRIVATE_FUTEX
+       mov     #(FUTEX_WAKE|FUTEX_PRIVATE_FLAG), r5
+       extu.b  r5, r5
+#else
+       stc     gbr, r1
+       mov.w   .Lpfoff, r2
+       add     r2, r1
+       mov.l   @r1, r5
+       mov     #FUTEX_WAKE, r0
+       or      r0, r5
+#endif
+99:    
        mov     #-1, r6
        shlr    r6              /* r6 = 0x7fffffff */
        mov     #0, r7
@@ -205,6 +246,11 @@ __pthread_cond_broadcast:
        bra     10b
         nop
 
+#ifndef __ASSUME_PRIVATE_FUTEX
+.Lpfoff:
+       .word   PRIVATE_FUTEX - TLS_PRE_TCB_SIZE
+#endif
+
        .align  2
 .Lwait5:
        .long   __lll_lock_wait-.Lwait5b
index 3ef2d6e..9cb73a2 100644 (file)
@@ -74,14 +74,63 @@ __pthread_cond_signal:
        /* Wake up one thread.  */
        mov     r8, r4
        add     #cond_futex, r4
-       mov     #FUTEX_WAKE, r5
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bt/s    99f
+        mov    #FUTEX_WAKE_OP, r5
+#ifdef __ASSUME_PRIVATE_FUTEX
+       mov     #(FUTEX_WAKE_OP|FUTEX_PRIVATE_FLAG), r5
+       extu.b  r5, r5
+#else
+       stc     gbr, r1
+       mov.w   .Lpfoff, r2
+       add     r2, r1
+       mov.l   @r1, r5
+       mov     #FUTEX_WAKE_OP, r0
+       or      r0, r5
+#endif
+99:
        mov     #1, r6
        mov     #0, r7
+       mov     r8, r0
+       add     #cond_lock, r0
+       mov.l   .Lfutexop, r1
        mov     #SYS_futex, r3
        extu.b  r3, r3
        trapa   #0x14
        SYSCALL_INST_PAD
 
+       /* For any kind of error, we try again with WAKE.
+          The general test also covers running on old kernels.  */
+       mov     r0, r1
+       mov     #-12, r2
+       shad    r2, r1
+       not     r1, r1
+       tst     r1, r1
+       bt      7f
+
+6:
+       mov     #0, r0
+       lds.l   @r15+, pr
+       rts
+        mov.l  @r15+, r8
+
+#ifndef __ASSUME_PRIVATE_FUTEX
+.Lpfoff:
+       .word   PRIVATE_FUTEX - TLS_PRE_TCB_SIZE
+#endif
+       .align  2
+.Lfutexop:
+       .long   FUTEX_OP_CLEAR_WAKE_IF_GT_ONE
+
+7:
+       /* r5 should be either FUTEX_WAKE_OP or
+          FUTEX_WAKE_OP|FUTEX_PRIVATE_FLAG from the previous syscall.  */
+       mov     #(FUTEX_WAKE ^ FUTEX_WAKE_OP), r0
+       xor     r0, r5
+       trapa   #0x14
+       SYSCALL_INST_PAD
+
 4:
        /* Unlock.  */
 #if cond_lock != 0
@@ -90,12 +139,26 @@ __pthread_cond_signal:
        DEC (@r8, r2)
 #endif
        tst     r2, r2
-       bf      5f
-6:
-       mov     #0, r0
-       lds.l   @r15+, pr
-       rts
-        mov.l  @r15+, r8
+       bt      6b
+
+5:
+       /* Unlock in loop requires wakeup.  */
+       mov     r8, r4
+#if cond_lock != 0
+       add     #cond_lock, r4
+#endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r5
+       mov     #LLL_SHARED, r5
+99:    
+       mov.l   .Lwake4, r1
+       bsrf    r1
+        extu.b r5, r5
+.Lwake4b:
+       bra     6b
+        nop
 
 1:
        /* Initial locking failed.  */
@@ -103,7 +166,12 @@ __pthread_cond_signal:
 #if cond_lock != 0
        add     #cond_lock, r5
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r6
        mov     #LLL_SHARED, r6
+99:    
        extu.b  r6, r6
        mov.l   .Lwait4, r1
        bsrf    r1
@@ -112,20 +180,6 @@ __pthread_cond_signal:
        bra     2b
         nop
 
-5:
-       /* Unlock in loop requires wakeup.  */
-       mov     r8, r4
-#if cond_lock != 0
-       add     #cond_lock, r4
-#endif
-       mov     #LLL_SHARED, r5
-       mov.l   .Lwake4, r1
-       bsrf    r1
-        extu.b r5, r5
-.Lwake4b:
-       bra     6b
-        nop
-
        .align  2
 .Lwait4:
        .long   __lll_lock_wait-.Lwait4b
index fde4f57..4cf0ac4 100644 (file)
@@ -21,8 +21,9 @@
 #include <lowlevellock.h>
 #include <lowlevelcond.h>
 #include <pthread-errnos.h>
-#include "lowlevel-atomic.h"
 #include <kernel-features.h>
+#include <tcb-offsets.h>
+#include "lowlevel-atomic.h"
 
        .text
 
@@ -230,7 +231,22 @@ __pthread_cond_timedwait:
 
        mov     r15, r7
        add     #16, r7
-       mov     #FUTEX_WAIT, r5
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bt/s    99f
+        mov    #FUTEX_WAIT, r5
+#ifdef __ASSUME_PRIVATE_FUTEX
+       mov     #(FUTEX_WAIT|FUTEX_PRIVATE_FLAG), r5
+       extu.b  r5, r5
+#else
+       stc     gbr, r1
+       mov.w   .Lpfoff, r2
+       add     r2, r1
+       mov.l   @r1, r5
+       mov     #FUTEX_WAIT, r0
+       or      r0, r5
+#endif
+99:    
        mov.l   @(8,r15), r6
        mov     r8, r4
        add     #cond_futex, r4
@@ -339,7 +355,22 @@ __pthread_cond_timedwait:
 
        mov     r8, r4
        add     #cond_nwaiters, r4
-       mov     #FUTEX_WAKE, r5
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bt/s    99f
+        mov    #FUTEX_WAKE, r5
+#ifdef __ASSUME_PRIVATE_FUTEX
+       mov     #(FUTEX_WAKE|FUTEX_PRIVATE_FLAG), r5
+       extu.b  r5, r5
+#else
+       stc     gbr, r1
+       mov.w   .Lpfoff, r2
+       add     r2, r1
+       mov.l   @r1, r5
+       mov     #FUTEX_WAKE, r0
+       or      r0, r5
+#endif
+99:    
        mov     #1, r6
        mov     #0, r7
        mov     #SYS_futex, r3
@@ -379,6 +410,10 @@ __pthread_cond_timedwait:
        rts
         mov.l  @r15+, r8
 
+#ifndef __ASSUME_PRIVATE_FUTEX
+.Lpfoff:
+       .word   PRIVATE_FUTEX - TLS_PRE_TCB_SIZE
+#endif
 .L1k:
        .word   1000
        .align  2
@@ -399,7 +434,12 @@ __pthread_cond_timedwait:
 #if cond_lock != 0
        add     #cond_lock, r5
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r6
        mov     #LLL_SHARED, r6
+99:    
        extu.b  r6, r6
        mov.l   .Lwait2, r1
        bsrf    r1
@@ -414,7 +454,12 @@ __pthread_cond_timedwait:
 #if cond_lock != 0
        add     #cond_lock, r4
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r5
        mov     #LLL_SHARED, r5
+99:    
        mov.l   .Lmwait2, r1
        bsrf    r1
         extu.b r5, r5
@@ -428,7 +473,12 @@ __pthread_cond_timedwait:
 #if cond_lock != 0
        add     #cond_lock, r5
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r6
        mov     #LLL_SHARED, r6
+99:    
        extu.b  r6, r6
        mov.l   .Lwait3, r1
        bsrf    r1
@@ -443,7 +493,12 @@ __pthread_cond_timedwait:
 #if cond_lock != 0
        add     #cond_lock, r4
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r5
        mov     #LLL_SHARED, r5
+99:    
        mov.l   .Lmwait3, r1
        bsrf    r1
         extu.b r5, r5
@@ -466,7 +521,12 @@ __pthread_cond_timedwait:
 #if cond_lock != 0
        add     #cond_lock, r4
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r5
        mov     #LLL_SHARED, r5
+99:    
        mov.l   .Lmwait4, r1
        bsrf    r1
         extu.b r5, r5
@@ -510,7 +570,12 @@ __condvar_tw_cleanup:
 #if cond_lock != 0
        add     #cond_lock, r5
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r6
        mov     #LLL_SHARED, r6
+99:    
        extu.b  r6, r6
        mov.l   .Lwait5, r1
        bsrf    r1
@@ -605,7 +670,12 @@ __condvar_tw_cleanup:
 #if cond_lock != 0
        add     #cond_lock, r4
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r5
        mov     #LLL_SHARED, r5
+99:    
        mov.l   .Lmwait5, r1
        bsrf    r1
         extu.b r5, r5
index 9ca4c35..eddf4c9 100644 (file)
@@ -20,6 +20,8 @@
 #include <shlib-compat.h>
 #include <lowlevellock.h>
 #include <lowlevelcond.h>
+#include <tcb-offsets.h>
+#include <kernel-features.h>
 #include "lowlevel-atomic.h"
 
        .text
@@ -135,7 +137,22 @@ __pthread_cond_wait:
        mov.l   r0, @r15
 
        mov     #0, r7
-       mov     #FUTEX_WAIT, r5
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bt/s    99f
+        mov    #FUTEX_WAIT, r5
+#ifdef __ASSUME_PRIVATE_FUTEX
+       mov     #(FUTEX_WAIT|FUTEX_PRIVATE_FLAG), r5
+       extu.b  r5, r5
+#else
+       stc     gbr, r1
+       mov.w   .Lpfoff0, r2
+       add     r2, r1
+       mov.l   @r1, r5
+       mov     #FUTEX_WAIT, r0
+       or      r0, r5
+#endif
+99:    
        mov.l   @(8,r15), r6
        mov     r8, r4
        add     #cond_futex, r4
@@ -213,7 +230,22 @@ __pthread_cond_wait:
 
        mov     r8, r4
        add     #cond_nwaiters, r4
-       mov     #FUTEX_WAKE, r5
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bt/s    99f
+        mov    #FUTEX_WAKE, r5
+#ifdef __ASSUME_PRIVATE_FUTEX
+       mov     #(FUTEX_WAKE|FUTEX_PRIVATE_FLAG), r5
+       extu.b  r5, r5
+#else
+       stc     gbr, r1
+       mov.w   .Lpfoff0, r2
+       add     r2, r1
+       mov.l   @r1, r5
+       mov     #FUTEX_WAKE, r0
+       or      r0, r5
+#endif
+99:    
        mov     #1, r6
        mov     #0, r7
        mov     #SYS_futex, r3
@@ -247,6 +279,10 @@ __pthread_cond_wait:
        rts
         mov.l  @r15+, r8
 
+#ifndef __ASSUME_PRIVATE_FUTEX
+.Lpfoff0:
+       .word   PRIVATE_FUTEX - TLS_PRE_TCB_SIZE
+#endif
        .align  2
 .Lmunlock0:
        .long   __pthread_mutex_unlock_usercnt-.Lmunlock0b
@@ -263,7 +299,12 @@ __pthread_cond_wait:
 #if cond_lock != 0
        add     #cond_lock, r5
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r6
        mov     #LLL_SHARED, r6
+99:    
        extu.b  r6, r6
        mov.l   .Lwait0, r1
        bsrf    r1
@@ -277,7 +318,12 @@ __pthread_cond_wait:
 #if cond_lock != 0
        add     #cond_lock, r4
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r5
        mov     #LLL_SHARED, r5
+99:    
        mov.l   .Lwake0, r1
        bsrf    r1
         extu.b r5, r5
@@ -291,7 +337,12 @@ __pthread_cond_wait:
 #if cond_lock != 0
        add     #cond_lock, r5
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r6
        mov     #LLL_SHARED, r6
+99:    
        extu.b  r6, r6
        mov.l   .Lwait1, r1
        bsrf    r1
@@ -306,7 +357,12 @@ __pthread_cond_wait:
 #if cond_lock != 0
        add     #cond_lock, r4
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r5
        mov     #LLL_SHARED, r5
+99:    
        mov.l   .Lwake1, r1
        bsrf    r1
         extu.b r5, r5
@@ -329,7 +385,12 @@ __pthread_cond_wait:
 #if cond_lock != 0
        add     #cond_lock, r4
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r5
        mov     #LLL_SHARED, r5
+99:    
        mov.l   .Lwake2, r1
        bsrf    r1
         extu.b r5, r5
@@ -374,7 +435,12 @@ __condvar_w_cleanup:
 #if cond_lock != 0
        add     #cond_lock, r5
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r6
        mov     #LLL_SHARED, r6
+99:    
        extu.b  r6, r6
        mov.l   .Lwait3, r1
        bsrf    r1
@@ -447,7 +513,22 @@ __condvar_w_cleanup:
 
        mov     r8, r4
        add     #cond_nwaiters, r4
-       mov     #FUTEX_WAKE, r5
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bt/s    99f
+        mov    #FUTEX_WAKE, r5
+#ifdef __ASSUME_PRIVATE_FUTEX
+       mov     #(FUTEX_WAKE|FUTEX_PRIVATE_FLAG), r5
+       extu.b  r5, r5
+#else
+       stc     gbr, r1
+       mov.w   .Lpfoff1, r2
+       add     r2, r1
+       mov.l   @r1, r5
+       mov     #FUTEX_WAKE, r0
+       or      r0, r5
+#endif
+99:    
        mov     #1, r6
        mov     #0, r7
        mov     #SYS_futex, r3
@@ -469,7 +550,12 @@ __condvar_w_cleanup:
 #if cond_lock != 0
        add     #cond_lock, r4
 #endif
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bf/s    99f
+        mov    #LLL_PRIVATE, r5
        mov     #LLL_SHARED, r5
+99:    
        mov.l   .Lwake3, r1
        bsrf    r1
         extu.b r5, r5
@@ -481,7 +567,22 @@ __condvar_w_cleanup:
        bf/s    5f
         mov    r8, r4
        add     #cond_futex, r4
-       mov     #FUTEX_WAKE, r5
+       mov.l   @(dep_mutex,r8), r0
+       cmp/eq  #-1, r0
+       bt/s    99f
+        mov    #FUTEX_WAKE, r5
+#ifdef __ASSUME_PRIVATE_FUTEX
+       mov     #(FUTEX_WAKE|FUTEX_PRIVATE_FLAG), r5
+       extu.b  r5, r5
+#else
+       stc     gbr, r1
+       mov.w   .Lpfoff1, r2
+       add     r2, r1
+       mov.l   @r1, r5
+       mov     #FUTEX_WAKE, r0
+       or      r0, r5
+#endif
+99:    
        mov     #-1, r6
        shlr    r6              /* r6 = 0x7fffffff */
        mov     #0, r7
@@ -505,6 +606,10 @@ __condvar_w_cleanup:
         mov    r11, r4
        sleep
 
+#ifndef __ASSUME_PRIVATE_FUTEX
+.Lpfoff1:
+       .word   PRIVATE_FUTEX - TLS_PRE_TCB_SIZE
+#endif
        .align  2
 .Lwait3:
        .long   __lll_lock_wait-.Lwait3b
index 4399075..0830cab 100644 (file)
@@ -94,7 +94,7 @@ __pthread_once:
        bf      3f      /* Different for generation -> run initializer.  */
 
        /* Somebody else got here first.  Wait.  */
-#if __ASSUME_PRIVATE_FUTEX
+#ifdef __ASSUME_PRIVATE_FUTEX
        mov     #(FUTEX_PRIVATE_FLAG|FUTEX_WAIT), r5
        extu.b  r5, r5
 #else
@@ -168,7 +168,7 @@ __pthread_once:
        INC (@r9, r2)
        /* Wake up all other threads.  */
        mov     r9, r4
-#if __ASSUME_PRIVATE_FUTEX
+#ifdef __ASSUME_PRIVATE_FUTEX
        mov     #(FUTEX_PRIVATE_FLAG|FUTEX_WAKE), r5
        extu.b  r5, r5
 #else
@@ -213,7 +213,7 @@ __pthread_once:
        mov     #0, r7
        mov.l   r7, @r9
        mov     r9, r4
-#if __ASSUME_PRIVATE_FUTEX
+#ifdef __ASSUME_PRIVATE_FUTEX
        mov     #(FUTEX_PRIVATE_FLAG|FUTEX_WAKE), r5
 #else
        stc     gbr, r1
@@ -239,7 +239,7 @@ __pthread_once:
        sleep
        cfi_endproc
 
-#if !__ASSUME_PRIVATE_FUTEX
+#ifndef __ASSUME_PRIVATE_FUTEX
 .Lpfoff:
        .word   PRIVATE_FUTEX - TLS_PRE_TCB_SIZE
 #endif
index 9e4ba95..b71be1d 100644 (file)
@@ -74,7 +74,7 @@ __pthread_rwlock_rdlock:
        tst     r2, r2
        bf      10f
 11:
-#if __ASSUME_PRIVATE_FUTEX
+#ifdef __ASSUME_PRIVATE_FUTEX
        mov     #PSHARED, r0
        mov.b   @(r0,r8), r5
        mov     #(FUTEX_PRIVATE_FLAG|FUTEX_WAIT), r0
@@ -142,7 +142,7 @@ __pthread_rwlock_rdlock:
        rts
         mov    r3, r0
 
-#if !__ASSUME_PRIVATE_FUTEX
+#ifndef __ASSUME_PRIVATE_FUTEX
 .Lpfoff:
        .word   PRIVATE_FUTEX - TLS_PRE_TCB_SIZE
 #endif
index b06fd96..e40771d 100644 (file)
@@ -115,7 +115,7 @@ pthread_rwlock_timedrdlock:
 
        /* Futex call.  */
        mov     r15, r7
-#if __ASSUME_PRIVATE_FUTEX
+#ifdef __ASSUME_PRIVATE_FUTEX
        mov     #PSHARED, r0
        mov.b   @(r0,r8), r5
        mov     #(FUTEX_PRIVATE_FLAG|FUTEX_WAIT), r0
@@ -193,7 +193,7 @@ pthread_rwlock_timedrdlock:
        rts
         mov    r3, r0
 
-#if !__ASSUME_PRIVATE_FUTEX
+#ifndef __ASSUME_PRIVATE_FUTEX
 .Lpfoff:
        .word   PRIVATE_FUTEX - TLS_PRE_TCB_SIZE
 #endif
index 4591309..dfe1379 100644 (file)
@@ -111,7 +111,7 @@ pthread_rwlock_timedwrlock:
 
        /* Futex call.  */
        mov     r15, r7
-#if __ASSUME_PRIVATE_FUTEX
+#ifdef __ASSUME_PRIVATE_FUTEX
        mov     #PSHARED, r0
        mov.b   @(r0,r8), r5
        mov     #(FUTEX_PRIVATE_FLAG|FUTEX_WAIT), r0
@@ -191,7 +191,7 @@ pthread_rwlock_timedwrlock:
        rts
         mov    r3, r0
 
-#if !__ASSUME_PRIVATE_FUTEX
+#ifndef __ASSUME_PRIVATE_FUTEX
 .Lpfoff:
        .word   PRIVATE_FUTEX - TLS_PRE_TCB_SIZE
 #endif
index 1504c1a..045b8b3 100644 (file)
@@ -85,7 +85,7 @@ __pthread_rwlock_unlock:
        bf      7f
 
 8:
-#if __ASSUME_PRIVATE_FUTEX
+#ifdef __ASSUME_PRIVATE_FUTEX
        mov     #PSHARED, r0
        mov.b   @(r0,r8), r5
        mov     #(FUTEX_PRIVATE_FLAG|FUTEX_WAKE), r0
@@ -177,7 +177,7 @@ __pthread_rwlock_unlock:
        bra     8b
         mov.l  @r15+, r4
 
-#if !__ASSUME_PRIVATE_FUTEX
+#ifndef __ASSUME_PRIVATE_FUTEX
 .Lpfoff:
        .word   PRIVATE_FUTEX - TLS_PRE_TCB_SIZE
 #endif
index 25dffe4..6de65cc 100644 (file)
@@ -72,7 +72,7 @@ __pthread_rwlock_wrlock:
 11:
        mov     r8, r4
        add     #WRITERS_WAKEUP, r4
-#if __ASSUME_PRIVATE_FUTEX
+#ifdef __ASSUME_PRIVATE_FUTEX
        mov     #PSHARED, r0
        mov.b   @(r0,r8), r5
        mov     #(FUTEX_PRIVATE_FLAG|FUTEX_WAIT), r0
@@ -174,7 +174,7 @@ __pthread_rwlock_wrlock:
        bra     7b
         mov    #0, r3
 
-#if !__ASSUME_PRIVATE_FUTEX
+#ifndef __ASSUME_PRIVATE_FUTEX
 .Lpfoff:
        .word   PRIVATE_FUTEX - TLS_PRE_TCB_SIZE
 #endif
index 4d0ea51..4f400a3 100644 (file)
@@ -15,4 +15,20 @@ union sparc_pthread_barrier
     } s;
 };
 
+struct sparc_new_sem
+{
+  unsigned int value;
+  unsigned char lock;
+  unsigned char private;
+  unsigned char pad[2];
+  unsigned long int nwaiters;
+};
+
+struct sparc_old_sem
+{
+  unsigned int value;
+  unsigned char lock;
+  unsigned char private;
+};
+
 #endif
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c b/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c
new file mode 100644 (file)
index 0000000..840032a
--- /dev/null
@@ -0,0 +1,93 @@
+/* Copyright (C) 2002, 2007 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <string.h>
+#include <semaphore.h>
+#include <lowlevellock.h>
+#include <shlib-compat.h>
+#include "semaphoreP.h"
+#include <kernel-features.h>
+
+
+int
+__new_sem_init (sem, pshared, value)
+     sem_t *sem;
+     int pshared;
+     unsigned int value;
+{
+  /* Parameter sanity check.  */
+  if (__builtin_expect (value > SEM_VALUE_MAX, 0))
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  /* Map to the internal type.  */
+  struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
+
+  /* Use the values the user provided.  */
+  memset (isem, '\0', sizeof (*isem));
+  isem->value = value;
+#ifdef __ASSUME_PRIVATE_FUTEX
+  isem->private = pshared ? 0 : FUTEX_PRIVATE_FLAG;
+#else
+  isem->private = pshared ? 0 : THREAD_GETMEM (THREAD_SELF,
+                                              header.private_futex);
+#endif
+
+  return 0;
+}
+versioned_symbol (libpthread, __new_sem_init, sem_init, GLIBC_2_1);
+
+
+
+#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
+int
+attribute_compat_text_section
+__old_sem_init (sem, pshared, value)
+     sem_t *sem;
+     int pshared;
+     unsigned int value;
+{
+  /* Parameter sanity check.  */
+  if (__builtin_expect (value > SEM_VALUE_MAX, 0))
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  /* Map to the internal type.  */
+  struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
+
+  /* Use the value the user provided.  */
+  memset (isem, '\0', sizeof (*isem));
+  isem->value = value;
+
+#ifdef __ASSUME_PRIVATE_FUTEX
+  isem->private = pshared ? 0 : FUTEX_PRIVATE_FLAG;
+#else
+  isem->private = pshared ? 0 : THREAD_GETMEM (THREAD_SELF,
+                                              header.private_futex);
+#endif
+
+  return 0;
+}
+compat_symbol (libpthread, __old_sem_init, sem_init, GLIBC_2_0);
+#endif
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c b/nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c
new file mode 100644 (file)
index 0000000..95964d0
--- /dev/null
@@ -0,0 +1,69 @@
+/* sem_post -- post to a POSIX semaphore.  SPARC version.
+   Copyright (C) 2003, 2004, 2007 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <sysdep.h>
+#include <lowlevellock.h>
+#include <internaltypes.h>
+#include <semaphore.h>
+
+#include <shlib-compat.h>
+
+int
+__new_sem_post (sem_t *sem)
+{
+  struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
+
+  int nr = atomic_increment_val (&isem->value);
+  atomic_full_barrier ();
+  if (isem->nwaiters > 0)
+    {
+      int err = lll_futex_wake (&isem->value, 1,
+                               isem->private ^ FUTEX_PRIVATE_FLAG);
+      if (__builtin_expect (err, 0) < 0)
+       {
+         __set_errno (-err);
+         return -1;
+       }
+    }
+  return 0;
+}
+versioned_symbol (libpthread, __new_sem_post, sem_post, GLIBC_2_1);
+
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_1)
+int
+attribute_compat_text_section
+__old_sem_post (sem_t *sem)
+{
+  struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
+
+  int nr = atomic_increment_val (&isem->value);
+  int err = lll_futex_wake (&isem->value, 1,
+                           isem->private ^ FUTEX_PRIVATE_FLAG);
+  if (__builtin_expect (err, 0) < 0)
+    {
+      __set_errno (-err);
+      return -1;
+    }
+  return 0;
+}
+compat_symbol (libpthread, __old_sem_post, sem_post, GLIBC_2_0);
+#endif
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sem_timedwait.c b/nptl/sysdeps/unix/sysv/linux/sparc/sem_timedwait.c
new file mode 100644 (file)
index 0000000..01952f3
--- /dev/null
@@ -0,0 +1,112 @@
+/* sem_timedwait -- wait on a semaphore.  Generic futex-using version.
+   Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <sysdep.h>
+#include <lowlevellock.h>
+#include <internaltypes.h>
+#include <semaphore.h>
+
+#include <pthreadP.h>
+#include <shlib-compat.h>
+
+
+extern void __sem_wait_cleanup (void *arg) attribute_hidden;
+
+
+int
+sem_timedwait (sem_t *sem, const struct timespec *abstime)
+{
+  struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
+  int err;
+
+  if (atomic_decrement_if_positive (&isem->value) > 0)
+    return 0;
+
+  if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  atomic_increment (&isem->nwaiters);
+
+  pthread_cleanup_push (__sem_wait_cleanup, isem);
+
+  while (1)
+    {
+      struct timeval tv;
+      struct timespec rt;
+      int sec, nsec;
+
+      /* Get the current time.  */
+      __gettimeofday (&tv, NULL);
+
+      /* Compute relative timeout.  */
+      sec = abstime->tv_sec - tv.tv_sec;
+      nsec = abstime->tv_nsec - tv.tv_usec * 1000;
+      if (nsec < 0)
+       {
+         nsec += 1000000000;
+         --sec;
+       }
+
+      /* Already timed out?  */
+      err = -ETIMEDOUT;
+      if (sec < 0)
+       {
+         __set_errno (ETIMEDOUT);
+         err = -1;
+         break;
+       }
+
+      /* Do wait.  */
+      rt.tv_sec = sec;
+      rt.tv_nsec = nsec;
+
+      /* Enable asynchronous cancellation.  Required by the standard.  */
+      int oldtype = __pthread_enable_asynccancel ();
+
+      err = lll_futex_timed_wait (&isem->value, 0, &rt,
+                                 isem->private ^ FUTEX_PRIVATE_FLAG);
+
+      /* Disable asynchronous cancellation.  */
+      __pthread_disable_asynccancel (oldtype);
+
+      if (err != 0 && err != -EWOULDBLOCK)
+       {
+         __set_errno (-err);
+         err = -1;
+         break;
+       }
+
+      if (atomic_decrement_if_positive (&isem->value) > 0)
+       {
+         err = 0;
+         break;
+       }
+    }
+
+  pthread_cleanup_pop (0);
+
+  atomic_decrement (&isem->nwaiters);
+
+  return err;
+}
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sem_wait.c b/nptl/sysdeps/unix/sysv/linux/sparc/sem_wait.c
new file mode 100644 (file)
index 0000000..a846f20
--- /dev/null
@@ -0,0 +1,117 @@
+/* sem_wait -- wait on a semaphore.  Generic futex-using version.
+   Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <errno.h>
+#include <sysdep.h>
+#include <lowlevellock.h>
+#include <internaltypes.h>
+#include <semaphore.h>
+
+#include <pthreadP.h>
+#include <shlib-compat.h>
+
+
+void
+attribute_hidden
+__sem_wait_cleanup (void *arg)
+{
+  struct sparc_new_sem *isem = (struct sparc_new_sem *) arg;
+
+  atomic_decrement (&isem->nwaiters);
+}
+
+
+int
+__new_sem_wait (sem_t *sem)
+{
+  struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
+  int err;
+
+  if (atomic_decrement_if_positive (&isem->value) > 0)
+    return 0;
+
+  atomic_increment (&isem->nwaiters);
+
+  pthread_cleanup_push (__sem_wait_cleanup, isem);
+
+  while (1)
+    {
+      /* Enable asynchronous cancellation.  Required by the standard.  */
+      int oldtype = __pthread_enable_asynccancel ();
+
+      err = lll_futex_wait (&isem->value, 0,
+                           isem->private ^ FUTEX_PRIVATE_FLAG);
+
+      /* Disable asynchronous cancellation.  */
+      __pthread_disable_asynccancel (oldtype);
+
+      if (err != 0 && err != -EWOULDBLOCK)
+       {
+         __set_errno (-err);
+         err = -1;
+         break;
+       }
+
+      if (atomic_decrement_if_positive (&isem->value) > 0)
+       {
+         err = 0;
+         break;
+       }
+    }
+
+  pthread_cleanup_pop (0);
+
+  atomic_decrement (&isem->nwaiters);
+
+  return err;
+}
+versioned_symbol (libpthread, __new_sem_wait, sem_wait, GLIBC_2_1);
+
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_1)
+int
+attribute_compat_text_section
+__old_sem_wait (sem_t *sem)
+{
+  struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
+  int err;
+
+  do
+    {
+      if (atomic_decrement_if_positive (&isem->value) > 0)
+       return 0;
+
+      /* Enable asynchronous cancellation.  Required by the standard.  */
+      int oldtype = __pthread_enable_asynccancel ();
+
+      err = lll_futex_wait (&isem->value, 0,
+                           isem->private ^ FUTEX_PRIVATE_FLAG);
+
+      /* Disable asynchronous cancellation.  */
+      __pthread_disable_asynccancel (oldtype);
+    }
+  while (err == 0 || err == -EWOULDBLOCK);
+
+  __set_errno (-err);
+  return -1;
+}
+
+compat_symbol (libpthread, __old_sem_wait, sem_wait, GLIBC_2_0);
+#endif
index 1ee9b47..682307e 100644 (file)
@@ -36,9 +36,9 @@ __lll_lock_wait_private (int *futex)
   while (atomic_compare_and_exchange_val_24_acq (futex, 2, 0) != 0);
 }
 
-#ifdef IS_IN_libpthread
-/* These functions don't get included in libc.so  */
 
+/* These functions don't get included in libc.so  */
+#ifdef IS_IN_libpthread
 void
 __lll_lock_wait (int *futex, int private)
 {
@@ -121,8 +121,9 @@ __lll_timedwait_tid (int *tidp, const struct timespec *abstime)
       if (rt.tv_sec < 0)
        return ETIMEDOUT;
 
-      /* Wait until thread terminates.  */
-      if (lll_futex_timed_wait (tidp, tid, &rt) == -ETIMEDOUT)
+      /* Wait until thread terminates.  The kernel so far does not use
+        the private futex operations for this.  */
+      if (lll_futex_timed_wait (tidp, tid, &rt, LLL_SHARED) == -ETIMEDOUT)
        return ETIMEDOUT;
     }
 
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c
deleted file mode 100644 (file)
index dffd8c7..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 2002, 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <semaphore.h>
-#include <lowlevellock.h>
-#include <shlib-compat.h>
-#include "semaphoreP.h"
-
-struct sparc_sem
-{
-  struct sem s;
-  unsigned char lock;
-};
-
-
-int
-__new_sem_init (sem, pshared, value)
-     sem_t *sem;
-     int pshared;
-     unsigned int value;
-{
-  /* Parameter sanity check.  */
-  if (__builtin_expect (value > SEM_VALUE_MAX, 0))
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  /* Map to the internal type.  */
-  struct sparc_sem *isem = (struct sparc_sem *) sem;
-
-  /* Use the value the user provided.  */
-  isem->s.count = value;
-
-  isem->lock = 0;
-
-  /* We can completely ignore the PSHARED parameter since inter-process
-     use needs no special preparation.  */
-
-  return 0;
-}
-versioned_symbol (libpthread, __new_sem_init, sem_init, GLIBC_2_1);
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
-strong_alias (__new_sem_init, __old_sem_init)
-compat_symbol (libpthread, __old_sem_init, sem_init, GLIBC_2_0);
-#endif
index 527aedf..dbd34f2 100644 (file)
 int
 __new_sem_post (sem_t *sem)
 {
-  int *futex = (int *) sem, nr;
+  struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
+  int nr;
 
   if (__atomic_is_v9)
-    nr = atomic_increment_val (futex);
+    nr = atomic_increment_val (&isem->value);
   else
     {
-      __sparc32_atomic_do_lock24 (futex + 1);
-      nr = ++*futex;
-      __sparc32_atomic_do_unlock24 (futex + 1);
+      __sparc32_atomic_do_lock24 (&isem->lock);
+      nr = ++(isem->value);
+      __sparc32_atomic_do_unlock24 (&isem->lock);
     }
-  int err = lll_futex_wake (futex, nr,
-                           // XYZ check mutex flag
-                           LLL_SHARED);
+  atomic_full_barrier ();
+  if (isem->nwaiters > 0)
+    {
+      int err = lll_futex_wake (&isem->value, 1,
+                               isem->private ^ FUTEX_PRIVATE_FLAG);
+      if (__builtin_expect (err, 0) < 0)
+       {
+         __set_errno (-err);
+         return -1;
+       }
+    }
+  return 0;
+}
+versioned_symbol (libpthread, __new_sem_post, sem_post, GLIBC_2_1);
+
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_1)
+int
+attribute_compat_text_section
+__old_sem_post (sem_t *sem)
+{
+  struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
+  int nr;
+
+  if (__atomic_is_v9)
+    nr = atomic_increment_val (&isem->value);
+  else
+    {
+      __sparc32_atomic_do_lock24 (&isem->lock);
+      nr = ++(isem->value);
+      __sparc32_atomic_do_unlock24 (&isem->lock);
+    }
+  int err = lll_futex_wake (&isem->value, 1,
+                           isem->private ^ FUTEX_PRIVATE_FLAG);
   if (__builtin_expect (err, 0) < 0)
     {
       __set_errno (-err);
@@ -49,8 +81,5 @@ __new_sem_post (sem_t *sem)
     }
   return 0;
 }
-versioned_symbol (libpthread, __new_sem_post, sem_post, GLIBC_2_1);
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_1)
-strong_alias (__new_sem_post, __old_sem_post)
 compat_symbol (libpthread, __old_sem_post, sem_post, GLIBC_2_0);
 #endif
index efcc9e9..55f3e2e 100644 (file)
@@ -1,5 +1,5 @@
 /* sem_timedwait -- wait on a semaphore.  SPARC version.
-   Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
 
 #include <shlib-compat.h>
 
 
+extern void __sem_wait_cleanup (void *arg) attribute_hidden;
+
+
 int
 sem_timedwait (sem_t *sem, const struct timespec *abstime)
 {
-  /* First check for cancellation.  */
-  CANCELLATION_P (THREAD_SELF);
-
-  int *futex = (int *) sem;
-  int val;
+  struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
   int err;
+  int val;
 
-  if (*futex > 0)
+  if (__atomic_is_v9)
+    val = atomic_decrement_if_positive (&isem->value);
+  else
     {
-      if (__atomic_is_v9)
-       val = atomic_decrement_if_positive (futex);
-      else
-       {
-         __sparc32_atomic_do_lock24 (futex + 1);
-         val = *futex;
-         if (val > 0)
-           *futex = val - 1;
-         __sparc32_atomic_do_unlock24 (futex + 1);
-       }
+      __sparc32_atomic_do_lock24 (&isem->lock);
+      val = isem->value;
       if (val > 0)
-       return 0;
+        isem->value = val - 1;
+      __sparc32_atomic_do_unlock24 (&isem->lock);
     }
 
-  err = -EINVAL;
+  if (val > 0)
+    return 0;
+
   if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
-    goto error_return;
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  if (__atomic_is_v9)
+    atomic_increment (&isem->nwaiters);
+  else
+    {
+      __sparc32_atomic_do_lock24 (&isem->lock);
+      isem->nwaiters++;
+      __sparc32_atomic_do_unlock24 (&isem->lock);
+    }
 
-  do
+  pthread_cleanup_push (__sem_wait_cleanup, isem);
+
+  while (1)
     {
       struct timeval tv;
       struct timespec rt;
@@ -79,7 +90,11 @@ sem_timedwait (sem_t *sem, const struct timespec *abstime)
       /* Already timed out?  */
       err = -ETIMEDOUT;
       if (sec < 0)
-       goto error_return;
+       {
+         __set_errno (ETIMEDOUT);
+         err = -1;
+         break;
+       }
 
       /* Do wait.  */
       rt.tv_sec = sec;
@@ -88,30 +103,47 @@ sem_timedwait (sem_t *sem, const struct timespec *abstime)
       /* Enable asynchronous cancellation.  Required by the standard.  */
       int oldtype = __pthread_enable_asynccancel ();
 
-      err = lll_futex_timed_wait (futex, 0, &rt);
+      err = lll_futex_timed_wait (&isem->value, 0, &rt,
+                                 isem->private ^ FUTEX_PRIVATE_FLAG);
 
       /* Disable asynchronous cancellation.  */
       __pthread_disable_asynccancel (oldtype);
 
       if (err != 0 && err != -EWOULDBLOCK)
-       goto error_return;
+       {
+         __set_errno (-err);
+         err = -1;
+         break;
+       }
 
       if (__atomic_is_v9)
-       val = atomic_decrement_if_positive (futex);
+       val = atomic_decrement_if_positive (&isem->value);
       else
        {
-         __sparc32_atomic_do_lock24 (futex + 1);
-         val = *futex;
+         __sparc32_atomic_do_lock24 (&isem->lock);
+         val = isem->value;
          if (val > 0)
-           *futex = val - 1;
-         __sparc32_atomic_do_unlock24 (futex + 1);
+           isem->value = val - 1;
+         __sparc32_atomic_do_unlock24 (&isem->lock);
+       }
+
+      if (val > 0)
+       {
+         err = 0;
+         break;
        }
     }
-  while (val <= 0);
 
-  return 0;
+  pthread_cleanup_pop (0);
+
+  if (__atomic_is_v9)
+    atomic_decrement (&isem->nwaiters);
+  else
+    {
+      __sparc32_atomic_do_lock24 (&isem->lock);
+      isem->nwaiters--;
+      __sparc32_atomic_do_unlock24 (&isem->lock);
+    }
 
- error_return:
-  __set_errno (-err);
-  return -1;
+  return err;
 }
index 429494e..4db8972 100644 (file)
@@ -1,5 +1,5 @@
 /* sem_trywait -- wait on a semaphore.  SPARC version.
-   Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
 
 int
 __new_sem_trywait (sem_t *sem)
 {
-  int *futex = (int *) sem;
+  struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
   int val;
 
-  if (*futex > 0)
+  if (isem->value > 0)
     {
       if (__atomic_is_v9)
-       val = atomic_decrement_if_positive (futex);
+       val = atomic_decrement_if_positive (&isem->value);
       else
        {
-         __sparc32_atomic_do_lock24 (futex + 1);
-         val = *futex;
+         __sparc32_atomic_do_lock24 (&isem->lock);
+         val = isem->value;
          if (val > 0)
-           *futex = val - 1;
-         __sparc32_atomic_do_unlock24 (futex + 1);
+           isem->value = val - 1;
+         __sparc32_atomic_do_unlock24 (&isem->lock);
        }
       if (val > 0)
        return 0;
index d9fcdcd..3c71c96 100644 (file)
@@ -1,5 +1,5 @@
-/* sem_wait -- wait on a semaphore.  SPARC version.
-   Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+/* sem_wait -- wait on a semaphore.  Generic futex-using version.
+   Copyright (C) 2003, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
 
 #include <shlib-compat.h>
 
 
+void
+attribute_hidden
+__sem_wait_cleanup (void *arg)
+{
+  struct sparc_new_sem *isem = (struct sparc_new_sem *) arg;
+
+  if (__atomic_is_v9)
+    atomic_decrement (&isem->nwaiters);
+  else
+    {
+      __sparc32_atomic_do_lock24 (&isem->lock);
+      isem->nwaiters--;
+      __sparc32_atomic_do_unlock24 (&isem->lock);
+    }
+}
+
+
 int
 __new_sem_wait (sem_t *sem)
 {
-  /* First check for cancellation.  */
-  CANCELLATION_P (THREAD_SELF);
+  struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
+  int err;
+  int val;
+
+  if (__atomic_is_v9)
+    val = atomic_decrement_if_positive (&isem->value);
+  else
+    {
+      __sparc32_atomic_do_lock24 (&isem->lock);
+      val = isem->value;
+      if (val > 0)
+       isem->value = val - 1;
+      else
+       isem->nwaiters++;
+      __sparc32_atomic_do_unlock24 (&isem->lock);
+    }
+
+  if (val > 0)
+    return 0;
+
+  if (__atomic_is_v9)
+    atomic_increment (&isem->nwaiters);
+  else
+    /* Already done above while still holding isem->lock.  */;
+
+  pthread_cleanup_push (__sem_wait_cleanup, isem);
+
+  while (1)
+    {
+      /* Enable asynchronous cancellation.  Required by the standard.  */
+      int oldtype = __pthread_enable_asynccancel ();
+
+      err = lll_futex_wait (&isem->value, 0,
+                           isem->private ^ FUTEX_PRIVATE_FLAG);
+
+      /* Disable asynchronous cancellation.  */
+      __pthread_disable_asynccancel (oldtype);
+
+      if (err != 0 && err != -EWOULDBLOCK)
+       {
+         __set_errno (-err);
+         err = -1;
+         break;
+       }
+
+      if (__atomic_is_v9)
+       val = atomic_decrement_if_positive (&isem->value);
+      else
+       {
+         __sparc32_atomic_do_lock24 (&isem->lock);
+         val = isem->value;
+         if (val > 0)
+           isem->value = val - 1;
+         __sparc32_atomic_do_unlock24 (&isem->lock);
+       }
+
+      if (val > 0)
+       {
+         err = 0;
+         break;
+       }
+    }
+
+  pthread_cleanup_pop (0);
 
-  int *futex = (int *) sem;
+  if (__atomic_is_v9)
+    atomic_decrement (&isem->nwaiters);
+  else
+    {
+      __sparc32_atomic_do_lock24 (&isem->lock);
+      isem->nwaiters--;
+      __sparc32_atomic_do_unlock24 (&isem->lock);
+    }
+
+  return err;
+}
+versioned_symbol (libpthread, __new_sem_wait, sem_wait, GLIBC_2_1);
+
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_1)
+int
+attribute_compat_text_section
+__old_sem_wait (sem_t *sem)
+{
+  struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
   int err;
+  int val;
 
   do
     {
-      int val;
       if (__atomic_is_v9)
-       val = atomic_decrement_if_positive (futex);
+       val = atomic_decrement_if_positive (&isem->value);
       else
        {
-         __sparc32_atomic_do_lock24 (futex + 1);
-         val = *futex;
+         __sparc32_atomic_do_lock24 (&isem->lock);
+         val = isem->value;
          if (val > 0)
-           *futex = val - 1;
-         __sparc32_atomic_do_unlock24 (futex + 1);
+           isem->value = val - 1;
+         __sparc32_atomic_do_unlock24 (&isem->lock);
        }
+
       if (val > 0)
        return 0;
 
       /* Enable asynchronous cancellation.  Required by the standard.  */
       int oldtype = __pthread_enable_asynccancel ();
 
-      err = lll_futex_wait (futex, 0);
+      err = lll_futex_wait (futex, 0,
+                           isem->private ^ FUTEX_PRIVATE_FLAG);
 
       /* Disable asynchronous cancellation.  */
       __pthread_disable_asynccancel (oldtype);
@@ -67,8 +167,5 @@ __new_sem_wait (sem_t *sem)
   return -1;
 }
 
-versioned_symbol (libpthread, __new_sem_wait, sem_wait, GLIBC_2_1);
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_1)
-strong_alias (__new_sem_wait, __old_sem_wait)
 compat_symbol (libpthread, __old_sem_wait, sem_wait, GLIBC_2_0);
 #endif
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c
deleted file mode 100644 (file)
index b2ebc4c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include "../../../../../../../sem_init.c"
diff --git a/po/bg.po b/po/bg.po
new file mode 100644 (file)
index 0000000..279476d
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,6464 @@
+# translation of libc.bg.po to Bulgarian
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# This file is distributed under the same license as the glibc package
+# Anton Zinoviev <zinoviev@debian.org>, 2007
+#
+# I have translated only the messages in sysdeps/gnu/errlist.c
+#
+# This file should be sent to robot@translationproject.org with the
+# following subject line: TP-Robot libc-2.6.1.bg.po
+msgid ""
+msgstr ""
+"Project-Id-Version: libc 2.6.1\n"
+"POT-Creation-Date: 2007-08-04 11:37+0200\n"
+"PO-Revision-Date: 2007-08-14 10:01+0300\n"
+"Last-Translator: Anton Zinoviev <zinoviev@debian.org>\n"
+"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"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 ""
+
+#: argp/argp-help.c:238
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr ""
+
+#: argp/argp-help.c:251
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr ""
+
+#: 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:1601
+msgid "Usage:"
+msgstr ""
+
+#: argp/argp-help.c:1605
+msgid "  or: "
+msgstr ""
+
+#: argp/argp-help.c:1617
+msgid " [OPTION...]"
+msgstr ""
+
+#: argp/argp-help.c:1644
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr ""
+
+#: argp/argp-help.c:1672
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr ""
+
+#: argp/argp-parse.c:102
+msgid "Give this help list"
+msgstr ""
+
+#: argp/argp-parse.c:103
+msgid "Give a short usage message"
+msgstr ""
+
+#: argp/argp-parse.c:104
+msgid "Set the program name"
+msgstr ""
+
+#: argp/argp-parse.c:106
+msgid "Hang for SECS seconds (default 3600)"
+msgstr ""
+
+#: argp/argp-parse.c:167
+#, fuzzy
+msgid "Print program version"
+msgstr "Неправилна версия на RPC-програма"
+
+#: argp/argp-parse.c:183
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr ""
+
+#: argp/argp-parse.c:623
+#, fuzzy, c-format
+msgid "%s: Too many arguments\n"
+msgstr "Твърде много потребители"
+
+#: argp/argp-parse.c:766
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr ""
+
+#: assert/assert-perr.c:57
+#, c-format
+msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
+msgstr ""
+
+#: assert/assert.c:57
+#, c-format
+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
+msgid "NAME"
+msgstr ""
+
+#: catgets/gencat.c:111
+msgid "Create C header file NAME containing symbol definitions"
+msgstr ""
+
+#: catgets/gencat.c:113
+msgid "Do not use existing catalog, force new output file"
+msgstr ""
+
+#: catgets/gencat.c:114 nss/makedb.c:61
+msgid "Write output to file NAME"
+msgstr ""
+
+#: catgets/gencat.c:119
+msgid ""
+"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 ""
+
+#: catgets/gencat.c:124
+msgid ""
+"-o OUTPUT-FILE [INPUT-FILE]...\n"
+"[OUTPUT-FILE [INPUT-FILE]...]"
+msgstr ""
+
+#: catgets/gencat.c:232 debug/pcprofiledump.c:199 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 ""
+
+#: catgets/gencat.c:246 debug/xtrace.sh:64 elf/ldconfig.c:287
+#: 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"
+"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"
+msgstr ""
+
+#: catgets/gencat.c:251 debug/xtrace.sh:68 elf/ldconfig.c:292 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 ""
+
+#: catgets/gencat.c:282
+msgid "*standard input*"
+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 ""
+
+#: catgets/gencat.c:417 catgets/gencat.c:494
+#, fuzzy
+msgid "illegal set number"
+msgstr "Неправилно позициониране"
+
+#: catgets/gencat.c:444
+msgid "duplicate set definition"
+msgstr ""
+
+#: catgets/gencat.c:446 catgets/gencat.c:623 catgets/gencat.c:677
+msgid "this is the first definition"
+msgstr ""
+
+#: catgets/gencat.c:522
+#, c-format
+msgid "unknown set `%s'"
+msgstr ""
+
+#: catgets/gencat.c:563
+#, fuzzy
+msgid "invalid quote character"
+msgstr "Неправилен обмен"
+
+#: catgets/gencat.c:576
+#, c-format
+msgid "unknown directive `%s': line ignored"
+msgstr ""
+
+#: catgets/gencat.c:621
+msgid "duplicated message number"
+msgstr ""
+
+#: catgets/gencat.c:674
+msgid "duplicated message identifier"
+msgstr ""
+
+#: catgets/gencat.c:731
+msgid "invalid character: message ignored"
+msgstr ""
+
+#: catgets/gencat.c:774
+#, fuzzy
+msgid "invalid line"
+msgstr "Неправилен слот"
+
+#: catgets/gencat.c:828
+msgid "malformed line ignored"
+msgstr ""
+
+#: catgets/gencat.c:992 catgets/gencat.c:1033 nss/makedb.c:183
+#, c-format
+msgid "cannot open output file `%s'"
+msgstr ""
+
+#: catgets/gencat.c:1195 locale/programs/linereader.c:560
+#, fuzzy
+msgid "invalid escape sequence"
+msgstr "Неправилен обмен"
+
+#: catgets/gencat.c:1217
+#, fuzzy
+msgid "unterminated message"
+msgstr "Лошо съобщение"
+
+#: catgets/gencat.c:1241
+#, c-format
+msgid "while opening old catalog file"
+msgstr ""
+
+#: catgets/gencat.c:1332
+#, fuzzy, c-format
+msgid "conversion modules not available"
+msgstr "Недостъпен протокол"
+
+#: catgets/gencat.c:1358
+#, c-format
+msgid "cannot determine escape character"
+msgstr ""
+
+#: debug/pcprofiledump.c:52
+msgid "Don't buffer output"
+msgstr ""
+
+#: debug/pcprofiledump.c:57
+msgid "Dump information generated by PC profiling."
+msgstr ""
+
+#: debug/pcprofiledump.c:60
+msgid "[FILE]"
+msgstr ""
+
+#: debug/pcprofiledump.c:100
+#, c-format
+msgid "cannot open input file"
+msgstr ""
+
+#: debug/pcprofiledump.c:106
+#, c-format
+msgid "cannot read header"
+msgstr ""
+
+#: debug/pcprofiledump.c:170
+#, c-format
+msgid "invalid pointer size"
+msgstr ""
+
+#: debug/xtrace.sh:27 debug/xtrace.sh:45
+msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n"
+msgstr ""
+
+#: debug/xtrace.sh:33
+msgid "Try \\`xtrace --help' for more information.\\n"
+msgstr ""
+
+#: debug/xtrace.sh:39
+msgid "xtrace: option \\`$1' requires an argument.\\n"
+msgstr ""
+
+#: debug/xtrace.sh:46
+msgid ""
+"Trace execution of program by printing currently executed function.\n"
+"\n"
+"     --data=FILE          Don't run the program, just print the data from FILE.\n"
+"\n"
+"   -?,--help              Print this help and exit\n"
+"      --usage             Give a short usage message\n"
+"   -V,--version           Print version information and exit\n"
+"\n"
+"Mandatory arguments to long options are also mandatory for any 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
+msgid "xtrace: unrecognized option \\`$1'\\n"
+msgstr ""
+
+#: debug/xtrace.sh:138
+msgid "No program name given\\n"
+msgstr ""
+
+#: debug/xtrace.sh:146
+#, sh-format
+msgid "executable \\`$program' not found\\n"
+msgstr ""
+
+#: debug/xtrace.sh:150
+#, sh-format
+msgid "\\`$program' is no executable\\n"
+msgstr ""
+
+#: dlfcn/dlinfo.c:64
+msgid "RTLD_SELF used in code not dynamically loaded"
+msgstr ""
+
+#: dlfcn/dlinfo.c:73
+msgid "unsupported dlinfo request"
+msgstr ""
+
+#: dlfcn/dlmopen.c:64
+#, fuzzy
+msgid "invalid namespace"
+msgstr "Неправилен аргумент"
+
+#: dlfcn/dlmopen.c:69
+#, fuzzy
+msgid "invalid mode"
+msgstr "Неправилен слот"
+
+#: dlfcn/dlopen.c:64
+#, fuzzy
+msgid "invalid mode parameter"
+msgstr "Неправилен аргумент"
+
+#: elf/cache.c:68
+msgid "unknown"
+msgstr ""
+
+#: elf/cache.c:111
+msgid "Unknown OS"
+msgstr ""
+
+#: elf/cache.c:116
+#, c-format
+msgid ", OS ABI: %s %d.%d.%d"
+msgstr ""
+
+#: elf/cache.c:142 elf/ldconfig.c:1236
+#, c-format
+msgid "Can't open cache file %s\n"
+msgstr ""
+
+#: elf/cache.c:154
+#, c-format
+msgid "mmap of cache file failed.\n"
+msgstr ""
+
+#: elf/cache.c:158 elf/cache.c:168
+#, c-format
+msgid "File is not a cache file.\n"
+msgstr ""
+
+#: elf/cache.c:201 elf/cache.c:211
+#, c-format
+msgid "%d libs found in cache `%s'\n"
+msgstr ""
+
+#: elf/cache.c:410
+#, c-format
+msgid "Can't remove old temporary cache file %s"
+msgstr ""
+
+#: elf/cache.c:417
+#, c-format
+msgid "Can't create temporary cache file %s"
+msgstr ""
+
+#: elf/cache.c:425 elf/cache.c:435 elf/cache.c:439 elf/cache.c:443
+#, c-format
+msgid "Writing of cache data failed"
+msgstr ""
+
+#: elf/cache.c:450
+#, c-format
+msgid "Changing access rights of %s to %#o failed"
+msgstr ""
+
+#: elf/cache.c:455
+#, c-format
+msgid "Renaming of %s to %s failed"
+msgstr ""
+
+#: 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
+msgid "DST not allowed in SUID/SGID programs"
+msgstr ""
+
+#: elf/dl-deps.c:125 elf/dl-open.c:282
+msgid "empty dynamic string token substitution"
+msgstr ""
+
+#: elf/dl-deps.c:131
+#, c-format
+msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n"
+msgstr ""
+
+#: elf/dl-deps.c:472
+#, fuzzy
+msgid "cannot allocate dependency list"
+msgstr "Не може да се задели памет"
+
+#: elf/dl-deps.c:505 elf/dl-deps.c:560
+#, fuzzy
+msgid "cannot allocate symbol search list"
+msgstr "Не може да се задели памет"
+
+#: elf/dl-deps.c:545
+msgid "Filters not supported with LD_TRACE_PRELINKING"
+msgstr ""
+
+#: elf/dl-error.c:77
+msgid "DYNAMIC LINKER BUG!!!"
+msgstr ""
+
+#: elf/dl-error.c:124
+#, fuzzy
+msgid "error while loading shared libraries"
+msgstr "Опитва се свързване в твърде много споделени библиотеки"
+
+#: elf/dl-fptr.c:88
+msgid "cannot map pages for fdesc table"
+msgstr ""
+
+#: elf/dl-fptr.c:192
+msgid "cannot map pages for fptr table"
+msgstr ""
+
+#: elf/dl-fptr.c:221
+msgid "internal error: symidx out of range of fptr table"
+msgstr ""
+
+#: elf/dl-load.c:372
+#, fuzzy
+msgid "cannot allocate name record"
+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:565
+msgid "cannot create RUNPATH/RPATH copy"
+msgstr ""
+
+#: elf/dl-load.c:653
+msgid "cannot create search path array"
+msgstr ""
+
+#: elf/dl-load.c:864
+#, fuzzy
+msgid "cannot stat shared object"
+msgstr "Не може да се изпълнява директно споделена библиотека"
+
+#: elf/dl-load.c:934
+msgid "cannot open zero fill device"
+msgstr ""
+
+#: elf/dl-load.c:979 elf/dl-load.c:2224
+msgid "cannot create shared object descriptor"
+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:1042
+msgid "ELF load command alignment not page-aligned"
+msgstr ""
+
+#: elf/dl-load.c:1049
+msgid "ELF load command address/offset not properly aligned"
+msgstr ""
+
+#: elf/dl-load.c:1132
+msgid "cannot allocate TLS data structures for initial thread"
+msgstr ""
+
+#: elf/dl-load.c:1155
+msgid "cannot handle TLS data"
+msgstr ""
+
+#: elf/dl-load.c:1174
+msgid "object file has no loadable segments"
+msgstr ""
+
+#: elf/dl-load.c:1210
+msgid "failed to map segment from shared object"
+msgstr ""
+
+#: elf/dl-load.c:1236
+msgid "cannot dynamically load executable"
+msgstr ""
+
+#: elf/dl-load.c:1298
+msgid "cannot change memory protections"
+msgstr ""
+
+#: elf/dl-load.c:1317
+msgid "cannot map zero-fill pages"
+msgstr ""
+
+#: elf/dl-load.c:1331
+msgid "object file has no dynamic section"
+msgstr ""
+
+#: elf/dl-load.c:1354
+msgid "shared object cannot be dlopen()ed"
+msgstr ""
+
+#: elf/dl-load.c:1367
+#, fuzzy
+msgid "cannot allocate memory for program header"
+msgstr "Не може да се задели памет"
+
+#: elf/dl-load.c:1384 elf/dl-open.c:218
+#, fuzzy
+msgid "invalid caller"
+msgstr "Неправилен обмен"
+
+#: elf/dl-load.c:1423
+msgid "cannot enable executable stack as shared object requires"
+msgstr ""
+
+#: elf/dl-load.c:1436
+#, fuzzy
+msgid "cannot close file descriptor"
+msgstr "Неправилен файлов дескриптор"
+
+#: elf/dl-load.c:1478
+msgid "cannot create searchlist"
+msgstr ""
+
+#: elf/dl-load.c:1656
+#, fuzzy
+msgid "file too short"
+msgstr "Твърде голям файл"
+
+#: elf/dl-load.c:1685
+msgid "invalid ELF header"
+msgstr ""
+
+#: elf/dl-load.c:1697
+msgid "ELF file data encoding not big-endian"
+msgstr ""
+
+#: elf/dl-load.c:1699
+msgid "ELF file data encoding not little-endian"
+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
+msgid "ELF file version does not match current one"
+msgstr ""
+
+#: elf/dl-load.c:1727
+msgid "only ET_DYN and ET_EXEC can be loaded"
+msgstr ""
+
+#: elf/dl-load.c:1733
+msgid "ELF file's phentsize not the expected size"
+msgstr ""
+
+#: elf/dl-load.c:2240
+msgid "wrong ELF class: ELFCLASS64"
+msgstr ""
+
+#: elf/dl-load.c:2241
+msgid "wrong ELF class: ELFCLASS32"
+msgstr ""
+
+#: elf/dl-load.c:2244
+msgid "cannot open shared object file"
+msgstr ""
+
+#: elf/dl-lookup.c:261
+#, fuzzy
+msgid "relocation error"
+msgstr "Грешка при удостоверяване (authentication)"
+
+#: elf/dl-lookup.c:289
+msgid "symbol lookup error"
+msgstr ""
+
+#: elf/dl-open.c:114
+msgid "cannot extend global scope"
+msgstr ""
+
+#: elf/dl-open.c:512
+msgid "TLS generation counter wrapped!  Please report this."
+msgstr ""
+
+#: elf/dl-open.c:549
+msgid "invalid mode for dlopen()"
+msgstr ""
+
+#: elf/dl-open.c:566
+msgid "no more namespaces available for dlmopen()"
+msgstr ""
+
+#: elf/dl-open.c:579
+msgid "invalid target namespace in dlmopen()"
+msgstr ""
+
+#: elf/dl-reloc.c:54
+#, fuzzy
+msgid "cannot allocate memory in static TLS block"
+msgstr "Не може да се задели памет"
+
+#: elf/dl-reloc.c:196
+msgid "cannot make segment writable for relocation"
+msgstr ""
+
+#: elf/dl-reloc.c:277
+#, c-format
+msgid "%s: no PLTREL found in object %s\n"
+msgstr ""
+
+#: elf/dl-reloc.c:288
+#, c-format
+msgid "%s: out of memory to store relocation results for %s\n"
+msgstr ""
+
+#: elf/dl-reloc.c:304
+msgid "cannot restore segment prot after reloc"
+msgstr ""
+
+#: elf/dl-reloc.c:329
+msgid "cannot apply additional memory protection after relocation"
+msgstr ""
+
+#: elf/dl-sym.c:161
+msgid "RTLD_NEXT used in code not dynamically loaded"
+msgstr ""
+
+#: elf/dl-sysdep.c:474 elf/dl-sysdep.c:486
+msgid "cannot create capability list"
+msgstr ""
+
+#: elf/dl-tls.c:825
+msgid "cannot create TLS data structures"
+msgstr ""
+
+#: elf/dl-version.c:303
+msgid "cannot allocate version reference table"
+msgstr ""
+
+#: elf/ldconfig.c:135
+msgid "Print cache"
+msgstr ""
+
+#: elf/ldconfig.c:136
+msgid "Generate verbose messages"
+msgstr ""
+
+#: elf/ldconfig.c:137
+msgid "Don't build cache"
+msgstr ""
+
+#: elf/ldconfig.c:138
+msgid "Don't generate links"
+msgstr ""
+
+#: elf/ldconfig.c:139
+msgid "Change to and use ROOT as root directory"
+msgstr ""
+
+#: elf/ldconfig.c:139
+msgid "ROOT"
+msgstr ""
+
+#: elf/ldconfig.c:140
+msgid "CACHE"
+msgstr ""
+
+#: elf/ldconfig.c:140
+msgid "Use CACHE as cache file"
+msgstr ""
+
+#: elf/ldconfig.c:141
+msgid "CONF"
+msgstr ""
+
+#: elf/ldconfig.c:141
+msgid "Use CONF as configuration file"
+msgstr ""
+
+#: elf/ldconfig.c:142
+msgid "Only process directories specified on the command line.  Don't build cache."
+msgstr ""
+
+#: elf/ldconfig.c:143
+msgid "Manually link individual libraries."
+msgstr ""
+
+#: elf/ldconfig.c:144
+msgid "FORMAT"
+msgstr ""
+
+#: elf/ldconfig.c:144
+msgid "Format to use: new, old or compat (default)"
+msgstr ""
+
+#: elf/ldconfig.c:152
+msgid "Configure Dynamic Linker Run Time Bindings."
+msgstr ""
+
+#: elf/ldconfig.c:310
+#, c-format
+msgid "Path `%s' given more than once"
+msgstr ""
+
+#: elf/ldconfig.c:350
+#, c-format
+msgid "%s is not a known library type"
+msgstr ""
+
+#: elf/ldconfig.c:375
+#, c-format
+msgid "Can't stat %s"
+msgstr ""
+
+#: elf/ldconfig.c:449
+#, c-format
+msgid "Can't stat %s\n"
+msgstr ""
+
+#: elf/ldconfig.c:459
+#, fuzzy, c-format
+msgid "%s is not a symbolic link\n"
+msgstr "Твърде много нива от символни връзки"
+
+#: elf/ldconfig.c:478
+#, c-format
+msgid "Can't unlink %s"
+msgstr ""
+
+#: elf/ldconfig.c:484
+#, c-format
+msgid "Can't link %s to %s"
+msgstr ""
+
+#: elf/ldconfig.c:490
+msgid " (changed)\n"
+msgstr ""
+
+#: elf/ldconfig.c:492
+msgid " (SKIPPED)\n"
+msgstr ""
+
+#: elf/ldconfig.c:547
+#, c-format
+msgid "Can't find %s"
+msgstr ""
+
+#: elf/ldconfig.c:563 elf/ldconfig.c:737 elf/ldconfig.c:784
+#, c-format
+msgid "Cannot lstat %s"
+msgstr ""
+
+#: elf/ldconfig.c:570
+#, c-format
+msgid "Ignored file %s since it is not a regular file."
+msgstr ""
+
+#: elf/ldconfig.c:578
+#, c-format
+msgid "No link created since soname could not be found for %s"
+msgstr ""
+
+#: elf/ldconfig.c:669
+#, fuzzy, c-format
+msgid "Can't open directory %s"
+msgstr "Не е директория"
+
+#: elf/ldconfig.c:749
+#, c-format
+msgid "Cannot stat %s"
+msgstr ""
+
+#: elf/ldconfig.c:806 elf/readlib.c:91
+#, c-format
+msgid "Input file %s not found.\n"
+msgstr ""
+
+#: elf/ldconfig.c:857
+#, c-format
+msgid "libc5 library %s in wrong directory"
+msgstr ""
+
+#: elf/ldconfig.c:860
+#, c-format
+msgid "libc6 library %s in wrong directory"
+msgstr ""
+
+#: elf/ldconfig.c:863
+#, c-format
+msgid "libc4 library %s in wrong directory"
+msgstr ""
+
+#: elf/ldconfig.c:890
+#, c-format
+msgid "libraries %s and %s in directory %s have same soname but different type."
+msgstr ""
+
+#: elf/ldconfig.c:997
+#, c-format
+msgid "Can't open configuration file %s"
+msgstr ""
+
+#: elf/ldconfig.c:1061
+#, c-format
+msgid "%s:%u: bad syntax in hwcap line"
+msgstr ""
+
+#: elf/ldconfig.c:1067
+#, c-format
+msgid "%s:%u: hwcap index %lu above maximum %u"
+msgstr ""
+
+#: elf/ldconfig.c:1074 elf/ldconfig.c:1082
+#, c-format
+msgid "%s:%u: hwcap index %lu already defined as %s"
+msgstr ""
+
+#: elf/ldconfig.c:1085
+#, c-format
+msgid "%s:%u: duplicate hwcap %lu %s"
+msgstr ""
+
+#: elf/ldconfig.c:1107
+#, c-format
+msgid "need absolute file name for configuration file when using -r"
+msgstr ""
+
+#: elf/ldconfig.c:1114 locale/programs/xmalloc.c:70 malloc/obstack.c:434
+#: malloc/obstack.c:436 posix/getconf.c:985 posix/getconf.c:1163
+#, c-format
+msgid "memory exhausted"
+msgstr ""
+
+#: elf/ldconfig.c:1144
+#, fuzzy, c-format
+msgid "%s:%u: cannot read directory %s"
+msgstr "Не е директория"
+
+#: elf/ldconfig.c:1189
+#, c-format
+msgid "relative path `%s' used to build cache"
+msgstr ""
+
+#: elf/ldconfig.c:1215
+#, c-format
+msgid "Can't chdir to /"
+msgstr ""
+
+#: elf/ldconfig.c:1257
+#, fuzzy, c-format
+msgid "Can't open cache file directory %s\n"
+msgstr "Няма такъв файл или директория"
+
+#: elf/ldd.bash.in:43
+msgid "Written by %s and %s.\n"
+msgstr ""
+
+#: elf/ldd.bash.in:48
+msgid ""
+"Usage: ldd [OPTION]... FILE...\n"
+"      --help              print this help and exit\n"
+"      --version           print version information and exit\n"
+"  -d, --data-relocs       process data relocations\n"
+"  -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
+msgid "ldd: option \\`$1' is ambiguous"
+msgstr ""
+
+#: elf/ldd.bash.in:87
+msgid "unrecognized option"
+msgstr ""
+
+#: elf/ldd.bash.in:88 elf/ldd.bash.in:126
+msgid "Try \\`ldd --help' for more information."
+msgstr ""
+
+#: elf/ldd.bash.in:125
+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
+msgid "No such file or directory"
+msgstr "Няма такъв файл или директория"
+
+#: elf/ldd.bash.in:151 inet/rcmd.c:483
+msgid "not regular file"
+msgstr ""
+
+#: elf/ldd.bash.in:154
+msgid "warning: you do not have execution permission for"
+msgstr ""
+
+#: elf/ldd.bash.in:183
+msgid "\tnot a dynamic executable"
+msgstr ""
+
+#: elf/ldd.bash.in:191
+msgid "exited with unknown exit code"
+msgstr ""
+
+#: elf/ldd.bash.in:196
+msgid "error: you do not have read permission for"
+msgstr ""
+
+#: elf/readelflib.c:35
+#, c-format
+msgid "file %s is truncated\n"
+msgstr ""
+
+#: elf/readelflib.c:67
+#, c-format
+msgid "%s is a 32 bit ELF file.\n"
+msgstr ""
+
+#: elf/readelflib.c:69
+#, c-format
+msgid "%s is a 64 bit ELF file.\n"
+msgstr ""
+
+#: elf/readelflib.c:71
+#, c-format
+msgid "Unknown ELFCLASS in file %s.\n"
+msgstr ""
+
+#: elf/readelflib.c:78
+#, c-format
+msgid "%s is not a shared object file (Type: %d).\n"
+msgstr ""
+
+#: elf/readelflib.c:109
+#, c-format
+msgid "more than one dynamic segment\n"
+msgstr ""
+
+#: elf/readlib.c:97
+#, c-format
+msgid "Cannot fstat file %s.\n"
+msgstr ""
+
+#: elf/readlib.c:108
+#, c-format
+msgid "File %s is empty, not checked."
+msgstr ""
+
+#: elf/readlib.c:114
+#, c-format
+msgid "File %s is too small, not checked."
+msgstr ""
+
+#: elf/readlib.c:124
+#, c-format
+msgid "Cannot mmap file %s.\n"
+msgstr ""
+
+#: 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/sprof.c:77
+msgid "Output selection:"
+msgstr ""
+
+#: elf/sprof.c:79
+msgid "print list of count paths and their number of use"
+msgstr ""
+
+#: elf/sprof.c:81
+msgid "generate flat profile with counts and ticks"
+msgstr ""
+
+#: elf/sprof.c:82
+msgid "generate call graph"
+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"
+msgstr ""
+
+#: elf/sprof.c:94
+msgid "SHOBJ [PROFDATA]"
+msgstr ""
+
+#: elf/sprof.c:400
+#, c-format
+msgid "failed to load shared object `%s'"
+msgstr ""
+
+#: elf/sprof.c:409
+#, c-format
+msgid "cannot create internal descriptors"
+msgstr ""
+
+#: elf/sprof.c:528
+#, c-format
+msgid "Reopening shared object `%s' failed"
+msgstr ""
+
+#: elf/sprof.c:535 elf/sprof.c:629
+#, c-format
+msgid "reading of section headers failed"
+msgstr ""
+
+#: elf/sprof.c:543 elf/sprof.c:637
+#, c-format
+msgid "reading of section header string table failed"
+msgstr ""
+
+#: elf/sprof.c:569
+#, c-format
+msgid "*** Cannot read debuginfo file name: %m\n"
+msgstr ""
+
+#: elf/sprof.c:589
+#, c-format
+msgid "cannot determine file name"
+msgstr ""
+
+#: elf/sprof.c:622
+#, c-format
+msgid "reading of ELF header failed"
+msgstr ""
+
+#: elf/sprof.c:658
+#, c-format
+msgid "*** The file `%s' is stripped: no detailed analysis possible\n"
+msgstr ""
+
+#: elf/sprof.c:688
+#, c-format
+msgid "failed to load symbol data"
+msgstr ""
+
+#: elf/sprof.c:755
+#, c-format
+msgid "cannot load profiling data"
+msgstr ""
+
+#: elf/sprof.c:764
+#, c-format
+msgid "while stat'ing profiling data file"
+msgstr ""
+
+#: elf/sprof.c:772
+#, c-format
+msgid "profiling data file `%s' does not match shared object `%s'"
+msgstr ""
+
+#: elf/sprof.c:783
+#, c-format
+msgid "failed to mmap the profiling data file"
+msgstr ""
+
+#: elf/sprof.c:791
+#, c-format
+msgid "error while closing the profiling data file"
+msgstr ""
+
+#: elf/sprof.c:800 elf/sprof.c:870
+#, c-format
+msgid "cannot create internal descriptor"
+msgstr ""
+
+#: elf/sprof.c:846
+#, c-format
+msgid "`%s' is no correct profile data file for `%s'"
+msgstr ""
+
+#: elf/sprof.c:1027 elf/sprof.c:1085
+#, fuzzy, c-format
+msgid "cannot allocate symbol data"
+msgstr "Не може да се задели памет"
+
+#: iconv/iconv_charmap.c:176 iconv/iconv_prog.c:316
+#, c-format
+msgid "error while closing input `%s'"
+msgstr ""
+
+#: iconv/iconv_charmap.c:450
+#, c-format
+msgid "illegal input sequence at position %Zd"
+msgstr ""
+
+#: iconv/iconv_charmap.c:469 iconv/iconv_prog.c:526
+#, c-format
+msgid "incomplete character or shift sequence at end of buffer"
+msgstr ""
+
+#: iconv/iconv_charmap.c:514 iconv/iconv_charmap.c:550 iconv/iconv_prog.c:569
+#: iconv/iconv_prog.c:605
+#, c-format
+msgid "error while reading the input"
+msgstr ""
+
+#: iconv/iconv_charmap.c:532 iconv/iconv_prog.c:587
+#, c-format
+msgid "unable to allocate buffer for input"
+msgstr ""
+
+#: iconv/iconv_prog.c:60
+msgid "Input/Output format specification:"
+msgstr ""
+
+#: iconv/iconv_prog.c:61
+msgid "encoding of original text"
+msgstr ""
+
+#: iconv/iconv_prog.c:62
+msgid "encoding for output"
+msgstr ""
+
+#: iconv/iconv_prog.c:63
+msgid "Information:"
+msgstr ""
+
+#: iconv/iconv_prog.c:64
+msgid "list all known coded character sets"
+msgstr ""
+
+#: iconv/iconv_prog.c:65 locale/programs/localedef.c:127
+msgid "Output control:"
+msgstr ""
+
+#: iconv/iconv_prog.c:66
+msgid "omit invalid characters from output"
+msgstr ""
+
+#: iconv/iconv_prog.c:67
+msgid "output file"
+msgstr ""
+
+#: iconv/iconv_prog.c:68
+msgid "suppress warnings"
+msgstr ""
+
+#: iconv/iconv_prog.c:69
+msgid "print progress information"
+msgstr ""
+
+#: iconv/iconv_prog.c:74
+msgid "Convert encoding of given files from one encoding to another."
+msgstr ""
+
+#: iconv/iconv_prog.c:78
+msgid "[FILE...]"
+msgstr ""
+
+#: iconv/iconv_prog.c:200
+#, c-format
+msgid "cannot open output file"
+msgstr ""
+
+#: iconv/iconv_prog.c:242
+#, c-format
+msgid "conversions from `%s' and to `%s' are not supported"
+msgstr ""
+
+#: iconv/iconv_prog.c:247
+#, fuzzy, c-format
+msgid "conversion from `%s' is not supported"
+msgstr "Неподдържана операция"
+
+#: iconv/iconv_prog.c:254
+#, fuzzy, c-format
+msgid "conversion to `%s' is not supported"
+msgstr "Неподдържана операция"
+
+#: iconv/iconv_prog.c:258
+#, c-format
+msgid "conversion from `%s' to `%s' is not supported"
+msgstr ""
+
+#: iconv/iconv_prog.c:268
+#, c-format
+msgid "failed to start conversion processing"
+msgstr ""
+
+#: iconv/iconv_prog.c:362
+#, c-format
+msgid "error while closing output file"
+msgstr ""
+
+#: iconv/iconv_prog.c:471 iconv/iconv_prog.c:497
+#, c-format
+msgid "conversion stopped due to problem in writing the output"
+msgstr ""
+
+#: iconv/iconv_prog.c:522
+#, c-format
+msgid "illegal input sequence at position %ld"
+msgstr ""
+
+#: iconv/iconv_prog.c:530
+#, c-format
+msgid "internal error (illegal descriptor)"
+msgstr ""
+
+#: iconv/iconv_prog.c:533
+#, c-format
+msgid "unknown iconv() error %d"
+msgstr ""
+
+#: iconv/iconv_prog.c:779
+msgid ""
+"The following list contain all the coded character sets known.  This does\n"
+"not necessarily mean that all combinations of these names can be used for\n"
+"the FROM and TO command line parameters.  One coded character set can be\n"
+"listed with several different names (aliases).\n"
+"\n"
+"  "
+msgstr ""
+
+#: iconv/iconvconfig.c:110
+msgid "Create fastloading iconv module configuration file."
+msgstr ""
+
+#: iconv/iconvconfig.c:114
+msgid "[DIR...]"
+msgstr ""
+
+#: iconv/iconvconfig.c:127
+msgid "Prefix used for all file accesses"
+msgstr ""
+
+#: iconv/iconvconfig.c:128
+msgid "Put output in FILE instead of installed location (--prefix does not apply to FILE)"
+msgstr ""
+
+#: iconv/iconvconfig.c:132
+msgid "Do not search standard directories, only those on the command line"
+msgstr ""
+
+#: iconv/iconvconfig.c:301
+#, c-format
+msgid "Directory arguments required when using --nostdlib"
+msgstr ""
+
+#: iconv/iconvconfig.c:343 locale/programs/localedef.c:291
+#, c-format
+msgid "no output file produced because warnings were issued"
+msgstr ""
+
+#: iconv/iconvconfig.c:429
+#, c-format
+msgid "while inserting in search tree"
+msgstr ""
+
+#: iconv/iconvconfig.c:1238
+#, c-format
+msgid "cannot generate output file"
+msgstr ""
+
+#: inet/rcmd.c:157
+#, fuzzy
+msgid "rcmd: Cannot allocate memory\n"
+msgstr "Не може да се задели памет"
+
+#: inet/rcmd.c:172
+msgid "rcmd: socket: All ports in use\n"
+msgstr ""
+
+#: inet/rcmd.c:200
+#, c-format
+msgid "connect to address %s: "
+msgstr ""
+
+#: inet/rcmd.c:213
+#, c-format
+msgid "Trying %s...\n"
+msgstr ""
+
+#: inet/rcmd.c:249
+#, c-format
+msgid "rcmd: write (setting up stderr): %m\n"
+msgstr ""
+
+#: inet/rcmd.c:265
+#, c-format
+msgid "rcmd: poll (setting up stderr): %m\n"
+msgstr ""
+
+#: inet/rcmd.c:268
+msgid "poll: protocol failure in circuit setup\n"
+msgstr ""
+
+#: inet/rcmd.c:301
+msgid "socket: protocol failure in circuit setup\n"
+msgstr ""
+
+#: inet/rcmd.c:325
+#, c-format
+msgid "rcmd: %s: short read"
+msgstr ""
+
+#: inet/rcmd.c:481
+msgid "lstat failed"
+msgstr ""
+
+#: inet/rcmd.c:488
+msgid "cannot open"
+msgstr ""
+
+#: inet/rcmd.c:490
+msgid "fstat failed"
+msgstr ""
+
+#: inet/rcmd.c:492
+msgid "bad owner"
+msgstr ""
+
+#: inet/rcmd.c:494
+msgid "writeable by other than owner"
+msgstr ""
+
+#: inet/rcmd.c:496
+msgid "hard linked somewhere"
+msgstr ""
+
+#: inet/ruserpass.c:170 inet/ruserpass.c:193
+#, fuzzy
+msgid "out of memory"
+msgstr "Не може да се задели памет"
+
+#: inet/ruserpass.c:184
+msgid "Error: .netrc file is readable by others."
+msgstr ""
+
+#: inet/ruserpass.c:185
+msgid "Remove password or make file unreadable by others."
+msgstr ""
+
+#: inet/ruserpass.c:277
+#, c-format
+msgid "Unknown .netrc keyword %s"
+msgstr ""
+
+#: libidn/nfkc.c:464
+#, fuzzy
+msgid "Character out of range for UTF-8"
+msgstr "Номер на канал извън диапазона"
+
+#: locale/programs/charmap-dir.c:58
+#, c-format
+msgid "cannot read character map directory `%s'"
+msgstr ""
+
+#: locale/programs/charmap.c:138
+#, c-format
+msgid "character map file `%s' not found"
+msgstr ""
+
+#: locale/programs/charmap.c:195
+#, c-format
+msgid "default character map file `%s' not found"
+msgstr ""
+
+#: locale/programs/charmap.c:258
+#, c-format
+msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n"
+msgstr ""
+
+#: locale/programs/charmap.c:337
+#, c-format
+msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
+msgstr ""
+
+#: locale/programs/charmap.c:357 locale/programs/charmap.c:374
+#: locale/programs/repertoire.c:175
+#, c-format
+msgid "syntax error in prolog: %s"
+msgstr ""
+
+#: locale/programs/charmap.c:358
+msgid "invalid definition"
+msgstr ""
+
+#: locale/programs/charmap.c:375 locale/programs/locfile.c:126
+#: locale/programs/locfile.c:153 locale/programs/repertoire.c:176
+#, fuzzy
+msgid "bad argument"
+msgstr "Неправилен аргумент"
+
+#: locale/programs/charmap.c:403
+#, c-format
+msgid "duplicate definition of <%s>"
+msgstr ""
+
+#: locale/programs/charmap.c:410
+#, c-format
+msgid "value for <%s> must be 1 or greater"
+msgstr ""
+
+#: locale/programs/charmap.c:422
+#, c-format
+msgid "value of <%s> must be greater or equal than the value of <%s>"
+msgstr ""
+
+#: locale/programs/charmap.c:445 locale/programs/repertoire.c:184
+#, c-format
+msgid "argument to <%s> must be a single character"
+msgstr ""
+
+#: locale/programs/charmap.c:471
+msgid "character sets with locking states are not supported"
+msgstr ""
+
+#: locale/programs/charmap.c:498 locale/programs/charmap.c:552
+#: locale/programs/charmap.c:584 locale/programs/charmap.c:678
+#: locale/programs/charmap.c:733 locale/programs/charmap.c:774
+#: locale/programs/charmap.c:815
+#, c-format
+msgid "syntax error in %s definition: %s"
+msgstr ""
+
+#: locale/programs/charmap.c:499 locale/programs/charmap.c:679
+#: locale/programs/charmap.c:775 locale/programs/repertoire.c:231
+msgid "no symbolic name given"
+msgstr ""
+
+#: locale/programs/charmap.c:553
+#, fuzzy
+msgid "invalid encoding given"
+msgstr "Неправилен обмен"
+
+#: locale/programs/charmap.c:562
+msgid "too few bytes in character encoding"
+msgstr ""
+
+#: locale/programs/charmap.c:564
+msgid "too many bytes in character encoding"
+msgstr ""
+
+#: locale/programs/charmap.c:586 locale/programs/charmap.c:734
+#: locale/programs/charmap.c:817 locale/programs/repertoire.c:297
+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:2677 locale/programs/ld-collate.c:3828
+#: 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
+#: locale/programs/ld-monetary.c:943 locale/programs/ld-name.c:307
+#: locale/programs/ld-numeric.c:368 locale/programs/ld-paper.c:241
+#: locale/programs/ld-telephone.c:313 locale/programs/ld-time.c:1221
+#: locale/programs/repertoire.c:314
+#, c-format
+msgid "%1$s: definition does not end with `END %1$s'"
+msgstr ""
+
+#: locale/programs/charmap.c:643
+msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
+msgstr ""
+
+#: locale/programs/charmap.c:651 locale/programs/charmap.c:714
+#, c-format
+msgid "value for %s must be an integer"
+msgstr ""
+
+#: locale/programs/charmap.c:842
+#, c-format
+msgid "%s: error in state machine"
+msgstr ""
+
+#: locale/programs/charmap.c:850 locale/programs/ld-address.c:616
+#: locale/programs/ld-collate.c:2674 locale/programs/ld-collate.c:3844
+#: 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
+#: locale/programs/ld-monetary.c:959 locale/programs/ld-name.c:323
+#: locale/programs/ld-numeric.c:384 locale/programs/ld-paper.c:257
+#: locale/programs/ld-telephone.c:329 locale/programs/ld-time.c:1237
+#: locale/programs/locfile.c:826 locale/programs/repertoire.c:325
+#, c-format
+msgid "%s: premature end of file"
+msgstr ""
+
+#: locale/programs/charmap.c:869 locale/programs/charmap.c:880
+#, c-format
+msgid "unknown character `%s'"
+msgstr ""
+
+#: locale/programs/charmap.c:888
+#, c-format
+msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d"
+msgstr ""
+
+#: locale/programs/charmap.c:993 locale/programs/ld-collate.c:2957
+#: locale/programs/repertoire.c:420
+msgid "invalid names for character range"
+msgstr ""
+
+#: locale/programs/charmap.c:1005 locale/programs/repertoire.c:432
+msgid "hexadecimal range format should use only capital characters"
+msgstr ""
+
+#: locale/programs/charmap.c:1023 locale/programs/repertoire.c:450
+#, c-format
+msgid "<%s> and <%s> are invalid names for range"
+msgstr ""
+
+#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:457
+msgid "upper limit in range is smaller than lower limit"
+msgstr ""
+
+#: locale/programs/charmap.c:1087
+msgid "resulting bytes for range not representable."
+msgstr ""
+
+#: locale/programs/ld-address.c:133 locale/programs/ld-collate.c:1536
+#: 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
+#: locale/programs/ld-numeric.c:98 locale/programs/ld-paper.c:91
+#: locale/programs/ld-telephone.c:94 locale/programs/ld-time.c:159
+#, c-format
+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-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
+#: locale/programs/ld-name.c:142 locale/programs/ld-numeric.c:112
+#: locale/programs/ld-numeric.c:126 locale/programs/ld-paper.c:102
+#: locale/programs/ld-paper.c:111 locale/programs/ld-telephone.c:105
+#: locale/programs/ld-telephone.c:162 locale/programs/ld-time.c:175
+#: locale/programs/ld-time.c:196
+#, c-format
+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-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
+#, c-format
+msgid "%s: invalid escape `%%%c' sequence in field `%s'"
+msgstr ""
+
+#: locale/programs/ld-address.c:219
+#, c-format
+msgid "%s: terminology language code `%s' not defined"
+msgstr ""
+
+#: locale/programs/ld-address.c:244
+#, c-format
+msgid "%s: field `%s' must not be defined"
+msgstr ""
+
+#: locale/programs/ld-address.c:258 locale/programs/ld-address.c:287
+#, 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
+#, c-format
+msgid "%s: `%s' value does not match `%s' value"
+msgstr ""
+
+#: locale/programs/ld-address.c:312
+#, 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-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
+#: locale/programs/ld-monetary.c:777 locale/programs/ld-name.c:280
+#: locale/programs/ld-numeric.c:263 locale/programs/ld-paper.c:224
+#: locale/programs/ld-telephone.c:288 locale/programs/ld-time.c:1126
+#: locale/programs/ld-time.c:1168
+#, c-format
+msgid "%s: field `%s' declared more than once"
+msgstr ""
+
+#: locale/programs/ld-address.c:512 locale/programs/ld-address.c:550
+#: 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
+#: locale/programs/ld-telephone.c:292 locale/programs/ld-time.c:1020
+#: locale/programs/ld-time.c:1089 locale/programs/ld-time.c:1131
+#, c-format
+msgid "%s: unknown character in field `%s'"
+msgstr ""
+
+#: locale/programs/ld-address.c:597 locale/programs/ld-collate.c:3826
+#: 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
+#: locale/programs/ld-numeric.c:366 locale/programs/ld-paper.c:239
+#: locale/programs/ld-telephone.c:311 locale/programs/ld-time.c:1219
+#, c-format
+msgid "%s: incomplete `END' line"
+msgstr ""
+
+#: locale/programs/ld-address.c:607 locale/programs/ld-collate.c:522
+#: locale/programs/ld-collate.c:574 locale/programs/ld-collate.c:870
+#: locale/programs/ld-collate.c:883 locale/programs/ld-collate.c:2664
+#: locale/programs/ld-collate.c:3835 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
+#: locale/programs/ld-measurement.c:245 locale/programs/ld-messages.c:339
+#: locale/programs/ld-monetary.c:950 locale/programs/ld-name.c:314
+#: locale/programs/ld-numeric.c:375 locale/programs/ld-paper.c:248
+#: locale/programs/ld-telephone.c:320 locale/programs/ld-time.c:1228
+#, c-format
+msgid "%s: syntax error"
+msgstr ""
+
+#: locale/programs/ld-collate.c:397
+#, c-format
+msgid "`%.*s' already defined in charmap"
+msgstr ""
+
+#: locale/programs/ld-collate.c:406
+#, c-format
+msgid "`%.*s' already defined in repertoire"
+msgstr ""
+
+#: locale/programs/ld-collate.c:413
+#, c-format
+msgid "`%.*s' already defined as collating symbol"
+msgstr ""
+
+#: locale/programs/ld-collate.c:420
+#, c-format
+msgid "`%.*s' already defined as collating element"
+msgstr ""
+
+#: locale/programs/ld-collate.c:451 locale/programs/ld-collate.c:477
+#, c-format
+msgid "%s: `forward' and `backward' are mutually excluding each other"
+msgstr ""
+
+#: locale/programs/ld-collate.c:461 locale/programs/ld-collate.c:487
+#: locale/programs/ld-collate.c:503
+#, c-format
+msgid "%s: `%s' mentioned more than once in definition of weight %d"
+msgstr ""
+
+#: locale/programs/ld-collate.c:559
+#, c-format
+msgid "%s: too many rules; first entry only had %d"
+msgstr ""
+
+#: locale/programs/ld-collate.c:595
+#, c-format
+msgid "%s: not enough sorting rules"
+msgstr ""
+
+#: locale/programs/ld-collate.c:760
+#, c-format
+msgid "%s: empty weight string not allowed"
+msgstr ""
+
+#: locale/programs/ld-collate.c:855
+#, c-format
+msgid "%s: weights must use the same ellipsis symbol as the name"
+msgstr ""
+
+#: locale/programs/ld-collate.c:911
+#, fuzzy, c-format
+msgid "%s: too many values"
+msgstr "Твърде много потребители"
+
+#: locale/programs/ld-collate.c:1031 locale/programs/ld-collate.c:1206
+#, c-format
+msgid "order for `%.*s' already defined at %s:%Zu"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1081
+#, c-format
+msgid "%s: the start and the end symbol of a range must stand for characters"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1108
+#, c-format
+msgid "%s: byte sequences of first and last character must have the same length"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1150
+#, c-format
+msgid "%s: byte sequence of first character of range is not lower than that of the last character"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1275
+#, c-format
+msgid "%s: symbolic range ellipsis must not directly follow `order_start'"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1279
+#, c-format
+msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1299 locale/programs/ld-ctype.c:1477
+#, c-format
+msgid "`%s' and `%.*s' are not valid names for symbolic range"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1349 locale/programs/ld-collate.c:3763
+#, c-format
+msgid "%s: order for `%.*s' already defined at %s:%Zu"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1358
+#, c-format
+msgid "%s: `%s' must be a character"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1552
+#, c-format
+msgid "%s: `position' must be used for a specific level in all sections or none"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1577
+#, c-format
+msgid "symbol `%s' not defined"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1653 locale/programs/ld-collate.c:1759
+#, c-format
+msgid "symbol `%s' has the same encoding as"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1657 locale/programs/ld-collate.c:1763
+#, c-format
+msgid "symbol `%s'"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1805
+#, c-format
+msgid "no definition of `UNDEFINED'"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1834
+#, c-format
+msgid "too many errors; giving up"
+msgstr ""
+
+#: locale/programs/ld-collate.c:2762
+#, c-format
+msgid "%s: duplicate definition of `%s'"
+msgstr ""
+
+#: locale/programs/ld-collate.c:2798
+#, c-format
+msgid "%s: duplicate declaration of section `%s'"
+msgstr ""
+
+#: locale/programs/ld-collate.c:2937
+#, c-format
+msgid "%s: unknown character in collating symbol name"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3069
+#, c-format
+msgid "%s: unknown character in equivalent definition name"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3082
+#, c-format
+msgid "%s: unknown character in equivalent definition value"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3092
+#, c-format
+msgid "%s: unknown symbol `%s' in equivalent definition"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3101
+msgid "error while adding equivalent collating symbol"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3131
+#, c-format
+msgid "duplicate definition of script `%s'"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3179
+#, c-format
+msgid "%s: unknown section name `%.*s'"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3208
+#, c-format
+msgid "%s: multiple order definitions for section `%s'"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3233
+#, c-format
+msgid "%s: invalid number of sorting rules"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3260
+#, c-format
+msgid "%s: multiple order definitions for unnamed section"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3314 locale/programs/ld-collate.c:3442
+#: locale/programs/ld-collate.c:3804
+#, c-format
+msgid "%s: missing `order_end' keyword"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3375
+#, c-format
+msgid "%s: order for collating symbol %.*s not yet defined"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3393
+#, c-format
+msgid "%s: order for collating element %.*s not yet defined"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3404
+#, c-format
+msgid "%s: cannot reorder after %.*s: symbol not known"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3456 locale/programs/ld-collate.c:3816
+#, c-format
+msgid "%s: missing `reorder-end' keyword"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3490 locale/programs/ld-collate.c:3688
+#, c-format
+msgid "%s: section `%.*s' not known"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3555
+#, c-format
+msgid "%s: bad symbol <%.*s>"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3751
+#, c-format
+msgid "%s: cannot have `%s' as end of ellipsis range"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3800
+#, c-format
+msgid "%s: empty category description not allowed"
+msgstr ""
+
+#: locale/programs/ld-collate.c:3819
+#, c-format
+msgid "%s: missing `reorder-sections-end' keyword"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:439
+#, c-format
+msgid "No character set name specified in charmap"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:468
+#, c-format
+msgid "character L'\\u%0*x' in class `%s' must be in class `%s'"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:483
+#, c-format
+msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:497 locale/programs/ld-ctype.c:555
+#, c-format
+msgid "internal error in %s, line %u"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:526
+#, c-format
+msgid "character '%s' in class `%s' must be in class `%s'"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:542
+#, c-format
+msgid "character '%s' in class `%s' must not be in class `%s'"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:572 locale/programs/ld-ctype.c:610
+#, c-format
+msgid "<SP> character not in class `%s'"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:584 locale/programs/ld-ctype.c:621
+#, c-format
+msgid "<SP> character must not be in class `%s'"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:599
+#, c-format
+msgid "character <SP> not defined in character map"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:714
+#, c-format
+msgid "`digit' category has not entries in groups of ten"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:763
+#, c-format
+msgid "no input digits defined and none of the standard names in the charmap"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:828
+#, c-format
+msgid "not all characters used in `outdigit' are available in the charmap"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:845
+#, c-format
+msgid "not all characters used in `outdigit' are available in the repertoire"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:1245
+#, c-format
+msgid "character class `%s' already defined"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:1251
+#, c-format
+msgid "implementation limit: no more than %Zd character classes allowed"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:1277
+#, c-format
+msgid "character map `%s' already defined"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:1283
+#, c-format
+msgid "implementation limit: no more than %d character maps allowed"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:1548 locale/programs/ld-ctype.c:1673
+#: locale/programs/ld-ctype.c:1779 locale/programs/ld-ctype.c:2471
+#: locale/programs/ld-ctype.c:3467
+#, c-format
+msgid "%s: field `%s' does not contain exactly ten entries"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:1576 locale/programs/ld-ctype.c:2150
+#, c-format
+msgid "to-value <U%0*X> of range is smaller than from-value <U%0*X>"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:1703
+msgid "start and end character sequence of range must have the same length"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:1710
+msgid "to-value character sequence is smaller than from-value sequence"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:2070 locale/programs/ld-ctype.c:2121
+msgid "premature end of `translit_ignore' definition"
+msgstr ""
+
+# TODO
+#: locale/programs/ld-ctype.c:2076 locale/programs/ld-ctype.c:2127
+#: locale/programs/ld-ctype.c:2169
+#, fuzzy
+msgid "syntax error"
+msgstr "Грешка при srmount"
+
+#: locale/programs/ld-ctype.c:2303
+#, c-format
+msgid "%s: syntax error in definition of new character class"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:2318
+#, c-format
+msgid "%s: syntax error in definition of new character map"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:2493
+msgid "ellipsis range must be marked by two operands of same type"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:2502
+msgid "with symbolic name range values the absolute ellipsis `...' must not be used"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:2517
+msgid "with UCS range values one must use the hexadecimal symbolic ellipsis `..'"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:2531
+msgid "with character code range values one must use the absolute ellipsis `...'"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:2682
+#, c-format
+msgid "duplicated definition for mapping `%s'"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:2768 locale/programs/ld-ctype.c:2912
+#, c-format
+msgid "%s: `translit_start' section does not end with `translit_end'"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:2863
+#, c-format
+msgid "%s: duplicate `default_missing' definition"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:2868
+msgid "previous definition was here"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:2890
+#, c-format
+msgid "%s: no representable `default_missing' definition found"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:3043 locale/programs/ld-ctype.c:3127
+#: locale/programs/ld-ctype.c:3147 locale/programs/ld-ctype.c:3168
+#: locale/programs/ld-ctype.c:3189 locale/programs/ld-ctype.c:3210
+#: locale/programs/ld-ctype.c:3231 locale/programs/ld-ctype.c:3271
+#: locale/programs/ld-ctype.c:3292 locale/programs/ld-ctype.c:3359
+#: locale/programs/ld-ctype.c:3401 locale/programs/ld-ctype.c:3426
+#, c-format
+msgid "%s: character `%s' not defined while needed as default value"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:3048 locale/programs/ld-ctype.c:3132
+#: locale/programs/ld-ctype.c:3152 locale/programs/ld-ctype.c:3173
+#: locale/programs/ld-ctype.c:3194 locale/programs/ld-ctype.c:3215
+#: locale/programs/ld-ctype.c:3236 locale/programs/ld-ctype.c:3276
+#: locale/programs/ld-ctype.c:3297 locale/programs/ld-ctype.c:3364
+#, c-format
+msgid "%s: character `%s' in charmap not representable with one byte"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:3408 locale/programs/ld-ctype.c:3433
+#, c-format
+msgid "%s: character `%s' needed as default value not representable with one byte"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:3489
+#, c-format
+msgid "no output digits defined and none of the standard names in the charmap"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:3780
+#, c-format
+msgid "%s: transliteration data from locale `%s' not available"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:3881
+#, c-format
+msgid "%s: table for class \"%s\": %lu bytes\n"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:3950
+#, c-format
+msgid "%s: table for map \"%s\": %lu bytes\n"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:4083
+#, c-format
+msgid "%s: table for width: %lu bytes\n"
+msgstr ""
+
+#: locale/programs/ld-identification.c:170
+#, c-format
+msgid "%s: no identification for category `%s'"
+msgstr ""
+
+#: locale/programs/ld-identification.c:435
+#, c-format
+msgid "%s: duplicate category version definition"
+msgstr ""
+
+#: locale/programs/ld-measurement.c:113
+#, c-format
+msgid "%s: invalid value for field `%s'"
+msgstr ""
+
+#: locale/programs/ld-messages.c:114 locale/programs/ld-messages.c:148
+#, c-format
+msgid "%s: field `%s' undefined"
+msgstr ""
+
+#: locale/programs/ld-messages.c:121 locale/programs/ld-messages.c:155
+#: locale/programs/ld-monetary.c:256 locale/programs/ld-numeric.c:118
+#, c-format
+msgid "%s: value for field `%s' must not be an empty string"
+msgstr ""
+
+#: locale/programs/ld-messages.c:137 locale/programs/ld-messages.c:171
+#, c-format
+msgid "%s: no correct regular expression for field `%s': %s"
+msgstr ""
+
+#: locale/programs/ld-monetary.c:224
+#, c-format
+msgid "%s: value of field `int_curr_symbol' has wrong length"
+msgstr ""
+
+#: locale/programs/ld-monetary.c:237
+#, c-format
+msgid "%s: value of field `int_curr_symbol' does not correspond to a valid name in ISO 4217"
+msgstr ""
+
+#: locale/programs/ld-monetary.c:285 locale/programs/ld-monetary.c:315
+#, c-format
+msgid "%s: value for field `%s' must be in range %d...%d"
+msgstr ""
+
+#: locale/programs/ld-monetary.c:747 locale/programs/ld-numeric.c:274
+#, c-format
+msgid "%s: value for field `%s' must be a single character"
+msgstr ""
+
+#: locale/programs/ld-monetary.c:844 locale/programs/ld-numeric.c:318
+#, c-format
+msgid "%s: `-1' must be last entry in `%s' field"
+msgstr ""
+
+#: locale/programs/ld-monetary.c:866 locale/programs/ld-numeric.c:335
+#, c-format
+msgid "%s: values for field `%s' must be smaller than 127"
+msgstr ""
+
+#: locale/programs/ld-monetary.c:909
+msgid "conversion rate value cannot be zero"
+msgstr ""
+
+#: locale/programs/ld-name.c:129 locale/programs/ld-telephone.c:126
+#: locale/programs/ld-telephone.c:149
+#, c-format
+msgid "%s: invalid escape sequence in field `%s'"
+msgstr ""
+
+#: locale/programs/ld-time.c:247
+#, c-format
+msgid "%s: direction flag in string %Zd in `era' field is not '+' nor '-'"
+msgstr ""
+
+#: locale/programs/ld-time.c:258
+#, c-format
+msgid "%s: direction flag in string %Zd in `era' field is not a single character"
+msgstr ""
+
+#: locale/programs/ld-time.c:271
+#, c-format
+msgid "%s: invalid number for offset in string %Zd in `era' field"
+msgstr ""
+
+#: locale/programs/ld-time.c:279
+#, c-format
+msgid "%s: garbage at end of offset value in string %Zd in `era' field"
+msgstr ""
+
+#: locale/programs/ld-time.c:330
+#, c-format
+msgid "%s: invalid starting date in string %Zd in `era' field"
+msgstr ""
+
+#: locale/programs/ld-time.c:339
+#, c-format
+msgid "%s: garbage at end of starting date in string %Zd in `era' field "
+msgstr ""
+
+#: locale/programs/ld-time.c:358
+#, c-format
+msgid "%s: starting date is invalid in string %Zd in `era' field"
+msgstr ""
+
+#: locale/programs/ld-time.c:407
+#, c-format
+msgid "%s: invalid stopping date in string %Zd in `era' field"
+msgstr ""
+
+#: locale/programs/ld-time.c:416
+#, c-format
+msgid "%s: garbage at end of stopping date in string %Zd in `era' field"
+msgstr ""
+
+#: locale/programs/ld-time.c:435
+#, c-format
+msgid "%s: stopping date is invalid in string %Zd in `era' field"
+msgstr ""
+
+#: locale/programs/ld-time.c:444
+#, c-format
+msgid "%s: missing era name in string %Zd in `era' field"
+msgstr ""
+
+#: locale/programs/ld-time.c:456
+#, c-format
+msgid "%s: missing era format in string %Zd in `era' field"
+msgstr ""
+
+#: locale/programs/ld-time.c:497
+#, c-format
+msgid "%s: third operand for value of field `%s' must not be larger than %d"
+msgstr ""
+
+#: locale/programs/ld-time.c:505 locale/programs/ld-time.c:513
+#: locale/programs/ld-time.c:521
+#, c-format
+msgid "%s: values for field `%s' must not be larger than %d"
+msgstr ""
+
+#: locale/programs/ld-time.c:1004
+#, c-format
+msgid "%s: too few values for field `%s'"
+msgstr ""
+
+#: locale/programs/ld-time.c:1049
+msgid "extra trailing semicolon"
+msgstr ""
+
+#: locale/programs/ld-time.c:1052
+#, c-format
+msgid "%s: too many values for field `%s'"
+msgstr ""
+
+#: locale/programs/linereader.c:130
+msgid "trailing garbage at end of line"
+msgstr ""
+
+#: locale/programs/linereader.c:298
+msgid "garbage at end of number"
+msgstr ""
+
+#: locale/programs/linereader.c:410
+msgid "garbage at end of character code specification"
+msgstr ""
+
+#: locale/programs/linereader.c:496
+msgid "unterminated symbolic name"
+msgstr ""
+
+#: locale/programs/linereader.c:623
+msgid "illegal escape sequence at end of string"
+msgstr ""
+
+#: locale/programs/linereader.c:627 locale/programs/linereader.c:855
+msgid "unterminated string"
+msgstr ""
+
+#: locale/programs/linereader.c:669
+msgid "non-symbolic character value should not be used"
+msgstr ""
+
+#: locale/programs/linereader.c:816
+#, c-format
+msgid "symbol `%.*s' not in charmap"
+msgstr ""
+
+#: locale/programs/linereader.c:837
+#, c-format
+msgid "symbol `%.*s' not in repertoire map"
+msgstr ""
+
+#: locale/programs/locale.c:74
+msgid "System information:"
+msgstr ""
+
+#: locale/programs/locale.c:76
+msgid "Write names of available locales"
+msgstr ""
+
+#: locale/programs/locale.c:78
+msgid "Write names of available charmaps"
+msgstr ""
+
+#: locale/programs/locale.c:79
+msgid "Modify output format:"
+msgstr ""
+
+#: locale/programs/locale.c:80
+msgid "Write names of selected categories"
+msgstr ""
+
+#: locale/programs/locale.c:81
+msgid "Write names of selected keywords"
+msgstr ""
+
+#: locale/programs/locale.c:82
+msgid "Print more information"
+msgstr ""
+
+#: locale/programs/locale.c:87
+msgid ""
+"Get locale-specific information.\vFor bug reporting instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
+msgstr ""
+
+#: locale/programs/locale.c:92
+msgid ""
+"NAME\n"
+"[-a|-m]"
+msgstr ""
+
+#: locale/programs/locale.c:193
+#, c-format
+msgid "Cannot set LC_CTYPE to default locale"
+msgstr ""
+
+#: locale/programs/locale.c:195
+#, c-format
+msgid "Cannot set LC_MESSAGES to default locale"
+msgstr ""
+
+#: locale/programs/locale.c:208
+#, c-format
+msgid "Cannot set LC_COLLATE to default locale"
+msgstr ""
+
+#: locale/programs/locale.c:224
+#, c-format
+msgid "Cannot set LC_ALL to default locale"
+msgstr ""
+
+#: locale/programs/locale.c:500
+#, c-format
+msgid "while preparing output"
+msgstr ""
+
+#: locale/programs/localedef.c:120
+msgid "Input Files:"
+msgstr ""
+
+#: locale/programs/localedef.c:122
+msgid "Symbolic character names defined in FILE"
+msgstr ""
+
+#: locale/programs/localedef.c:123
+msgid "Source definitions are found in FILE"
+msgstr ""
+
+#: locale/programs/localedef.c:125
+msgid "FILE contains mapping from symbolic names to UCS4 values"
+msgstr ""
+
+#: locale/programs/localedef.c:129
+msgid "Create output even if warning messages were issued"
+msgstr ""
+
+#: locale/programs/localedef.c:130
+msgid "Create old-style tables"
+msgstr ""
+
+#: locale/programs/localedef.c:131
+msgid "Optional output file prefix"
+msgstr ""
+
+#: locale/programs/localedef.c:132
+msgid "Be strictly POSIX conform"
+msgstr ""
+
+#: locale/programs/localedef.c:134
+msgid "Suppress warnings and information messages"
+msgstr ""
+
+#: locale/programs/localedef.c:135
+msgid "Print more messages"
+msgstr ""
+
+#: locale/programs/localedef.c:136
+msgid "Archive control:"
+msgstr ""
+
+#: locale/programs/localedef.c:138
+msgid "Don't add new data to archive"
+msgstr ""
+
+#: locale/programs/localedef.c:140
+msgid "Add locales named by parameters to archive"
+msgstr ""
+
+#: locale/programs/localedef.c:141
+msgid "Replace existing archive content"
+msgstr ""
+
+#: locale/programs/localedef.c:143
+msgid "Remove locales named by parameters from archive"
+msgstr ""
+
+#: locale/programs/localedef.c:144
+msgid "List content of archive"
+msgstr ""
+
+#: locale/programs/localedef.c:146
+msgid "locale.alias file to consult when making archive"
+msgstr ""
+
+#: locale/programs/localedef.c:151
+msgid "Compile locale specification"
+msgstr ""
+
+#: locale/programs/localedef.c:154
+msgid ""
+"NAME\n"
+"[--add-to-archive|--delete-from-archive] FILE...\n"
+"--list-archive [FILE]"
+msgstr ""
+
+#: locale/programs/localedef.c:232
+#, c-format
+msgid "cannot create directory for output files"
+msgstr ""
+
+#: locale/programs/localedef.c:243
+#, c-format
+msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
+msgstr ""
+
+#: locale/programs/localedef.c:257 locale/programs/localedef.c:273
+#: locale/programs/localedef.c:599 locale/programs/localedef.c:619
+#, c-format
+msgid "cannot open locale definition file `%s'"
+msgstr ""
+
+#: locale/programs/localedef.c:285
+#, c-format
+msgid "cannot write output files to `%s'"
+msgstr ""
+
+#: locale/programs/localedef.c:366
+#, c-format
+msgid ""
+"System's directory for character maps : %s\n"
+"                       repertoire maps: %s\n"
+"                       locale path    : %s\n"
+"%s"
+msgstr ""
+
+#: locale/programs/localedef.c:567
+#, c-format
+msgid "circular dependencies between locale definitions"
+msgstr ""
+
+#: locale/programs/localedef.c:573
+#, c-format
+msgid "cannot add already read locale `%s' a second time"
+msgstr ""
+
+#: locale/programs/locarchive.c:88 locale/programs/locarchive.c:261
+#, fuzzy, c-format
+msgid "cannot create temporary file"
+msgstr "Не може да се задели памет"
+
+#: locale/programs/locarchive.c:118 locale/programs/locarchive.c:307
+#, c-format
+msgid "cannot initialize archive file"
+msgstr ""
+
+#: locale/programs/locarchive.c:125 locale/programs/locarchive.c:314
+#, c-format
+msgid "cannot resize archive file"
+msgstr ""
+
+#: locale/programs/locarchive.c:134 locale/programs/locarchive.c:323
+#: locale/programs/locarchive.c:527
+#, c-format
+msgid "cannot map archive header"
+msgstr ""
+
+#: locale/programs/locarchive.c:156
+#, c-format
+msgid "failed to create new locale archive"
+msgstr ""
+
+#: locale/programs/locarchive.c:168
+#, c-format
+msgid "cannot change mode of new locale archive"
+msgstr ""
+
+#: locale/programs/locarchive.c:255
+#, c-format
+msgid "cannot map locale archive file"
+msgstr ""
+
+#: locale/programs/locarchive.c:331
+#, c-format
+msgid "cannot lock new archive"
+msgstr ""
+
+#: locale/programs/locarchive.c:396
+#, c-format
+msgid "cannot extend locale archive file"
+msgstr ""
+
+#: locale/programs/locarchive.c:405
+#, c-format
+msgid "cannot change mode of resized locale archive"
+msgstr ""
+
+#: locale/programs/locarchive.c:413
+#, c-format
+msgid "cannot rename new archive"
+msgstr ""
+
+#: locale/programs/locarchive.c:466
+#, c-format
+msgid "cannot open locale archive \"%s\""
+msgstr ""
+
+#: locale/programs/locarchive.c:471
+#, c-format
+msgid "cannot stat locale archive \"%s\""
+msgstr ""
+
+#: locale/programs/locarchive.c:490
+#, c-format
+msgid "cannot lock locale archive \"%s\""
+msgstr ""
+
+#: locale/programs/locarchive.c:513
+#, c-format
+msgid "cannot read archive header"
+msgstr ""
+
+#: locale/programs/locarchive.c:573
+#, c-format
+msgid "locale '%s' already exists"
+msgstr ""
+
+#: locale/programs/locarchive.c:804 locale/programs/locarchive.c:819
+#: locale/programs/locarchive.c:831 locale/programs/locarchive.c:843
+#: locale/programs/locfile.c:344
+#, c-format
+msgid "cannot add to locale archive"
+msgstr ""
+
+#: locale/programs/locarchive.c:998
+#, c-format
+msgid "locale alias file `%s' not found"
+msgstr ""
+
+#: locale/programs/locarchive.c:1142
+#, c-format
+msgid "Adding %s\n"
+msgstr ""
+
+#: locale/programs/locarchive.c:1148
+#, c-format
+msgid "stat of \"%s\" failed: %s: ignored"
+msgstr ""
+
+#: locale/programs/locarchive.c:1154
+#, c-format
+msgid "\"%s\" is no directory; ignored"
+msgstr ""
+
+#: locale/programs/locarchive.c:1161
+#, c-format
+msgid "cannot open directory \"%s\": %s: ignored"
+msgstr ""
+
+#: locale/programs/locarchive.c:1233
+#, c-format
+msgid "incomplete set of locale files in \"%s\""
+msgstr ""
+
+#: locale/programs/locarchive.c:1297
+#, c-format
+msgid "cannot read all files in \"%s\": ignored"
+msgstr ""
+
+#: locale/programs/locarchive.c:1367
+#, c-format
+msgid "locale \"%s\" not in archive"
+msgstr ""
+
+#: locale/programs/locfile.c:132
+#, c-format
+msgid "argument to `%s' must be a single character"
+msgstr ""
+
+#: locale/programs/locfile.c:252
+msgid "syntax error: not inside a locale definition section"
+msgstr ""
+
+#: locale/programs/locfile.c:626
+#, c-format
+msgid "cannot open output file `%s' for category `%s'"
+msgstr ""
+
+#: locale/programs/locfile.c:650
+#, c-format
+msgid "failure while writing data for category `%s'"
+msgstr ""
+
+#: locale/programs/locfile.c:746
+#, c-format
+msgid "cannot create output file `%s' for category `%s'"
+msgstr ""
+
+#: locale/programs/locfile.c:782
+msgid "expect string argument for `copy'"
+msgstr ""
+
+#: locale/programs/locfile.c:786
+msgid "locale name should consist only of portable characters"
+msgstr ""
+
+#: locale/programs/locfile.c:805
+msgid "no other keyword shall be specified when `copy' is used"
+msgstr ""
+
+#: locale/programs/locfile.c:819
+#, c-format
+msgid "`%1$s' definition does not end with `END %1$s'"
+msgstr ""
+
+#: locale/programs/repertoire.c:230 locale/programs/repertoire.c:271
+#: locale/programs/repertoire.c:296
+#, c-format
+msgid "syntax error in repertoire map definition: %s"
+msgstr ""
+
+#: locale/programs/repertoire.c:272
+msgid "no <Uxxxx> or <Uxxxxxxxx> value given"
+msgstr ""
+
+#: locale/programs/repertoire.c:332
+#, c-format
+msgid "cannot save new repertoire map"
+msgstr ""
+
+#: locale/programs/repertoire.c:343
+#, c-format
+msgid "repertoire map file `%s' not found"
+msgstr ""
+
+#: login/programs/pt_chown.c:74
+#, c-format
+msgid "Set the owner, group and access permission of the slave pseudo terminal corresponding to the master pseudo terminal passed on file descriptor `%d'.  This is the helper program for the `grantpt' function.  It is not intended to be run directly from the command line.\n"
+msgstr ""
+
+#: login/programs/pt_chown.c:84
+#, c-format
+msgid ""
+"The owner is set to the current user, the group is set to `%s', and the access permission is set to `%o'.\n"
+"\n"
+"%s"
+msgstr ""
+
+#: login/programs/pt_chown.c:161
+#, fuzzy, c-format
+msgid "too many arguments"
+msgstr "Твърде много потребители"
+
+#: login/programs/pt_chown.c:169
+#, c-format
+msgid "needs to be installed setuid `root'"
+msgstr ""
+
+#: malloc/mcheck.c:330
+msgid "memory is consistent, library is buggy\n"
+msgstr ""
+
+#: malloc/mcheck.c:333
+msgid "memory clobbered before allocated block\n"
+msgstr ""
+
+#: malloc/mcheck.c:336
+msgid "memory clobbered past end of allocated block\n"
+msgstr ""
+
+#: malloc/mcheck.c:339
+msgid "block freed twice\n"
+msgstr ""
+
+#: malloc/mcheck.c:342
+msgid "bogus mcheck_status, library is buggy\n"
+msgstr ""
+
+#: malloc/memusage.sh:27
+msgid "Try \\`memusage --help' for more information."
+msgstr ""
+
+#: malloc/memusage.sh:33
+msgid "memusage: option \\`$1' requires an argument"
+msgstr ""
+
+#: malloc/memusage.sh:39
+msgid ""
+"Usage: memusage [OPTION]... PROGRAM [PROGRAMOPTION]...\n"
+"Profile memory usage of PROGRAM.\n"
+"\n"
+"   -n,--progname=NAME     Name of the program file to profile\n"
+"   -p,--png=FILE          Generate PNG graphic and store it in FILE\n"
+"   -d,--data=FILE         Generate binary data file and store it in FILE\n"
+"   -u,--unbuffered        Don't buffer output\n"
+"   -b,--buffer=SIZE       Collect SIZE entries before writing them out\n"
+"      --no-timer          Don't collect additional information through timer\n"
+"   -m,--mmap              Also trace mmap & friends\n"
+"\n"
+"   -?,--help              Print this help and exit\n"
+"      --usage             Give a short usage message\n"
+"   -V,--version           Print version information and exit\n"
+"\n"
+" The following options only apply when generating graphical output:\n"
+"   -t,--time-based        Make graph linear in time\n"
+"   -T,--total             Also draw graph of total memory use\n"
+"      --title=STRING      Use STRING as title of the graph\n"
+"   -x,--x-size=SIZE       Make graphic SIZE pixels wide\n"
+"   -y,--y-size=SIZE       Make graphic SIZE pixels high\n"
+"\n"
+"Mandatory arguments to long options are also mandatory for any corresponding\n"
+"short options.\n"
+"\n"
+"For bug reporting instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>."
+msgstr ""
+
+#: malloc/memusage.sh:99
+msgid ""
+"Syntax: memusage [--data=FILE] [--progname=NAME] [--png=FILE] [--unbuffered]\n"
+"            [--buffer=SIZE] [--no-timer] [--time-based] [--total]\n"
+"            [--title=STRING] [--x-size=SIZE] [--y-size=SIZE]\n"
+"            PROGRAM [PROGRAMOPTION]..."
+msgstr ""
+
+#: malloc/memusage.sh:191
+msgid "memusage: option \\`${1##*=}' is ambiguous"
+msgstr ""
+
+#: malloc/memusage.sh:200
+msgid "memusage: unrecognized option \\`$1'"
+msgstr ""
+
+#: malloc/memusage.sh:213
+msgid "No program name given"
+msgstr ""
+
+#: malloc/memusagestat.c:54
+#, fuzzy
+msgid "Name output file"
+msgstr "Именован типов файл е"
+
+#: malloc/memusagestat.c:55
+msgid "Title string used in output graphic"
+msgstr ""
+
+#: malloc/memusagestat.c:56
+msgid "Generate output linear to time (default is linear to number of function calls)"
+msgstr ""
+
+#: malloc/memusagestat.c:58
+msgid "Also draw graph for total memory consumption"
+msgstr ""
+
+#: malloc/memusagestat.c:59
+msgid "Make output graphic VALUE pixels wide"
+msgstr ""
+
+#: malloc/memusagestat.c:60
+msgid "Make output graphic VALUE pixels high"
+msgstr ""
+
+#: malloc/memusagestat.c:65
+msgid "Generate graphic from memory profiling data"
+msgstr ""
+
+#: malloc/memusagestat.c:68
+msgid "DATAFILE [OUTFILE]"
+msgstr ""
+
+#: misc/error.c:118 timezone/zic.c:417
+msgid "Unknown system error"
+msgstr ""
+
+#: nis/nis_callback.c:189
+#, fuzzy
+msgid "unable to free arguments"
+msgstr "Неправилен аргумент"
+
+#: nis/nis_error.h:1 nis/ypclnt.c:822 nis/ypclnt.c:910 posix/regcomp.c:132
+#: sysdeps/gnu/errlist.c:20
+msgid "Success"
+msgstr "Успешно"
+
+#: nis/nis_error.h:2
+msgid "Probable success"
+msgstr ""
+
+#: nis/nis_error.h:3
+#, fuzzy
+msgid "Not found"
+msgstr "Не е открит носител"
+
+#: nis/nis_error.h:4
+msgid "Probably not found"
+msgstr ""
+
+#: nis/nis_error.h:5
+#, fuzzy
+msgid "Cache expired"
+msgstr "Изтекъл таймер"
+
+# TODO
+#: nis/nis_error.h:6
+#, fuzzy
+msgid "NIS+ servers unreachable"
+msgstr "Мрежата е недостъпна"
+
+#: nis/nis_error.h:7
+msgid "Unknown object"
+msgstr ""
+
+#: nis/nis_error.h:8
+msgid "Server busy, try again"
+msgstr ""
+
+# TODO
+#: nis/nis_error.h:9
+#, fuzzy
+msgid "Generic system error"
+msgstr "Грешка при осведомяване"
+
+#: nis/nis_error.h:10
+msgid "First/next chain broken"
+msgstr ""
+
+#. TRANS Permission denied; the file permissions do not allow the attempted operation.
+#: nis/nis_error.h:11 nis/ypclnt.c:867 sysdeps/gnu/errlist.c:157
+msgid "Permission denied"
+msgstr "Отказан достъп"
+
+#: nis/nis_error.h:12
+msgid "Not owner"
+msgstr ""
+
+#: nis/nis_error.h:13
+msgid "Name not served by this server"
+msgstr ""
+
+#: nis/nis_error.h:14
+msgid "Server out of memory"
+msgstr ""
+
+#: nis/nis_error.h:15
+msgid "Object with same name exists"
+msgstr ""
+
+#: nis/nis_error.h:16
+msgid "Not master server for this domain"
+msgstr ""
+
+#: nis/nis_error.h:17
+msgid "Invalid object for operation"
+msgstr ""
+
+#: nis/nis_error.h:18
+msgid "Malformed name, or illegal name"
+msgstr ""
+
+#: nis/nis_error.h:19
+msgid "Unable to create callback"
+msgstr ""
+
+#: nis/nis_error.h:20
+msgid "Results sent to callback proc"
+msgstr ""
+
+#: nis/nis_error.h:21
+msgid "Not found, no such name"
+msgstr ""
+
+#: nis/nis_error.h:22
+msgid "Name/entry isn't unique"
+msgstr ""
+
+#: nis/nis_error.h:23
+msgid "Modification failed"
+msgstr ""
+
+#: nis/nis_error.h:24
+msgid "Database for table does not exist"
+msgstr ""
+
+#: nis/nis_error.h:25
+msgid "Entry/table type mismatch"
+msgstr ""
+
+#: nis/nis_error.h:26
+msgid "Link points to illegal name"
+msgstr ""
+
+#: nis/nis_error.h:27
+msgid "Partial success"
+msgstr ""
+
+#: nis/nis_error.h:28
+#, fuzzy
+msgid "Too many attributes"
+msgstr "Твърде много потребители"
+
+#: nis/nis_error.h:29
+msgid "Error in RPC subsystem"
+msgstr ""
+
+#: nis/nis_error.h:30
+msgid "Missing or malformed attribute"
+msgstr ""
+
+# TODO
+#: nis/nis_error.h:31
+#, fuzzy
+msgid "Named object is not searchable"
+msgstr "Мрежата е недостъпна"
+
+#: nis/nis_error.h:32
+msgid "Error while talking to callback proc"
+msgstr ""
+
+#: nis/nis_error.h:33
+msgid "Non NIS+ namespace encountered"
+msgstr ""
+
+#: nis/nis_error.h:34
+msgid "Illegal object type for operation"
+msgstr ""
+
+#: nis/nis_error.h:35
+msgid "Passed object is not the same object on server"
+msgstr ""
+
+#: nis/nis_error.h:36
+#, fuzzy
+msgid "Modify operation failed"
+msgstr "Отменена операция"
+
+#: nis/nis_error.h:37
+msgid "Query illegal for named table"
+msgstr ""
+
+#: nis/nis_error.h:38
+msgid "Attempt to remove a non-empty table"
+msgstr ""
+
+#: nis/nis_error.h:39
+msgid "Error in accessing NIS+ cold start file.  Is NIS+ installed?"
+msgstr ""
+
+#: nis/nis_error.h:40
+#, fuzzy
+msgid "Full resync required for directory"
+msgstr "Няма такъв файл или директория"
+
+#: nis/nis_error.h:41
+#, fuzzy
+msgid "NIS+ operation failed"
+msgstr "Отменена операция"
+
+#: nis/nis_error.h:42
+msgid "NIS+ service is unavailable or not installed"
+msgstr ""
+
+#: nis/nis_error.h:43
+msgid "Yes, 42 is the meaning of life"
+msgstr ""
+
+#: nis/nis_error.h:44
+msgid "Unable to authenticate NIS+ server"
+msgstr ""
+
+#: nis/nis_error.h:45
+msgid "Unable to authenticate NIS+ client"
+msgstr ""
+
+#: nis/nis_error.h:46
+#, fuzzy
+msgid "No file space on server"
+msgstr "Няма свободно място на устройството"
+
+#: nis/nis_error.h:47
+msgid "Unable to create process on server"
+msgstr ""
+
+#: nis/nis_error.h:48
+msgid "Master server busy, full dump rescheduled."
+msgstr ""
+
+#: nis/nis_local_names.c:122
+#, c-format
+msgid "LOCAL entry for UID %d in directory %s not unique\n"
+msgstr ""
+
+#: nis/nis_print.c:51
+msgid "UNKNOWN"
+msgstr ""
+
+#: nis/nis_print.c:109
+msgid "BOGUS OBJECT\n"
+msgstr ""
+
+#: nis/nis_print.c:112
+msgid "NO OBJECT\n"
+msgstr ""
+
+#: nis/nis_print.c:115
+msgid "DIRECTORY\n"
+msgstr ""
+
+#: nis/nis_print.c:118
+msgid "GROUP\n"
+msgstr ""
+
+#: nis/nis_print.c:121
+msgid "TABLE\n"
+msgstr ""
+
+#: nis/nis_print.c:124
+msgid "ENTRY\n"
+msgstr ""
+
+#: nis/nis_print.c:127
+msgid "LINK\n"
+msgstr ""
+
+#: nis/nis_print.c:130
+msgid "PRIVATE\n"
+msgstr ""
+
+#: nis/nis_print.c:133
+msgid "(Unknown object)\n"
+msgstr ""
+
+#: nis/nis_print.c:167
+#, c-format
+msgid "Name : `%s'\n"
+msgstr ""
+
+#: nis/nis_print.c:168
+#, c-format
+msgid "Type : %s\n"
+msgstr ""
+
+#: nis/nis_print.c:173
+msgid "Master Server :\n"
+msgstr ""
+
+#: nis/nis_print.c:175
+msgid "Replicate :\n"
+msgstr ""
+
+#: nis/nis_print.c:176
+#, c-format
+msgid "\tName       : %s\n"
+msgstr ""
+
+#: nis/nis_print.c:177
+msgid "\tPublic Key : "
+msgstr ""
+
+#: nis/nis_print.c:181
+msgid "None.\n"
+msgstr ""
+
+#: nis/nis_print.c:184
+#, c-format
+msgid "Diffie-Hellmann (%d bits)\n"
+msgstr ""
+
+#: nis/nis_print.c:189
+#, c-format
+msgid "RSA (%d bits)\n"
+msgstr ""
+
+#: nis/nis_print.c:192
+msgid "Kerberos.\n"
+msgstr ""
+
+#: nis/nis_print.c:195
+#, c-format
+msgid "Unknown (type = %d, bits = %d)\n"
+msgstr ""
+
+#: nis/nis_print.c:206
+#, c-format
+msgid "\tUniversal addresses (%u)\n"
+msgstr ""
+
+#: nis/nis_print.c:228
+msgid "Time to live : "
+msgstr ""
+
+#: nis/nis_print.c:230
+msgid "Default Access rights :\n"
+msgstr ""
+
+#: nis/nis_print.c:239
+#, c-format
+msgid "\tType         : %s\n"
+msgstr ""
+
+#: nis/nis_print.c:240
+msgid "\tAccess rights: "
+msgstr ""
+
+#: nis/nis_print.c:254
+msgid "Group Flags :"
+msgstr ""
+
+#: nis/nis_print.c:257
+msgid ""
+"\n"
+"Group Members :\n"
+msgstr ""
+
+#: nis/nis_print.c:269
+#, c-format
+msgid "Table Type          : %s\n"
+msgstr ""
+
+#: nis/nis_print.c:270
+#, c-format
+msgid "Number of Columns   : %d\n"
+msgstr ""
+
+#: nis/nis_print.c:271
+#, c-format
+msgid "Character Separator : %c\n"
+msgstr ""
+
+#: nis/nis_print.c:272
+#, c-format
+msgid "Search Path         : %s\n"
+msgstr ""
+
+#: nis/nis_print.c:273
+msgid "Columns             :\n"
+msgstr ""
+
+#: nis/nis_print.c:276
+#, c-format
+msgid "\t[%d]\tName          : %s\n"
+msgstr ""
+
+#: nis/nis_print.c:278
+msgid "\t\tAttributes    : "
+msgstr ""
+
+#: nis/nis_print.c:280
+msgid "\t\tAccess Rights : "
+msgstr ""
+
+#: nis/nis_print.c:290
+msgid "Linked Object Type : "
+msgstr ""
+
+#: nis/nis_print.c:292
+#, c-format
+msgid "Linked to : %s\n"
+msgstr ""
+
+#: nis/nis_print.c:302
+#, c-format
+msgid "\tEntry data of type %s\n"
+msgstr ""
+
+#: nis/nis_print.c:305
+#, c-format
+msgid "\t[%u] - [%u bytes] "
+msgstr ""
+
+#: nis/nis_print.c:308
+msgid "Encrypted data\n"
+msgstr ""
+
+#: nis/nis_print.c:310
+msgid "Binary data\n"
+msgstr ""
+
+#: nis/nis_print.c:326
+#, c-format
+msgid "Object Name   : %s\n"
+msgstr ""
+
+#: nis/nis_print.c:327
+#, c-format
+msgid "Directory     : %s\n"
+msgstr ""
+
+#: nis/nis_print.c:328
+#, c-format
+msgid "Owner         : %s\n"
+msgstr ""
+
+#: nis/nis_print.c:329
+#, c-format
+msgid "Group         : %s\n"
+msgstr ""
+
+#: nis/nis_print.c:330
+msgid "Access Rights : "
+msgstr ""
+
+#: nis/nis_print.c:332
+#, c-format
+msgid ""
+"\n"
+"Time to Live  : "
+msgstr ""
+
+#: nis/nis_print.c:335
+#, c-format
+msgid "Creation Time : %s"
+msgstr ""
+
+#: nis/nis_print.c:337
+#, c-format
+msgid "Mod. Time     : %s"
+msgstr ""
+
+#: nis/nis_print.c:338
+msgid "Object Type   : "
+msgstr ""
+
+#: nis/nis_print.c:358
+#, c-format
+msgid "    Data Length = %u\n"
+msgstr ""
+
+#: nis/nis_print.c:372
+#, c-format
+msgid "Status            : %s\n"
+msgstr ""
+
+#: nis/nis_print.c:373
+#, c-format
+msgid "Number of objects : %u\n"
+msgstr ""
+
+#: nis/nis_print.c:377
+#, c-format
+msgid "Object #%d:\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:117
+#, c-format
+msgid "Group entry for \"%s.%s\" group:\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:125
+msgid "    Explicit members:\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:130
+msgid "    No explicit members\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:133
+msgid "    Implicit members:\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:138
+msgid "    No implicit members\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:141
+msgid "    Recursive members:\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:146
+msgid "    No recursive members\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:149
+msgid "    Explicit nonmembers:\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:154
+msgid "    No explicit nonmembers\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:157
+msgid "    Implicit nonmembers:\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:162
+msgid "    No implicit nonmembers\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:165
+msgid "    Recursive nonmembers:\n"
+msgstr ""
+
+#: nis/nis_print_group_entry.c:170
+msgid "    No recursive nonmembers\n"
+msgstr ""
+
+#: nis/nss_nisplus/nisplus-publickey.c:101
+#: nis/nss_nisplus/nisplus-publickey.c:183
+#, c-format
+msgid "DES entry for netname %s not unique\n"
+msgstr ""
+
+#: nis/nss_nisplus/nisplus-publickey.c:220
+#, c-format
+msgid "netname2user: missing group id list in `%s'"
+msgstr ""
+
+#: nis/nss_nisplus/nisplus-publickey.c:302
+#: nis/nss_nisplus/nisplus-publickey.c:308
+#: nis/nss_nisplus/nisplus-publickey.c:373
+#: nis/nss_nisplus/nisplus-publickey.c:382
+#, c-format
+msgid "netname2user: (nis+ lookup): %s\n"
+msgstr ""
+
+#: nis/nss_nisplus/nisplus-publickey.c:321
+#, c-format
+msgid "netname2user: DES entry for %s in directory %s not unique"
+msgstr ""
+
+#: nis/nss_nisplus/nisplus-publickey.c:339
+#, c-format
+msgid "netname2user: principal name `%s' too long"
+msgstr ""
+
+#: nis/nss_nisplus/nisplus-publickey.c:395
+#, c-format
+msgid "netname2user: LOCAL entry for %s in directory %s not unique"
+msgstr ""
+
+#: nis/nss_nisplus/nisplus-publickey.c:402
+msgid "netname2user: should not have uid 0"
+msgstr ""
+
+#: nis/ypclnt.c:825
+msgid "Request arguments bad"
+msgstr ""
+
+#: nis/ypclnt.c:828
+msgid "RPC failure on NIS operation"
+msgstr ""
+
+#: nis/ypclnt.c:831
+msgid "Can't bind to server which serves this domain"
+msgstr ""
+
+#: nis/ypclnt.c:834
+msgid "No such map in server's domain"
+msgstr ""
+
+#: nis/ypclnt.c:837
+#, fuzzy
+msgid "No such key in map"
+msgstr "Няма такова устройство"
+
+#: nis/ypclnt.c:840
+msgid "Internal NIS error"
+msgstr ""
+
+#: nis/ypclnt.c:843
+msgid "Local resource allocation failure"
+msgstr ""
+
+#: nis/ypclnt.c:846
+msgid "No more records in map database"
+msgstr ""
+
+#: nis/ypclnt.c:849
+msgid "Can't communicate with portmapper"
+msgstr ""
+
+#: nis/ypclnt.c:852
+msgid "Can't communicate with ypbind"
+msgstr ""
+
+#: nis/ypclnt.c:855
+msgid "Can't communicate with ypserv"
+msgstr ""
+
+#: nis/ypclnt.c:858
+msgid "Local domain name not set"
+msgstr ""
+
+#: nis/ypclnt.c:861
+msgid "NIS map database is bad"
+msgstr ""
+
+#: nis/ypclnt.c:864
+msgid "NIS client/server version mismatch - can't supply service"
+msgstr ""
+
+#: nis/ypclnt.c:870
+msgid "Database is busy"
+msgstr ""
+
+#: nis/ypclnt.c:873
+msgid "Unknown NIS error code"
+msgstr ""
+
+#: nis/ypclnt.c:913
+#, fuzzy
+msgid "Internal ypbind error"
+msgstr "Канална грешка при потоци"
+
+#: nis/ypclnt.c:916
+msgid "Domain not bound"
+msgstr ""
+
+#: nis/ypclnt.c:919
+msgid "System resource allocation failure"
+msgstr ""
+
+#: nis/ypclnt.c:922
+msgid "Unknown ypbind error"
+msgstr ""
+
+#: nis/ypclnt.c:963
+msgid "yp_update: cannot convert host to netname\n"
+msgstr ""
+
+#: nis/ypclnt.c:981
+msgid "yp_update: cannot get server address\n"
+msgstr ""
+
+#: nscd/aicache.c:77 nscd/hstcache.c:462
+#, c-format
+msgid "Haven't found \"%s\" in hosts cache!"
+msgstr ""
+
+#: nscd/aicache.c:79 nscd/hstcache.c:464
+#, c-format
+msgid "Reloading \"%s\" in hosts cache!"
+msgstr ""
+
+#: nscd/cache.c:146
+#, c-format
+msgid "add new entry \"%s\" of type %s for %s to cache%s"
+msgstr ""
+
+#: nscd/cache.c:148
+msgid " (first)"
+msgstr ""
+
+#: nscd/cache.c:256 nscd/connections.c:786
+#, c-format
+msgid "cannot stat() file `%s': %s"
+msgstr ""
+
+#: nscd/cache.c:285
+#, c-format
+msgid "pruning %s cache; time %ld"
+msgstr ""
+
+#: nscd/cache.c:312
+#, c-format
+msgid "considering %s entry \"%s\", timeout %<PRIu64>"
+msgstr ""
+
+#: nscd/connections.c:505 nscd/connections.c:517 nscd/connections.c:529
+#: nscd/connections.c:548
+#, c-format
+msgid "invalid persistent database file \"%s\": %s"
+msgstr ""
+
+#: nscd/connections.c:519
+msgid "header size does not match"
+msgstr ""
+
+#: nscd/connections.c:531
+msgid "file size does not match"
+msgstr ""
+
+#: nscd/connections.c:550
+#, fuzzy
+msgid "verification failed"
+msgstr "Отменена операция"
+
+#: nscd/connections.c:564
+#, c-format
+msgid "suggested size of table for database %s larger than the persistent database's table"
+msgstr ""
+
+#: nscd/connections.c:574 nscd/connections.c:655
+#, c-format
+msgid "cannot create read-only descriptor for \"%s\"; no mmap"
+msgstr ""
+
+#: nscd/connections.c:634
+#, c-format
+msgid "database for %s corrupted or simultaneously used; remove %s manually if necessary and restart"
+msgstr ""
+
+#: nscd/connections.c:641
+#, c-format
+msgid "cannot create %s; no persistent database used"
+msgstr ""
+
+#: nscd/connections.c:644
+#, c-format
+msgid "cannot create %s; no sharing possible"
+msgstr ""
+
+#: nscd/connections.c:715
+#, c-format
+msgid "cannot write to database file %s: %s"
+msgstr ""
+
+#: nscd/connections.c:749
+#, c-format
+msgid "cannot set socket to close on exec: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/connections.c:799
+#, c-format
+msgid "cannot open socket: %s"
+msgstr ""
+
+#: nscd/connections.c:816
+#, c-format
+msgid "cannot change socket to nonblocking mode: %s"
+msgstr ""
+
+#: nscd/connections.c:824
+#, c-format
+msgid "cannot set socket to close on exec: %s"
+msgstr ""
+
+#: nscd/connections.c:835
+#, c-format
+msgid "cannot enable socket to accept connections: %s"
+msgstr ""
+
+#: nscd/connections.c:926
+#, c-format
+msgid "provide access to FD %d, for %s"
+msgstr ""
+
+#: nscd/connections.c:938
+#, c-format
+msgid "cannot handle old request version %d; current version is %d"
+msgstr ""
+
+#: nscd/connections.c:980 nscd/connections.c:1033
+#, c-format
+msgid "cannot write result: %s"
+msgstr ""
+
+#: nscd/connections.c:1116
+#, c-format
+msgid "error getting caller's id: %s"
+msgstr ""
+
+#: nscd/connections.c:1175
+#, c-format
+msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/connections.c:1189
+#, c-format
+msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/connections.c:1229
+#, c-format
+msgid "cannot change to old UID: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/connections.c:1239
+#, c-format
+msgid "cannot change to old GID: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/connections.c:1252
+#, c-format
+msgid "cannot change to old working directory: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/connections.c:1280
+#, c-format
+msgid "re-exec failed: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/connections.c:1289
+#, c-format
+msgid "cannot change current working directory to \"/\": %s"
+msgstr ""
+
+#: nscd/connections.c:1407
+#, c-format
+msgid "short read while reading request: %s"
+msgstr ""
+
+#: nscd/connections.c:1438
+#, c-format
+msgid "key length in request too long: %d"
+msgstr ""
+
+#: nscd/connections.c:1451
+#, c-format
+msgid "short read while reading request key: %s"
+msgstr ""
+
+#: nscd/connections.c:1460
+#, c-format
+msgid "handle_request: request received (Version = %d) from PID %ld"
+msgstr ""
+
+#: nscd/connections.c:1465
+#, c-format
+msgid "handle_request: request received (Version = %d)"
+msgstr ""
+
+#: nscd/connections.c:1826
+#, c-format
+msgid "could only start %d threads; terminating"
+msgstr ""
+
+#: nscd/connections.c:1874 nscd/connections.c:1875 nscd/connections.c:1892
+#: nscd/connections.c:1901 nscd/connections.c:1919 nscd/connections.c:1930
+#: nscd/connections.c:1941
+#, c-format
+msgid "Failed to run nscd as user '%s'"
+msgstr ""
+
+#: nscd/connections.c:1893
+#, c-format
+msgid "initial getgrouplist failed"
+msgstr ""
+
+#: nscd/connections.c:1902
+#, c-format
+msgid "getgrouplist failed"
+msgstr ""
+
+#: nscd/connections.c:1920
+#, c-format
+msgid "setgroups failed"
+msgstr ""
+
+#: nscd/grpcache.c:402 nscd/hstcache.c:412 nscd/initgrcache.c:412
+#: nscd/pwdcache.c:397 nscd/servicescache.c:342
+#, c-format
+msgid "short write in %s: %s"
+msgstr ""
+
+#: nscd/grpcache.c:445 nscd/initgrcache.c:78
+#, c-format
+msgid "Haven't found \"%s\" in group cache!"
+msgstr ""
+
+#: nscd/grpcache.c:447 nscd/initgrcache.c:80
+#, c-format
+msgid "Reloading \"%s\" in group cache!"
+msgstr ""
+
+#: nscd/grpcache.c:524
+#, c-format
+msgid "Invalid numeric gid \"%s\"!"
+msgstr ""
+
+#: nscd/mem.c:383
+#, c-format
+msgid "freed %zu bytes in %s cache"
+msgstr ""
+
+#: nscd/mem.c:512
+#, c-format
+msgid "no more memory for database '%s'"
+msgstr ""
+
+#: nscd/nscd.c:98
+msgid "Read configuration data from NAME"
+msgstr ""
+
+#: nscd/nscd.c:100
+msgid "Do not fork and display messages on the current tty"
+msgstr ""
+
+#: nscd/nscd.c:101
+msgid "NUMBER"
+msgstr ""
+
+#: nscd/nscd.c:101
+msgid "Start NUMBER threads"
+msgstr ""
+
+#: nscd/nscd.c:102
+msgid "Shut the server down"
+msgstr ""
+
+#: nscd/nscd.c:103
+msgid "Print current configuration statistic"
+msgstr ""
+
+#: nscd/nscd.c:104
+msgid "TABLE"
+msgstr ""
+
+#: nscd/nscd.c:105
+msgid "Invalidate the specified cache"
+msgstr ""
+
+#: nscd/nscd.c:106
+msgid "TABLE,yes"
+msgstr ""
+
+#: nscd/nscd.c:107
+msgid "Use separate cache for each user"
+msgstr ""
+
+#: nscd/nscd.c:112
+msgid "Name Service Cache Daemon."
+msgstr ""
+
+#: nscd/nscd.c:144 nss/getent.c:858 nss/makedb.c:123
+#, fuzzy, c-format
+msgid "wrong number of arguments"
+msgstr "Номер на връзка извън диапазона"
+
+#: nscd/nscd.c:154
+#, c-format
+msgid "failure while reading configuration file; this is fatal"
+msgstr ""
+
+#: nscd/nscd.c:163
+#, c-format
+msgid "already running"
+msgstr ""
+
+#: nscd/nscd.c:178 nscd/nscd.c:233
+#, c-format
+msgid "cannot fork"
+msgstr ""
+
+#: nscd/nscd.c:241
+#, c-format
+msgid "cannot change current working directory to \"/\""
+msgstr ""
+
+#: nscd/nscd.c:249
+msgid "Could not create log file"
+msgstr ""
+
+#: nscd/nscd.c:302 nscd/nscd.c:327 nscd/nscd_stat.c:172
+#, c-format
+msgid "Only root is allowed to use this option!"
+msgstr ""
+
+#: nscd/nscd.c:364 nscd/nscd_stat.c:191
+#, c-format
+msgid "write incomplete"
+msgstr ""
+
+#: nscd/nscd.c:375
+#, c-format
+msgid "cannot read invalidate ACK"
+msgstr ""
+
+#: nscd/nscd.c:381
+#, c-format
+msgid "invalidation failed"
+msgstr ""
+
+#: nscd/nscd.c:391
+#, c-format
+msgid "secure services not implemented anymore"
+msgstr ""
+
+#: nscd/nscd_conf.c:57
+#, fuzzy, c-format
+msgid "database %s is not supported"
+msgstr "Неподдържана операция"
+
+# TODO
+#: nscd/nscd_conf.c:108
+#, fuzzy, c-format
+msgid "Parse error: %s"
+msgstr "Грешка при осведомяване"
+
+#: nscd/nscd_conf.c:193
+#, c-format
+msgid "Must specify user name for server-user option"
+msgstr ""
+
+#: nscd/nscd_conf.c:200
+#, c-format
+msgid "Must specify user name for stat-user option"
+msgstr ""
+
+#: nscd/nscd_conf.c:244
+#, c-format
+msgid "invalid value for 'reload-count': %u"
+msgstr ""
+
+#: nscd/nscd_conf.c:259
+#, c-format
+msgid "Must specify value for restart-interval option"
+msgstr ""
+
+#: nscd/nscd_conf.c:273
+#, c-format
+msgid "Unknown option: %s %s %s"
+msgstr ""
+
+#: nscd/nscd_conf.c:286
+#, c-format
+msgid "cannot get current working directory: %s; disabling paranoia mode"
+msgstr ""
+
+#: nscd/nscd_conf.c:306
+#, c-format
+msgid "maximum file size for %s database too small"
+msgstr ""
+
+#: nscd/nscd_stat.c:141
+#, c-format
+msgid "cannot write statistics: %s"
+msgstr ""
+
+#: nscd/nscd_stat.c:156
+msgid "yes"
+msgstr ""
+
+#: nscd/nscd_stat.c:157
+msgid "no"
+msgstr ""
+
+#: nscd/nscd_stat.c:168
+#, c-format
+msgid "Only root or %s is allowed to use this option!"
+msgstr ""
+
+#: nscd/nscd_stat.c:179
+#, c-format
+msgid "nscd not running!\n"
+msgstr ""
+
+#: nscd/nscd_stat.c:203
+#, c-format
+msgid "cannot read statistics data"
+msgstr ""
+
+#: nscd/nscd_stat.c:206
+#, c-format
+msgid ""
+"nscd configuration:\n"
+"\n"
+"%15d  server debug level\n"
+msgstr ""
+
+#: nscd/nscd_stat.c:230
+#, c-format
+msgid "%3ud %2uh %2um %2lus  server runtime\n"
+msgstr ""
+
+#: nscd/nscd_stat.c:233
+#, c-format
+msgid "    %2uh %2um %2lus  server runtime\n"
+msgstr ""
+
+#: nscd/nscd_stat.c:235
+#, c-format
+msgid "        %2um %2lus  server runtime\n"
+msgstr ""
+
+#: nscd/nscd_stat.c:237
+#, c-format
+msgid "            %2lus  server runtime\n"
+msgstr ""
+
+#: nscd/nscd_stat.c:239
+#, c-format
+msgid ""
+"%15d  current number of threads\n"
+"%15d  maximum number of threads\n"
+"%15lu  number of times clients had to wait\n"
+"%15s  paranoia mode enabled\n"
+"%15lu  restart internal\n"
+msgstr ""
+
+#: nscd/nscd_stat.c:273
+#, c-format
+msgid ""
+"\n"
+"%s cache:\n"
+"\n"
+"%15s  cache is enabled\n"
+"%15s  cache is persistent\n"
+"%15s  cache is shared\n"
+"%15zu  suggested size\n"
+"%15zu  total data pool size\n"
+"%15zu  used data pool size\n"
+"%15lu  seconds time to live for positive entries\n"
+"%15lu  seconds time to live for negative entries\n"
+"%15<PRIuMAX>  cache hits on positive entries\n"
+"%15<PRIuMAX>  cache hits on negative entries\n"
+"%15<PRIuMAX>  cache misses on positive entries\n"
+"%15<PRIuMAX>  cache misses on negative entries\n"
+"%15lu%% cache hit rate\n"
+"%15zu  current number of cached values\n"
+"%15zu  maximum number of cached values\n"
+"%15zu  maximum chain length searched\n"
+"%15<PRIuMAX>  number of delays on rdlock\n"
+"%15<PRIuMAX>  number of delays on wrlock\n"
+"%15<PRIuMAX>  memory allocations failed\n"
+"%15s  check /etc/%s for changes\n"
+msgstr ""
+
+#: nscd/pwdcache.c:440
+#, c-format
+msgid "Haven't found \"%s\" in password cache!"
+msgstr ""
+
+#: nscd/pwdcache.c:442
+#, c-format
+msgid "Reloading \"%s\" in password cache!"
+msgstr ""
+
+#: nscd/pwdcache.c:520
+#, c-format
+msgid "Invalid numeric uid \"%s\"!"
+msgstr ""
+
+#: nscd/selinux.c:156
+#, c-format
+msgid "Failed opening connection to the audit subsystem: %m"
+msgstr ""
+
+#: nscd/selinux.c:177
+msgid "Failed to set keep-capabilities"
+msgstr ""
+
+#: nscd/selinux.c:178 nscd/selinux.c:241
+#, c-format
+msgid "prctl(KEEPCAPS) failed"
+msgstr ""
+
+#: nscd/selinux.c:192
+msgid "Failed to initialize drop of capabilities"
+msgstr ""
+
+#: nscd/selinux.c:193
+#, c-format
+msgid "cap_init failed"
+msgstr ""
+
+#: nscd/selinux.c:214 nscd/selinux.c:231
+msgid "Failed to drop capabilities"
+msgstr ""
+
+#: nscd/selinux.c:215 nscd/selinux.c:232
+#, c-format
+msgid "cap_set_proc failed"
+msgstr ""
+
+#: nscd/selinux.c:240
+msgid "Failed to unset keep-capabilities"
+msgstr ""
+
+#: nscd/selinux.c:256
+msgid "Failed to determine if kernel supports SELinux"
+msgstr ""
+
+#: nscd/selinux.c:271
+#, c-format
+msgid "Failed to start AVC thread"
+msgstr ""
+
+#: nscd/selinux.c:293
+#, c-format
+msgid "Failed to create AVC lock"
+msgstr ""
+
+#: nscd/selinux.c:333
+#, fuzzy, c-format
+msgid "Failed to start AVC"
+msgstr "Твърде голям файл"
+
+#: nscd/selinux.c:335
+msgid "Access Vector Cache (AVC) started"
+msgstr ""
+
+#: nscd/selinux.c:356
+msgid "Error getting context of socket peer"
+msgstr ""
+
+#: nscd/selinux.c:361
+msgid "Error getting context of nscd"
+msgstr ""
+
+#: nscd/selinux.c:367
+msgid "Error getting sid from context"
+msgstr ""
+
+#: nscd/selinux.c:399
+#, c-format
+msgid ""
+"\n"
+"SELinux AVC Statistics:\n"
+"\n"
+"%15u  entry lookups\n"
+"%15u  entry hits\n"
+"%15u  entry misses\n"
+"%15u  entry discards\n"
+"%15u  CAV lookups\n"
+"%15u  CAV hits\n"
+"%15u  CAV probes\n"
+"%15u  CAV misses\n"
+msgstr ""
+
+#: nscd/servicescache.c:389
+#, c-format
+msgid "Haven't found \"%s\" in services cache!"
+msgstr ""
+
+#: nscd/servicescache.c:391
+#, c-format
+msgid "Reloading \"%s\" in services cache!"
+msgstr ""
+
+#: nss/getent.c:52
+msgid "database [key ...]"
+msgstr ""
+
+#: nss/getent.c:57
+msgid "Service configuration to be used"
+msgstr ""
+
+#: nss/getent.c:62
+msgid ""
+"Get entries from administrative database.\vFor bug reporting instructions, please see:\n"
+"<http://www.gnu.org/software/libc/bugs.html>.\n"
+msgstr ""
+
+#: nss/getent.c:145 nss/getent.c:394
+#, fuzzy, c-format
+msgid "Enumeration not supported on %s\n"
+msgstr "Неподдържана операция"
+
+#: nss/getent.c:782
+#, c-format
+msgid "Unknown database name"
+msgstr ""
+
+#: nss/getent.c:808
+msgid "Supported databases:\n"
+msgstr ""
+
+#: nss/getent.c:868
+#, c-format
+msgid "Unknown database: %s\n"
+msgstr ""
+
+#: nss/makedb.c:60
+msgid "Convert key to lower case"
+msgstr ""
+
+#: nss/makedb.c:63
+msgid "Do not print messages while building database"
+msgstr ""
+
+#: nss/makedb.c:65
+msgid "Print content of database file, one entry a line"
+msgstr ""
+
+#: nss/makedb.c:70
+msgid "Create simple DB database from textual input."
+msgstr ""
+
+#: nss/makedb.c:73
+msgid ""
+"INPUT-FILE OUTPUT-FILE\n"
+"-o OUTPUT-FILE INPUT-FILE\n"
+"-u INPUT-FILE"
+msgstr ""
+
+#: nss/makedb.c:142
+#, c-format
+msgid "No usable database library found."
+msgstr ""
+
+#: nss/makedb.c:149
+#, c-format
+msgid "cannot open database file `%s': %s"
+msgstr ""
+
+#: nss/makedb.c:151
+msgid "incorrectly formatted file"
+msgstr ""
+
+#: nss/makedb.c:331
+msgid "duplicate key"
+msgstr ""
+
+#: nss/makedb.c:337
+#, c-format
+msgid "while writing database file"
+msgstr ""
+
+#: nss/makedb.c:348
+#, c-format
+msgid "problems while reading `%s'"
+msgstr ""
+
+#: nss/makedb.c:368 nss/makedb.c:385
+#, c-format
+msgid "while reading database"
+msgstr ""
+
+#: posix/getconf.c:945
+#, c-format
+msgid "Usage: %s [-v specification] variable_name [pathname]\n"
+msgstr ""
+
+#: posix/getconf.c:948
+#, c-format
+msgid "       %s -a [pathname]\n"
+msgstr ""
+
+#: posix/getconf.c:1067
+#, c-format
+msgid "unknown specification \"%s\""
+msgstr ""
+
+#: posix/getconf.c:1095
+#, c-format
+msgid "Couldn't execute %s"
+msgstr ""
+
+#: posix/getconf.c:1135 posix/getconf.c:1151
+msgid "undefined"
+msgstr ""
+
+#: posix/getconf.c:1173
+#, c-format
+msgid "Unrecognized variable `%s'"
+msgstr ""
+
+#: posix/getopt.c:571 posix/getopt.c:587
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr ""
+
+#: posix/getopt.c:620 posix/getopt.c:624
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr ""
+
+#: posix/getopt.c:633 posix/getopt.c:638
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr ""
+
+#: posix/getopt.c:681 posix/getopt.c:700 posix/getopt.c:1016
+#: posix/getopt.c:1035
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr ""
+
+#: posix/getopt.c:738 posix/getopt.c:741
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr ""
+
+#: posix/getopt.c:749 posix/getopt.c:752
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr ""
+
+#: posix/getopt.c:804 posix/getopt.c:807
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr ""
+
+#: posix/getopt.c:813 posix/getopt.c:816
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr ""
+
+#: posix/getopt.c:868 posix/getopt.c:884 posix/getopt.c:1088
+#: posix/getopt.c:1106
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr ""
+
+#: posix/getopt.c:937 posix/getopt.c:953
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr ""
+
+#: posix/getopt.c:977 posix/getopt.c:995
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr ""
+
+#: posix/regcomp.c:135
+msgid "No match"
+msgstr ""
+
+#: posix/regcomp.c:138
+#, fuzzy
+msgid "Invalid regular expression"
+msgstr "Неправилен аргумент"
+
+#: posix/regcomp.c:141
+#, fuzzy
+msgid "Invalid collation character"
+msgstr "Неправилен или непълен многобайтов или широк писмен знак"
+
+#: posix/regcomp.c:144
+msgid "Invalid character class name"
+msgstr ""
+
+#: posix/regcomp.c:147
+msgid "Trailing backslash"
+msgstr ""
+
+#: posix/regcomp.c:150
+#, fuzzy
+msgid "Invalid back reference"
+msgstr "Неправилен аргумент"
+
+#: posix/regcomp.c:153
+msgid "Unmatched [ or [^"
+msgstr ""
+
+#: posix/regcomp.c:156
+msgid "Unmatched ( or \\("
+msgstr ""
+
+#: posix/regcomp.c:159
+msgid "Unmatched \\{"
+msgstr ""
+
+#: posix/regcomp.c:162
+msgid "Invalid content of \\{\\}"
+msgstr ""
+
+#: posix/regcomp.c:165
+#, fuzzy
+msgid "Invalid range end"
+msgstr "Неправилен аргумент"
+
+#: posix/regcomp.c:168
+msgid "Memory exhausted"
+msgstr ""
+
+#: posix/regcomp.c:171
+msgid "Invalid preceding regular expression"
+msgstr ""
+
+#: posix/regcomp.c:174
+msgid "Premature end of regular expression"
+msgstr ""
+
+#: posix/regcomp.c:177
+msgid "Regular expression too big"
+msgstr ""
+
+#: posix/regcomp.c:180
+msgid "Unmatched ) or \\)"
+msgstr ""
+
+#: posix/regcomp.c:660
+msgid "No previous regular expression"
+msgstr ""
+
+#: posix/wordexp.c:1798
+msgid "parameter null or not set"
+msgstr ""
+
+#: resolv/herror.c:68
+msgid "Resolver Error 0 (no error)"
+msgstr ""
+
+#: resolv/herror.c:69
+msgid "Unknown host"
+msgstr ""
+
+#: resolv/herror.c:70
+msgid "Host name lookup failure"
+msgstr ""
+
+#: resolv/herror.c:71
+msgid "Unknown server error"
+msgstr ""
+
+#: resolv/herror.c:72
+msgid "No address associated with name"
+msgstr ""
+
+#: resolv/herror.c:107
+msgid "Resolver internal error"
+msgstr ""
+
+#: resolv/herror.c:110
+msgid "Unknown resolver error"
+msgstr ""
+
+#: resolv/res_hconf.c:124
+#, c-format
+msgid "%s: line %d: cannot specify more than %d trim domains"
+msgstr ""
+
+#: resolv/res_hconf.c:145
+#, c-format
+msgid "%s: line %d: list delimiter not followed by domain"
+msgstr ""
+
+#: resolv/res_hconf.c:204
+#, c-format
+msgid "%s: line %d: expected `on' or `off', found `%s'\n"
+msgstr ""
+
+#: resolv/res_hconf.c:247
+#, c-format
+msgid "%s: line %d: bad command `%s'\n"
+msgstr ""
+
+#: resolv/res_hconf.c:282
+#, c-format
+msgid "%s: line %d: ignoring trailing garbage `%s'\n"
+msgstr ""
+
+#: stdio-common/psignal.c:51
+#, c-format
+msgid "%s%sUnknown signal %d\n"
+msgstr ""
+
+#: stdio-common/psignal.c:52
+msgid "Unknown signal"
+msgstr ""
+
+#: string/_strerror.c:45 sysdeps/mach/_strerror.c:87
+msgid "Unknown error "
+msgstr ""
+
+# TODO
+#: string/strerror.c:43
+#, fuzzy
+msgid "Unknown error"
+msgstr "Грешка при srmount"
+
+#: string/strsignal.c:65
+#, c-format
+msgid "Real-time signal %d"
+msgstr ""
+
+#: string/strsignal.c:69
+#, c-format
+msgid "Unknown signal %d"
+msgstr ""
+
+#: sunrpc/auth_unix.c:114
+msgid "authunix_create: out of memory\n"
+msgstr ""
+
+#: sunrpc/auth_unix.c:350
+msgid "auth_unix.c: Fatal marshalling problem"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:118 sunrpc/clnt_perr.c:139
+#, c-format
+msgid "; low version = %lu, high version = %lu"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:125
+msgid "; why = "
+msgstr ""
+
+#: sunrpc/clnt_perr.c:132
+#, fuzzy, c-format
+msgid "(unknown authentication error - %d)"
+msgstr "Грешка при удостоверяване (authentication)"
+
+#: sunrpc/clnt_perr.c:172
+#, fuzzy
+msgid "RPC: Success"
+msgstr "Успешно"
+
+#: sunrpc/clnt_perr.c:175
+msgid "RPC: Can't encode arguments"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:179
+msgid "RPC: Can't decode result"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:183
+msgid "RPC: Unable to send"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:187
+msgid "RPC: Unable to receive"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:191
+msgid "RPC: Timed out"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:195
+msgid "RPC: Incompatible versions of RPC"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:199
+#, fuzzy
+msgid "RPC: Authentication error"
+msgstr "Грешка при удостоверяване (authentication)"
+
+#: sunrpc/clnt_perr.c:203
+#, fuzzy
+msgid "RPC: Program unavailable"
+msgstr "Недостъпна RPC-програма"
+
+#: sunrpc/clnt_perr.c:207
+#, fuzzy
+msgid "RPC: Program/version mismatch"
+msgstr "Неправилна версия на RPC-програма"
+
+#: sunrpc/clnt_perr.c:211
+#, fuzzy
+msgid "RPC: Procedure unavailable"
+msgstr "Недостъпна RPC-програма"
+
+#: sunrpc/clnt_perr.c:215
+msgid "RPC: Server can't decode arguments"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:219
+#, fuzzy
+msgid "RPC: Remote system error"
+msgstr "Отдалечена входно-изходна грешка"
+
+#: sunrpc/clnt_perr.c:223
+msgid "RPC: Unknown host"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:227
+msgid "RPC: Unknown protocol"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:231
+msgid "RPC: Port mapper failure"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:235
+#, fuzzy
+msgid "RPC: Program not registered"
+msgstr "Недостъпна RPC-програма"
+
+#: sunrpc/clnt_perr.c:239
+#, fuzzy
+msgid "RPC: Failed (unspecified error)"
+msgstr "RFS-грешка"
+
+#: sunrpc/clnt_perr.c:280
+msgid "RPC: (unknown error code)"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:342
+#, fuzzy
+msgid "Authentication OK"
+msgstr "Грешка при удостоверяване (authentication)"
+
+#: sunrpc/clnt_perr.c:345
+#, fuzzy
+msgid "Invalid client credential"
+msgstr "Неправилен код на заявка"
+
+#: sunrpc/clnt_perr.c:349
+msgid "Server rejected credential"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:353
+#, fuzzy
+msgid "Invalid client verifier"
+msgstr "Неправилен дескриптор на заявка"
+
+#: sunrpc/clnt_perr.c:357
+msgid "Server rejected verifier"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:361
+msgid "Client credential too weak"
+msgstr ""
+
+#: sunrpc/clnt_perr.c:365
+#, fuzzy
+msgid "Invalid server verifier"
+msgstr "Неправилен дескриптор на заявка"
+
+#: sunrpc/clnt_perr.c:369
+#, fuzzy
+msgid "Failed (unspecified error)"
+msgstr "RFS-грешка"
+
+#: sunrpc/clnt_raw.c:117
+msgid "clnt_raw.c: fatal header serialization error"
+msgstr ""
+
+#: sunrpc/clnt_tcp.c:131
+msgid "clnttcp_create: out of memory\n"
+msgstr ""
+
+#: sunrpc/clnt_udp.c:139
+msgid "clntudp_create: out of memory\n"
+msgstr ""
+
+#: sunrpc/clnt_unix.c:128
+msgid "clntunix_create: out of memory\n"
+msgstr ""
+
+#: sunrpc/pm_getmaps.c:83
+msgid "pmap_getmaps.c: rpc problem"
+msgstr ""
+
+#: sunrpc/pmap_clnt.c:129
+msgid "Cannot register service"
+msgstr ""
+
+#: sunrpc/pmap_rmt.c:248
+msgid "Cannot create socket for broadcast rpc"
+msgstr ""
+
+#: sunrpc/pmap_rmt.c:255
+msgid "Cannot set socket option SO_BROADCAST"
+msgstr ""
+
+#: sunrpc/pmap_rmt.c:307
+msgid "Cannot send broadcast packet"
+msgstr ""
+
+#: sunrpc/pmap_rmt.c:332
+msgid "Broadcast poll problem"
+msgstr ""
+
+#: sunrpc/pmap_rmt.c:345
+msgid "Cannot receive reply to broadcast"
+msgstr ""
+
+#: sunrpc/rpc_main.c:286
+#, c-format
+msgid "%s: output would overwrite %s\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:293
+#, c-format
+msgid "%s: unable to open %s: %m\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:305
+#, c-format
+msgid "%s: while writing output %s: %m"
+msgstr ""
+
+#: sunrpc/rpc_main.c:340
+#, c-format
+msgid "cannot find C preprocessor: %s \n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:348
+msgid "cannot find any C preprocessor (cpp)\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:417
+#, c-format
+msgid "%s: C preprocessor failed with signal %d\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:420
+#, c-format
+msgid "%s: C preprocessor failed with exit code %d\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:460
+#, c-format
+msgid "illegal nettype: `%s'\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1122
+#, c-format
+msgid "rpcgen: too many defines\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1134
+#, c-format
+msgid "rpcgen: arglist coding error\n"
+msgstr ""
+
+#. TRANS: the file will not be removed; this is an
+#. TRANS: informative message.
+#: sunrpc/rpc_main.c:1167
+#, c-format
+msgid "file `%s' already exists and may be overwritten\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1212
+#, c-format
+msgid "Cannot specify more than one input file!\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1382
+msgid "This implementation doesn't support newstyle or MT-safe code!\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1391
+#, c-format
+msgid "Cannot use netid flag with inetd flag!\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1403
+msgid "Cannot use netid flag without TIRPC!\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1410
+msgid "Cannot use table flags with newstyle!\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1429
+#, c-format
+msgid "\"infile\" is required for template generation flags.\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1434
+#, c-format
+msgid "Cannot have more than one file generation flag!\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1443
+#, c-format
+msgid "usage: %s infile\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1444
+#, c-format
+msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1446
+#, c-format
+msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1448
+#, c-format
+msgid "\t%s [-s nettype]* [-o outfile] [infile]\n"
+msgstr ""
+
+#: sunrpc/rpc_main.c:1449
+#, c-format
+msgid "\t%s [-n netid]* [-o outfile] [infile]\n"
+msgstr ""
+
+#: sunrpc/rpc_scan.c:114
+msgid "constant or identifier expected"
+msgstr ""
+
+#: sunrpc/rpc_scan.c:310
+msgid "illegal character in file: "
+msgstr ""
+
+#: sunrpc/rpc_scan.c:349 sunrpc/rpc_scan.c:375
+msgid "unterminated string constant"
+msgstr ""
+
+#: sunrpc/rpc_scan.c:381
+msgid "empty char string"
+msgstr ""
+
+#: sunrpc/rpc_scan.c:523 sunrpc/rpc_scan.c:533
+#, fuzzy
+msgid "preprocessor error"
+msgstr "Протоколна грешка"
+
+#: sunrpc/rpcinfo.c:237 sunrpc/rpcinfo.c:383
+#, fuzzy, c-format
+msgid "program %lu is not available\n"
+msgstr "Недостъпна RPC-програма"
+
+#: sunrpc/rpcinfo.c:264 sunrpc/rpcinfo.c:310 sunrpc/rpcinfo.c:333
+#: sunrpc/rpcinfo.c:407 sunrpc/rpcinfo.c:453 sunrpc/rpcinfo.c:476
+#: sunrpc/rpcinfo.c:510
+#, fuzzy, c-format
+msgid "program %lu version %lu is not available\n"
+msgstr "Недостъпна RPC-програма"
+
+#: sunrpc/rpcinfo.c:515
+#, c-format
+msgid "program %lu version %lu ready and waiting\n"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:556 sunrpc/rpcinfo.c:563
+msgid "rpcinfo: can't contact portmapper"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:570
+msgid "No remote programs registered.\n"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:574
+msgid "   program vers proto   port\n"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:613
+msgid "(unknown)"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:637
+#, c-format
+msgid "rpcinfo: broadcast failed: %s\n"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:658
+msgid "Sorry. You are not root\n"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:665
+#, c-format
+msgid "rpcinfo: Could not delete registration for prog %s version %s\n"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:674
+msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:676
+msgid "       rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:678
+msgid "       rpcinfo -p [ host ]\n"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:679
+msgid "       rpcinfo -b prognum versnum\n"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:680
+msgid "       rpcinfo -d prognum versnum\n"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:695
+#, c-format
+msgid "rpcinfo: %s is unknown service\n"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:732
+#, c-format
+msgid "rpcinfo: %s is unknown host\n"
+msgstr ""
+
+#: sunrpc/svc_run.c:70
+msgid "svc_run: - out of memory"
+msgstr ""
+
+#: sunrpc/svc_run.c:90
+msgid "svc_run: - poll failed"
+msgstr ""
+
+#: sunrpc/svc_simple.c:87
+#, c-format
+msgid "can't reassign procedure number %ld\n"
+msgstr ""
+
+#: sunrpc/svc_simple.c:97
+msgid "couldn't create an rpc server\n"
+msgstr ""
+
+#: sunrpc/svc_simple.c:105
+#, c-format
+msgid "couldn't register prog %ld vers %ld\n"
+msgstr ""
+
+#: sunrpc/svc_simple.c:113
+msgid "registerrpc: out of memory\n"
+msgstr ""
+
+#: sunrpc/svc_simple.c:173
+#, c-format
+msgid "trouble replying to prog %d\n"
+msgstr ""
+
+#: sunrpc/svc_simple.c:182
+#, c-format
+msgid "never registered prog %d\n"
+msgstr ""
+
+#: sunrpc/svc_tcp.c:155
+msgid "svc_tcp.c - tcp socket creation problem"
+msgstr ""
+
+#: sunrpc/svc_tcp.c:170
+msgid "svc_tcp.c - cannot getsockname or listen"
+msgstr ""
+
+#: sunrpc/svc_tcp.c:179
+msgid "svctcp_create: out of memory\n"
+msgstr ""
+
+#: sunrpc/svc_tcp.c:218
+msgid "svc_tcp: makefd_xprt: out of memory\n"
+msgstr ""
+
+#: sunrpc/svc_udp.c:128
+msgid "svcudp_create: socket creation problem"
+msgstr ""
+
+#: sunrpc/svc_udp.c:142
+msgid "svcudp_create - cannot getsockname"
+msgstr ""
+
+#: sunrpc/svc_udp.c:152
+msgid "svcudp_create: out of memory\n"
+msgstr ""
+
+#: sunrpc/svc_udp.c:174
+msgid "svcudp_create: xp_pad is too small for IP_PKTINFO\n"
+msgstr ""
+
+#: sunrpc/svc_udp.c:474
+msgid "enablecache: cache already enabled"
+msgstr ""
+
+#: sunrpc/svc_udp.c:480
+msgid "enablecache: could not allocate cache"
+msgstr ""
+
+#: sunrpc/svc_udp.c:489
+msgid "enablecache: could not allocate cache data"
+msgstr ""
+
+#: sunrpc/svc_udp.c:497
+msgid "enablecache: could not allocate cache fifo"
+msgstr ""
+
+#: sunrpc/svc_udp.c:532
+msgid "cache_set: victim not found"
+msgstr ""
+
+#: sunrpc/svc_udp.c:543
+msgid "cache_set: victim alloc failed"
+msgstr ""
+
+#: sunrpc/svc_udp.c:550
+msgid "cache_set: could not allocate new rpc_buffer"
+msgstr ""
+
+#: sunrpc/svc_unix.c:150
+msgid "svc_unix.c - AF_UNIX socket creation problem"
+msgstr ""
+
+#: sunrpc/svc_unix.c:166
+msgid "svc_unix.c - cannot getsockname or listen"
+msgstr ""
+
+#: sunrpc/svc_unix.c:176
+msgid "svcunix_create: out of memory\n"
+msgstr ""
+
+#: sunrpc/svc_unix.c:215
+msgid "svc_unix: makefd_xprt: out of memory\n"
+msgstr ""
+
+#: sunrpc/xdr.c:566
+msgid "xdr_bytes: out of memory\n"
+msgstr ""
+
+#: sunrpc/xdr.c:718
+msgid "xdr_string: out of memory\n"
+msgstr ""
+
+#: sunrpc/xdr_array.c:106
+msgid "xdr_array: out of memory\n"
+msgstr ""
+
+#: sunrpc/xdr_rec.c:156
+msgid "xdrrec_create: out of memory\n"
+msgstr ""
+
+#: sunrpc/xdr_ref.c:86
+msgid "xdr_reference: out of memory\n"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:29 sysdeps/unix/siglist.c:27
+msgid "Hangup"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:30 sysdeps/unix/siglist.c:28
+msgid "Interrupt"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:31 sysdeps/unix/siglist.c:29
+msgid "Quit"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:32 sysdeps/unix/siglist.c:30
+msgid "Illegal instruction"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:33 sysdeps/unix/siglist.c:31
+msgid "Trace/breakpoint trap"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:34
+msgid "Aborted"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:35 sysdeps/unix/siglist.c:34
+msgid "Floating point exception"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:36 sysdeps/unix/siglist.c:35
+msgid "Killed"
+msgstr ""
+
+# TODO
+#: sysdeps/generic/siglist.h:37 sysdeps/unix/siglist.c:36
+#, fuzzy
+msgid "Bus error"
+msgstr "Безпричинна грешка"
+
+#: sysdeps/generic/siglist.h:38 sysdeps/unix/siglist.c:37
+msgid "Segmentation fault"
+msgstr ""
+
+#. TRANS Broken pipe; there is no process reading from the other end of a pipe.
+#. TRANS Every library function that returns this error code also generates a
+#. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled
+#. TRANS or blocked.  Thus, your program will never actually see @code{EPIPE}
+#. TRANS unless it has handled or blocked @code{SIGPIPE}.
+#: sysdeps/generic/siglist.h:39 sysdeps/gnu/errlist.c:359
+#: sysdeps/unix/siglist.c:39
+msgid "Broken pipe"
+msgstr "Прекъснат канал"
+
+#: sysdeps/generic/siglist.h:40 sysdeps/unix/siglist.c:40
+msgid "Alarm clock"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:41 sysdeps/unix/siglist.c:41
+msgid "Terminated"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:42 sysdeps/unix/siglist.c:42
+msgid "Urgent I/O condition"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:43 sysdeps/unix/siglist.c:43
+msgid "Stopped (signal)"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:44 sysdeps/unix/siglist.c:44
+msgid "Stopped"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:45 sysdeps/unix/siglist.c:45
+#, fuzzy
+msgid "Continued"
+msgstr "Отказано свързване"
+
+#: sysdeps/generic/siglist.h:46 sysdeps/unix/siglist.c:46
+#, fuzzy
+msgid "Child exited"
+msgstr "Файлът съществува"
+
+#: sysdeps/generic/siglist.h:47 sysdeps/unix/siglist.c:47
+msgid "Stopped (tty input)"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:48 sysdeps/unix/siglist.c:48
+msgid "Stopped (tty output)"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:49 sysdeps/unix/siglist.c:49
+msgid "I/O possible"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:50 sysdeps/unix/siglist.c:50
+msgid "CPU time limit exceeded"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:51 sysdeps/unix/siglist.c:51
+#, fuzzy
+msgid "File size limit exceeded"
+msgstr "Надвишена дискова квота"
+
+#: sysdeps/generic/siglist.h:52 sysdeps/unix/siglist.c:52
+#, fuzzy
+msgid "Virtual timer expired"
+msgstr "Изтекъл таймер"
+
+#: sysdeps/generic/siglist.h:53 sysdeps/unix/siglist.c:53
+#, fuzzy
+msgid "Profiling timer expired"
+msgstr "Изтекъл таймер"
+
+#: sysdeps/generic/siglist.h:54 sysdeps/unix/siglist.c:54
+#, fuzzy
+msgid "Window changed"
+msgstr "Неправилен обмен"
+
+#: sysdeps/generic/siglist.h:55 sysdeps/unix/siglist.c:56
+msgid "User defined signal 1"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:56 sysdeps/unix/siglist.c:57
+msgid "User defined signal 2"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:60 sysdeps/unix/siglist.c:33
+msgid "EMT trap"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:63 sysdeps/unix/siglist.c:38
+#, fuzzy
+msgid "Bad system call"
+msgstr "Прекъснато системно извикване"
+
+#: sysdeps/generic/siglist.h:66
+msgid "Stack fault"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:69
+#, fuzzy
+msgid "Information request"
+msgstr "Неправилен код на заявка"
+
+#: sysdeps/generic/siglist.h:71
+msgid "Power failure"
+msgstr ""
+
+#: sysdeps/generic/siglist.h:74 sysdeps/unix/siglist.c:55
+msgid "Resource lost"
+msgstr ""
+
+#. TRANS Operation not permitted; only the owner of the file (or other resource)
+#. TRANS or processes with special privileges can perform the operation.
+#: sysdeps/gnu/errlist.c:25
+msgid "Operation not permitted"
+msgstr "Действието не е позволено"
+
+#. TRANS No process matches the specified process ID.
+#: sysdeps/gnu/errlist.c:45
+msgid "No such process"
+msgstr "Няма такъв процес"
+
+#. TRANS Interrupted function call; an asynchronous signal occurred and prevented
+#. TRANS completion of the call.  When this happens, you should try the call
+#. TRANS again.
+#. TRANS
+#. TRANS You can choose to have functions resume after a signal that is handled,
+#. TRANS rather than failing with @code{EINTR}; see @ref{Interrupted
+#. TRANS Primitives}.
+#: sysdeps/gnu/errlist.c:60
+msgid "Interrupted system call"
+msgstr "Прекъснато системно извикване"
+
+#. TRANS Input/output error; usually used for physical read or write errors.
+#: sysdeps/gnu/errlist.c:69
+msgid "Input/output error"
+msgstr "Входно-изходна грешка"
+
+#. TRANS No such device or address.  The system tried to use the device
+#. TRANS represented by a file you specified, and it couldn't find the device.
+#. TRANS This can mean that the device file was installed incorrectly, or that
+#. TRANS the physical device is missing or not correctly attached to the
+#. TRANS computer.
+#: sysdeps/gnu/errlist.c:82
+msgid "No such device or address"
+msgstr "Няма такова устройство или адрес"
+
+#. TRANS Argument list too long; used when the arguments passed to a new program
+#. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a
+#. TRANS File}) occupy too much memory space.  This condition never arises in the
+#. TRANS GNU system.
+#: sysdeps/gnu/errlist.c:94
+msgid "Argument list too long"
+msgstr "Твърде дълъг списък с аргументи"
+
+#. TRANS Invalid executable file format.  This condition is detected by the
+#. TRANS @code{exec} functions; see @ref{Executing a File}.
+#: sysdeps/gnu/errlist.c:104
+msgid "Exec format error"
+msgstr "Неправилен формат за изпълним файл"
+
+#. TRANS Bad file descriptor; for example, I/O on a descriptor that has been
+#. TRANS closed or reading from a descriptor open only for writing (or vice
+#. TRANS versa).
+#: sysdeps/gnu/errlist.c:115
+msgid "Bad file descriptor"
+msgstr "Неправилен файлов дескриптор"
+
+#. TRANS There are no child processes.  This error happens on operations that are
+#. TRANS supposed to manipulate child processes, when there aren't any processes
+#. TRANS to manipulate.
+#: sysdeps/gnu/errlist.c:126
+msgid "No child processes"
+msgstr "Няма дъщерни процеси"
+
+#. TRANS Deadlock avoided; allocating a system resource would have resulted in a
+#. TRANS deadlock situation.  The system does not guarantee that it will notice
+#. TRANS all such situations.  This error means you got lucky and the system
+#. TRANS noticed; it might just hang.  @xref{File Locks}, for an example.
+#: sysdeps/gnu/errlist.c:138
+msgid "Resource deadlock avoided"
+msgstr "Избегнато безизходно положение при заделяне на ресурси"
+
+#. TRANS No memory available.  The system cannot allocate more virtual memory
+#. TRANS because its capacity is full.
+#: sysdeps/gnu/errlist.c:148
+msgid "Cannot allocate memory"
+msgstr "Не може да се задели памет"
+
+#. TRANS Bad address; an invalid pointer was detected.
+#. TRANS In the GNU system, this error never happens; you get a signal instead.
+#: sysdeps/gnu/errlist.c:167
+msgid "Bad address"
+msgstr "Неправилен адрес"
+
+#. TRANS A file that isn't a block special file was given in a situation that
+#. TRANS requires one.  For example, trying to mount an ordinary file as a file
+#. TRANS system in Unix gives this error.
+#: sysdeps/gnu/errlist.c:178
+msgid "Block device required"
+msgstr "Необходимо е блоково устройство"
+
+#. TRANS Resource busy; a system resource that can't be shared is already in use.
+#. TRANS For example, if you try to delete a file that is the root of a currently
+#. TRANS mounted filesystem, you get this error.
+#: sysdeps/gnu/errlist.c:189
+msgid "Device or resource busy"
+msgstr "Заето устройство или ресурс"
+
+#. TRANS File exists; an existing file was specified in a context where it only
+#. TRANS makes sense to specify a new file.
+#: sysdeps/gnu/errlist.c:199
+msgid "File exists"
+msgstr "Файлът съществува"
+
+#. TRANS An attempt to make an improper link across file systems was detected.
+#. TRANS This happens not only when you use @code{link} (@pxref{Hard Links}) but
+#. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}).
+#: sysdeps/gnu/errlist.c:210
+msgid "Invalid cross-device link"
+msgstr "Неправилна връзка през устройства"
+
+#. TRANS The wrong type of device was given to a function that expects a
+#. TRANS particular sort of device.
+#: sysdeps/gnu/errlist.c:220
+msgid "No such device"
+msgstr "Няма такова устройство"
+
+#. TRANS A file that isn't a directory was specified when a directory is required.
+#: sysdeps/gnu/errlist.c:229
+msgid "Not a directory"
+msgstr "Не е директория"
+
+#. TRANS File is a directory; you cannot open a directory for writing,
+#. TRANS or create or remove hard links to it.
+#: sysdeps/gnu/errlist.c:239
+msgid "Is a directory"
+msgstr "Директория е"
+
+#. TRANS Invalid argument.  This is used to indicate various kinds of problems
+#. TRANS with passing the wrong argument to a library function.
+#: sysdeps/gnu/errlist.c:249
+msgid "Invalid argument"
+msgstr "Неправилен аргумент"
+
+#. TRANS The current process has too many files open and can't open any more.
+#. TRANS Duplicate descriptors do count toward this limit.
+#. TRANS
+#. TRANS In BSD and GNU, the number of open files is controlled by a resource
+#. TRANS limit that can usually be increased.  If you get this error, you might
+#. TRANS want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited;
+#. TRANS @pxref{Limits on Resources}.
+#: sysdeps/gnu/errlist.c:264
+msgid "Too many open files"
+msgstr "Твърде много отворени файлове"
+
+#. TRANS There are too many distinct file openings in the entire system.  Note
+#. TRANS that any number of linked channels count as just one file opening; see
+#. TRANS @ref{Linked Channels}.  This error never occurs in the GNU system.
+#: sysdeps/gnu/errlist.c:275
+msgid "Too many open files in system"
+msgstr "Твърде много отворени файлове в системата"
+
+#. TRANS Inappropriate I/O control operation, such as trying to set terminal
+#. TRANS modes on an ordinary file.
+#: sysdeps/gnu/errlist.c:285
+msgid "Inappropriate ioctl for device"
+msgstr "Неподходящ ioctl за устройството"
+
+#. TRANS An attempt to execute a file that is currently open for writing, or
+#. TRANS write to a file that is currently being executed.  Often using a
+#. TRANS debugger to run a program is considered having it open for writing and
+#. TRANS will cause this error.  (The name stands for ``text file busy''.)  This
+#. TRANS is not an error in the GNU system; the text is copied as necessary.
+#: sysdeps/gnu/errlist.c:298
+msgid "Text file busy"
+msgstr "Зает текстов файл"
+
+#. TRANS File too big; the size of a file would be larger than allowed by the system.
+#: sysdeps/gnu/errlist.c:307
+msgid "File too large"
+msgstr "Твърде голям файл"
+
+#. TRANS No space left on device; write operation on a file failed because the
+#. TRANS disk is full.
+#: sysdeps/gnu/errlist.c:317
+msgid "No space left on device"
+msgstr "Няма свободно място на устройството"
+
+#. TRANS Invalid seek operation (such as on a pipe).
+#: sysdeps/gnu/errlist.c:326
+msgid "Illegal seek"
+msgstr "Неправилно позициониране"
+
+#. TRANS An attempt was made to modify something on a read-only file system.
+#: sysdeps/gnu/errlist.c:335
+msgid "Read-only file system"
+msgstr "Файлова система само за четене"
+
+#. TRANS Too many links; the link count of a single file would become too large.
+#. TRANS @code{rename} can cause this error if the file being renamed already has
+#. TRANS as many links as it can take (@pxref{Renaming Files}).
+#: sysdeps/gnu/errlist.c:346
+msgid "Too many links"
+msgstr "Твърде много връзки"
+
+#. TRANS Domain error; used by mathematical functions when an argument value does
+#. TRANS not fall into the domain over which the function is defined.
+#: sysdeps/gnu/errlist.c:369
+msgid "Numerical argument out of domain"
+msgstr "Числов аргумент извън дефиниционната област"
+
+#. TRANS Range error; used by mathematical functions when the result value is
+#. TRANS not representable because of overflow or underflow.
+#: sysdeps/gnu/errlist.c:379
+msgid "Numerical result out of range"
+msgstr "Непредставим числов резултат"
+
+#. TRANS Resource temporarily unavailable; the call might work if you try again
+#. TRANS later.  The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN};
+#. TRANS they are always the same in the GNU C library.
+#. TRANS
+#. TRANS This error can happen in a few different situations:
+#. TRANS
+#. TRANS @itemize @bullet
+#. TRANS @item
+#. TRANS An operation that would block was attempted on an object that has
+#. TRANS non-blocking mode selected.  Trying the same operation again will block
+#. TRANS until some external condition makes it possible to read, write, or
+#. TRANS connect (whatever the operation).  You can use @code{select} to find out
+#. TRANS when the operation will be possible; @pxref{Waiting for I/O}.
+#. TRANS
+#. TRANS @strong{Portability Note:} In many older Unix systems, this condition
+#. TRANS was indicated by @code{EWOULDBLOCK}, which was a distinct error code
+#. TRANS different from @code{EAGAIN}.  To make your program portable, you should
+#. TRANS check for both codes and treat them the same.
+#. TRANS
+#. TRANS @item
+#. TRANS A temporary resource shortage made an operation impossible.  @code{fork}
+#. TRANS can return this error.  It indicates that the shortage is expected to
+#. TRANS pass, so your program can try the call again later and it may succeed.
+#. TRANS It is probably a good idea to delay for a few seconds before trying it
+#. TRANS again, to allow time for other processes to release scarce resources.
+#. TRANS Such shortages are usually fairly serious and affect the whole system,
+#. TRANS so usually an interactive program should report the error to the user
+#. TRANS and return to its command loop.
+#. TRANS @end itemize
+#: sysdeps/gnu/errlist.c:416
+msgid "Resource temporarily unavailable"
+msgstr "Временно недостъпен ресурс"
+
+#. TRANS In the GNU C library, this is another name for @code{EAGAIN} (above).
+#. TRANS The values are always the same, on every operating system.
+#. TRANS
+#. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a
+#. TRANS separate error code.
+#: sysdeps/gnu/errlist.c:429
+msgid "Operation would block"
+msgstr "Операцията би блокирала"
+
+#. TRANS An operation that cannot complete immediately was initiated on an object
+#. TRANS that has non-blocking mode selected.  Some functions that must always
+#. TRANS block (such as @code{connect}; @pxref{Connecting}) never return
+#. TRANS @code{EAGAIN}.  Instead, they return @code{EINPROGRESS} to indicate that
+#. TRANS the operation has begun and will take some time.  Attempts to manipulate
+#. TRANS the object before the call completes return @code{EALREADY}.  You can
+#. TRANS use the @code{select} function to find out when the pending operation
+#. TRANS has completed; @pxref{Waiting for I/O}.
+#: sysdeps/gnu/errlist.c:445
+msgid "Operation now in progress"
+msgstr "Операцията се изпълнява"
+
+#. TRANS An operation is already in progress on an object that has non-blocking
+#. TRANS mode selected.
+#: sysdeps/gnu/errlist.c:455
+msgid "Operation already in progress"
+msgstr "Операцията вече се изпълнява"
+
+#. TRANS A file that isn't a socket was specified when a socket is required.
+#: sysdeps/gnu/errlist.c:464
+msgid "Socket operation on non-socket"
+msgstr "Операцията може да се изпълнява само за гнездо (socket)"
+
+#. TRANS The size of a message sent on a socket was larger than the supported
+#. TRANS maximum size.
+#: sysdeps/gnu/errlist.c:474
+msgid "Message too long"
+msgstr "Твърде дълго съобщение"
+
+#. TRANS The socket type does not support the requested communications protocol.
+#: sysdeps/gnu/errlist.c:483
+msgid "Protocol wrong type for socket"
+msgstr "Неправилен тип протокол за гнездото (socket)"
+
+#. TRANS You specified a socket option that doesn't make sense for the
+#. TRANS particular protocol being used by the socket.  @xref{Socket Options}.
+#: sysdeps/gnu/errlist.c:493
+msgid "Protocol not available"
+msgstr "Недостъпен протокол"
+
+#. TRANS The socket domain does not support the requested communications protocol
+#. TRANS (perhaps because the requested protocol is completely invalid).
+#. TRANS @xref{Creating a Socket}.
+#: sysdeps/gnu/errlist.c:504
+msgid "Protocol not supported"
+msgstr "Неподдържан протокол"
+
+#. TRANS The socket type is not supported.
+#: sysdeps/gnu/errlist.c:513
+msgid "Socket type not supported"
+msgstr "Неподдържан тип гнездо (socket)"
+
+#. TRANS The operation you requested is not supported.  Some socket functions
+#. TRANS don't make sense for all types of sockets, and others may not be
+#. TRANS implemented for all communications protocols.  In the GNU system, this
+#. TRANS error can happen for many calls when the object does not support the
+#. TRANS particular operation; it is a generic indication that the server knows
+#. TRANS nothing to do for that call.
+#: sysdeps/gnu/errlist.c:527
+msgid "Operation not supported"
+msgstr "Неподдържана операция"
+
+#. TRANS The socket communications protocol family you requested is not supported.
+#: sysdeps/gnu/errlist.c:536
+msgid "Protocol family not supported"
+msgstr "Неподдържано семейство протоколи"
+
+#. TRANS The address family specified for a socket is not supported; it is
+#. TRANS inconsistent with the protocol being used on the socket.  @xref{Sockets}.
+#: sysdeps/gnu/errlist.c:546
+msgid "Address family not supported by protocol"
+msgstr "Неподдържано адресно семейство от протокола"
+
+#. TRANS The requested socket address is already in use.  @xref{Socket Addresses}.
+#: sysdeps/gnu/errlist.c:555
+msgid "Address already in use"
+msgstr "Адресът вече се използва"
+
+#. TRANS The requested socket address is not available; for example, you tried
+#. TRANS to give a socket a name that doesn't match the local host name.
+#. TRANS @xref{Socket Addresses}.
+#: sysdeps/gnu/errlist.c:566
+msgid "Cannot assign requested address"
+msgstr "Недостъпен адрес на гнездо (socket)"
+
+# TODO
+#. TRANS A socket operation failed because the network was down.
+#: sysdeps/gnu/errlist.c:575
+msgid "Network is down"
+msgstr "Мрежата е изключена"
+
+# TODO
+#. TRANS A socket operation failed because the subnet containing the remote host
+#. TRANS was unreachable.
+#: sysdeps/gnu/errlist.c:585
+msgid "Network is unreachable"
+msgstr "Мрежата е недостъпна"
+
+#. TRANS A network connection was reset because the remote host crashed.
+#: sysdeps/gnu/errlist.c:594
+msgid "Network dropped connection on reset"
+msgstr "Прекъснато мрежова връзка поради рестартиране"
+
+#. TRANS A network connection was aborted locally.
+#: sysdeps/gnu/errlist.c:603
+msgid "Software caused connection abort"
+msgstr "Софтуерно предизвикано прекъсване на връзката"
+
+#. TRANS A network connection was closed for reasons outside the control of the
+#. TRANS local host, such as by the remote machine rebooting or an unrecoverable
+#. TRANS protocol violation.
+#: sysdeps/gnu/errlist.c:614
+msgid "Connection reset by peer"
+msgstr "Едностранно прекъсване на връзката от отсрещната страна"
+
+#. TRANS The kernel's buffers for I/O operations are all in use.  In GNU, this
+#. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the
+#. TRANS other from network operations.
+#: sysdeps/gnu/errlist.c:625
+msgid "No buffer space available"
+msgstr "Няма свободно място за буфер"
+
+#. TRANS You tried to connect a socket that is already connected.
+#. TRANS @xref{Connecting}.
+#: sysdeps/gnu/errlist.c:635
+msgid "Transport endpoint is already connected"
+msgstr "Крайната точка на транспорта вече е свързана"
+
+#. TRANS The socket is not connected to anything.  You get this error when you
+#. TRANS try to transmit data over a socket, without first specifying a
+#. TRANS destination for the data.  For a connectionless socket (for datagram
+#. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead.
+#: sysdeps/gnu/errlist.c:647
+msgid "Transport endpoint is not connected"
+msgstr "Крайната точка на транспорта не е свързана"
+
+#. TRANS No default destination address was set for the socket.  You get this
+#. TRANS error when you try to transmit data over a connectionless socket,
+#. TRANS without first specifying a destination for the data with @code{connect}.
+#: sysdeps/gnu/errlist.c:658
+msgid "Destination address required"
+msgstr "Необходим е целеви адрес"
+
+# TODO
+#. TRANS The socket has already been shut down.
+#: sysdeps/gnu/errlist.c:667
+msgid "Cannot send after transport endpoint shutdown"
+msgstr "Не може да се изпраща след изключване на крайната точка на транспорта"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:676
+msgid "Too many references: cannot splice"
+msgstr "Твърде много препратки: не могат да се наставят"
+
+#. TRANS A socket operation with a specified timeout received no response during
+#. TRANS the timeout period.
+#: sysdeps/gnu/errlist.c:686
+msgid "Connection timed out"
+msgstr "Просрочена мрежова операция"
+
+#. TRANS A remote host refused to allow the network connection (typically because
+#. TRANS it is not running the requested service).
+#: sysdeps/gnu/errlist.c:696
+msgid "Connection refused"
+msgstr "Отказано свързване"
+
+#. TRANS Too many levels of symbolic links were encountered in looking up a file name.
+#. TRANS This often indicates a cycle of symbolic links.
+#: sysdeps/gnu/errlist.c:706
+msgid "Too many levels of symbolic links"
+msgstr "Твърде много нива от символни връзки"
+
+#. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for
+#. TRANS Files}) or host name too long (in @code{gethostname} or
+#. TRANS @code{sethostname}; @pxref{Host Identification}).
+#: sysdeps/gnu/errlist.c:717
+msgid "File name too long"
+msgstr "Твърде дълго файлово име"
+
+#. TRANS The remote host for a requested network connection is down.
+#: sysdeps/gnu/errlist.c:726
+msgid "Host is down"
+msgstr "Хостът е изключен"
+
+#. TRANS The remote host for a requested network connection is not reachable.
+#: sysdeps/gnu/errlist.c:735
+msgid "No route to host"
+msgstr "Няма маршрут до хоста"
+
+#. TRANS Directory not empty, where an empty directory was expected.  Typically,
+#. TRANS this error occurs when you are trying to delete a directory.
+#: sysdeps/gnu/errlist.c:745
+msgid "Directory not empty"
+msgstr "Непразна директория"
+
+#. TRANS This means that the per-user limit on new process would be exceeded by
+#. TRANS an attempted @code{fork}.  @xref{Limits on Resources}, for details on
+#. TRANS the @code{RLIMIT_NPROC} limit.
+#: sysdeps/gnu/errlist.c:756
+msgid "Too many processes"
+msgstr "Твърде много процеси"
+
+#. TRANS The file quota system is confused because there are too many users.
+#. TRANS @c This can probably happen in a GNU system when using NFS.
+#: sysdeps/gnu/errlist.c:766
+msgid "Too many users"
+msgstr "Твърде много потребители"
+
+#. TRANS The user's disk quota was exceeded.
+#: sysdeps/gnu/errlist.c:775
+msgid "Disk quota exceeded"
+msgstr "Надвишена дискова квота"
+
+#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
+#. TRANS system which is due to file system rearrangements on the server host.
+#. TRANS Repairing this condition usually requires unmounting and remounting
+#. TRANS the NFS file system on the local host.
+#: sysdeps/gnu/errlist.c:787
+msgid "Stale NFS file handle"
+msgstr "Престоял файлов манипулатор при NFS (пробвайте размонтиране и повторно монтиране)"
+
+#. TRANS An attempt was made to NFS-mount a remote file system with a file name that
+#. TRANS already specifies an NFS-mounted file.
+#. TRANS (This is an error on some operating systems, but we expect it to work
+#. TRANS properly on the GNU system, making this error code impossible.)
+#: sysdeps/gnu/errlist.c:799
+msgid "Object is remote"
+msgstr "Обектът е отдалечен"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:808
+msgid "RPC struct is bad"
+msgstr "Неправилна RPC-структура"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:817
+msgid "RPC version wrong"
+msgstr "Неправилна версия на RPC"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:826
+msgid "RPC program not available"
+msgstr "Недостъпна RPC-програма"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:835
+msgid "RPC program version wrong"
+msgstr "Неправилна версия на RPC-програма"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:844
+msgid "RPC bad procedure for program"
+msgstr "Неправилна процедура за програма (RPC)"
+
+#. TRANS No locks available.  This is used by the file locking facilities; see
+#. TRANS @ref{File Locks}.  This error is never generated by the GNU system, but
+#. TRANS it can result from an operation to an NFS server running another
+#. TRANS operating system.
+#: sysdeps/gnu/errlist.c:856
+msgid "No locks available"
+msgstr "Надвишен брой заключвания"
+
+#. TRANS Inappropriate file type or format.  The file was the wrong type for the
+#. TRANS operation, or a data file had the wrong format.
+#. TRANS
+#. TRANS On some systems @code{chmod} returns this error if you try to set the
+#. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}.
+#: sysdeps/gnu/errlist.c:869
+msgid "Inappropriate file type or format"
+msgstr "Неподходящ файлов тип или формат"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:878
+msgid "Authentication error"
+msgstr "Грешка при удостоверяване (authentication)"
+
+#. TRANS ???
+#: sysdeps/gnu/errlist.c:887
+msgid "Need authenticator"
+msgstr "Необходим е удостоверител (authenticator)"
+
+#. TRANS Function not implemented.  This indicates that the function called is
+#. TRANS not implemented at all, either in the C library itself or in the
+#. TRANS operating system.  When you get this error, you can be sure that this
+#. TRANS particular function will always fail with @code{ENOSYS} unless you
+#. TRANS install a new version of the C library or the operating system.
+#: sysdeps/gnu/errlist.c:900
+msgid "Function not implemented"
+msgstr "Функцията не е реализирана"
+
+#. TRANS Not supported.  A function returns this error when certain parameter
+#. TRANS values are valid, but the functionality they request is not available.
+#. TRANS This can mean that the function does not implement a particular command
+#. TRANS or option value or flag bit at all.  For functions that operate on some
+#. TRANS object given in a parameter, such as a file descriptor or a port, it
+#. TRANS might instead mean that only @emph{that specific object} (file
+#. TRANS descriptor, port, etc.) is unable to support the other parameters given;
+#. TRANS different file descriptors might support different ranges of parameter
+#. TRANS values.
+#. TRANS
+#. TRANS If the entire function is not available at all in the implementation,
+#. TRANS it returns @code{ENOSYS} instead.
+#: sysdeps/gnu/errlist.c:920
+msgid "Not supported"
+msgstr "Не се поддържа"
+
+#. TRANS While decoding a multibyte character the function came along an invalid
+#. TRANS or an incomplete sequence of bytes or the given wide character is invalid.
+#: sysdeps/gnu/errlist.c:930
+msgid "Invalid or incomplete multibyte or wide character"
+msgstr "Неправилен или непълен многобайтов или широк писмен знак"
+
+#. TRANS In the GNU system, servers supporting the @code{term} protocol return
+#. TRANS this error for certain operations when the caller is not in the
+#. TRANS foreground process group of the terminal.  Users do not usually see this
+#. TRANS error because functions such as @code{read} and @code{write} translate
+#. TRANS it into a @code{SIGTTIN} or @code{SIGTTOU} signal.  @xref{Job Control},
+#. TRANS for information on process groups and these signals.
+#: sysdeps/gnu/errlist.c:944
+msgid "Inappropriate operation for background process"
+msgstr "Неподходяща операция за фонов процес"
+
+# TODO
+#. TRANS In the GNU system, opening a file returns this error when the file is
+#. TRANS translated by a program and the translator program dies while starting
+#. TRANS up, before it has connected to the file.
+#: sysdeps/gnu/errlist.c:955
+msgid "Translator died"
+msgstr "Умрял транслатор"
+
+#. TRANS The experienced user will know what is wrong.
+#. TRANS @c This error code is a joke.  Its perror text is part of the joke.
+#. TRANS @c Don't change it.
+#: sysdeps/gnu/errlist.c:966
+msgid "?"
+msgstr "?"
+
+#. TRANS You did @strong{what}?
+#: sysdeps/gnu/errlist.c:975
+msgid "You really blew it this time"
+msgstr "Този път наистина се издънихте"
+
+# TODO:
+# умря, почина, се помина, се спомина, загина, си отиде, си замина,
+# пукна, се гътна, геберяса
+#
+# Има и евфемизми, но всичките ми звучат грозно и мисля, че са
+# неподходящи. (А.З.)  
+#. TRANS Go home and have a glass of warm, dairy-fresh milk.
+#: sysdeps/gnu/errlist.c:984
+msgid "Computer bought the farm"
+msgstr "Компютърът се спомина"
+
+# TODO
+#. TRANS This error code has no purpose.
+#: sysdeps/gnu/errlist.c:993
+msgid "Gratuitous error"
+msgstr "Безпричинна грешка"
+
+#: sysdeps/gnu/errlist.c:1001
+msgid "Bad message"
+msgstr "Лошо съобщение"
+
+#: sysdeps/gnu/errlist.c:1009
+msgid "Identifier removed"
+msgstr "Отстранен идентификатор"
+
+# TODO
+#: sysdeps/gnu/errlist.c:1017
+msgid "Multihop attempted"
+msgstr "Опитва се multihop"
+
+#: sysdeps/gnu/errlist.c:1025
+msgid "No data available"
+msgstr "Няма налични данни"
+
+#: sysdeps/gnu/errlist.c:1033
+msgid "Link has been severed"
+msgstr "Връзката се разпадна"
+
+#: sysdeps/gnu/errlist.c:1041
+msgid "No message of desired type"
+msgstr "Няма съобщение от необходимия вид"
+
+#: sysdeps/gnu/errlist.c:1049
+msgid "Out of streams resources"
+msgstr "Изчерпване на ресурсите за потоци"
+
+#: sysdeps/gnu/errlist.c:1057
+msgid "Device not a stream"
+msgstr "Устройството не е поток"
+
+#: sysdeps/gnu/errlist.c:1065
+msgid "Value too large for defined data type"
+msgstr "Твърде голяма стойност за определения тип данни"
+
+#: sysdeps/gnu/errlist.c:1073
+msgid "Protocol error"
+msgstr "Протоколна грешка"
+
+#: sysdeps/gnu/errlist.c:1081
+msgid "Timer expired"
+msgstr "Изтекъл таймер"
+
+#. TRANS Operation canceled; an asynchronous operation was canceled before it
+#. TRANS completed.  @xref{Asynchronous I/O}.  When you call @code{aio_cancel},
+#. TRANS the normal result is for the operations affected to complete with this
+#. TRANS error; @pxref{Cancel AIO Operations}.
+#: sysdeps/gnu/errlist.c:1093
+msgid "Operation canceled"
+msgstr "Отменена операция"
+
+#: sysdeps/gnu/errlist.c:1101
+msgid "Interrupted system call should be restarted"
+msgstr "Прекъснатото системно извикване трябва да бъде рестартирано"
+
+#: sysdeps/gnu/errlist.c:1109
+msgid "Channel number out of range"
+msgstr "Номер на канал извън диапазона"
+
+#: sysdeps/gnu/errlist.c:1117
+msgid "Level 2 not synchronized"
+msgstr "Ниво 2 — синхронизирано"
+
+#: sysdeps/gnu/errlist.c:1125
+msgid "Level 3 halted"
+msgstr "Ниво 3 — преустановено"
+
+#: sysdeps/gnu/errlist.c:1133
+msgid "Level 3 reset"
+msgstr "Ниво 3 — рестартирано"
+
+#: sysdeps/gnu/errlist.c:1141
+msgid "Link number out of range"
+msgstr "Номер на връзка извън диапазона"
+
+#: sysdeps/gnu/errlist.c:1149
+msgid "Protocol driver not attached"
+msgstr "Несвързан протоколен драйвер"
+
+#: sysdeps/gnu/errlist.c:1157
+msgid "No CSI structure available"
+msgstr "Не е налична CSI-структура"
+
+#: sysdeps/gnu/errlist.c:1165
+msgid "Level 2 halted"
+msgstr "Ниво 2 — преустановено"
+
+#: sysdeps/gnu/errlist.c:1173
+msgid "Invalid exchange"
+msgstr "Неправилен обмен"
+
+#: sysdeps/gnu/errlist.c:1181
+msgid "Invalid request descriptor"
+msgstr "Неправилен дескриптор на заявка"
+
+# TODO
+#: sysdeps/gnu/errlist.c:1189
+msgid "Exchange full"
+msgstr "Пълен обмен"
+
+#: sysdeps/gnu/errlist.c:1197
+msgid "No anode"
+msgstr "Няма анод"
+
+#: sysdeps/gnu/errlist.c:1205
+msgid "Invalid request code"
+msgstr "Неправилен код на заявка"
+
+#: sysdeps/gnu/errlist.c:1213
+msgid "Invalid slot"
+msgstr "Неправилен слот"
+
+#: sysdeps/gnu/errlist.c:1221
+msgid "File locking deadlock error"
+msgstr "Грешка от безизходно положение при заключване на файлове"
+
+#: sysdeps/gnu/errlist.c:1229
+msgid "Bad font file format"
+msgstr "Неправилен формат на шрифтов файл"
+
+#: sysdeps/gnu/errlist.c:1237
+msgid "Machine is not on the network"
+msgstr "Машината не е в мрежа"
+
+#: sysdeps/gnu/errlist.c:1245
+msgid "Package not installed"
+msgstr "Пакетът не е инсталиран"
+
+# TODO
+#: sysdeps/gnu/errlist.c:1253
+msgid "Advertise error"
+msgstr "Грешка при осведомяване"
+
+# TODO
+#: sysdeps/gnu/errlist.c:1261
+msgid "Srmount error"
+msgstr "Грешка при srmount"
+
+#: sysdeps/gnu/errlist.c:1269
+msgid "Communication error on send"
+msgstr "Комуникационна грешка при изпращане"
+
+#: sysdeps/gnu/errlist.c:1277
+msgid "RFS specific error"
+msgstr "RFS-грешка"
+
+#: sysdeps/gnu/errlist.c:1285
+msgid "Name not unique on network"
+msgstr "Името не е уникално в мрежата"
+
+#: sysdeps/gnu/errlist.c:1293
+msgid "File descriptor in bad state"
+msgstr "Файловият дескриптор е в лошо състояние"
+
+#: sysdeps/gnu/errlist.c:1301
+msgid "Remote address changed"
+msgstr "Отдалеченият адрес е сменен"
+
+#: sysdeps/gnu/errlist.c:1309
+msgid "Can not access a needed shared library"
+msgstr "Не може да бъде достъпена необходима споделена библиотека"
+
+#: sysdeps/gnu/errlist.c:1317
+msgid "Accessing a corrupted shared library"
+msgstr "Достъпва се повредена споделена библиотека"
+
+#: sysdeps/gnu/errlist.c:1325
+msgid ".lib section in a.out corrupted"
+msgstr "Повреден .lib-раздел в a.out"
+
+#: sysdeps/gnu/errlist.c:1333
+msgid "Attempting to link in too many shared libraries"
+msgstr "Опитва се свързване в твърде много споделени библиотеки"
+
+#: sysdeps/gnu/errlist.c:1341
+msgid "Cannot exec a shared library directly"
+msgstr "Не може да се изпълнява директно споделена библиотека"
+
+#: sysdeps/gnu/errlist.c:1349
+msgid "Streams pipe error"
+msgstr "Канална грешка при потоци"
+
+#: sysdeps/gnu/errlist.c:1357
+msgid "Structure needs cleaning"
+msgstr "Структурата се нуждае от почистване"
+
+# TODO
+#: sysdeps/gnu/errlist.c:1365
+msgid "Not a XENIX named type file"
+msgstr "Не е XENIX-именован типов файл"
+
+#: sysdeps/gnu/errlist.c:1373
+msgid "No XENIX semaphores available"
+msgstr "Няма налични XENIX-семафори"
+
+#: sysdeps/gnu/errlist.c:1381
+msgid "Is a named type file"
+msgstr "Именован типов файл е"
+
+#: sysdeps/gnu/errlist.c:1389
+msgid "Remote I/O error"
+msgstr "Отдалечена входно-изходна грешка"
+
+#: sysdeps/gnu/errlist.c:1397
+msgid "No medium found"
+msgstr "Не е открит носител"
+
+#: sysdeps/gnu/errlist.c:1405
+msgid "Wrong medium type"
+msgstr "Неправилен тип на носител"
+
+#: sysdeps/gnu/errlist.c:1413
+msgid "Required key not available"
+msgstr "Необходим ключ не е наличен"
+
+#: sysdeps/gnu/errlist.c:1421
+msgid "Key has expired"
+msgstr "Ключът е с изтекъл срок"
+
+#: sysdeps/gnu/errlist.c:1429
+msgid "Key has been revoked"
+msgstr "Ключът е бил анулиран"
+
+#: sysdeps/gnu/errlist.c:1437
+msgid "Key was rejected by service"
+msgstr "Ключът е отказан от услугата"
+
+#: sysdeps/gnu/errlist.c:1445
+msgid "Owner died"
+msgstr "Собственикът умря"
+
+#: sysdeps/gnu/errlist.c:1453
+msgid "State not recoverable"
+msgstr "Състоянието не възстановимо"
+
+#: sysdeps/mach/_strerror.c:57
+msgid "Error in unknown error system: "
+msgstr ""
+
+#: sysdeps/posix/gai_strerror-strs.h:1
+#, fuzzy
+msgid "Address family for hostname not supported"
+msgstr "Неподдържано адресно семейство от протокола"
+
+#: sysdeps/posix/gai_strerror-strs.h:2
+msgid "Temporary failure in name resolution"
+msgstr ""
+
+#: sysdeps/posix/gai_strerror-strs.h:3
+msgid "Bad value for ai_flags"
+msgstr ""
+
+#: sysdeps/posix/gai_strerror-strs.h:4
+msgid "Non-recoverable failure in name resolution"
+msgstr ""
+
+#: sysdeps/posix/gai_strerror-strs.h:5
+#, fuzzy
+msgid "ai_family not supported"
+msgstr "Неподдържано семейство протоколи"
+
+#: sysdeps/posix/gai_strerror-strs.h:6
+msgid "Memory allocation failure"
+msgstr ""
+
+#: sysdeps/posix/gai_strerror-strs.h:7
+msgid "No address associated with hostname"
+msgstr ""
+
+#: sysdeps/posix/gai_strerror-strs.h:8
+msgid "Name or service not known"
+msgstr ""
+
+#: sysdeps/posix/gai_strerror-strs.h:9
+msgid "Servname not supported for ai_socktype"
+msgstr ""
+
+#: sysdeps/posix/gai_strerror-strs.h:10
+#, fuzzy
+msgid "ai_socktype not supported"
+msgstr "Неподдържан тип гнездо (socket)"
+
+#: sysdeps/posix/gai_strerror-strs.h:11
+#, fuzzy
+msgid "System error"
+msgstr "Канална грешка при потоци"
+
+#: sysdeps/posix/gai_strerror-strs.h:12
+#, fuzzy
+msgid "Processing request in progress"
+msgstr "Операцията вече се изпълнява"
+
+#: sysdeps/posix/gai_strerror-strs.h:13
+#, fuzzy
+msgid "Request canceled"
+msgstr "Отменена операция"
+
+#: sysdeps/posix/gai_strerror-strs.h:14
+#, fuzzy
+msgid "Request not canceled"
+msgstr "Отменена операция"
+
+#: sysdeps/posix/gai_strerror-strs.h:15
+#, fuzzy
+msgid "All requests done"
+msgstr "Неправилен код на заявка"
+
+#: sysdeps/posix/gai_strerror-strs.h:16
+#, fuzzy
+msgid "Interrupted by a signal"
+msgstr "Прекъснато системно извикване"
+
+#: sysdeps/posix/gai_strerror-strs.h:17
+msgid "Parameter string not correctly encoded"
+msgstr ""
+
+#: sysdeps/unix/siglist.c:26
+msgid "Signal 0"
+msgstr ""
+
+#: sysdeps/unix/siglist.c:32
+msgid "IOT trap"
+msgstr ""
+
+#: sysdeps/unix/sysv/linux/i386/readelflib.c:49
+#, c-format
+msgid "%s is for unknown machine %d.\n"
+msgstr ""
+
+#: sysdeps/unix/sysv/linux/ia64/makecontext.c:63
+#, c-format
+msgid "makecontext: does not know how to handle more than 8 arguments\n"
+msgstr ""
+
+#: sysdeps/unix/sysv/linux/lddlibc4.c:64
+#, c-format
+msgid "cannot open `%s'"
+msgstr ""
+
+#: sysdeps/unix/sysv/linux/lddlibc4.c:68
+#, c-format
+msgid "cannot read header from `%s'"
+msgstr ""
+
+#: timezone/zdump.c:211
+msgid "lacks alphabetic at start"
+msgstr ""
+
+#: timezone/zdump.c:213
+msgid "has fewer than 3 alphabetics"
+msgstr ""
+
+#: timezone/zdump.c:215
+msgid "has more than 6 alphabetics"
+msgstr ""
+
+#: timezone/zdump.c:223
+msgid "differs from POSIX standard"
+msgstr ""
+
+#: timezone/zdump.c:229
+#, c-format
+msgid "%s: warning: zone \"%s\" abbreviation \"%s\" %s\n"
+msgstr ""
+
+#: timezone/zdump.c:280
+#, c-format
+msgid "%s: usage is %s [ --version ] [ -v ] [ -c [loyear,]hiyear ] zonename ...\n"
+msgstr ""
+
+#: timezone/zdump.c:297
+#, c-format
+msgid "%s: wild -c argument %s\n"
+msgstr ""
+
+#: timezone/zdump.c:388
+msgid "Error writing to standard output"
+msgstr ""
+
+#: timezone/zdump.c:411
+#, c-format
+msgid "%s: use of -v on system with floating time_t other than float or double\n"
+msgstr ""
+
+#: timezone/zic.c:392
+#, c-format
+msgid "%s: Memory exhausted: %s\n"
+msgstr ""
+
+#: timezone/zic.c:451
+#, c-format
+msgid "\"%s\", line %d: %s"
+msgstr ""
+
+#: timezone/zic.c:454
+#, c-format
+msgid " (rule from \"%s\", line %d)"
+msgstr ""
+
+#: timezone/zic.c:466
+msgid "warning: "
+msgstr ""
+
+#: timezone/zic.c:476
+#, c-format
+msgid ""
+"%s: usage is %s [ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n"
+"\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
+msgstr ""
+
+#: timezone/zic.c:511
+msgid "wild compilation-time specification of zic_t"
+msgstr ""
+
+#: timezone/zic.c:528
+#, c-format
+msgid "%s: More than one -d option specified\n"
+msgstr ""
+
+#: timezone/zic.c:538
+#, c-format
+msgid "%s: More than one -l option specified\n"
+msgstr ""
+
+#: timezone/zic.c:548
+#, c-format
+msgid "%s: More than one -p option specified\n"
+msgstr ""
+
+#: timezone/zic.c:558
+#, c-format
+msgid "%s: More than one -y option specified\n"
+msgstr ""
+
+#: timezone/zic.c:568
+#, c-format
+msgid "%s: More than one -L option specified\n"
+msgstr ""
+
+#: timezone/zic.c:617
+msgid "link to link"
+msgstr ""
+
+#: timezone/zic.c:682
+msgid "hard link failed, symbolic link used"
+msgstr ""
+
+#: timezone/zic.c:690
+#, c-format
+msgid "%s: Can't link from %s to %s: %s\n"
+msgstr ""
+
+#: timezone/zic.c:762 timezone/zic.c:764
+#, fuzzy
+msgid "same rule name in multiple files"
+msgstr "Именован типов файл е"
+
+#: timezone/zic.c:805
+msgid "unruly zone"
+msgstr ""
+
+#: timezone/zic.c:812
+#, c-format
+msgid "%s in ruleless zone"
+msgstr ""
+
+#: timezone/zic.c:833
+msgid "standard input"
+msgstr ""
+
+#: timezone/zic.c:838
+#, c-format
+msgid "%s: Can't open %s: %s\n"
+msgstr ""
+
+#: timezone/zic.c:849
+#, fuzzy
+msgid "line too long"
+msgstr "Твърде дълго файлово име"
+
+#: timezone/zic.c:869
+msgid "input line of unknown type"
+msgstr ""
+
+#: timezone/zic.c:885
+#, c-format
+msgid "%s: Leap line in non leap seconds file %s\n"
+msgstr ""
+
+#: timezone/zic.c:892 timezone/zic.c:1323 timezone/zic.c:1345
+#, c-format
+msgid "%s: panic: Invalid l_value %d\n"
+msgstr ""
+
+#: timezone/zic.c:900
+#, c-format
+msgid "%s: Error reading %s\n"
+msgstr ""
+
+#: timezone/zic.c:907
+#, c-format
+msgid "%s: Error closing %s: %s\n"
+msgstr ""
+
+#: timezone/zic.c:912
+msgid "expected continuation line not found"
+msgstr ""
+
+#: timezone/zic.c:956
+msgid "24:00 not handled by pre-1998 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:970
+msgid "wrong number of fields on Rule line"
+msgstr ""
+
+#: timezone/zic.c:974
+msgid "nameless rule"
+msgstr ""
+
+#: timezone/zic.c:979
+#, fuzzy
+msgid "invalid saved time"
+msgstr "Неправилен слот"
+
+#: timezone/zic.c:1000
+msgid "wrong number of fields on Zone line"
+msgstr ""
+
+#: timezone/zic.c:1006
+#, c-format
+msgid "\"Zone %s\" line and -l option are mutually exclusive"
+msgstr ""
+
+#: timezone/zic.c:1014
+#, c-format
+msgid "\"Zone %s\" line and -p option are mutually exclusive"
+msgstr ""
+
+#: timezone/zic.c:1026
+#, c-format
+msgid "duplicate zone name %s (file \"%s\", line %d)"
+msgstr ""
+
+#: timezone/zic.c:1042
+msgid "wrong number of fields on Zone continuation line"
+msgstr ""
+
+#: timezone/zic.c:1082
+#, fuzzy
+msgid "invalid UTC offset"
+msgstr "Неправилен слот"
+
+#: timezone/zic.c:1085
+msgid "invalid abbreviation format"
+msgstr ""
+
+#: timezone/zic.c:1114
+msgid "Zone continuation line end time is not after end time of previous line"
+msgstr ""
+
+#: timezone/zic.c:1142
+msgid "wrong number of fields on Leap line"
+msgstr ""
+
+#: timezone/zic.c:1151
+#, fuzzy
+msgid "invalid leaping year"
+msgstr "Неправилен обмен"
+
+#: timezone/zic.c:1171 timezone/zic.c:1277
+#, fuzzy
+msgid "invalid month name"
+msgstr "Неправилен слот"
+
+#: timezone/zic.c:1184 timezone/zic.c:1390 timezone/zic.c:1404
+#, fuzzy
+msgid "invalid day of month"
+msgstr "Неправилен аргумент"
+
+#: timezone/zic.c:1189
+msgid "time before zero"
+msgstr ""
+
+#: timezone/zic.c:1193
+msgid "time too small"
+msgstr ""
+
+#: timezone/zic.c:1197
+#, fuzzy
+msgid "time too large"
+msgstr "Твърде голям файл"
+
+#: timezone/zic.c:1201 timezone/zic.c:1306
+msgid "invalid time of day"
+msgstr ""
+
+#: timezone/zic.c:1220
+msgid "illegal CORRECTION field on Leap line"
+msgstr ""
+
+#: timezone/zic.c:1225
+msgid "illegal Rolling/Stationary field on Leap line"
+msgstr ""
+
+#: timezone/zic.c:1241
+msgid "wrong number of fields on Link line"
+msgstr ""
+
+#: timezone/zic.c:1245
+msgid "blank FROM field on Link line"
+msgstr ""
+
+#: timezone/zic.c:1249
+msgid "blank TO field on Link line"
+msgstr ""
+
+#: timezone/zic.c:1327
+msgid "invalid starting year"
+msgstr ""
+
+#: timezone/zic.c:1349
+#, fuzzy
+msgid "invalid ending year"
+msgstr "Неправилен обмен"
+
+#: timezone/zic.c:1353
+msgid "starting year greater than ending year"
+msgstr ""
+
+#: timezone/zic.c:1360
+msgid "typed single year"
+msgstr ""
+
+#: timezone/zic.c:1395
+#, fuzzy
+msgid "invalid weekday name"
+msgstr "Неправилен обмен"
+
+#: timezone/zic.c:1573
+#, c-format
+msgid "%s: Can't remove %s: %s\n"
+msgstr ""
+
+#: timezone/zic.c:1583
+#, c-format
+msgid "%s: Can't create %s: %s\n"
+msgstr ""
+
+#: timezone/zic.c:1733
+#, c-format
+msgid "%s: Error writing %s\n"
+msgstr ""
+
+#: timezone/zic.c:2025
+msgid "no POSIX environment variable for zone"
+msgstr ""
+
+#: timezone/zic.c:2179
+msgid "can't determine time zone abbreviation to use just after until time"
+msgstr ""
+
+#: timezone/zic.c:2225
+#, fuzzy
+msgid "too many transitions?!"
+msgstr "Твърде много връзки"
+
+#: timezone/zic.c:2244
+msgid "internal error - addtype called with bad isdst"
+msgstr ""
+
+#: timezone/zic.c:2248
+msgid "internal error - addtype called with bad ttisstd"
+msgstr ""
+
+#: timezone/zic.c:2252
+msgid "internal error - addtype called with bad ttisgmt"
+msgstr ""
+
+#: timezone/zic.c:2271
+#, fuzzy
+msgid "too many local time types"
+msgstr "Твърде много процеси"
+
+#: timezone/zic.c:2299
+#, fuzzy
+msgid "too many leap seconds"
+msgstr "Твърде много връзки"
+
+#: timezone/zic.c:2305
+msgid "repeated leap second moment"
+msgstr ""
+
+#: timezone/zic.c:2357
+msgid "Wild result from command execution"
+msgstr ""
+
+#: timezone/zic.c:2358
+#, c-format
+msgid "%s: command was '%s', result was %d\n"
+msgstr ""
+
+#: timezone/zic.c:2456
+msgid "Odd number of quotation marks"
+msgstr ""
+
+#: timezone/zic.c:2479 timezone/zic.c:2498
+msgid "time overflow"
+msgstr ""
+
+#: timezone/zic.c:2545
+msgid "use of 2/29 in non leap-year"
+msgstr ""
+
+#: timezone/zic.c:2580
+msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic"
+msgstr ""
+
+#: timezone/zic.c:2612
+msgid "time zone abbreviation lacks alphabetic at start"
+msgstr ""
+
+#: timezone/zic.c:2614
+msgid "time zone abbreviation has more than 3 alphabetics"
+msgstr ""
+
+#: timezone/zic.c:2616
+msgid "time zone abbreviation has too many alphabetics"
+msgstr ""
+
+#: timezone/zic.c:2626
+msgid "time zone abbreviation differs from POSIX standard"
+msgstr ""
+
+#: timezone/zic.c:2638
+msgid "too many, or too long, time zone abbreviations"
+msgstr ""
+
+#: timezone/zic.c:2679
+#, c-format
+msgid "%s: Can't create directory %s: %s\n"
+msgstr ""
+
+#: timezone/zic.c:2701
+#, c-format
+msgid "%s: %d did not sign extend correctly\n"
+msgstr ""
index 690a8a9..2a77707 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2002, 2004, 2007 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
 #include <stdlib.h>
 #include <xlocale.h>
 
+#if defined _LIBC || defined HAVE_WCHAR_H
+# include <wchar.h>
+#endif
+
 #ifdef USE_WIDE_CHAR
 # define STRING_TYPE   wchar_t
 # define STRTOLD       wcstold_l
@@ -55,4 +59,8 @@ __STRTOLD (const STRING_TYPE *nptr, STRING_TYPE **endptr, __locale_t loc)
 {
   return INTERNAL (__STRTOD) (nptr, endptr, 0, loc);
 }
+#if defined _LIBC
+libc_hidden_def (__STRTOLD)
+libc_hidden_ver (__STRTOLD, STRTOLD)
+#endif
 weak_alias (__STRTOLD, STRTOLD)
index ef8fe05..cdc3098 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2006, 2007 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 +37,9 @@ extern long double ____new_strtold_l (const char *, char **, __locale_t);
 # define __STRTOF      ____new_strtold_l
 # define ____STRTOF_INTERNAL ____strtold_l_internal
 #endif
+extern __typeof (__STRTOF) STRTOF;
+libc_hidden_proto (__STRTOF)
+libc_hidden_proto (STRTOF)
 #define MPN2FLOAT      __mpn_construct_long_double
 #define FLOAT_HUGE_VAL HUGE_VALL
 #define SET_MANTISSA(flt, mant) \
@@ -54,10 +57,12 @@ extern long double ____new_strtold_l (const char *, char **, __locale_t);
 #ifdef __LONG_DOUBLE_MATH_OPTIONAL
 # include <math_ldbl_opt.h>
 # ifdef USE_WIDE_CHAR
-long_double_symbol (libc, __new_wcstold_l, wcstold_l);
+weak_alias (____new_wcstold_l, ___new_wcstold_l);
+long_double_symbol (libc, ___new_wcstold_l, wcstold_l);
 long_double_symbol (libc, ____new_wcstold_l, __wcstold_l);
 # else
-long_double_symbol (libc, __new_strtold_l, strtold_l);
+weak_alias (____new_strtold_l, ___new_strtold_l);
+long_double_symbol (libc, ___new_strtold_l, strtold_l);
 long_double_symbol (libc, ____new_strtold_l, __strtold_l);
 # endif
 #endif
index 729637a..424855e 100644 (file)
@@ -1,5 +1,5 @@
 /* Store current floating-point environment and clear exceptions.
-   Copyright (C) 1997, 1998, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 2005, 2007 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
@@ -26,8 +26,8 @@ feholdexcept (fenv_t *envp)
 
   __fenv_stfsr (*envp);
 
-  /* Set all exceptions to non-stop.  */
-  tmp = *envp & ~(0x1f << 23);
+  /* Set all exceptions to non-stop and clear all exceptions.  */
+  tmp = *envp & ~((0x1f << 23) | FE_ALL_EXCEPT);
 
   __fenv_ldfsr (tmp);
 
index cbb8be8..b96eeae 100644 (file)
@@ -1,5 +1,5 @@
 /* Raise given exceptions.
-   Copyright (C) 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1999, 2000, 2002, 2007 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
@@ -26,9 +26,9 @@ int
 __feraiseexcept (int excepts)
 {
   static const struct {
-    double zero, one, max, min, sixteen, pi;
+    double zero, one, max, min, pi;
   } c = {
-    0.0, 1.0, DBL_MAX, DBL_MIN, 16.0, M_PI
+    0.0, 1.0, DBL_MAX, DBL_MIN, M_PI
   };
   double d;
 
@@ -66,7 +66,7 @@ __feraiseexcept (int excepts)
   if ((FE_UNDERFLOW & excepts) != 0)
     {
       __asm ("" : "=e" (d) : "0" (c.min));
-      d /= c.sixteen;
+      d *= d;
       __asm __volatile ("" : : "e" (d));
     }
 
index 19aac6a..b3b7852 100644 (file)
@@ -1,5 +1,6 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  SPARC version.
-   Copyright (C) 1996-2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1996-2003, 2004, 2005, 2006, 2007
+   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
@@ -155,12 +156,18 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
          || __builtin_expect (l->l_info [VALIDX (DT_GNU_LIBLISTSZ)] != NULL, 0))
        {
          /* Need to reinitialize .plt to undo prelinking.  */
-         int do_flush;
          Elf32_Rela *rela = (Elf32_Rela *) D_PTR (l, l_info[DT_JMPREL]);
          Elf32_Rela *relaend
            = (Elf32_Rela *) ((char *) rela
                              + l->l_info[DT_PLTRELSZ]->d_un.d_val);
-         do_flush = GLRO(dl_hwcap) & HWCAP_SPARC_FLUSH;
+#if !defined RTLD_BOOTSTRAP && !defined __sparc_v9__
+         /* Note that we don't mask the hwcap here, as the flush is
+            essential to functionality on those cpu's that implement it.
+            For sparcv9 we can assume flush is present.  */
+         const int do_flush = GLRO(dl_hwcap) & HWCAP_SPARC_FLUSH;
+#else
+         const int do_flush = 1;
+#endif
 
          /* prelink must ensure there are no R_SPARC_NONE relocs left
             in .rela.plt.  */
@@ -305,20 +312,11 @@ _dl_start_user:\n\
        .size   _dl_start_user, . - _dl_start_user\n\
        .previous");
 
-static inline Elf32_Addr
+static inline __attribute__ ((always_inline)) Elf32_Addr
 sparc_fixup_plt (const Elf32_Rela *reloc, Elf32_Addr *reloc_addr,
-                Elf32_Addr value, int t)
+                Elf32_Addr value, int t, int do_flush)
 {
   Elf32_Sword disp = value - (Elf32_Addr) reloc_addr;
-#ifndef RTLD_BOOTSTRAP
-  /* Note that we don't mask the hwcap here, as the flush is essential to
-     functionality on those cpu's that implement it.  */
-  int do_flush = GLRO(dl_hwcap) & HWCAP_SPARC_FLUSH;
-#else
-  /* Unfortunately, this is necessary, so that we can ensure
-     ld.so will not execute corrupt PLT entry instructions. */
-  const int do_flush = 1;
-#endif
 
   if (0 && disp >= -0x800000 && disp < 0x800000)
     {
@@ -354,7 +352,15 @@ elf_machine_fixup_plt (struct link_map *map, lookup_t t,
                       const Elf32_Rela *reloc,
                       Elf32_Addr *reloc_addr, Elf32_Addr value)
 {
-  return sparc_fixup_plt (reloc, reloc_addr, value, 1);
+#ifdef __sparc_v9__
+  /* Sparc v9 can assume flush is always present.  */
+  const int do_flush = 1;
+#else
+  /* Note that we don't mask the hwcap here, as the flush is essential to
+     functionality on those cpu's that implement it.  */
+  const int do_flush = GLRO(dl_hwcap) & HWCAP_SPARC_FLUSH;
+#endif
+  return sparc_fixup_plt (reloc, reloc_addr, value, 1, do_flush);
 }
 
 /* Return the final value of a plt relocation.  */
@@ -455,9 +461,21 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
       *reloc_addr = value;
       break;
     case R_SPARC_JMP_SLOT:
-      /* At this point we don't need to bother with thread safety,
-        so we can optimize the first instruction of .plt out.  */
-      sparc_fixup_plt (reloc, reloc_addr, value, 0);
+      {
+#if !defined RTLD_BOOTSTRAP && !defined __sparc_v9__
+       /* Note that we don't mask the hwcap here, as the flush is
+          essential to functionality on those cpu's that implement
+          it.  For sparcv9 we can assume flush is present.  */
+       const int do_flush = GLRO(dl_hwcap) & HWCAP_SPARC_FLUSH;
+#else
+       /* Unfortunately, this is necessary, so that we can ensure
+          ld.so will not execute corrupt PLT entry instructions. */
+       const int do_flush = 1;
+#endif
+       /* At this point we don't need to bother with thread safety,
+          so we can optimize the first instruction of .plt out.  */
+       sparc_fixup_plt (reloc, reloc_addr, value, 0, do_flush);
+      }
       break;
 #if (!defined RTLD_BOOTSTRAP || USE___THREAD) \
     && !defined RESOLVE_CONFLICT_FIND_MAP
index f91fc4f..1e099cc 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 2000, 2003, 2004
+/* Copyright (C) 1996, 1997, 1998, 2000, 2003, 2004, 2007
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@tamu.edu).
@@ -71,7 +71,7 @@ ENTRY (__clone)
         restore %o0,%g0,%o0
 
 .Lerror:
-       call    __errno_location
+       call    HIDDEN_JUMPTARGET(__errno_location)
         or     %g0,EINVAL,%i0
        st      %i0,[%o0]
        jmpl    %i7 + 8, %g0
@@ -99,7 +99,7 @@ __thread_start:
        mov     %g0, %fp        /* terminate backtrace */
        call    %g2
         mov    %g3,%o0
-       call    _exit,0
+       call    HIDDEN_JUMPTARGET(_exit),0
         nop
 
        cfi_endproc
index ebfce9e..b1dcc91 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2000, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@tamu.edu).
 
@@ -85,7 +85,7 @@ ENTRY (__clone)
        st      %i0, [%g2+%lo(errno)]
 #endif
 #else
-       call    __errno_location
+       call    HIDDEN_JUMPTARGET(__errno_location)
         nop
        st      %i0, [%o0]
 #endif
@@ -112,7 +112,7 @@ __thread_start:
        mov     %g0, %fp        /* terminate backtrace */
        call    %g2
         mov    %g3,%o0
-       call    _exit,0
+       call    HIDDEN_JUMPTARGET(_exit),0
         nop
        cfi_endproc
 
index a609379..101638a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jakub@redhat.com>, 2000.
 
 })
 
 
+#ifdef __ASSEMBLER__
+# define JUMPTARGET(sym) sym
+#endif
 
 #endif /* _LINUX_SPARC_SYSDEP_H */