From 91ed9442cea3802c96b69553d6653ed01df7c990 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 15 Aug 2007 20:57:36 +0000 Subject: Updated to fedora-glibc-20070815T2049 --- ChangeLog | 41 + elf/dl-misc.c | 8 +- fedora/branch.mk | 4 +- fedora/glibc.spec.in | 25 +- nptl/ChangeLog | 75 + nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h | 28 +- nptl/sysdeps/unix/sysv/linux/lowlevellock.c | 2 +- nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h | 60 +- .../unix/sysv/linux/sh/pthread_cond_broadcast.S | 54 +- .../unix/sysv/linux/sh/pthread_cond_signal.S | 96 +- .../unix/sysv/linux/sh/pthread_cond_timedwait.S | 76 +- .../sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S | 113 +- nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S | 8 +- .../unix/sysv/linux/sh/pthread_rwlock_rdlock.S | 4 +- .../sysv/linux/sh/pthread_rwlock_timedrdlock.S | 4 +- .../sysv/linux/sh/pthread_rwlock_timedwrlock.S | 4 +- .../unix/sysv/linux/sh/pthread_rwlock_unlock.S | 4 +- .../unix/sysv/linux/sh/pthread_rwlock_wrlock.S | 4 +- nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h | 16 + nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c | 93 + nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c | 69 + nptl/sysdeps/unix/sysv/linux/sparc/sem_timedwait.c | 112 + nptl/sysdeps/unix/sysv/linux/sparc/sem_wait.c | 117 + .../unix/sysv/linux/sparc/sparc32/lowlevellock.c | 9 +- .../unix/sysv/linux/sparc/sparc32/sem_init.c | 63 - .../unix/sysv/linux/sparc/sparc32/sem_post.c | 51 +- .../unix/sysv/linux/sparc/sparc32/sem_timedwait.c | 100 +- .../unix/sysv/linux/sparc/sparc32/sem_trywait.c | 16 +- .../unix/sysv/linux/sparc/sparc32/sem_wait.c | 127 +- .../sysv/linux/sparc/sparc32/sparcv9/sem_init.c | 1 - .../sysv/linux/sparc/sparc32/sparcv9/sem_post.c | 2 +- .../linux/sparc/sparc32/sparcv9/sem_timedwait.c | 2 +- .../sysv/linux/sparc/sparc32/sparcv9/sem_wait.c | 2 +- po/bg.po | 6464 ++++++++++++++++++++ stdlib/strtold_l.c | 10 +- sysdeps/ieee754/ldbl-64-128/strtold_l.c | 11 +- sysdeps/sparc/fpu/feholdexcpt.c | 6 +- sysdeps/sparc/fpu/fraiseexcpt.c | 8 +- sysdeps/sparc/sparc32/dl-machine.h | 54 +- sysdeps/unix/sysv/linux/sparc/sparc32/clone.S | 6 +- sysdeps/unix/sysv/linux/sparc/sparc64/clone.S | 6 +- sysdeps/unix/sysv/linux/sparc/sysdep.h | 5 +- 42 files changed, 7682 insertions(+), 278 deletions(-) create mode 100644 nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c create mode 100644 nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c create mode 100644 nptl/sysdeps/unix/sysv/linux/sparc/sem_timedwait.c create mode 100644 nptl/sysdeps/unix/sysv/linux/sparc/sem_wait.c delete mode 100644 nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c delete mode 100644 nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c create mode 100644 po/bg.po diff --git a/ChangeLog b/ChangeLog index 819ac7e399..31270d220c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,44 @@ +2007-08-15 Jakub Jelinek + + * 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 + + * 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 + + * elf/dl-misc.c: Undo last change. The kernel won't allow it. + +2007-08-13 Kaz Kojima + + * stdlib/strtold_l.c: Include wchar.h if needed. Add libc_hidden_def. + +2007-08-14 Ulrich Drepper + + * po/bg.po: New file. From the translation team. + 2007-08-13 Jakub Jelinek * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_PSELECT, diff --git a/elf/dl-misc.c b/elf/dl-misc.c index 41da98d729..6da1e2e4aa 100644 --- a/elf/dl-misc.c +++ b/elf/dl-misc.c @@ -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) diff --git a/fedora/branch.mk b/fedora/branch.mk index 22e86bb507..293333c941 100644 --- a/fedora/branch.mk +++ b/fedora/branch.mk @@ -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 diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in index 535cfc6a4f..0410094832 100644 --- a/fedora/glibc.spec.in +++ b/fedora/glibc.spec.in @@ -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 < 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 2.6.90-9 - private futex even for mutexes and condvars - some further O_CLOEXEC changes diff --git a/nptl/ChangeLog b/nptl/ChangeLog index f46f53af3b..3e4ca2333e 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,78 @@ +2007-08-15 Jakub Jelinek + + * 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 + + * 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 + + * 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 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag): diff --git a/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h index 4f6796449a..4487607bb3 100644 --- a/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h +++ b/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h @@ -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) diff --git a/nptl/sysdeps/unix/sysv/linux/lowlevellock.c b/nptl/sysdeps/unix/sysv/linux/lowlevellock.c index 1187800148..f0e42957c2 100644 --- a/nptl/sysdeps/unix/sysv/linux/lowlevellock.c +++ b/nptl/sysdeps/unix/sysv/linux/lowlevellock.c @@ -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) diff --git a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h index 7fee435f12..c9347e98b2 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h +++ b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h @@ -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 *) diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S index b173f2d8bf..7dff15ac52 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S @@ -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 diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S index 3ef2d6ee14..9cb73a233c 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S @@ -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 diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S index fde4f57b2a..4cf0ac45c5 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S @@ -21,8 +21,9 @@ #include #include #include -#include "lowlevel-atomic.h" #include +#include +#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 diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S index 9ca4c35edc..eddf4c95a7 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S @@ -20,6 +20,8 @@ #include #include #include +#include +#include #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 diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S index 439907502a..0830cab246 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S @@ -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 diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S index 9e4ba959b5..b71be1d974 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S @@ -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 diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S index b06fd960cf..e40771de0f 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S @@ -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 diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S index 4591309ecc..dfe137973c 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S @@ -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 diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S index 1504c1aed1..045b8b3b33 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S @@ -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 diff --git a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S index 25dffe4bf9..6de65cc640 100644 --- a/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S +++ b/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S @@ -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 diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h b/nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h index 4d0ea51723..4f400a3fe3 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h +++ b/nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h @@ -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 index 0000000000..840032a08c --- /dev/null +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c @@ -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 , 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 +#include +#include +#include +#include +#include "semaphoreP.h" +#include + + +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 index 0000000000..95964d0744 --- /dev/null +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sem_post.c @@ -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 , 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 +#include +#include +#include +#include + +#include + +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 index 0000000000..01952f3f9a --- /dev/null +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sem_timedwait.c @@ -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 , 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 +#include +#include +#include +#include + +#include +#include + + +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 index 0000000000..a846f20601 --- /dev/null +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sem_wait.c @@ -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 , 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 +#include +#include +#include +#include + +#include +#include + + +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 diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c index 1ee9b4737b..682307eef1 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c @@ -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 index dffd8c7efa..0000000000 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c +++ /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 , 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 -#include -#include -#include -#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 diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c index 527aedfdc7..dbd34f2210 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c @@ -29,19 +29,51 @@ 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 diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c index efcc9e9aa8..55f3e2e075 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c @@ -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 , 2003. @@ -28,37 +28,48 @@ #include +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; } diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c index 429494e257..4db89727a7 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c @@ -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 , 2003. @@ -30,20 +30,20 @@ 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; diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c index d9fcdcd4ee..3c71c969b8 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c @@ -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 , 2003. @@ -28,35 +28,135 @@ #include +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 index b2ebc4cbb5..0000000000 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c +++ /dev/null @@ -1 +0,0 @@ -#include "../../../../../../../sem_init.c" diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c index 4a6eac88f5..73d7c56675 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c @@ -1 +1 @@ -#include "../../../sem_post.c" +#include "../../sem_post.c" diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c index b2526db02c..03945b7279 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c @@ -1 +1 @@ -#include "../../../sem_timedwait.c" +#include "../../sem_timedwait.c" diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c index 31157f636f..a5dbc5a4b8 100644 --- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c +++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c @@ -1 +1 @@ -#include "../../../sem_wait.c" +#include "../../sem_wait.c" diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000000..279476dd29 --- /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 , 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 \n" +"Language-Team: Bulgarian \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" +".\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" +".\\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" +"." +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" +".\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: must be greater than \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 " character not in class `%s'" +msgstr "" + +#: locale/programs/ld-ctype.c:584 locale/programs/ld-ctype.c:621 +#, c-format +msgid " character must not be in class `%s'" +msgstr "" + +#: locale/programs/ld-ctype.c:599 +#, c-format +msgid "character 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 of range is smaller than from-value " +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" +".\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 or 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" +"." +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 %" +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 cache hits on positive entries\n" +"%15 cache hits on negative entries\n" +"%15 cache misses on positive entries\n" +"%15 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 number of delays on rdlock\n" +"%15 number of delays on wrlock\n" +"%15 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" +".\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 "" diff --git a/stdlib/strtold_l.c b/stdlib/strtold_l.c index 690a8a92eb..2a77707996 100644 --- a/stdlib/strtold_l.c +++ b/stdlib/strtold_l.c @@ -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 @@ -20,6 +20,10 @@ #include #include +#if defined _LIBC || defined HAVE_WCHAR_H +# include +#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) diff --git a/sysdeps/ieee754/ldbl-64-128/strtold_l.c b/sysdeps/ieee754/ldbl-64-128/strtold_l.c index ef8fe05759..cdc30983ec 100644 --- a/sysdeps/ieee754/ldbl-64-128/strtold_l.c +++ b/sysdeps/ieee754/ldbl-64-128/strtold_l.c @@ -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 # 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 diff --git a/sysdeps/sparc/fpu/feholdexcpt.c b/sysdeps/sparc/fpu/feholdexcpt.c index 729637ad1b..424855e761 100644 --- a/sysdeps/sparc/fpu/feholdexcpt.c +++ b/sysdeps/sparc/fpu/feholdexcpt.c @@ -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); diff --git a/sysdeps/sparc/fpu/fraiseexcpt.c b/sysdeps/sparc/fpu/fraiseexcpt.c index cbb8be80ec..b96eeaed28 100644 --- a/sysdeps/sparc/fpu/fraiseexcpt.c +++ b/sysdeps/sparc/fpu/fraiseexcpt.c @@ -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)); } diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h index 19aac6a7fe..b3b7852d87 100644 --- a/sysdeps/sparc/sparc32/dl-machine.h +++ b/sysdeps/sparc/sparc32/dl-machine.h @@ -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 diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S index f91fc4f629..1e099cc97d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S @@ -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 diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S index ebfce9e2c5..b1dcc914b0 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S @@ -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 diff --git a/sysdeps/unix/sysv/linux/sparc/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sysdep.h index a60937976a..101638a53f 100644 --- a/sysdeps/unix/sysv/linux/sparc/sysdep.h +++ b/sysdeps/unix/sysv/linux/sparc/sysdep.h @@ -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 , 2000. @@ -149,5 +149,8 @@ }) +#ifdef __ASSEMBLER__ +# define JUMPTARGET(sym) sym +#endif #endif /* _LINUX_SPARC_SYSDEP_H */ -- cgit v1.2.3