From 456c7dc1401d3976db4a0501de3ab525483d5a9e Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 8 Jul 2008 16:46:35 +0000 Subject: [PATCH] 2.8-7 --- glibc-bz3406.patch | 27 + glibc-bz6461.patch | 39 + glibc-bz6472.patch | 48 + glibc-bz6612.patch | 101 + glibc-bz6657.patch | 85 + glibc-bz6719.patch | 68 + glibc-bz6723.patch | 18 + glibc-c99-scanf.patch | 441 +++ glibc-lt-l10n.patch | 7089 ++++++++++++++++++++++++++++++++++++ glibc-nscd.patch | 1152 ++++++ glibc-res-hconf-init.patch | 147 + glibc-rh446406.patch | 41 + glibc-rh449358.patch | 17 + glibc-rh450790.patch | 82 + glibc-rwlock-pshared.patch | 195 + glibc-sparc.patch | 1003 +++++ glibc-tls-getaddr.patch | 123 + glibc.spec | 4 +- 18 files changed, 10679 insertions(+), 1 deletion(-) create mode 100644 glibc-bz3406.patch create mode 100644 glibc-bz6461.patch create mode 100644 glibc-bz6472.patch create mode 100644 glibc-bz6612.patch create mode 100644 glibc-bz6657.patch create mode 100644 glibc-bz6719.patch create mode 100644 glibc-bz6723.patch create mode 100644 glibc-c99-scanf.patch create mode 100644 glibc-lt-l10n.patch create mode 100644 glibc-nscd.patch create mode 100644 glibc-res-hconf-init.patch create mode 100644 glibc-rh446406.patch create mode 100644 glibc-rh449358.patch create mode 100644 glibc-rh450790.patch create mode 100644 glibc-rwlock-pshared.patch create mode 100644 glibc-sparc.patch create mode 100644 glibc-tls-getaddr.patch diff --git a/glibc-bz3406.patch b/glibc-bz3406.patch new file mode 100644 index 0000000..3a9b433 --- /dev/null +++ b/glibc-bz3406.patch @@ -0,0 +1,27 @@ +2008-02-11 Joseph Myers + + [BZ #3406] + * sysdeps/ieee754/flt-32/w_expf.c (o_threshold): Correct value. + * math/libm-test.inc (exp_test): Test 88.72269439697265625. + +--- libc/math/libm-test.inc 11 Apr 2008 19:32:30 -0000 1.79 ++++ libc/math/libm-test.inc 22 May 2008 19:59:10 -0000 1.81 +@@ -2510,6 +2510,7 @@ exp_test (void) + TEST_f_f (exp, 3, M_E3l); + TEST_f_f (exp, 0.75L, 2.11700001661267466854536981983709561L); + TEST_f_f (exp, 50.0L, 5184705528587072464087.45332293348538L); ++ TEST_f_f (exp, 88.72269439697265625L, 3.40233126623160774937554134772290447915e38L); + #ifdef TEST_LDOUBLE + /* The result can only be represented in long double. */ + TEST_f_f (exp, 1000.0L, 0.197007111401704699388887935224332313e435L); +--- libc/sysdeps/ieee754/flt-32/w_expf.c 14 Jul 1999 00:03:46 -0000 1.1 ++++ libc/sysdeps/ieee754/flt-32/w_expf.c 11 May 2008 17:49:19 -0000 1.2 +@@ -29,7 +29,7 @@ static const float + #else + static float + #endif +-o_threshold= 8.8721679688e+01, /* 0x42b17180 */ ++o_threshold= 8.8722831726e+01, /* 0x42b17217 */ + u_threshold= -1.0397208405e+02; /* 0xc2cff1b5 */ + + #ifdef __STDC__ diff --git a/glibc-bz6461.patch b/glibc-bz6461.patch new file mode 100644 index 0000000..c5117c8 --- /dev/null +++ b/glibc-bz6461.patch @@ -0,0 +1,39 @@ +2008-05-14 Ulrich Drepper + + [BZ #6461] + * iconv/gconv_simple.c (BODY for __gconv_transform_ascii_internal): + Add missing braces. + (BODY for __gconv_transform_internal_ascii): Likewise. + +--- libc/iconv/gconv_simple.c 12 Oct 2007 04:40:33 -0000 1.67 ++++ libc/iconv/gconv_simple.c 14 May 2008 22:52:44 -0000 1.68 +@@ -820,9 +820,11 @@ ucs4le_internal_loop_single (struct __gc + STANDARD_FROM_LOOP_ERR_HANDLER (1); \ + } \ + else \ +- /* It's an one byte sequence. */ \ +- *((uint32_t *) outptr) = *inptr++; \ +- outptr += sizeof (uint32_t); \ ++ { \ ++ /* It's an one byte sequence. */ \ ++ *((uint32_t *) outptr) = *inptr++; \ ++ outptr += sizeof (uint32_t); \ ++ } \ + } + #define LOOP_NEED_FLAGS + #include +@@ -851,9 +853,11 @@ ucs4le_internal_loop_single (struct __gc + STANDARD_TO_LOOP_ERR_HANDLER (4); \ + } \ + else \ +- /* It's an one byte sequence. */ \ +- *outptr++ = *((const uint32_t *) inptr); \ +- inptr += sizeof (uint32_t); \ ++ { \ ++ /* It's an one byte sequence. */ \ ++ *outptr++ = *((const uint32_t *) inptr); \ ++ inptr += sizeof (uint32_t); \ ++ } \ + } + #define LOOP_NEED_FLAGS + #include diff --git a/glibc-bz6472.patch b/glibc-bz6472.patch new file mode 100644 index 0000000..fc4fd9a --- /dev/null +++ b/glibc-bz6472.patch @@ -0,0 +1,48 @@ +2008-05-14 Ulrich Drepper + + [BZ #6472] + * sysdeps/posix/getaddrinfo.c (get_scope): Loopback addresses have + to be treated like link-local addresses. + (match_prefix): Don't treat IPv4 loopback address special when + converting to v4 mapped addressed. + +--- libc/sysdeps/posix/getaddrinfo.c 14 May 2008 21:53:40 -0000 1.129 ++++ libc/sysdeps/posix/getaddrinfo.c 14 May 2008 22:46:55 -0000 1.131 +@@ -1112,7 +1112,10 @@ get_scope (const struct sockaddr_in6 *in + { + if (! IN6_IS_ADDR_MULTICAST (&in6->sin6_addr)) + { +- if (IN6_IS_ADDR_LINKLOCAL (&in6->sin6_addr)) ++ if (IN6_IS_ADDR_LINKLOCAL (&in6->sin6_addr) ++ /* RFC 4291 2.5.3 says that the loopback address is to be ++ treated like a link-local address. */ ++ || IN6_IS_ADDR_LOOPBACK (&in6->sin6_addr)) + scope = 2; + else if (IN6_IS_ADDR_SITELOCAL (&in6->sin6_addr)) + scope = 5; +@@ -1245,20 +1248,14 @@ match_prefix (const struct sockaddr_in6 + { + const struct sockaddr_in *in = (const struct sockaddr_in *) in6; + +- /* Convert to IPv6 address. */ ++ /* Construct a V4-to-6 mapped address. */ + in6_mem.sin6_family = PF_INET6; + in6_mem.sin6_port = in->sin_port; + in6_mem.sin6_flowinfo = 0; +- if (in->sin_addr.s_addr == htonl (0x7f000001)) +- in6_mem.sin6_addr = (struct in6_addr) IN6ADDR_LOOPBACK_INIT; +- else +- { +- /* Construct a V4-to-6 mapped address. */ +- memset (&in6_mem.sin6_addr, '\0', sizeof (in6_mem.sin6_addr)); +- in6_mem.sin6_addr.s6_addr16[5] = 0xffff; +- in6_mem.sin6_addr.s6_addr32[3] = in->sin_addr.s_addr; +- in6_mem.sin6_scope_id = 0; +- } ++ memset (&in6_mem.sin6_addr, '\0', sizeof (in6_mem.sin6_addr)); ++ in6_mem.sin6_addr.s6_addr16[5] = 0xffff; ++ in6_mem.sin6_addr.s6_addr32[3] = in->sin_addr.s_addr; ++ in6_mem.sin6_scope_id = 0; + + in6 = &in6_mem; + } diff --git a/glibc-bz6612.patch b/glibc-bz6612.patch new file mode 100644 index 0000000..dda4bea --- /dev/null +++ b/glibc-bz6612.patch @@ -0,0 +1,101 @@ +2008-06-12 Ulrich Drepper + + * time/strftime.c: Pass reference to tzset_called around to handle + recursive calls. + + [BZ #6612] + * time/strftime.c (__strftime_internal): Call tzset() only + when printing timezone-dependent values. + Based on a patch by Petr Baudis . + +--- libc/time/strftime_l.c 16 Oct 2007 22:50:20 -0000 1.4 ++++ libc/time/strftime_l.c 13 Jun 2008 06:08:31 -0000 1.5 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002, 2004, 2007 Free Software Foundation, Inc. ++/* Copyright (C) 2002, 2004, 2007, 2008 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 +@@ -455,7 +455,8 @@ static CHAR_T const month_name[][10] = + #endif + + static size_t __strftime_internal (CHAR_T *, size_t, const CHAR_T *, +- const struct tm *, bool ut_argument_spec_iso ++ const struct tm *, bool * ++ ut_argument_spec_iso + LOCALE_PARAM_PROTO) __THROW; + + /* Write information from TP into S according to the format +@@ -481,7 +482,8 @@ my_strftime (s, maxsize, format, tp ut_a + tmcopy = *tp; + tp = &tmcopy; + #endif +- return __strftime_internal (s, maxsize, format, tp, false ++ bool tzset_called = false; ++ return __strftime_internal (s, maxsize, format, tp, &tzset_called + ut_argument LOCALE_ARG); + } + #ifdef _LIBC +@@ -495,7 +497,7 @@ __strftime_internal (s, maxsize, format, + size_t maxsize; + const CHAR_T *format; + const struct tm *tp; +- bool tzset_called; ++ bool *tzset_called; + ut_argument_spec + LOCALE_PARAM_DECL + { +@@ -563,16 +565,6 @@ __strftime_internal (s, maxsize, format, + if (! (zone && *zone)) + zone = "GMT"; + } +- else +- { +- /* POSIX.1 requires that local time zone information is used as +- though strftime called tzset. */ +-# if HAVE_TZSET +- if (!tzset_called) +- tzset (); +- tzset_called = true; +-# endif +- } + #endif + + if (hour12 > 12) +@@ -1325,7 +1317,18 @@ __strftime_internal (s, maxsize, format, + #if HAVE_TZNAME + /* The tzset() call might have changed the value. */ + if (!(zone && *zone) && tp->tm_isdst >= 0) +- zone = tzname[tp->tm_isdst]; ++ { ++ /* POSIX.1 requires that local time zone information is used as ++ though strftime called tzset. */ ++# if HAVE_TZSET ++ if (!*tzset_called) ++ { ++ tzset (); ++ *tzset_called = true; ++ } ++# endif ++ zone = tzname[tp->tm_isdst]; ++ } + #endif + if (! zone) + zone = ""; +@@ -1361,6 +1364,16 @@ __strftime_internal (s, maxsize, format, + struct tm ltm; + time_t lt; + ++ /* POSIX.1 requires that local time zone information is used as ++ though strftime called tzset. */ ++# if HAVE_TZSET ++ if (!*tzset_called) ++ { ++ tzset (); ++ *tzset_called = true; ++ } ++# endif ++ + ltm = *tp; + lt = mktime (<m); + diff --git a/glibc-bz6657.patch b/glibc-bz6657.patch new file mode 100644 index 0000000..23814c6 --- /dev/null +++ b/glibc-bz6657.patch @@ -0,0 +1,85 @@ +2008-06-27 Ulrich Drepper + + [BZ #6657] + * time/strptime_l.c: Don't clear s.era_cnt after successful match + of %EY. + Patch by Petr Baudis. + +localedata/ +2008-06-27 Ulrich Drepper + + * tst-strptime.c (do_test): Add test of %EY. + +2008-06-25 Ulrich Drepper + + * tst-strptime.c (do_test): Add test for parsing era year + representation. + +--- libc/time/strptime_l.c 28 Jul 2007 19:10:08 -0000 1.12 ++++ libc/time/strptime_l.c 27 Jun 2008 21:36:13 -0000 1.13 +@@ -951,7 +942,6 @@ __strptime_internal (rp, fmt, tmp, state + else + { + s.decided = loc; +- s.era_cnt = -1; + break; + } + +--- libc/localedata/tst-strptime.c 1 Aug 2007 03:42:25 -0000 1.2 ++++ libc/localedata/tst-strptime.c 27 Jun 2008 17:21:24 -0000 1.5 +@@ -1,22 +1,53 @@ + #include + #include + #include ++#include + + static int + do_test (void) + { ++ int result = 0; ++ + if (setlocale (LC_ALL, "vi_VN.TCVN5712-1") == NULL) + { + puts ("cannot set locale"); + return 1; + } + struct tm tm; ++ memset (&tm, '\0', sizeof (tm)); + /* This is November in Vietnamese encoded using TCVN5712-1. */ + static const char s[] = "\ +-\x54\x68\xb8\x6e\x67\x20\x6d\xad\xea\x69\x20\x6d\xe9\x74"; ++\x54\x68\xb8\x6e\x67\x20\x6d\xad\xea\x69\x20\x6d\xe9\x74\0"; + char *r = strptime (s, "%b", &tm); + printf ("r = %p, r-s = %tu, tm.tm_mon = %d\n", r, r - s, tm.tm_mon); +- return r == NULL || r - s != 14 || tm.tm_mon != 10; ++ result = r == NULL || r - s != 14 || tm.tm_mon != 10; ++ ++ if (setlocale (LC_ALL, "ja_JP.UTF-8") == NULL) ++ { ++ puts ("cannot set locale"); ++ return 1; ++ } ++ static const char s2[] = "\ ++\x32\x35\x20\x30\x36\x20\xe5\xb9\xb3\xe6\x88\x90\x32\x30\0"; ++ memset (&tm, '\0', sizeof (tm)); ++ r = strptime (s2, "%d %m %EC%Ey", &tm); ++ printf ("\ ++r = %p, r-s2 = %tu, tm.tm_mday = %d, tm.tm_mon = %d, tm.tm_year = %d\n", ++ r, r - s2, tm.tm_mday, tm.tm_mon, tm.tm_year); ++ result |= (r == NULL || r - s2 != 14 || tm.tm_mday != 25 || tm.tm_mon != 5 ++ || tm.tm_year != 108); ++ ++ static const char s3[] = "\ ++\x32\x35\x20\x30\x36\x20\xe5\xb9\xb3\xe6\x88\x90\x32\x30\xe5\xb9\xb4\0"; ++ memset (&tm, '\0', sizeof (tm)); ++ r = strptime (s3, "%d %m %EY", &tm); ++ printf ("\ ++r = %p, r-s3 = %tu, tm.tm_mday = %d, tm.tm_mon = %d, tm.tm_year = %d\n", ++ r, r - s3, tm.tm_mday, tm.tm_mon, tm.tm_year); ++ result |= (r == NULL || r - s3 != 17 || tm.tm_mday != 25 || tm.tm_mon != 5 ++ || tm.tm_year != 108); ++ ++ return result; + } + + #define TEST_FUNCTION do_test () diff --git a/glibc-bz6719.patch b/glibc-bz6719.patch new file mode 100644 index 0000000..926fa08 --- /dev/null +++ b/glibc-bz6719.patch @@ -0,0 +1,68 @@ +2008-07-08 Ulrich Drepper + + * stdio-common/Makefile: Add rules to build and run tst-setvbuf1. + * stdio-common/tst-setvbuf1.c: New file. + * stdio-common/tst-setvbuf1.expect: New file. + + [BZ #6719] + * libio/iosetvbuf.c (_IO_setvbuf): Correctly clear buffering flags + when selecting fully-buffered stream. + Patch by Wang Xin . + +--- libc/libio/iosetvbuf.c 29 Aug 2003 19:58:27 -0000 1.20 ++++ libc/libio/iosetvbuf.c 8 Jul 2008 16:20:32 -0000 1.21 +@@ -45,7 +45,7 @@ _IO_setvbuf (fp, buf, mode, size) + switch (mode) + { + case _IOFBF: +- fp->_IO_file_flags &= ~_IO_LINE_BUF|_IO_UNBUFFERED; ++ fp->_IO_file_flags &= ~(_IO_LINE_BUF|_IO_UNBUFFERED); + if (buf == NULL) + { + if (fp->_IO_buf_base == NULL) +--- libc/stdio-common/Makefile 24 May 2008 18:14:36 -0000 1.112 ++++ libc/stdio-common/Makefile 8 Jul 2008 16:32:28 -0000 1.113 +@@ -58,7 +58,7 @@ tests := tstscanf test_rdwr test-popen t + tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ + bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ +- scanf16 scanf17 ++ scanf16 scanf17 tst-setvbuf1 + + test-srcs = tst-unbputc tst-printf + +@@ -130,3 +130,7 @@ bug15-ENV = LOCPATH=$(common-objpfx)loca + ifneq (,$(filter %REENTRANT, $(defines))) + CPPFLAGS += -D_IO_MTSAFE_IO + endif ++ ++$(objpfx)tst-setvbuf1.out: tst-setvbuf1.expect $(objpfx)tst-setvbuf1 ++ $(built-program-cmd) > $@ 2>&1 ++ cmp tst-setvbuf1.expect $@ +--- libc/stdio-common/tst-setvbuf1.c 1 Jan 1970 00:00:00 -0000 ++++ libc/stdio-common/tst-setvbuf1.c 8 Jul 2008 16:32:02 -0000 1.1 +@@ -0,0 +1,19 @@ ++#include ++ ++static int ++do_test (void) ++{ ++ if (setvbuf (stderr, NULL, _IOFBF, BUFSIZ) != 0) ++ { ++ puts ("Set full buffer error."); ++ return 1; ++ } ++ ++ fprintf (stderr, "Output #1 .\n"); ++ printf ("Output #2 .\n"); ++ ++ return 0; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +--- libc/stdio-common/tst-setvbuf1.expect 1 Jan 1970 00:00:00 -0000 ++++ libc/stdio-common/tst-setvbuf1.expect 8 Jul 2008 16:32:14 -0000 1.1 +@@ -0,0 +1,2 @@ ++Output #2 . ++Output #1 . diff --git a/glibc-bz6723.patch b/glibc-bz6723.patch new file mode 100644 index 0000000..9bd87d5 --- /dev/null +++ b/glibc-bz6723.patch @@ -0,0 +1,18 @@ +2008-07-06 Ulrich Drepper + + [BZ #6723] + * time/mktime.c (__mktime_internal): Normalize tp->tm_isdst value. + +--- libc/time/mktime.c 12 Dec 2007 18:21:29 -0000 1.68 ++++ libc/time/mktime.c 6 Jul 2008 21:17:58 -0000 1.69 +@@ -293,7 +293,9 @@ __mktime_internal (struct tm *tp, + int mday = tp->tm_mday; + int mon = tp->tm_mon; + int year_requested = tp->tm_year; +- int isdst = tp->tm_isdst; ++ /* Normalize the value. */ ++ int isdst = ((tp->tm_isdst >> (8 * sizeof (tp->tm_isdst) - 1)) ++ | (tp->tm_isdst != 0)); + + /* 1 if the previous probe was DST. */ + int dst2; diff --git a/glibc-c99-scanf.patch b/glibc-c99-scanf.patch new file mode 100644 index 0000000..9513261 --- /dev/null +++ b/glibc-c99-scanf.patch @@ -0,0 +1,441 @@ +2008-05-24 Jakub Jelinek + + * libio/stdio.h (vscanf): Fix -std=c99 redirect. + * stdio-common/Makefile (tests): Add scanf16 and scanf17. + (CFLAGS-scanf17.c): New. + * stdio-common/scanf14.c (main): Add fscanf and scanf tests. + * stdio-common/scanf15.c (main): Likewise. + * stdio-common/scanf16.c: New file. + * stdio-common/scanf17.c: New file. + +--- libc/libio/stdio.h 8 Jan 2008 01:18:40 -0000 1.92 ++++ libc/libio/stdio.h 24 May 2008 18:14:36 -0000 1.93 +@@ -475,7 +475,7 @@ extern int __REDIRECT (vfscanf, + __isoc99_vfscanf) + __attribute__ ((__format__ (__scanf__, 2, 0))) __wur; + extern int __REDIRECT (vscanf, (__const char *__restrict __format, +- _G_va_list __arg), __isoc99_vfscanf) ++ _G_va_list __arg), __isoc99_vscanf) + __attribute__ ((__format__ (__scanf__, 1, 0))) __wur; + extern int __REDIRECT (vsscanf, + (__const char *__restrict __s, +--- libc/stdio-common/Makefile 10 Dec 2007 01:43:13 -0000 1.111 ++++ libc/stdio-common/Makefile 24 May 2008 18:14:36 -0000 1.112 +@@ -57,7 +57,8 @@ tests := tstscanf test_rdwr test-popen t + tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex bug14 bug15 \ + tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \ + tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \ +- bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 ++ bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \ ++ scanf16 scanf17 + + test-srcs = tst-unbputc tst-printf + +@@ -109,11 +110,13 @@ CFLAGS-isoc99_scanf.c += $(exceptions) + CFLAGS-errlist.c = $(fno-unit-at-a-time) + CFLAGS-siglist.c = $(fno-unit-at-a-time) + +-# The following is a hack since we must compile scanf15.c without any ++# The following is a hack since we must compile scanf1{5,7}.c without any + # GNU extension. The latter are needed, though, when internal headers + # are used. So made sure we see the installed headers first. + CFLAGS-scanf15.c = -I../libio -I../stdlib -I../wcsmbs -I../time -I../string \ + -I../wctype ++CFLAGS-scanf17.c = -I../libio -I../stdlib -I../wcsmbs -I../time -I../string \ ++ -I../wctype + + # We know the test has a format string problem. + CFLAGS-tst-sprintf.c = -Wno-format +--- libc/stdio-common/scanf14.c 18 Sep 2007 17:59:38 -0000 1.1 ++++ libc/stdio-common/scanf14.c 24 May 2008 18:14:36 -0000 1.2 +@@ -59,5 +59,58 @@ main (void) + else if (d != 5.25 || memcmp (c, " x", 2) != 0) + FAIL (); + ++ const char *tmpdir = getenv ("TMPDIR"); ++ if (tmpdir == NULL || tmpdir[0] == '\0') ++ tmpdir = "/tmp"; ++ ++ char fname[strlen (tmpdir) + sizeof "/tst-scanf14.XXXXXX"]; ++ sprintf (fname, "%s/tst-scanf14.XXXXXX", tmpdir); ++ if (fname == NULL) ++ FAIL (); ++ ++ /* Create a temporary file. */ ++ int fd = mkstemp (fname); ++ if (fd == -1) ++ FAIL (); ++ ++ FILE *fp = fdopen (fd, "w+"); ++ if (fp == NULL) ++ FAIL (); ++ else ++ { ++ if (fputs (" 1.25s x", fp) == EOF) ++ FAIL (); ++ if (fseek (fp, 0, SEEK_SET) != 0) ++ FAIL (); ++ if (fscanf (fp, "%as%2c", &sp, c) != 2) ++ FAIL (); ++ else ++ { ++ if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ memset (sp, 'x', sizeof "1.25s"); ++ free (sp); ++ } ++ ++ if (freopen (fname, "r", stdin) == NULL) ++ FAIL (); ++ else ++ { ++ if (scanf ("%as%2c", &sp, c) != 2) ++ FAIL (); ++ else ++ { ++ if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ memset (sp, 'x', sizeof "1.25s"); ++ free (sp); ++ } ++ } ++ ++ fclose (fp); ++ } ++ ++ remove (fname); ++ + return result; + } +--- libc/stdio-common/scanf15.c 18 Sep 2007 17:59:38 -0000 1.1 ++++ libc/stdio-common/scanf15.c 24 May 2008 18:14:36 -0000 1.2 +@@ -50,5 +50,48 @@ main (void) + else if (d != 5.25 || memcmp (c, " x", 2) != 0) + FAIL (); + ++ const char *tmpdir = getenv ("TMPDIR"); ++ if (tmpdir == NULL || tmpdir[0] == '\0') ++ tmpdir = "/tmp"; ++ ++ char fname[strlen (tmpdir) + sizeof "/tst-scanf15.XXXXXX"]; ++ sprintf (fname, "%s/tst-scanf15.XXXXXX", tmpdir); ++ if (fname == NULL) ++ FAIL (); ++ ++ /* Create a temporary file. */ ++ int fd = mkstemp (fname); ++ if (fd == -1) ++ FAIL (); ++ ++ FILE *fp = fdopen (fd, "w+"); ++ if (fp == NULL) ++ FAIL (); ++ else ++ { ++ if (fputs (" 1.25s x", fp) == EOF) ++ FAIL (); ++ if (fseek (fp, 0, SEEK_SET) != 0) ++ FAIL (); ++ if (fscanf (fp, "%as%2c", &f, c) != 2) ++ FAIL (); ++ else if (f != 1.25 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ ++ if (freopen (fname, "r", stdin) == NULL) ++ FAIL (); ++ else ++ { ++ if (scanf ("%as%2c", &f, c) != 2) ++ FAIL (); ++ else if (f != 1.25 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ } ++ ++ fclose (fp); ++ } ++ ++ remove (fname); ++ + return result; + } +--- libc/stdio-common/scanf16.c 1 Jan 1970 00:00:00 -0000 ++++ libc/stdio-common/scanf16.c 24 May 2008 18:14:36 -0000 1.1 +@@ -0,0 +1,147 @@ ++#include ++#include ++#include ++#include ++#include ++ ++#define FAIL() \ ++ do { \ ++ result = 1; \ ++ printf ("test at line %d failed\n", __LINE__); \ ++ } while (0) ++ ++static int ++xsscanf (const char *str, const char *fmt, ...) ++{ ++ va_list ap; ++ va_start (ap, fmt); ++ int ret = vsscanf (str, fmt, ap); ++ va_end (ap); ++ return ret; ++} ++ ++static int ++xscanf (const char *fmt, ...) ++{ ++ va_list ap; ++ va_start (ap, fmt); ++ int ret = vscanf (fmt, ap); ++ va_end (ap); ++ return ret; ++} ++ ++static int ++xfscanf (FILE *f, const char *fmt, ...) ++{ ++ va_list ap; ++ va_start (ap, fmt); ++ int ret = vfscanf (f, fmt, ap); ++ va_end (ap); ++ return ret; ++} ++ ++int ++main (void) ++{ ++ wchar_t *lsp; ++ char *sp; ++ float f; ++ double d; ++ char c[8]; ++ int result = 0; ++ ++ if (xsscanf (" 0.25s x", "%e%3c", &f, c) != 2) ++ FAIL (); ++ else if (f != 0.25 || memcmp (c, "s x", 3) != 0) ++ FAIL (); ++ if (xsscanf (" 1.25s x", "%as%2c", &sp, c) != 2) ++ FAIL (); ++ else ++ { ++ if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ memset (sp, 'x', sizeof "1.25s"); ++ free (sp); ++ } ++ if (xsscanf (" 2.25s x", "%las%2c", &d, c) != 2) ++ FAIL (); ++ else if (d != 2.25 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ if (xsscanf (" 3.25S x", "%4aS%3c", &lsp, c) != 2) ++ FAIL (); ++ else ++ { ++ if (wcscmp (lsp, L"3.25") != 0 || memcmp (c, "S x", 3) != 0) ++ FAIL (); ++ memset (lsp, 'x', sizeof L"3.25"); ++ free (lsp); ++ } ++ if (xsscanf ("4.25[0-9.] x", "%a[0-9.]%8c", &sp, c) != 2) ++ FAIL (); ++ else ++ { ++ if (strcmp (sp, "4.25") != 0 || memcmp (c, "[0-9.] x", 8) != 0) ++ FAIL (); ++ memset (sp, 'x', sizeof "4.25"); ++ free (sp); ++ } ++ if (xsscanf ("5.25[0-9.] x", "%la[0-9.]%2c", &d, c) != 2) ++ FAIL (); ++ else if (d != 5.25 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ ++ const char *tmpdir = getenv ("TMPDIR"); ++ if (tmpdir == NULL || tmpdir[0] == '\0') ++ tmpdir = "/tmp"; ++ ++ char fname[strlen (tmpdir) + sizeof "/tst-scanf16.XXXXXX"]; ++ sprintf (fname, "%s/tst-scanf16.XXXXXX", tmpdir); ++ if (fname == NULL) ++ FAIL (); ++ ++ /* Create a temporary file. */ ++ int fd = mkstemp (fname); ++ if (fd == -1) ++ FAIL (); ++ ++ FILE *fp = fdopen (fd, "w+"); ++ if (fp == NULL) ++ FAIL (); ++ else ++ { ++ if (fputs (" 1.25s x", fp) == EOF) ++ FAIL (); ++ if (fseek (fp, 0, SEEK_SET) != 0) ++ FAIL (); ++ if (xfscanf (fp, "%as%2c", &sp, c) != 2) ++ FAIL (); ++ else ++ { ++ if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ memset (sp, 'x', sizeof "1.25s"); ++ free (sp); ++ } ++ ++ if (freopen (fname, "r", stdin) == NULL) ++ FAIL (); ++ else ++ { ++ if (xscanf ("%as%2c", &sp, c) != 2) ++ FAIL (); ++ else ++ { ++ if (strcmp (sp, "1.25s") != 0 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ memset (sp, 'x', sizeof "1.25s"); ++ free (sp); ++ } ++ } ++ ++ fclose (fp); ++ } ++ ++ remove (fname); ++ ++ return result; ++} +--- libc/stdio-common/scanf17.c 1 Jan 1970 00:00:00 -0000 ++++ libc/stdio-common/scanf17.c 24 May 2008 18:14:36 -0000 1.1 +@@ -0,0 +1,128 @@ ++#undef _GNU_SOURCE ++#define _XOPEN_SOURCE 600 ++/* The following macro definitions are a hack. They word around disabling ++ the GNU extension while still using a few internal headers. */ ++#define u_char unsigned char ++#define u_short unsigned short ++#define u_int unsigned int ++#define u_long unsigned long ++#include ++#include ++#include ++#include ++#include ++ ++#define FAIL() \ ++ do { \ ++ result = 1; \ ++ printf ("test at line %d failed\n", __LINE__); \ ++ } while (0) ++ ++static int ++xsscanf (const char *str, const char *fmt, ...) ++{ ++ va_list ap; ++ va_start (ap, fmt); ++ int ret = vsscanf (str, fmt, ap); ++ va_end (ap); ++ return ret; ++} ++ ++static int ++xscanf (const char *fmt, ...) ++{ ++ va_list ap; ++ va_start (ap, fmt); ++ int ret = vscanf (fmt, ap); ++ va_end (ap); ++ return ret; ++} ++ ++static int ++xfscanf (FILE *f, const char *fmt, ...) ++{ ++ va_list ap; ++ va_start (ap, fmt); ++ int ret = vfscanf (f, fmt, ap); ++ va_end (ap); ++ return ret; ++} ++ ++int ++main (void) ++{ ++ float f; ++ double d; ++ char c[8]; ++ int result = 0; ++ ++ if (xsscanf (" 0.25s x", "%e%3c", &f, c) != 2) ++ FAIL (); ++ else if (f != 0.25 || memcmp (c, "s x", 3) != 0) ++ FAIL (); ++ if (xsscanf (" 1.25s x", "%as%2c", &f, c) != 2) ++ FAIL (); ++ else if (f != 1.25 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ if (xsscanf (" 2.25s x", "%las%2c", &d, c) != 2) ++ FAIL (); ++ else if (d != 2.25 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ if (xsscanf (" 3.25S x", "%4aS%2c", &f, c) != 2) ++ FAIL (); ++ else if (f != 3.25 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ if (xsscanf (" 4.25[0-9.] x", "%a[0-9.]%2c", &f, c) != 2) ++ FAIL (); ++ else if (f != 4.25 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ if (xsscanf (" 5.25[0-9.] x", "%la[0-9.]%2c", &d, c) != 2) ++ FAIL (); ++ else if (d != 5.25 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ ++ const char *tmpdir = getenv ("TMPDIR"); ++ if (tmpdir == NULL || tmpdir[0] == '\0') ++ tmpdir = "/tmp"; ++ ++ char fname[strlen (tmpdir) + sizeof "/tst-scanf17.XXXXXX"]; ++ sprintf (fname, "%s/tst-scanf17.XXXXXX", tmpdir); ++ if (fname == NULL) ++ FAIL (); ++ ++ /* Create a temporary file. */ ++ int fd = mkstemp (fname); ++ if (fd == -1) ++ FAIL (); ++ ++ FILE *fp = fdopen (fd, "w+"); ++ if (fp == NULL) ++ FAIL (); ++ else ++ { ++ if (fputs (" 1.25s x", fp) == EOF) ++ FAIL (); ++ if (fseek (fp, 0, SEEK_SET) != 0) ++ FAIL (); ++ if (xfscanf (fp, "%as%2c", &f, c) != 2) ++ FAIL (); ++ else if (f != 1.25 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ ++ if (freopen (fname, "r", stdin) == NULL) ++ FAIL (); ++ else ++ { ++ if (xscanf ("%as%2c", &f, c) != 2) ++ FAIL (); ++ else if (f != 1.25 || memcmp (c, " x", 2) != 0) ++ FAIL (); ++ } ++ ++ fclose (fp); ++ } ++ ++ remove (fname); ++ ++ return result; ++} diff --git a/glibc-lt-l10n.patch b/glibc-lt-l10n.patch new file mode 100644 index 0000000..ed10450 --- /dev/null +++ b/glibc-lt-l10n.patch @@ -0,0 +1,7089 @@ +2008-05-13 Ulrich Drepper + + * po/lt.po: New file. From Lituanian translation team. + +--- libc/po/lt.po 1 Jan 1970 00:00:00 -0000 ++++ libc/po/lt.po 13 May 2008 22:48:32 -0000 1.1 +@@ -0,0 +1,7082 @@ ++# translation of libc-2.7 to Lithuanian ++# Copyright (C) 2008 Free Software Foundation, Inc. ++# This file is distributed under the same license as the glibc package. ++# ++# Gintautas Miliauskas , 2008. ++msgid "" ++msgstr "" ++"Project-Id-Version: libc-2.7\n" ++"POT-Creation-Date: 2007-10-15 21:18-0700\n" ++"PO-Revision-Date: 2008-05-14 01:35+0300\n" ++"Last-Translator: Gintautas Miliauskas \n" ++"Language-Team: Lithuanian \n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"X-Generator: KBabel 1.11.4\n" ++"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" ++ ++#: argp/argp-help.c:228 ++#, c-format ++msgid "%.*s: ARGP_HELP_FMT parameter requires a value" ++msgstr "%.*s: ARGP_HELP_FMT parametrui rekia reikšmės" ++ ++#: argp/argp-help.c:238 ++#, c-format ++msgid "%.*s: Unknown ARGP_HELP_FMT parameter" ++msgstr "%.*s: Nežinomas ARGP_HELP_FMT parametras" ++ ++#: argp/argp-help.c:251 ++#, c-format ++msgid "Garbage in ARGP_HELP_FMT: %s" ++msgstr "Šiukšlės ARGP_HELP_FMT: %s" ++ ++#: argp/argp-help.c:1215 ++msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options." ++msgstr "Būtini ar nebūtini argumentai ilgiems parametrams atitinkamai būtini ar nebūtini trumpoms jų formoms." ++ ++#: argp/argp-help.c:1601 ++msgid "Usage:" ++msgstr "Naudojimas:" ++ ++#: argp/argp-help.c:1605 ++msgid " or: " ++msgstr " arba: " ++ ++#: argp/argp-help.c:1617 ++msgid " [OPTION...]" ++msgstr "[PARAMETRAS...]" ++ ++#: argp/argp-help.c:1644 ++#, fuzzy, c-format ++msgid "Try `%s --help' or `%s --usage' for more information.\n" ++msgstr "Pabandykite „memusage --help“, jei norite gauti daugiau informacijos." ++ ++#: argp/argp-help.c:1672 ++#, c-format ++msgid "Report bugs to %s.\n" ++msgstr "Praneškite apie klaidas %s.\n" ++ ++#: argp/argp-parse.c:102 ++msgid "Give this help list" ++msgstr "Pateikti šį pagalbinį sąrašą" ++ ++#: argp/argp-parse.c:103 ++msgid "Give a short usage message" ++msgstr "Pateikti trumpą pranešimą apie naudojimą" ++ ++#: argp/argp-parse.c:104 ++msgid "Set the program name" ++msgstr "Nustatyti programos pavadinimą" ++ ++#: argp/argp-parse.c:106 ++msgid "Hang for SECS seconds (default 3600)" ++msgstr "Laukti SECS sekundžių (standartiškai 3600)" ++ ++#: argp/argp-parse.c:167 ++msgid "Print program version" ++msgstr "Išspausdinti programos versiją" ++ ++#: argp/argp-parse.c:183 ++msgid "(PROGRAM ERROR) No version known!?" ++msgstr "(PROGRAM ERROR) Nežinoma joka versija!?" ++ ++#: argp/argp-parse.c:623 ++#, c-format ++msgid "%s: Too many arguments\n" ++msgstr "%s: Per daug argumentų\n" ++ ++#: argp/argp-parse.c:766 ++#, fuzzy ++msgid "(PROGRAM ERROR) Option should have been recognized!?" ++msgstr "(PROGRAM ERROR) Nežinoma joka versija!?" ++ ++#: assert/assert-perr.c:57 ++#, c-format ++msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n" ++msgstr "%s%s%s:%u: %s%sNetikėta klaida: %s.\n" ++ ++#: assert/assert.c:57 ++#, c-format ++msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n" ++msgstr "%s%s%s:%u: %s%sPrielaida „%s“ pažeista.\n" ++ ++#: catgets/gencat.c:110 catgets/gencat.c:114 nscd/nscd.c:97 nss/makedb.c:61 ++msgid "NAME" ++msgstr "PAVADINIMAS" ++ ++#: catgets/gencat.c:111 ++msgid "Create C header file NAME containing symbol definitions" ++msgstr "Sukurti C antraščių failą duotu PAVADINIMU, kuriame surašyti simbolių apibrėžimus" ++ ++#: catgets/gencat.c:113 ++msgid "Do not use existing catalog, force new output file" ++msgstr "Nenaudoti egzistuojančio katalogo, kurti naują išvedimo failą" ++ ++#: catgets/gencat.c:114 nss/makedb.c:61 ++msgid "Write output to file NAME" ++msgstr "Išvesti į failą duotu PAVADINIMU" ++ ++#: 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 "" ++"-o IŠVEDIMO-FAILAS [DUOMENŲ-FAILAS]...\n" ++"[IŠVEDIMO-FAILAS [DUOMENŲ-FAILAS]...]" ++ ++#: catgets/gencat.c:232 debug/pcprofiledump.c:204 iconv/iconv_prog.c:411 ++#: iconv/iconvconfig.c:380 locale/programs/localedef.c:371 ++#: login/programs/pt_chown.c:88 malloc/memusagestat.c:526 nss/makedb.c:231 ++msgid "" ++"For bug reporting instructions, please see:\n" ++".\n" ++msgstr "" ++ ++#: catgets/gencat.c:246 debug/xtrace.sh:64 elf/ldconfig.c:296 ++#: elf/ldd.bash.in:39 elf/sprof.c:355 iconv/iconv_prog.c: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:301 elf/sprof.c:361 ++#: iconv/iconv_prog.c:431 iconv/iconvconfig.c:400 locale/programs/locale.c:280 ++#: locale/programs/localedef.c:392 malloc/memusage.sh:75 nscd/nscd.c:411 ++#: nss/getent.c:88 nss/makedb.c:250 posix/getconf.c:1017 ++#, c-format ++msgid "Written by %s.\n" ++msgstr "Parašė %s.\n" ++ ++#: catgets/gencat.c:282 ++msgid "*standard input*" ++msgstr "*standartinis įvedimas*" ++ ++#: catgets/gencat.c:288 iconv/iconv_charmap.c:158 iconv/iconv_prog.c:298 ++#: nss/makedb.c:170 ++#, fuzzy, c-format ++msgid "cannot open input file `%s'" ++msgstr "%s: nepavyko atverti laikinojo failo: %s" ++ ++#: catgets/gencat.c:417 catgets/gencat.c:494 ++#, fuzzy ++msgid "illegal set number" ++msgstr "nekorektiška eilutė" ++ ++#: catgets/gencat.c:444 ++msgid "duplicate set definition" ++msgstr "pakartotinis rinkinio apibrėžimas" ++ ++#: catgets/gencat.c:446 catgets/gencat.c:623 catgets/gencat.c:677 ++msgid "this is the first definition" ++msgstr "šis apibrėžimas pirmasis" ++ ++#: catgets/gencat.c:522 ++#, c-format ++msgid "unknown set `%s'" ++msgstr "nežinomas rinkinys „%s“" ++ ++#: catgets/gencat.c:563 ++#, fuzzy ++msgid "invalid quote character" ++msgstr "netaisyklingas kabučių simbolis" ++ ++#: catgets/gencat.c:576 ++#, c-format ++msgid "unknown directive `%s': line ignored" ++msgstr "nežinoma direktyva „%s“: eilutė ignoruota" ++ ++#: catgets/gencat.c:621 ++msgid "duplicated message number" ++msgstr "pakartotas pranešimo numeris" ++ ++#: catgets/gencat.c:674 ++msgid "duplicated message identifier" ++msgstr "pakartotas pranešimo identifikatorius" ++ ++#: catgets/gencat.c:731 ++#, fuzzy ++msgid "invalid character: message ignored" ++msgstr "netaisyklingas simbolis: pranešimas ignoruotas" ++ ++#: catgets/gencat.c:774 ++#, fuzzy ++msgid "invalid line" ++msgstr "nekorektiška eilutė" ++ ++#: catgets/gencat.c:828 ++msgid "malformed line ignored" ++msgstr "nekorektiška eilutė ignoruota" ++ ++#: catgets/gencat.c:992 catgets/gencat.c:1033 nss/makedb.c:183 ++#, fuzzy, c-format ++msgid "cannot open output file `%s'" ++msgstr "%s: nepavyko atverti laikinojo failo: %s" ++ ++#: catgets/gencat.c:1195 locale/programs/linereader.c:560 ++#, fuzzy ++msgid "invalid escape sequence" ++msgstr "netaisyklingas naudotojas" ++ ++#: catgets/gencat.c:1217 ++msgid "unterminated message" ++msgstr "neužbaigtas pranešimas" ++ ++#: catgets/gencat.c:1241 ++#, fuzzy, c-format ++msgid "while opening old catalog file" ++msgstr "rašant duomenų bazės failą" ++ ++#: catgets/gencat.c:1332 ++#, fuzzy, c-format ++msgid "conversion modules not available" ++msgstr "RPC programa nerasta" ++ ++#: catgets/gencat.c:1358 ++#, c-format ++msgid "cannot determine escape character" ++msgstr "" ++ ++#: debug/pcprofiledump.c:53 ++msgid "Don't buffer output" ++msgstr "" ++ ++#: debug/pcprofiledump.c:58 ++msgid "Dump information generated by PC profiling." ++msgstr "" ++ ++#: debug/pcprofiledump.c:61 ++msgid "[FILE]" ++msgstr "[FAILAS]" ++ ++#: debug/pcprofiledump.c:104 ++#, fuzzy, c-format ++msgid "cannot open input file" ++msgstr "%s: nepavyko atverti laikinojo failo: %s" ++ ++#: debug/pcprofiledump.c:111 ++#, c-format ++msgid "cannot read header" ++msgstr "nepavyko perskaityti antraštės" ++ ++#: debug/pcprofiledump.c:175 ++#, fuzzy, c-format ++msgid "invalid pointer size" ++msgstr "netaisyklingas naudotojas" ++ ++#: debug/xtrace.sh:27 debug/xtrace.sh:45 ++msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n" ++msgstr "" ++ ++#: debug/xtrace.sh:33 ++#, fuzzy ++msgid "Try \\`xtrace --help' for more information.\\n" ++msgstr "Pabandykite „memusage --help“, jei norite gauti daugiau informacijos." ++ ++#: debug/xtrace.sh:39 ++#, fuzzy ++msgid "xtrace: option \\`$1' requires an argument.\\n" ++msgstr "memusage: parametrui „$1“ reikia argumento" ++ ++#: 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 ++#, fuzzy ++msgid "xtrace: unrecognized option \\`$1'\\n" ++msgstr "%s: neatpažintas parametras „--%s“\n" ++ ++#: debug/xtrace.sh:138 ++msgid "No program name given\\n" ++msgstr "Nenurodytas programos vardas\\n" ++ ++#: 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 "RTLD_SELF panaudotas ne dinamiškai įkeltame kode" ++ ++#: dlfcn/dlinfo.c:73 ++msgid "unsupported dlinfo request" ++msgstr "nepalaikoma dlinfo užklausa" ++ ++#: dlfcn/dlmopen.c:64 ++#, fuzzy ++msgid "invalid namespace" ++msgstr "netaisyklingas kvietėjas" ++ ++#: dlfcn/dlmopen.c:69 ++msgid "invalid mode" ++msgstr "netaisyklinga veiksena" ++ ++#: dlfcn/dlopen.c:64 ++#, fuzzy ++msgid "invalid mode parameter" ++msgstr "netaisyklinga veiksena" ++ ++#: elf/cache.c:69 ++#, fuzzy ++msgid "unknown" ++msgstr "%s: adresas nežinomas" ++ ++#: elf/cache.c:112 ++msgid "Unknown OS" ++msgstr "Nežinoma OS" ++ ++#: elf/cache.c:117 ++#, c-format ++msgid ", OS ABI: %s %d.%d.%d" ++msgstr "" ++ ++#: elf/cache.c:134 elf/ldconfig.c:1270 ++#, c-format ++msgid "Can't open cache file %s\n" ++msgstr "Nepavyko atverti podėlio failo %s\n" ++ ++#: elf/cache.c:148 ++#, fuzzy, c-format ++msgid "mmap of cache file failed.\n" ++msgstr "Nepavyko atverti podėlio failo %s\n" ++ ++#: elf/cache.c:152 elf/cache.c:166 ++#, c-format ++msgid "File is not a cache file.\n" ++msgstr "Failas nėra podėlio failas.\n" ++ ++#: elf/cache.c:199 elf/cache.c:209 ++#, c-format ++msgid "%d libs found in cache `%s'\n" ++msgstr "Rasta %d bibliotekų podėlyje „%s“\n" ++ ++#: elf/cache.c:403 ++#, fuzzy, c-format ++msgid "Can't create temporary cache file %s" ++msgstr "Nepavyko atverti podėlio failo %s\n" ++ ++#: elf/cache.c:411 elf/cache.c:421 elf/cache.c:425 elf/cache.c:430 ++#, c-format ++msgid "Writing of cache data failed" ++msgstr "" ++ ++#: elf/cache.c:435 ++#, fuzzy, c-format ++msgid "Changing access rights of %s to %#o failed" ++msgstr "%s pervardinimas į %s nesėkmingas" ++ ++#: elf/cache.c:440 ++#, c-format ++msgid "Renaming of %s to %s failed" ++msgstr "%s pervardinimas į %s nesėkmingas" ++ ++#: elf/dl-close.c:378 elf/dl-open.c:460 ++#, fuzzy ++msgid "cannot create scope list" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: elf/dl-close.c:724 ++msgid "shared object not open" ++msgstr "bendrasis objektas neatvertas" ++ ++#: elf/dl-deps.c:114 ++msgid "DST not allowed in SUID/SGID programs" ++msgstr "DST neleidžiamas SUID/SGID programose" ++ ++#: elf/dl-deps.c:127 elf/dl-open.c:282 ++msgid "empty dynamic string token substitution" ++msgstr "" ++ ++#: elf/dl-deps.c:133 ++#, c-format ++msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n" ++msgstr "" ++ ++#: elf/dl-deps.c:474 ++#, fuzzy ++msgid "cannot allocate dependency list" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: elf/dl-deps.c:510 elf/dl-deps.c:565 ++#, fuzzy ++msgid "cannot allocate symbol search list" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: elf/dl-deps.c:550 ++msgid "Filters not supported with LD_TRACE_PRELINKING" ++msgstr "" ++ ++#: elf/dl-error.c:77 ++msgid "DYNAMIC LINKER BUG!!!" ++msgstr "" ++ ++#: elf/dl-error.c:124 ++msgid "error while loading shared libraries" ++msgstr "klaida įkeliant bendrąsias bibliotekas" ++ ++#: 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 "Nepavyko išskirti atminties" ++ ++#: elf/dl-load.c:474 elf/dl-load.c:582 elf/dl-load.c:667 elf/dl-load.c:780 ++#, fuzzy ++msgid "cannot create cache for search path" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: elf/dl-load.c:565 ++msgid "cannot create RUNPATH/RPATH copy" ++msgstr "" ++ ++#: elf/dl-load.c:653 ++#, fuzzy ++msgid "cannot create search path array" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: elf/dl-load.c:864 ++#, fuzzy ++msgid "cannot stat shared object" ++msgstr "nepavyko atverti bendrojo objekto failo" ++ ++#: elf/dl-load.c:934 ++#, fuzzy ++msgid "cannot open zero fill device" ++msgstr "nepavyko atverti duomenų failo „%s“" ++ ++#: elf/dl-load.c:979 elf/dl-load.c:2224 ++#, fuzzy ++msgid "cannot create shared object descriptor" ++msgstr "nepavyko užverti failo deskriptoriaus" ++ ++#: elf/dl-load.c:998 elf/dl-load.c:1656 elf/dl-load.c:1748 ++msgid "cannot read file data" ++msgstr "nepavyko nuskaityti failo duomenų" ++ ++#: 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 "nepavyko apdoroti TLS duomenų" ++ ++#: elf/dl-load.c:1174 ++msgid "object file has no loadable segments" ++msgstr "objektiniame faile nėra įkeliamų segmentų" ++ ++#: elf/dl-load.c:1210 ++msgid "failed to map segment from shared object" ++msgstr "" ++ ++#: elf/dl-load.c:1236 ++#, fuzzy ++msgid "cannot dynamically load executable" ++msgstr "\tne dinaminis paleidžiamasis failas" ++ ++#: elf/dl-load.c:1298 ++#, fuzzy ++msgid "cannot change memory protections" ++msgstr "nepavyko išskirti atminties programos antraštei" ++ ++#: 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 "objektiniame faile nėra dinaminės sekcijos" ++ ++#: elf/dl-load.c:1354 ++msgid "shared object cannot be dlopen()ed" ++msgstr "bendrasis objektas negali būti atvertas su dlopen()" ++ ++#: elf/dl-load.c:1367 ++msgid "cannot allocate memory for program header" ++msgstr "nepavyko išskirti atminties programos antraštei" ++ ++#: elf/dl-load.c:1384 elf/dl-open.c:218 ++#, fuzzy ++msgid "invalid caller" ++msgstr "netaisyklingas kvietėjas" ++ ++#: elf/dl-load.c:1423 ++msgid "cannot enable executable stack as shared object requires" ++msgstr "" ++ ++#: elf/dl-load.c:1436 ++msgid "cannot close file descriptor" ++msgstr "nepavyko užverti failo deskriptoriaus" ++ ++#: elf/dl-load.c:1478 ++msgid "cannot create searchlist" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: elf/dl-load.c:1656 ++msgid "file too short" ++msgstr "failas per trumpas" ++ ++#: elf/dl-load.c:1685 ++msgid "invalid ELF header" ++msgstr "netaisyklinga ELF antraštė" ++ ++#: elf/dl-load.c:1697 ++#, fuzzy ++msgid "ELF file data encoding not big-endian" ++msgstr "ELF failo duomenų koduotė ne big-endian" ++ ++#: elf/dl-load.c:1699 ++#, fuzzy ++msgid "ELF file data encoding not little-endian" ++msgstr "ELF failo duomenų koduotė ne big-endian" ++ ++#: elf/dl-load.c:1703 ++msgid "ELF file version ident does not match current one" ++msgstr "ELF failo versijos identifikatorius neatitinka esamo" ++ ++#: elf/dl-load.c:1707 ++msgid "ELF file OS ABI invalid" ++msgstr "ELF failo OS ABI netaisyklingas" ++ ++#: elf/dl-load.c:1709 ++msgid "ELF file ABI version invalid" ++msgstr "ELF failo ABI versioja netaisyklinga" ++ ++#: elf/dl-load.c:1712 ++#, fuzzy ++msgid "internal error" ++msgstr "Vardų paieškos vidinė klaida" ++ ++#: elf/dl-load.c:1719 ++msgid "ELF file version does not match current one" ++msgstr "ELF failo versija neatitinka esamos" ++ ++#: 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 "klaidinga ELF klasė: ELFCLASS64" ++ ++#: elf/dl-load.c:2241 ++msgid "wrong ELF class: ELFCLASS32" ++msgstr "klaidinga ELF klasė: ELFCLASS32" ++ ++#: elf/dl-load.c:2244 ++#, fuzzy ++msgid "cannot open shared object file" ++msgstr "nepavyko atverti bendrojo objekto failo" ++ ++#: elf/dl-lookup.c:356 ++msgid "relocation error" ++msgstr "relokacijos klaida" ++ ++#: elf/dl-lookup.c:384 ++msgid "symbol lookup error" ++msgstr "simbolio paieškos klaida" ++ ++#: 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 "TLS kartų skaitiklis persivertė! Prašytume apie tai pranešti." ++ ++#: elf/dl-open.c:549 ++#, fuzzy ++msgid "invalid mode for dlopen()" ++msgstr "netaisyklinga veiksena dlopen()" ++ ++#: elf/dl-open.c:566 ++msgid "no more namespaces available for dlmopen()" ++msgstr "" ++ ++#: elf/dl-open.c:579 ++#, fuzzy ++msgid "invalid target namespace in dlmopen()" ++msgstr "netaisyklinga veiksena dlopen()" ++ ++#: elf/dl-reloc.c:54 ++#, fuzzy ++msgid "cannot allocate memory in static TLS block" ++msgstr "Nepavyko išskirti atminties" ++ ++#: 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 "%s: objekte %s nerasta PLTREL\n" ++ ++#: 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:162 ++#, fuzzy ++msgid "RTLD_NEXT used in code not dynamically loaded" ++msgstr "RTLD_SELF panaudotas ne dinamiškai įkeltame kode" ++ ++#: elf/dl-sysdep.c:469 elf/dl-sysdep.c:481 ++#, fuzzy ++msgid "cannot create capability list" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: elf/dl-tls.c:825 ++#, fuzzy ++msgid "cannot create TLS data structures" ++msgstr "nepavyko apdoroti TLS duomenų" ++ ++#: elf/dl-version.c:303 ++#, fuzzy ++msgid "cannot allocate version reference table" ++msgstr "nepavyko išskirti atminties programos antraštei" ++ ++#: elf/ldconfig.c:138 ++msgid "Print cache" ++msgstr "Spausdinti podėlį" ++ ++#: elf/ldconfig.c:139 ++msgid "Generate verbose messages" ++msgstr "Generuoti išsamius pranešimus" ++ ++#: elf/ldconfig.c:140 ++msgid "Don't build cache" ++msgstr "Nekurti podėlio" ++ ++#: elf/ldconfig.c:141 ++msgid "Don't generate links" ++msgstr "Nekurti nuorodų" ++ ++#: elf/ldconfig.c:142 ++msgid "Change to and use ROOT as root directory" ++msgstr "Naudoti ŠAKNĮ kaip šakninį aplanką" ++ ++#: elf/ldconfig.c:142 ++msgid "ROOT" ++msgstr "ŠAKNIS" ++ ++#: elf/ldconfig.c:143 ++msgid "CACHE" ++msgstr "PODĖLIS" ++ ++#: elf/ldconfig.c:143 ++msgid "Use CACHE as cache file" ++msgstr "Naudoti PODĖLĮ kaip podėlio failą" ++ ++#: elf/ldconfig.c:144 ++msgid "CONF" ++msgstr "KONF" ++ ++#: elf/ldconfig.c:144 ++msgid "Use CONF as configuration file" ++msgstr "Naudoti KONF kaip konfigūracijos failą" ++ ++#: elf/ldconfig.c:145 ++msgid "Only process directories specified on the command line. Don't build cache." ++msgstr "Apdoroti tik aplankus, nurodytus komandų eilutėje. Nekurti podėlio." ++ ++#: elf/ldconfig.c:146 ++msgid "Manually link individual libraries." ++msgstr "Rankiniu būdu susaistyti (link) atskiras bibliotekas." ++ ++#: elf/ldconfig.c:147 ++msgid "FORMAT" ++msgstr "FORMATAS" ++ ++#: elf/ldconfig.c:147 ++msgid "Format to use: new, old or compat (default)" ++msgstr "Formatas: new (naujas), old (senas) arba compat (numatytasis)" ++ ++#: elf/ldconfig.c:148 ++msgid "Ignore auxiliary cache file" ++msgstr "Ignoruoti pagalbinį podėlio failą" ++ ++#: elf/ldconfig.c:156 ++msgid "Configure Dynamic Linker Run Time Bindings." ++msgstr "" ++ ++#: elf/ldconfig.c:319 ++#, fuzzy, c-format ++msgid "Path `%s' given more than once" ++msgstr "%s: laukas „%s“ apibrėžtas daugiau negu vieną kartą" ++ ++#: elf/ldconfig.c:359 ++#, c-format ++msgid "%s is not a known library type" ++msgstr "%s nėra žinomas bibliotekos tipas" ++ ++#: elf/ldconfig.c:384 ++#, fuzzy, c-format ++msgid "Can't stat %s" ++msgstr "Nepavyko rasti %s" ++ ++#: elf/ldconfig.c:458 ++#, fuzzy, c-format ++msgid "Can't stat %s\n" ++msgstr "Nepavyko susaistyti (link) %s su %s" ++ ++#: elf/ldconfig.c:468 ++#, fuzzy, c-format ++msgid "%s is not a symbolic link\n" ++msgstr "simbolinė nuoroda" ++ ++#: elf/ldconfig.c:487 ++#, fuzzy, c-format ++msgid "Can't unlink %s" ++msgstr "Nepavyko rasti %s" ++ ++#: elf/ldconfig.c:493 ++#, c-format ++msgid "Can't link %s to %s" ++msgstr "Nepavyko susaistyti (link) %s su %s" ++ ++#: elf/ldconfig.c:499 ++msgid " (changed)\n" ++msgstr " (pakeista)\n" ++ ++#: elf/ldconfig.c:501 ++msgid " (SKIPPED)\n" ++msgstr " (PRALEISTA)\n" ++ ++#: elf/ldconfig.c:556 ++#, c-format ++msgid "Can't find %s" ++msgstr "Nepavyko rasti %s" ++ ++#: elf/ldconfig.c:572 elf/ldconfig.c:745 elf/ldconfig.c:793 elf/ldconfig.c:827 ++#, fuzzy, c-format ++msgid "Cannot lstat %s" ++msgstr "%s: nepavyko perskaityti: %s" ++ ++#: elf/ldconfig.c:579 ++#, fuzzy, c-format ++msgid "Ignored file %s since it is not a regular file." ++msgstr "ne paprastas failas" ++ ++#: elf/ldconfig.c:588 ++#, c-format ++msgid "No link created since soname could not be found for %s" ++msgstr "" ++ ++#: elf/ldconfig.c:671 ++#, c-format ++msgid "Can't open directory %s" ++msgstr "Nepavyko atverti aplanko %s" ++ ++#: elf/ldconfig.c:759 ++#, fuzzy, c-format ++msgid "Cannot stat %s" ++msgstr "%s: nepavyko perskaityti: %s" ++ ++#: elf/ldconfig.c:814 elf/readlib.c:91 ++#, fuzzy, c-format ++msgid "Input file %s not found.\n" ++msgstr "Duomenų failas %s nerastas.\n" ++ ++#: elf/ldconfig.c:888 ++#, c-format ++msgid "libc5 library %s in wrong directory" ++msgstr "libc5 biblioteka %s ne tame aplanke" ++ ++#: elf/ldconfig.c:891 ++#, c-format ++msgid "libc6 library %s in wrong directory" ++msgstr "libc6 biblioteka %s ne tame aplanke" ++ ++#: elf/ldconfig.c:894 ++#, c-format ++msgid "libc4 library %s in wrong directory" ++msgstr "libc4 biblioteka %s ne tame aplanke" ++ ++#: elf/ldconfig.c:922 ++#, c-format ++msgid "libraries %s and %s in directory %s have same soname but different type." ++msgstr "" ++ ++#: elf/ldconfig.c:1031 ++#, c-format ++msgid "Can't open configuration file %s" ++msgstr "Nepavyko atverti konfigūracijos failo %s" ++ ++#: elf/ldconfig.c:1095 ++#, c-format ++msgid "%s:%u: bad syntax in hwcap line" ++msgstr "%s:%u: klaidinga sintaksė hwcap eilutėje" ++ ++#: elf/ldconfig.c:1101 ++#, c-format ++msgid "%s:%u: hwcap index %lu above maximum %u" ++msgstr "" ++ ++#: elf/ldconfig.c:1108 elf/ldconfig.c:1116 ++#, c-format ++msgid "%s:%u: hwcap index %lu already defined as %s" ++msgstr "" ++ ++#: elf/ldconfig.c:1119 ++#, c-format ++msgid "%s:%u: duplicate hwcap %lu %s" ++msgstr "" ++ ++#: elf/ldconfig.c:1141 ++#, c-format ++msgid "need absolute file name for configuration file when using -r" ++msgstr "" ++ ++#: elf/ldconfig.c:1148 locale/programs/xmalloc.c:70 malloc/obstack.c:434 ++#: malloc/obstack.c:436 posix/getconf.c:985 posix/getconf.c:1163 ++#, c-format ++msgid "memory exhausted" ++msgstr "baigėsi atmintis" ++ ++#: elf/ldconfig.c:1178 ++#, fuzzy, c-format ++msgid "%s:%u: cannot read directory %s" ++msgstr "nepavyko atverti aplanko %s" ++ ++#: elf/ldconfig.c:1223 ++#, c-format ++msgid "relative path `%s' used to build cache" ++msgstr "" ++ ++#: elf/ldconfig.c:1249 ++#, fuzzy, c-format ++msgid "Can't chdir to /" ++msgstr "Nepavyko susaistyti (link) %s su %s" ++ ++#: elf/ldconfig.c:1291 ++#, c-format ++msgid "Can't open cache file directory %s\n" ++msgstr "Nepavyko atverti podėlio failo aplanko %s\n" ++ ++#: elf/ldd.bash.in:43 ++msgid "Written by %s and %s.\n" ++msgstr "Parašė %s ir %s.\n" ++ ++#: 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 "ldd: parametras „$1“ dviprasmis" ++ ++#: elf/ldd.bash.in:87 ++msgid "unrecognized option" ++msgstr "neatpažintas parametras" ++ ++#: elf/ldd.bash.in:88 elf/ldd.bash.in:126 ++#, fuzzy ++msgid "Try \\`ldd --help' for more information." ++msgstr "Pabandykite „memusage --help“, jei norite gauti daugiau informacijos." ++ ++#: elf/ldd.bash.in:125 ++msgid "missing file arguments" ++msgstr "trūksta failo argumento" ++ ++#. 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 "Toks failas ar aplankas neegzistuoja" ++ ++#: elf/ldd.bash.in:151 inet/rcmd.c:483 ++#, fuzzy ++msgid "not regular file" ++msgstr "paprastas failas" ++ ++#: elf/ldd.bash.in:154 ++msgid "warning: you do not have execution permission for" ++msgstr "įspėjimas: neturite teisės paleisti" ++ ++#: elf/ldd.bash.in:183 ++msgid "\tnot a dynamic executable" ++msgstr "\tne dinaminis paleidžiamasis failas" ++ ++#: elf/ldd.bash.in:191 ++msgid "exited with unknown exit code" ++msgstr "išėjo su nežinomu išėjimo kodu" ++ ++#: elf/ldd.bash.in:196 ++msgid "error: you do not have read permission for" ++msgstr "klaida: neturite skaitymo teisių" ++ ++#: 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 "%s yra 32 bitų ELF failas.\n" ++ ++#: elf/readelflib.c:69 ++#, c-format ++msgid "%s is a 64 bit ELF file.\n" ++msgstr "%s yra 64 bitų ELF failas.\n" ++ ++#: elf/readelflib.c:71 ++#, c-format ++msgid "Unknown ELFCLASS in file %s.\n" ++msgstr "Netaisyklinga ELFCLASS faile %s.\n" ++ ++#: 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 "daugiau negu vienas dinaminis segmentas\n" ++ ++#: elf/readlib.c:97 ++#, fuzzy, c-format ++msgid "Cannot fstat file %s.\n" ++msgstr "%s: nepavyko atverti laikinojo failo: %s" ++ ++#: elf/readlib.c:108 ++#, c-format ++msgid "File %s is empty, not checked." ++msgstr "Failas %s tuščias, todėl netikrintas." ++ ++#: elf/readlib.c:114 ++#, c-format ++msgid "File %s is too small, not checked." ++msgstr "Failas %s per mažas, todėl netikrintas." ++ ++#: elf/readlib.c:124 ++#, fuzzy, c-format ++msgid "Cannot mmap file %s.\n" ++msgstr "%s: nepavyko atverti laikinojo failo: %s" ++ ++#: elf/readlib.c:162 ++#, c-format ++msgid "%s is not an ELF file - it has the wrong magic bytes at the start.\n" ++msgstr "%s nėra ELF failas - magiškieji baitai failo pradžioje neteisingi.\n" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "failed to load shared object `%s'" ++msgstr "nepavyko atverti bendrojo objekto failo" ++ ++#: elf/sprof.c:409 ++#, fuzzy, c-format ++msgid "cannot create internal descriptors" ++msgstr "nepavyko užverti failo deskriptoriaus" ++ ++#: elf/sprof.c:528 ++#, fuzzy, c-format ++msgid "Reopening shared object `%s' failed" ++msgstr "nepavyko atverti bendrojo objekto failo" ++ ++#: elf/sprof.c:535 elf/sprof.c:629 ++#, fuzzy, c-format ++msgid "reading of section headers failed" ++msgstr "%s pervardinimas į %s nesėkmingas" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "cannot determine file name" ++msgstr "nepavyko nuskaityti failo duomenų" ++ ++#: elf/sprof.c:622 ++#, fuzzy, c-format ++msgid "reading of ELF header failed" ++msgstr "%s pervardinimas į %s nesėkmingas" ++ ++#: elf/sprof.c:658 ++#, c-format ++msgid "*** The file `%s' is stripped: no detailed analysis possible\n" ++msgstr "" ++ ++#: elf/sprof.c:688 ++#, fuzzy, c-format ++msgid "failed to load symbol data" ++msgstr "failas per trumpas" ++ ++#: elf/sprof.c:755 ++#, fuzzy, c-format ++msgid "cannot load profiling data" ++msgstr "nepavyko nuskaityti failo duomenų" ++ ++#: elf/sprof.c:764 ++#, fuzzy, c-format ++msgid "while stat'ing profiling data file" ++msgstr "rašant duomenų bazės failą" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "error while closing the profiling data file" ++msgstr "klaida užveriant išvedimo failą" ++ ++#: elf/sprof.c:800 elf/sprof.c:870 ++#, fuzzy, c-format ++msgid "cannot create internal descriptor" ++msgstr "nepavyko užverti failo deskriptoriaus" ++ ++#: 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 "Nepavyko išskirti atminties" ++ ++#: iconv/iconv_charmap.c:176 iconv/iconv_prog.c:316 ++#, fuzzy, c-format ++msgid "error while closing input `%s'" ++msgstr "klaida užveriant išvedimo failą" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "error while reading the input" ++msgstr "klaida įkeliant bendrąsias bibliotekas" ++ ++#: 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 "originalaus teksto koduotė" ++ ++#: iconv/iconv_prog.c:62 ++#, fuzzy ++msgid "encoding for output" ++msgstr "originalaus teksto koduotė" ++ ++#: iconv/iconv_prog.c:63 ++msgid "Information:" ++msgstr "Informacija:" ++ ++#: 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 ++#, fuzzy ++msgid "output file" ++msgstr "Išvesti į failą duotu PAVADINIMU" ++ ++#: iconv/iconv_prog.c:68 ++#, fuzzy ++msgid "suppress warnings" ++msgstr "įspėjimas: " ++ ++#: iconv/iconv_prog.c:69 ++#, fuzzy ++msgid "print progress information" ++msgstr "Spausdinti daugiau informacijos" ++ ++#: 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 "[FAILAS...]" ++ ++#: iconv/iconv_prog.c:200 ++#, fuzzy, c-format ++msgid "cannot open output file" ++msgstr "%s: nepavyko atverti laikinojo failo: %s" ++ ++#: 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 "Operacija nepalaikoma" ++ ++#: iconv/iconv_prog.c:254 ++#, fuzzy, c-format ++msgid "conversion to `%s' is not supported" ++msgstr "Protokolas nepalaikomas" ++ ++#: 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 "klaida užveriant išvedimo failą" ++ ++#: 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 "vidinė klaida (nekorektiškas deskriptorius)" ++ ++#: iconv/iconv_prog.c:533 ++#, fuzzy, c-format ++msgid "unknown iconv() error %d" ++msgstr "nežinoma iconv() klaida %d" ++ ++#: 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 ++#, fuzzy ++msgid "Create fastloading iconv module configuration file." ++msgstr "Nepavyko atverti konfigūracijos failo %s" ++ ++#: iconv/iconvconfig.c:114 ++#, fuzzy ++msgid "[DIR...]" ++msgstr "[FAILAS...]" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "cannot generate output file" ++msgstr "%s: nepavyko atverti laikinojo failo: %s" ++ ++#: inet/rcmd.c:157 ++#, fuzzy ++msgid "rcmd: Cannot allocate memory\n" ++msgstr "Nepavyko išskirti atminties" ++ ++#: 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 "jungtis prie adreso %s: " ++ ++#: inet/rcmd.c:213 ++#, c-format ++msgid "Trying %s...\n" ++msgstr "Bandoma %s...\n" ++ ++#: 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 ++#, fuzzy ++msgid "cannot open" ++msgstr "nepavyko atverti" ++ ++#: inet/rcmd.c:490 ++msgid "fstat failed" ++msgstr "" ++ ++#: inet/rcmd.c:492 ++#, fuzzy ++msgid "bad owner" ++msgstr "blogas jungtukas" ++ ++#: 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 ++msgid "out of memory" ++msgstr "baigėsi atmintis" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "Unknown .netrc keyword %s" ++msgstr "Nežinoma klaida " ++ ++#: libidn/nfkc.c:464 ++#, fuzzy ++msgid "Character out of range for UTF-8" ++msgstr "Kanalo numeris už ribų" ++ ++#: locale/programs/charmap-dir.c:59 ++#, fuzzy, c-format ++msgid "cannot read character map directory `%s'" ++msgstr "nepavyko atverti aplanko %s" ++ ++#: locale/programs/charmap.c:138 ++#, fuzzy, c-format ++msgid "character map file `%s' not found" ++msgstr "Duomenų failas %s nerastas.\n" ++ ++#: 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:174 ++#, fuzzy, c-format ++msgid "syntax error in prolog: %s" ++msgstr "sintaksės klaida prologe: %s" ++ ++#: locale/programs/charmap.c:358 ++#, fuzzy ++msgid "invalid definition" ++msgstr "%s: netaisyklingas parametras --%c\n" ++ ++#: locale/programs/charmap.c:375 locale/programs/locfile.c:126 ++#: locale/programs/locfile.c:153 locale/programs/repertoire.c:175 ++#, fuzzy ++msgid "bad argument" ++msgstr "blogas argumentas" ++ ++#: locale/programs/charmap.c:403 ++#, c-format ++msgid "duplicate definition of <%s>" ++msgstr "kartotinis <%s> apibrėžimas" ++ ++#: locale/programs/charmap.c:410 ++#, c-format ++msgid "value for <%s> must be 1 or greater" ++msgstr "<%s> reikšmė turi būti 1 arba didesnė" ++ ++#: locale/programs/charmap.c:422 ++#, c-format ++msgid "value of <%s> must be greater or equal than the value of <%s>" ++msgstr "<%s> reikšmė turi būti lygi arba didesnė už <%s> reikšmę" ++ ++#: locale/programs/charmap.c:445 locale/programs/repertoire.c:183 ++#, c-format ++msgid "argument to <%s> must be a single character" ++msgstr "<%s> argumentas turi būti vienas simbolis" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "syntax error in %s definition: %s" ++msgstr "sintaksės klaida prologe: %s" ++ ++#: locale/programs/charmap.c:499 locale/programs/charmap.c:679 ++#: locale/programs/charmap.c:775 locale/programs/repertoire.c:230 ++msgid "no symbolic name given" ++msgstr "neduotas joks simbolinis vardas" ++ ++#: locale/programs/charmap.c:553 ++msgid "invalid encoding given" ++msgstr "nurodyta netaisyklinga koduotė" ++ ++#: locale/programs/charmap.c:562 ++msgid "too few bytes in character encoding" ++msgstr "per mažai baitų simbolio koduotėje" ++ ++#: locale/programs/charmap.c:564 ++msgid "too many bytes in character encoding" ++msgstr "per daug baitų simbolio koduotėje" ++ ++#: locale/programs/charmap.c:586 locale/programs/charmap.c:734 ++#: locale/programs/charmap.c:817 locale/programs/repertoire.c:296 ++#, fuzzy ++msgid "no symbolic name given for end of range" ++msgstr "neduotas joks simbolinis vardas" ++ ++#: locale/programs/charmap.c:610 locale/programs/ld-address.c:600 ++#: locale/programs/ld-collate.c:2767 locale/programs/ld-collate.c:3924 ++#: locale/programs/ld-ctype.c:2232 locale/programs/ld-ctype.c:2984 ++#: locale/programs/ld-identification.c:452 ++#: locale/programs/ld-measurement.c:238 locale/programs/ld-messages.c:332 ++#: 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:313 ++#, c-format ++msgid "%1$s: definition does not end with `END %1$s'" ++msgstr "%1$s: apibrėžimas neužbaigtas „END %1$s“" ++ ++#: 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 "%s reikšmė turi būti sveikasis skaičius" ++ ++#: locale/programs/charmap.c:842 ++#, c-format ++msgid "%s: error in state machine" ++msgstr "%s: klaida būsenų automate" ++ ++#: locale/programs/charmap.c:850 locale/programs/ld-address.c:616 ++#: locale/programs/ld-collate.c:2764 locale/programs/ld-collate.c:4115 ++#: 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:324 ++#, fuzzy, c-format ++msgid "%s: premature end of file" ++msgstr "%s: failo pabaiga" ++ ++#: locale/programs/charmap.c:869 locale/programs/charmap.c:880 ++#, c-format ++msgid "unknown character `%s'" ++msgstr "nežinomas simbolis „%s“" ++ ++#: 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:3047 ++#: locale/programs/repertoire.c:419 ++#, fuzzy ++msgid "invalid names for character range" ++msgstr "netaisyklingas kabučių simbolis" ++ ++#: locale/programs/charmap.c:1005 locale/programs/repertoire.c:431 ++msgid "hexadecimal range format should use only capital characters" ++msgstr "" ++ ++#: locale/programs/charmap.c:1023 locale/programs/repertoire.c:449 ++#, c-format ++msgid "<%s> and <%s> are invalid names for range" ++msgstr "" ++ ++#: locale/programs/charmap.c:1029 locale/programs/repertoire.c:456 ++msgid "upper limit in range is smaller than lower limit" ++msgstr "viršutinė riba mažesnė už apatinę ribą" ++ ++#: locale/programs/charmap.c:1087 ++msgid "resulting bytes for range not representable." ++msgstr "" ++ ++#: locale/programs/ld-address.c:133 locale/programs/ld-collate.c:1556 ++#: locale/programs/ld-ctype.c:420 locale/programs/ld-identification.c:133 ++#: locale/programs/ld-measurement.c:94 locale/programs/ld-messages.c:97 ++#: locale/programs/ld-monetary.c:194 locale/programs/ld-name.c:94 ++#: 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 "Nerastas %s kategorijos apibrėžimas" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "%s: field `%s' not defined" ++msgstr "simbolis „%s“ neapibrėžtas" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "%s: terminology language code `%s' not defined" ++msgstr "simbolis „%s“ neapibrėžtas" ++ ++#: locale/programs/ld-address.c:244 ++#, fuzzy, c-format ++msgid "%s: field `%s' must not be defined" ++msgstr "simbolis „%s“ neapibrėžtas" ++ ++#: locale/programs/ld-address.c:258 locale/programs/ld-address.c:287 ++#, fuzzy, c-format ++msgid "%s: language abbreviation `%s' not defined" ++msgstr "simbolis „%s“ neapibrėžtas" ++ ++#: 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 "%s: laukas „%s“ apibrėžtas daugiau negu vieną kartą" ++ ++#: 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 "%s: nežinomas simbolis lauke „%s“" ++ ++#: locale/programs/ld-address.c:597 locale/programs/ld-collate.c:3922 ++#: locale/programs/ld-ctype.c:2981 locale/programs/ld-identification.c:449 ++#: locale/programs/ld-measurement.c:235 locale/programs/ld-messages.c:330 ++#: locale/programs/ld-monetary.c:941 locale/programs/ld-name.c:305 ++#: 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 "%s: nepilna „END“ eilutė" ++ ++#: locale/programs/ld-address.c:607 locale/programs/ld-collate.c:542 ++#: locale/programs/ld-collate.c:594 locale/programs/ld-collate.c:890 ++#: locale/programs/ld-collate.c:903 locale/programs/ld-collate.c:2733 ++#: locale/programs/ld-collate.c:2754 locale/programs/ld-collate.c:4105 ++#: 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 "%s: sintaksės klaida" ++ ++#: locale/programs/ld-collate.c:417 ++#, c-format ++msgid "`%.*s' already defined in charmap" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:426 ++#, c-format ++msgid "`%.*s' already defined in repertoire" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:433 ++#, c-format ++msgid "`%.*s' already defined as collating symbol" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:440 ++#, c-format ++msgid "`%.*s' already defined as collating element" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:471 locale/programs/ld-collate.c:497 ++#, c-format ++msgid "%s: `forward' and `backward' are mutually excluding each other" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:481 locale/programs/ld-collate.c:507 ++#: locale/programs/ld-collate.c:523 ++#, c-format ++msgid "%s: `%s' mentioned more than once in definition of weight %d" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:579 ++#, c-format ++msgid "%s: too many rules; first entry only had %d" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:615 ++#, c-format ++msgid "%s: not enough sorting rules" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:780 ++#, c-format ++msgid "%s: empty weight string not allowed" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:875 ++#, c-format ++msgid "%s: weights must use the same ellipsis symbol as the name" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:931 ++#, fuzzy, c-format ++msgid "%s: too many values" ++msgstr "%s: Per daug argumentų\n" ++ ++#: locale/programs/ld-collate.c:1051 locale/programs/ld-collate.c:1226 ++#, c-format ++msgid "order for `%.*s' already defined at %s:%Zu" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:1101 ++#, c-format ++msgid "%s: the start and the end symbol of a range must stand for characters" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:1128 ++#, c-format ++msgid "%s: byte sequences of first and last character must have the same length" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:1170 ++#, 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:1295 ++#, c-format ++msgid "%s: symbolic range ellipsis must not directly follow `order_start'" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:1299 ++#, c-format ++msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:1319 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:1369 locale/programs/ld-collate.c:3858 ++#, c-format ++msgid "%s: order for `%.*s' already defined at %s:%Zu" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:1378 ++#, fuzzy, c-format ++msgid "%s: `%s' must be a character" ++msgstr "„%s“: trūksta formato simbolio" ++ ++#: locale/programs/ld-collate.c:1573 ++#, c-format ++msgid "%s: `position' must be used for a specific level in all sections or none" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:1598 ++#, c-format ++msgid "symbol `%s' not defined" ++msgstr "simbolis „%s“ neapibrėžtas" ++ ++#: locale/programs/ld-collate.c:1674 locale/programs/ld-collate.c:1780 ++#, c-format ++msgid "symbol `%s' has the same encoding as" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:1678 locale/programs/ld-collate.c:1784 ++#, c-format ++msgid "symbol `%s'" ++msgstr "simbolis „%s“" ++ ++#: locale/programs/ld-collate.c:1826 ++#, c-format ++msgid "no definition of `UNDEFINED'" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:1855 ++#, c-format ++msgid "too many errors; giving up" ++msgstr "per daug klaidų; pasiduodu" ++ ++#: locale/programs/ld-collate.c:2659 locale/programs/ld-collate.c:4044 ++#, fuzzy, c-format ++msgid "%s: nested conditionals not supported" ++msgstr "Operacija nepalaikoma" ++ ++#: locale/programs/ld-collate.c:2677 ++#, c-format ++msgid "%s: more then one 'else'" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:2852 ++#, fuzzy, c-format ++msgid "%s: duplicate definition of `%s'" ++msgstr "kartotinis <%s> apibrėžimas" ++ ++#: locale/programs/ld-collate.c:2888 ++#, fuzzy, c-format ++msgid "%s: duplicate declaration of section `%s'" ++msgstr "kartotinis <%s> apibrėžimas" ++ ++#: locale/programs/ld-collate.c:3027 ++#, fuzzy, c-format ++msgid "%s: unknown character in collating symbol name" ++msgstr "%s: nežinomas simbolis lauke „%s“" ++ ++#: locale/programs/ld-collate.c:3159 ++#, fuzzy, c-format ++msgid "%s: unknown character in equivalent definition name" ++msgstr "%s: nežinomas simbolis lauke „%s“" ++ ++#: locale/programs/ld-collate.c:3172 ++#, fuzzy, c-format ++msgid "%s: unknown character in equivalent definition value" ++msgstr "%s: nežinomas simbolis lauke „%s“" ++ ++#: locale/programs/ld-collate.c:3182 ++#, c-format ++msgid "%s: unknown symbol `%s' in equivalent definition" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:3191 ++#, fuzzy ++msgid "error while adding equivalent collating symbol" ++msgstr "klaida įkeliant bendrąsias bibliotekas" ++ ++#: locale/programs/ld-collate.c:3221 ++#, fuzzy, c-format ++msgid "duplicate definition of script `%s'" ++msgstr "kartotinis <%s> apibrėžimas" ++ ++#: locale/programs/ld-collate.c:3269 ++#, fuzzy, c-format ++msgid "%s: unknown section name `%.*s'" ++msgstr "„%s“: nežinomas funkcijos pavadinimas" ++ ++#: locale/programs/ld-collate.c:3298 ++#, c-format ++msgid "%s: multiple order definitions for section `%s'" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:3326 ++#, fuzzy, c-format ++msgid "%s: invalid number of sorting rules" ++msgstr "%s: netaisyklingas argumentas" ++ ++#: locale/programs/ld-collate.c:3353 ++#, c-format ++msgid "%s: multiple order definitions for unnamed section" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:3407 locale/programs/ld-collate.c:3537 ++#: locale/programs/ld-collate.c:3900 ++#, fuzzy, c-format ++msgid "%s: missing `order_end' keyword" ++msgstr "%s: trūksta dvitaškio skirtuko" ++ ++#: locale/programs/ld-collate.c:3470 ++#, c-format ++msgid "%s: order for collating symbol %.*s not yet defined" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:3488 ++#, c-format ++msgid "%s: order for collating element %.*s not yet defined" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:3499 ++#, c-format ++msgid "%s: cannot reorder after %.*s: symbol not known" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:3551 locale/programs/ld-collate.c:3912 ++#, fuzzy, c-format ++msgid "%s: missing `reorder-end' keyword" ++msgstr "%s: trūksta dvitaškio skirtuko" ++ ++#: locale/programs/ld-collate.c:3585 locale/programs/ld-collate.c:3783 ++#, fuzzy, c-format ++msgid "%s: section `%.*s' not known" ++msgstr "Duomenų failas %s nerastas.\n" ++ ++#: locale/programs/ld-collate.c:3650 ++#, c-format ++msgid "%s: bad symbol <%.*s>" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:3846 ++#, c-format ++msgid "%s: cannot have `%s' as end of ellipsis range" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:3896 ++#, c-format ++msgid "%s: empty category description not allowed" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:3915 ++#, c-format ++msgid "%s: missing `reorder-sections-end' keyword" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:4077 ++#, c-format ++msgid "%s: '%s' without matching 'ifdef' or 'ifndef'" ++msgstr "" ++ ++#: locale/programs/ld-collate.c:4095 ++#, c-format ++msgid "%s: 'endif' without matching 'ifdef' or 'ifndef'" ++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 ++#, fuzzy, c-format ++msgid "%s: field `%s' does not contain exactly ten entries" ++msgstr "%s: laukas „%s“ apibrėžtas daugiau negu vieną kartą" ++ ++#: 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 "" ++ ++#: locale/programs/ld-ctype.c:2076 locale/programs/ld-ctype.c:2127 ++#: locale/programs/ld-ctype.c:2169 ++msgid "syntax error" ++msgstr "sintaksės klaida" ++ ++#: locale/programs/ld-ctype.c:2303 ++#, fuzzy, c-format ++msgid "%s: syntax error in definition of new character class" ++msgstr "sintaksės klaida %s aprašyme: %s" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "duplicated definition for mapping `%s'" ++msgstr "kartotinis <%s> apibrėžimas" ++ ++#: locale/programs/ld-ctype.c:2768 locale/programs/ld-ctype.c:2912 ++#, fuzzy, c-format ++msgid "%s: `translit_start' section does not end with `translit_end'" ++msgstr "%1$s: apibrėžimas neužbaigtas „END %1$s“" ++ ++#: locale/programs/ld-ctype.c:2863 ++#, fuzzy, c-format ++msgid "%s: duplicate `default_missing' definition" ++msgstr "pakartotinis rinkinio apibrėžimas" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "%s: table for map \"%s\": %lu bytes\n" ++msgstr "%s: nepavyko atverti %s: %m\n" ++ ++#: locale/programs/ld-ctype.c:4083 ++#, c-format ++msgid "%s: table for width: %lu bytes\n" ++msgstr "" ++ ++#: locale/programs/ld-identification.c:170 ++#, fuzzy, c-format ++msgid "%s: no identification for category `%s'" ++msgstr "Nerastas %s kategorijos apibrėžimas" ++ ++#: locale/programs/ld-identification.c:435 ++#, fuzzy, c-format ++msgid "%s: duplicate category version definition" ++msgstr "pakartotinis rinkinio apibrėžimas" ++ ++#: locale/programs/ld-measurement.c:113 ++#, fuzzy, c-format ++msgid "%s: invalid value for field `%s'" ++msgstr "%s: per mažai reikšmių laukui „%s“" ++ ++#: locale/programs/ld-messages.c:114 locale/programs/ld-messages.c:148 ++#, fuzzy, c-format ++msgid "%s: field `%s' undefined" ++msgstr "simbolis „%s“ neapibrėžtas" ++ ++#: locale/programs/ld-messages.c:121 locale/programs/ld-messages.c:155 ++#: locale/programs/ld-monetary.c:256 locale/programs/ld-numeric.c:118 ++#, fuzzy, c-format ++msgid "%s: value for field `%s' must not be an empty string" ++msgstr "%s reikšmė turi būti sveikasis skaičius" ++ ++#: locale/programs/ld-messages.c:137 locale/programs/ld-messages.c:171 ++#, fuzzy, c-format ++msgid "%s: no correct regular expression for field `%s': %s" ++msgstr "%s: nežinomas simbolis lauke „%s“" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "%s: value for field `%s' must be in range %d...%d" ++msgstr "%s reikšmė turi būti sveikasis skaičius" ++ ++#: locale/programs/ld-monetary.c:747 locale/programs/ld-numeric.c:274 ++#, fuzzy, c-format ++msgid "%s: value for field `%s' must be a single character" ++msgstr "<%s> argumentas turi būti vienas simbolis" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "%s: values for field `%s' must be smaller than 127" ++msgstr "%s: per mažai reikšmių laukui „%s“" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "%s: invalid escape sequence in field `%s'" ++msgstr "%s: nežinomas simbolis lauke „%s“" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "%s: values for field `%s' must not be larger than %d" ++msgstr "%s reikšmė turi būti sveikasis skaičius" ++ ++#: locale/programs/ld-time.c:1004 ++#, c-format ++msgid "%s: too few values for field `%s'" ++msgstr "%s: per mažai reikšmių laukui „%s“" ++ ++#: locale/programs/ld-time.c:1049 ++msgid "extra trailing semicolon" ++msgstr "papildomas kabliataškis pabaigoje" ++ ++#: locale/programs/ld-time.c:1052 ++#, fuzzy, c-format ++msgid "%s: too many values for field `%s'" ++msgstr "%s: per mažai reikšmių laukui „%s“" ++ ++#: locale/programs/linereader.c:130 ++msgid "trailing garbage at end of line" ++msgstr "šiukšlės eilutės pabaigoje" ++ ++#: locale/programs/linereader.c:298 ++msgid "garbage at end of number" ++msgstr "šiukšlės skaičiaus pabaigoje" ++ ++#: locale/programs/linereader.c:410 ++msgid "garbage at end of character code specification" ++msgstr "" ++ ++#: locale/programs/linereader.c:496 ++#, fuzzy ++msgid "unterminated symbolic name" ++msgstr "neužbaigtas pranešimas" ++ ++#: locale/programs/linereader.c:623 ++msgid "illegal escape sequence at end of string" ++msgstr "" ++ ++#: locale/programs/linereader.c:627 locale/programs/linereader.c:855 ++#, fuzzy ++msgid "unterminated string" ++msgstr "neužbaigtas pranešimas" ++ ++#: locale/programs/linereader.c:669 ++msgid "non-symbolic character value should not be used" ++msgstr "" ++ ++#: locale/programs/linereader.c:816 ++#, fuzzy, c-format ++msgid "symbol `%.*s' not in charmap" ++msgstr "simbolis „%s“ neapibrėžtas" ++ ++#: locale/programs/linereader.c:837 ++#, fuzzy, c-format ++msgid "symbol `%.*s' not in repertoire map" ++msgstr "simbolis „%s“ neapibrėžtas" ++ ++#: locale/programs/locale.c:74 ++msgid "System information:" ++msgstr "Sistemos informacija:" ++ ++#: 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 "Spausdinti daugiau informacijos" ++ ++#: 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 "Nepavyko nustatyti LC_CTYPE į numatytąją lokalę" ++ ++#: locale/programs/locale.c:195 ++#, c-format ++msgid "Cannot set LC_MESSAGES to default locale" ++msgstr "Nepavyko nustatyti LC_MESSAGES į numatytąją lokalę" ++ ++#: locale/programs/locale.c:208 ++#, c-format ++msgid "Cannot set LC_COLLATE to default locale" ++msgstr "Nepavyko nustatyti LC_COLLATE į numatytąją lokalę" ++ ++#: locale/programs/locale.c:224 ++#, c-format ++msgid "Cannot set LC_ALL to default locale" ++msgstr "Nepavyko nustatyti LC_ALL į numatytąją lokalę" ++ ++#: locale/programs/locale.c:500 ++#, fuzzy, c-format ++msgid "while preparing output" ++msgstr "skaitant duomenų bazę" ++ ++#: 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 ++#, fuzzy ++msgid "Source definitions are found in FILE" ++msgstr "Nerastas %s kategorijos apibrėžimas" ++ ++#: 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 ++#, fuzzy ++msgid "Optional output file prefix" ++msgstr "netaisyklinga grupė" ++ ++#: 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 ++#, fuzzy ++msgid "Print more messages" ++msgstr "neužbaigtas pranešimas" ++ ++#: 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 ++#, fuzzy ++msgid "Compile locale specification" ++msgstr "%s: nėra baigimo specifikacijos" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "cannot create directory for output files" ++msgstr "nepavyko atverti aplanko %s" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "cannot open locale definition file `%s'" ++msgstr "%s: nepavyko atverti laikinojo failo: %s" ++ ++#: locale/programs/localedef.c:285 ++#, fuzzy, c-format ++msgid "cannot write output files to `%s'" ++msgstr "%s: nepavyko atverti laikinojo failo: %s" ++ ++#: 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 ++#, 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 ++#, fuzzy, c-format ++msgid "cannot resize archive file" ++msgstr "%s: nepavyko perskaityti: %s" ++ ++#: locale/programs/locarchive.c:134 locale/programs/locarchive.c:323 ++#: locale/programs/locarchive.c:527 ++#, fuzzy, c-format ++msgid "cannot map archive header" ++msgstr "nepavyko perskaityti antraštės" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "cannot lock new archive" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: locale/programs/locarchive.c:396 ++#, fuzzy, c-format ++msgid "cannot extend locale archive file" ++msgstr "nepavyko atverti duomenų failo" ++ ++#: locale/programs/locarchive.c:405 ++#, c-format ++msgid "cannot change mode of resized locale archive" ++msgstr "" ++ ++#: locale/programs/locarchive.c:413 ++#, fuzzy, c-format ++msgid "cannot rename new archive" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: locale/programs/locarchive.c:466 ++#, fuzzy, c-format ++msgid "cannot open locale archive \"%s\"" ++msgstr "Nepavyko atverti podėlio failo %s\n" ++ ++#: locale/programs/locarchive.c:471 ++#, fuzzy, c-format ++msgid "cannot stat locale archive \"%s\"" ++msgstr "%s: nepavyko perskaityti: %s" ++ ++#: locale/programs/locarchive.c:490 ++#, fuzzy, c-format ++msgid "cannot lock locale archive \"%s\"" ++msgstr "%s: nepavyko perskaityti: %s" ++ ++#: locale/programs/locarchive.c:513 ++#, fuzzy, c-format ++msgid "cannot read archive header" ++msgstr "nepavyko perskaityti antraštės" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "cannot add to locale archive" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: locale/programs/locarchive.c:998 ++#, fuzzy, c-format ++msgid "locale alias file `%s' not found" ++msgstr "Duomenų failas %s nerastas.\n" ++ ++#: locale/programs/locarchive.c:1142 ++#, fuzzy, c-format ++msgid "Adding %s\n" ++msgstr "skaitomas %s" ++ ++#: locale/programs/locarchive.c:1148 ++#, c-format ++msgid "stat of \"%s\" failed: %s: ignored" ++msgstr "" ++ ++#: locale/programs/locarchive.c:1154 ++#, fuzzy, c-format ++msgid "\"%s\" is no directory; ignored" ++msgstr "Aplankas" ++ ++#: locale/programs/locarchive.c:1161 ++#, fuzzy, c-format ++msgid "cannot open directory \"%s\": %s: ignored" ++msgstr "nepavyko atverti aplanko %s" ++ ++#: locale/programs/locarchive.c:1233 ++#, c-format ++msgid "incomplete set of locale files in \"%s\"" ++msgstr "" ++ ++#: locale/programs/locarchive.c:1297 ++#, fuzzy, c-format ++msgid "cannot read all files in \"%s\": ignored" ++msgstr "nepavyko nuskaityti failo duomenų" ++ ++#: locale/programs/locarchive.c:1367 ++#, c-format ++msgid "locale \"%s\" not in archive" ++msgstr "" ++ ++#: locale/programs/locfile.c:132 ++#, fuzzy, c-format ++msgid "argument to `%s' must be a single character" ++msgstr "<%s> argumentas turi būti vienas simbolis" ++ ++#: locale/programs/locfile.c:252 ++#, fuzzy ++msgid "syntax error: not inside a locale definition section" ++msgstr "sintaksės klaida %s aprašyme: %s" ++ ++#: locale/programs/locfile.c:626 ++#, fuzzy, c-format ++msgid "cannot open output file `%s' for category `%s'" ++msgstr "nepavyko atverti duomenų bazės failo „%s“: %s" ++ ++#: locale/programs/locfile.c:650 ++#, c-format ++msgid "failure while writing data for category `%s'" ++msgstr "" ++ ++#: locale/programs/locfile.c:746 ++#, fuzzy, c-format ++msgid "cannot create output file `%s' for category `%s'" ++msgstr "nepavyko sukurti laikino failo „here“ dokumentui: %s" ++ ++#: locale/programs/locfile.c:782 ++#, fuzzy ++msgid "expect string argument for `copy'" ++msgstr "„%s“ trūksta parametro" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "`%1$s' definition does not end with `END %1$s'" ++msgstr "%1$s: apibrėžimas neužbaigtas „END %1$s“" ++ ++#: locale/programs/repertoire.c:229 locale/programs/repertoire.c:270 ++#: locale/programs/repertoire.c:295 ++#, fuzzy, c-format ++msgid "syntax error in repertoire map definition: %s" ++msgstr "sintaksės klaida prologe: %s" ++ ++#: locale/programs/repertoire.c:271 ++msgid "no or value given" ++msgstr "" ++ ++#: locale/programs/repertoire.c:331 ++#, c-format ++msgid "cannot save new repertoire map" ++msgstr "" ++ ++#: locale/programs/repertoire.c:342 ++#, fuzzy, c-format ++msgid "repertoire map file `%s' not found" ++msgstr "Duomenų failas %s nerastas.\n" ++ ++#: 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 ++#, c-format ++msgid "too many arguments" ++msgstr "per daug argumentų" ++ ++#: login/programs/pt_chown.c:169 ++#, c-format ++msgid "needs to be installed setuid `root'" ++msgstr "turi būti instaliuota setuid „root“" ++ ++#: malloc/mcheck.c:330 ++msgid "memory is consistent, library is buggy\n" ++msgstr "atminties turinys korektiškas, bibliotekoje yra klaida\n" ++ ++#: 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 "blokas atlaisvintas du kartus\n" ++ ++#: malloc/mcheck.c:342 ++#, fuzzy ++msgid "bogus mcheck_status, library is buggy\n" ++msgstr "atminties turinys korektiškas, bibliotekoje yra klaida\n" ++ ++#: malloc/memusage.sh:27 ++msgid "Try \\`memusage --help' for more information." ++msgstr "Pabandykite „memusage --help“, jei norite gauti daugiau informacijos." ++ ++#: malloc/memusage.sh:33 ++msgid "memusage: option \\`$1' requires an argument" ++msgstr "memusage: parametrui „$1“ reikia argumento" ++ ++#: 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 ++#, fuzzy ++msgid "memusage: option \\`${1##*=}' is ambiguous" ++msgstr "ldd: parametras „$1“ dviprasmis" ++ ++#: malloc/memusage.sh:200 ++#, fuzzy ++msgid "memusage: unrecognized option \\`$1'" ++msgstr "%s: neatpažintas parametras „--%s“\n" ++ ++#: malloc/memusage.sh:213 ++msgid "No program name given" ++msgstr "Nenurodytas programos vardas" ++ ++#: malloc/memusagestat.c:54 ++#, fuzzy ++msgid "Name output file" ++msgstr "Išvesti į failą duotu PAVADINIMU" ++ ++#: 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 "per daug argumentų" ++ ++#: 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 "Sėkmė" ++ ++#: nis/nis_error.h:2 ++#, fuzzy ++msgid "Probable success" ++msgstr "Dalinė sėkmė" ++ ++#: nis/nis_error.h:3 ++#, fuzzy ++msgid "Not found" ++msgstr "Duomenų failas %s nerastas.\n" ++ ++#: nis/nis_error.h:4 ++#, fuzzy ++msgid "Probably not found" ++msgstr "Duomenų failas %s nerastas.\n" ++ ++#: nis/nis_error.h:5 ++#, fuzzy ++msgid "Cache expired" ++msgstr "Baigėsi rakto galiojimo laikas" ++ ++#: nis/nis_error.h:6 ++#, fuzzy ++msgid "NIS+ servers unreachable" ++msgstr "Tinklas neprieinamas" ++ ++#: nis/nis_error.h:7 ++#, fuzzy ++msgid "Unknown object" ++msgstr "Nežinomas serveris" ++ ++#: nis/nis_error.h:8 ++msgid "Server busy, try again" ++msgstr "" ++ ++#: nis/nis_error.h:9 ++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 ++#, fuzzy ++msgid "Permission denied" ++msgstr "Priėjimas uždraustas" ++ ++#: 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 ++#, fuzzy ++msgid "Server out of memory" ++msgstr "baigėsi atmintis" ++ ++#: 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 ++#, fuzzy ++msgid "Invalid object for operation" ++msgstr "netaisyklinga veiksena dlopen()" ++ ++#: nis/nis_error.h:18 ++#, fuzzy ++msgid "Malformed name, or illegal name" ++msgstr "nekorektiška eilutė ignoruota" ++ ++#: 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 ++#, fuzzy ++msgid "Modification failed" ++msgstr "Atminties išskyrimo klaida" ++ ++#: 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 "Dalinė sėkmė" ++ ++#: nis/nis_error.h:28 ++msgid "Too many attributes" ++msgstr "Per daug atributų" ++ ++#: nis/nis_error.h:29 ++msgid "Error in RPC subsystem" ++msgstr "" ++ ++#: nis/nis_error.h:30 ++msgid "Missing or malformed attribute" ++msgstr "" ++ ++#: nis/nis_error.h:31 ++#, fuzzy ++msgid "Named object is not searchable" ++msgstr "bendrasis objektas neatvertas" ++ ++#: 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 "Atminties išskyrimo klaida" ++ ++#: 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 "Toks failas ar aplankas neegzistuoja" ++ ++#: nis/nis_error.h:41 ++#, fuzzy ++msgid "NIS+ operation failed" ++msgstr "Operacija nutraukta" ++ ++#: 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 "Įrenginyje neliko vietos" ++ ++#: 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 "NEŽINOMA" ++ ++#: 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 ++#, fuzzy ++msgid "(Unknown object)\n" ++msgstr "Nežinomas serveris" ++ ++#: 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 ++#, fuzzy ++msgid "Request arguments bad" ++msgstr "Užklausa nenutraukta" ++ ++#: 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 "Tokio įrenginio nėra" ++ ++#: nis/ypclnt.c:840 ++#, fuzzy ++msgid "Internal NIS error" ++msgstr "Vardų paieškos vidinė klaida" ++ ++#: nis/ypclnt.c:843 ++#, fuzzy ++msgid "Local resource allocation failure" ++msgstr "Sistemos resursų išskyrimo sutrikimas" ++ ++#: nis/ypclnt.c:846 ++#, fuzzy ++msgid "No more records in map database" ++msgstr "skaitant duomenų bazę" ++ ++#: 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 ++#, fuzzy ++msgid "NIS map database is bad" ++msgstr "Duomenų bazė užimta" ++ ++#: nis/ypclnt.c:864 ++msgid "NIS client/server version mismatch - can't supply service" ++msgstr "" ++ ++#: nis/ypclnt.c:870 ++msgid "Database is busy" ++msgstr "Duomenų bazė užimta" ++ ++#: nis/ypclnt.c:873 ++#, fuzzy ++msgid "Unknown NIS error code" ++msgstr "Nežinoma klaida " ++ ++#: nis/ypclnt.c:913 ++msgid "Internal ypbind error" ++msgstr "" ++ ++#: nis/ypclnt.c:916 ++#, fuzzy ++msgid "Domain not bound" ++msgstr "%s: komanda nerasta" ++ ++#: nis/ypclnt.c:919 ++msgid "System resource allocation failure" ++msgstr "Sistemos resursų išskyrimo sutrikimas" ++ ++#: nis/ypclnt.c:922 ++#, fuzzy ++msgid "Unknown ypbind error" ++msgstr "Nežinoma klaida" ++ ++#: 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:468 ++#, c-format ++msgid "Haven't found \"%s\" in hosts cache!" ++msgstr "" ++ ++#: nscd/aicache.c:79 nscd/hstcache.c:470 ++#, 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:810 ++#, fuzzy, c-format ++msgid "cannot stat() file `%s': %s" ++msgstr "nepavyko atverti duomenų bazės failo „%s“: %s" ++ ++#: 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:521 nscd/connections.c:533 nscd/connections.c:545 ++#: nscd/connections.c:564 ++#, fuzzy, c-format ++msgid "invalid persistent database file \"%s\": %s" ++msgstr "nepavyko atverti duomenų bazės failo „%s“: %s" ++ ++#: nscd/connections.c:535 ++msgid "header size does not match" ++msgstr "" ++ ++#: nscd/connections.c:547 ++#, fuzzy ++msgid "file size does not match" ++msgstr "ELF failo versija neatitinka esamos" ++ ++#: nscd/connections.c:566 ++#, fuzzy ++msgid "verification failed" ++msgstr "Operacija nutraukta" ++ ++#: nscd/connections.c:580 ++#, c-format ++msgid "suggested size of table for database %s larger than the persistent database's table" ++msgstr "" ++ ++#: nscd/connections.c:591 nscd/connections.c:673 ++#, c-format ++msgid "cannot create read-only descriptor for \"%s\"; no mmap" ++msgstr "" ++ ++#: nscd/connections.c:652 ++#, c-format ++msgid "database for %s corrupted or simultaneously used; remove %s manually if necessary and restart" ++msgstr "" ++ ++#: nscd/connections.c:659 ++#, c-format ++msgid "cannot create %s; no persistent database used" ++msgstr "" ++ ++#: nscd/connections.c:662 ++#, fuzzy, c-format ++msgid "cannot create %s; no sharing possible" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: nscd/connections.c:733 ++#, fuzzy, c-format ++msgid "cannot write to database file %s: %s" ++msgstr "nepavyko atverti duomenų bazės failo „%s“: %s" ++ ++#: nscd/connections.c:772 ++#, c-format ++msgid "cannot set socket to close on exec: %s; disabling paranoia mode" ++msgstr "" ++ ++#: nscd/connections.c:823 ++#, fuzzy, c-format ++msgid "cannot open socket: %s" ++msgstr "nepavyko atverti bendrojo objekto failo" ++ ++#: nscd/connections.c:840 ++#, c-format ++msgid "cannot change socket to nonblocking mode: %s" ++msgstr "" ++ ++#: nscd/connections.c:848 ++#, fuzzy, c-format ++msgid "cannot set socket to close on exec: %s" ++msgstr "nepavyko sukurti laikino failo „here“ dokumentui: %s" ++ ++#: nscd/connections.c:859 ++#, c-format ++msgid "cannot enable socket to accept connections: %s" ++msgstr "" ++ ++#: nscd/connections.c:955 ++#, c-format ++msgid "provide access to FD %d, for %s" ++msgstr "" ++ ++#: nscd/connections.c:967 ++#, c-format ++msgid "cannot handle old request version %d; current version is %d" ++msgstr "" ++ ++#: nscd/connections.c:1009 nscd/connections.c:1062 ++#, fuzzy, c-format ++msgid "cannot write result: %s" ++msgstr "%s:%u: nepavyko perskaityti aplanko %s" ++ ++#: nscd/connections.c:1145 ++#, fuzzy, c-format ++msgid "error getting caller's id: %s" ++msgstr "rašomas %s" ++ ++#: nscd/connections.c:1204 ++#, c-format ++msgid "cannot open /proc/self/cmdline: %s; disabling paranoia mode" ++msgstr "" ++ ++#: nscd/connections.c:1218 ++#, c-format ++msgid "cannot read /proc/self/cmdline: %s; disabling paranoia mode" ++msgstr "" ++ ++#: nscd/connections.c:1258 ++#, c-format ++msgid "cannot change to old UID: %s; disabling paranoia mode" ++msgstr "" ++ ++#: nscd/connections.c:1268 ++#, c-format ++msgid "cannot change to old GID: %s; disabling paranoia mode" ++msgstr "" ++ ++#: nscd/connections.c:1281 ++#, c-format ++msgid "cannot change to old working directory: %s; disabling paranoia mode" ++msgstr "" ++ ++#: nscd/connections.c:1310 ++#, c-format ++msgid "re-exec failed: %s; disabling paranoia mode" ++msgstr "" ++ ++#: nscd/connections.c:1319 ++#, fuzzy, c-format ++msgid "cannot change current working directory to \"/\": %s" ++msgstr "" ++ ++#: nscd/connections.c:1437 ++#, fuzzy, c-format ++msgid "short read while reading request: %s" ++msgstr "problemos skaitant „%s“" ++ ++#: nscd/connections.c:1468 ++#, c-format ++msgid "key length in request too long: %d" ++msgstr "" ++ ++#: nscd/connections.c:1481 ++#, c-format ++msgid "short read while reading request key: %s" ++msgstr "" ++ ++#: nscd/connections.c:1490 ++#, c-format ++msgid "handle_request: request received (Version = %d) from PID %ld" ++msgstr "" ++ ++#: nscd/connections.c:1495 ++#, c-format ++msgid "handle_request: request received (Version = %d)" ++msgstr "" ++ ++#: nscd/connections.c:1856 ++#, c-format ++msgid "could only start %d threads; terminating" ++msgstr "" ++ ++#: nscd/connections.c:1904 nscd/connections.c:1905 nscd/connections.c:1922 ++#: nscd/connections.c:1931 nscd/connections.c:1949 nscd/connections.c:1960 ++#: nscd/connections.c:1971 ++#, c-format ++msgid "Failed to run nscd as user '%s'" ++msgstr "" ++ ++#: nscd/connections.c:1923 ++#, c-format ++msgid "initial getgrouplist failed" ++msgstr "" ++ ++#: nscd/connections.c:1932 ++#, c-format ++msgid "getgrouplist failed" ++msgstr "" ++ ++#: nscd/connections.c:1950 ++#, c-format ++msgid "setgroups failed" ++msgstr "" ++ ++#: nscd/grpcache.c:402 nscd/hstcache.c:418 nscd/initgrcache.c:412 ++#: nscd/pwdcache.c:397 nscd/servicescache.c:343 ++#, fuzzy, c-format ++msgid "short write in %s: %s" ++msgstr "%s: Klaida rašant %s\n" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "Invalid numeric gid \"%s\"!" ++msgstr "nekorektiška eilutė" ++ ++#: 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 ++#, fuzzy ++msgid "NUMBER" ++msgstr "PAVADINIMAS" ++ ++#: nscd/nscd.c:101 ++msgid "Start NUMBER threads" ++msgstr "" ++ ++#: nscd/nscd.c:102 ++msgid "Shut the server down" ++msgstr "" ++ ++#: nscd/nscd.c:103 ++#, fuzzy ++msgid "Print current configuration statistic" ++msgstr "Nepavyko atverti konfigūracijos failo %s" ++ ++#: nscd/nscd.c:104 ++msgid "TABLE" ++msgstr "" ++ ++#: nscd/nscd.c:105 ++#, fuzzy ++msgid "Invalidate the specified cache" ++msgstr "%s: netaisyklingas parametras --%c\n" ++ ++#: 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 "per daug argumentų" ++ ++#: 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 ++#, fuzzy, 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 ++#, fuzzy, c-format ++msgid "cannot read invalidate ACK" ++msgstr "nepavyko nuskaityti failo duomenų" ++ ++#: nscd/nscd.c:381 ++#, fuzzy, c-format ++msgid "invalidation failed" ++msgstr "netinkamas mėnesio pavadinimas" ++ ++#: 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 "Duomenų bazės %s formatas yra %s.\n" ++ ++#: nscd/nscd_conf.c:108 ++#, fuzzy, c-format ++msgid "Parse error: %s" ++msgstr "vidinė klaida" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "cannot write statistics: %s" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "cannot read statistics data" ++msgstr "nepavyko nuskaityti failo duomenų" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "Invalid numeric uid \"%s\"!" ++msgstr "nekorektiška eilutė" ++ ++#: 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 "failas per trumpas" ++ ++#: 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:390 ++#, c-format ++msgid "Haven't found \"%s\" in services cache!" ++msgstr "" ++ ++#: nscd/servicescache.c:392 ++#, 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 "Operacija nepalaikoma" ++ ++#: nss/getent.c:782 ++#, c-format ++msgid "Unknown database name" ++msgstr "Nežinomas duomenų bazės vardas" ++ ++#: nss/getent.c:808 ++msgid "Supported databases:\n" ++msgstr "Palaikomos duomenų bazės:\n" ++ ++#: nss/getent.c:868 ++#, c-format ++msgid "Unknown database: %s\n" ++msgstr "Nežinoma duomenų bazė: %s\n" ++ ++#: 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 ++#, fuzzy ++msgid "" ++"INPUT-FILE OUTPUT-FILE\n" ++"-o OUTPUT-FILE INPUT-FILE\n" ++"-u INPUT-FILE" ++msgstr "" ++"-o IŠVEDIMO-FAILAS [DUOMENŲ-FAILAS]...\n" ++"[IŠVEDIMO-FAILAS [DUOMENŲ-FAILAS]...]" ++ ++#: 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 "nepavyko atverti duomenų bazės failo „%s“: %s" ++ ++#: nss/makedb.c:151 ++msgid "incorrectly formatted file" ++msgstr "netaisyklingas failo formatas" ++ ++#: nss/makedb.c:331 ++msgid "duplicate key" ++msgstr "" ++ ++#: nss/makedb.c:337 ++#, c-format ++msgid "while writing database file" ++msgstr "rašant duomenų bazės failą" ++ ++#: nss/makedb.c:348 ++#, c-format ++msgid "problems while reading `%s'" ++msgstr "problemos skaitant „%s“" ++ ++#: nss/makedb.c:368 nss/makedb.c:385 ++#, c-format ++msgid "while reading database" ++msgstr "skaitant duomenų bazę" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "unknown specification \"%s\"" ++msgstr "nežinomas predikatas „%s“" ++ ++#: posix/getconf.c:1095 ++#, c-format ++msgid "Couldn't execute %s" ++msgstr "Nepavyko paleisti %s" ++ ++#: posix/getconf.c:1135 posix/getconf.c:1151 ++msgid "undefined" ++msgstr "neapibrėžta" ++ ++#: posix/getconf.c:1173 ++#, c-format ++msgid "Unrecognized variable `%s'" ++msgstr "Neatpažintas kintamasis „%s“" ++ ++#: posix/getopt.c:571 posix/getopt.c:587 ++#, c-format ++msgid "%s: option `%s' is ambiguous\n" ++msgstr "%s: parametras „%s“ dviprasmis\n" ++ ++#: posix/getopt.c:620 posix/getopt.c:624 ++#, c-format ++msgid "%s: option `--%s' doesn't allow an argument\n" ++msgstr "%s: parametras „--%s“ neleidžia argumento\n" ++ ++#: posix/getopt.c:633 posix/getopt.c:638 ++#, c-format ++msgid "%s: option `%c%s' doesn't allow an argument\n" ++msgstr "%s: parametras „%c%s“ neleidžia argumento\n" ++ ++#: 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 "%s: neatpažintas parametras „--%s“\n" ++ ++#: posix/getopt.c:749 posix/getopt.c:752 ++#, c-format ++msgid "%s: unrecognized option `%c%s'\n" ++msgstr "%s: neatpažintas parametras „%c%s“\n" ++ ++#: posix/getopt.c:804 posix/getopt.c:807 ++#, c-format ++msgid "%s: illegal option -- %c\n" ++msgstr "%s: netinkamas parametras -- %c\n" ++ ++#: 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 "%s: parametrui reikia argumento -- %c\n" ++ ++#: posix/getopt.c:937 posix/getopt.c:953 ++#, c-format ++msgid "%s: option `-W %s' is ambiguous\n" ++msgstr "%s: parametras „-W %s“ dviprasmis\n" ++ ++#: posix/getopt.c:977 posix/getopt.c:995 ++#, c-format ++msgid "%s: option `-W %s' doesn't allow an argument\n" ++msgstr "%s: parametras „-W %s“ neleidžia argumento\n" ++ ++#: posix/regcomp.c:135 ++msgid "No match" ++msgstr "" ++ ++#: posix/regcomp.c:138 ++msgid "Invalid regular expression" ++msgstr "Netaisyklinga reguliarioji išraiška" ++ ++#: posix/regcomp.c:141 ++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 ++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 ++msgid "Invalid range end" ++msgstr "" ++ ++#: posix/regcomp.c:168 ++msgid "Memory exhausted" ++msgstr "Baigėsi atmintis" ++ ++#: 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 "Nesuderintas ) arba \\)" ++ ++#: posix/regcomp.c:660 ++msgid "No previous regular expression" ++msgstr "" ++ ++#: posix/wordexp.c:1798 ++#, fuzzy ++msgid "parameter null or not set" ++msgstr "%s: parametras tuščias arba nenustatytas" ++ ++#: resolv/herror.c:68 ++msgid "Resolver Error 0 (no error)" ++msgstr "Paieškos klaida 0 (jokios klaidos)" ++ ++#: resolv/herror.c:69 ++msgid "Unknown host" ++msgstr "Nežinomas serveris" ++ ++#: resolv/herror.c:70 ++msgid "Host name lookup failure" ++msgstr "Adreso paieškos sutrikimas" ++ ++#: resolv/herror.c:71 ++msgid "Unknown server error" ++msgstr "Nežinoma serverio klaida" ++ ++#: resolv/herror.c:72 ++msgid "No address associated with name" ++msgstr "Su vardu susietų adresų nėra" ++ ++#: resolv/herror.c:107 ++msgid "Resolver internal error" ++msgstr "Vardų paieškos vidinė klaida" ++ ++#: resolv/herror.c:110 ++msgid "Unknown resolver error" ++msgstr "Nežinoma vardų paieškos klaida" ++ ++#: resolv/res_hconf.c:124 ++#, fuzzy, c-format ++msgid "%s: line %d: cannot specify more than %d trim domains" ++msgstr "%s: apribota: negalima naudoti „/“ komandų pavadinimuose" ++ ++#: resolv/res_hconf.c:145 ++#, c-format ++msgid "%s: line %d: list delimiter not followed by domain" ++msgstr "" ++ ++#: resolv/res_hconf.c:204 ++#, fuzzy, c-format ++msgid "%s: line %d: expected `on' or `off', found `%s'\n" ++msgstr "%s: eilutė %d: bloga komanda „%s“\n" ++ ++#: resolv/res_hconf.c:247 ++#, c-format ++msgid "%s: line %d: bad command `%s'\n" ++msgstr "%s: eilutė %d: bloga komanda „%s“\n" ++ ++#: 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 "%s%sNežinomas signalas %d\n" ++ ++#: stdio-common/psignal.c:52 ++msgid "Unknown signal" ++msgstr "Nežinomas signalas" ++ ++#: string/_strerror.c:45 sysdeps/mach/_strerror.c:87 ++msgid "Unknown error " ++msgstr "Nežinoma klaida " ++ ++#: string/strerror.c:43 ++msgid "Unknown error" ++msgstr "Nežinoma klaida" ++ ++#: string/strsignal.c:65 ++#, fuzzy, c-format ++msgid "Real-time signal %d" ++msgstr "%s: nutrauktas signalo %d" ++ ++#: string/strsignal.c:69 ++#, c-format ++msgid "Unknown signal %d" ++msgstr "Nežinomas signalas %d" ++ ++#: 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 "; kodėl =" ++ ++#: sunrpc/clnt_perr.c:132 ++#, c-format ++msgid "(unknown authentication error - %d)" ++msgstr "(nežinoma autentikacijos klaida - %d)" ++ ++#: sunrpc/clnt_perr.c:172 ++msgid "RPC: Success" ++msgstr "RPC: Sėkmės" ++ ++#: 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 "Autentikacijos klaida" ++ ++#: sunrpc/clnt_perr.c:203 ++#, fuzzy ++msgid "RPC: Program unavailable" ++msgstr "RPC: Programa neregistruota" ++ ++#: sunrpc/clnt_perr.c:207 ++#, fuzzy ++msgid "RPC: Program/version mismatch" ++msgstr "netinkama RPC programos versija" ++ ++#: sunrpc/clnt_perr.c:211 ++#, fuzzy ++msgid "RPC: Procedure unavailable" ++msgstr "Reikalingas raktas nerastas" ++ ++#: 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 "Nutolusio įvedimo/išvedimo klaida" ++ ++#: sunrpc/clnt_perr.c:223 ++msgid "RPC: Unknown host" ++msgstr "RPC: Nežinomas serveris" ++ ++#: sunrpc/clnt_perr.c:227 ++#, fuzzy ++msgid "RPC: Unknown protocol" ++msgstr "RPC: Nežinomas serveris" ++ ++#: sunrpc/clnt_perr.c:231 ++#, fuzzy ++msgid "RPC: Port mapper failure" ++msgstr "Elektros maitinimo sutrikimas" ++ ++#: sunrpc/clnt_perr.c:235 ++msgid "RPC: Program not registered" ++msgstr "RPC: Programa neregistruota" ++ ++#: sunrpc/clnt_perr.c:239 ++#, fuzzy ++msgid "RPC: Failed (unspecified error)" ++msgstr "Nesėkmė (nenurodyta klaida)" ++ ++#: sunrpc/clnt_perr.c:280 ++#, fuzzy ++msgid "RPC: (unknown error code)" ++msgstr "Nežinoma klaida " ++ ++#: sunrpc/clnt_perr.c:342 ++msgid "Authentication OK" ++msgstr "Autentikacija sėkminga" ++ ++#: sunrpc/clnt_perr.c:345 ++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 "netaisyklingas naudotojas" ++ ++#: 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 "nekorektiška eilutė" ++ ++#: sunrpc/clnt_perr.c:369 ++msgid "Failed (unspecified error)" ++msgstr "Nesėkmė (nenurodyta klaida)" ++ ++#: sunrpc/clnt_raw.c:117 ++msgid "clnt_raw.c: fatal header serialization error" ++msgstr "" ++ ++#: sunrpc/clnt_tcp.c:131 ++#, fuzzy ++msgid "clnttcp_create: out of memory\n" ++msgstr "baigėsi atmintis" ++ ++#: sunrpc/clnt_udp.c:139 ++#, fuzzy ++msgid "clntudp_create: out of memory\n" ++msgstr "baigėsi atmintis" ++ ++#: 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 "Nepavyko užregistruoti tarnybos" ++ ++#: sunrpc/pmap_rmt.c:248 ++#, fuzzy ++msgid "Cannot create socket for broadcast rpc" ++msgstr "nepavyko sukurti paieškos sąrašo" ++ ++#: 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 "%s: nepavyko atverti %s: %m\n" ++ ++#: sunrpc/rpc_main.c:305 ++#, fuzzy, c-format ++msgid "%s: while writing output %s: %m" ++msgstr "%s: nepavyko atverti %s: %m\n" ++ ++#: sunrpc/rpc_main.c:340 ++#, fuzzy, c-format ++msgid "cannot find C preprocessor: %s \n" ++msgstr "nepavyko atverti bendrojo objekto failo" ++ ++#: 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 "failas „%s“ jau egzistuoja ir gali būti perrašytas\n" ++ ++#: sunrpc/rpc_main.c:1212 ++#, fuzzy, c-format ++msgid "Cannot specify more than one input file!\n" ++msgstr "Kelias „%s“ nurodytas daugiau negu vieną kartą" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "Cannot have more than one file generation flag!\n" ++msgstr "Kelias „%s“ nurodytas daugiau negu vieną kartą" ++ ++#: 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 "netaisyklingas simbolis faile: " ++ ++#: sunrpc/rpc_scan.c:349 sunrpc/rpc_scan.c:375 ++#, fuzzy ++msgid "unterminated string constant" ++msgstr "neužbaigtas pranešimas" ++ ++#: sunrpc/rpc_scan.c:381 ++msgid "empty char string" ++msgstr "tuščia simbolių eilutė" ++ ++#: sunrpc/rpc_scan.c:523 sunrpc/rpc_scan.c:533 ++#, fuzzy ++msgid "preprocessor error" ++msgstr "relokacijos klaida" ++ ++#: sunrpc/rpcinfo.c:237 sunrpc/rpcinfo.c:383 ++#, fuzzy, c-format ++msgid "program %lu is not available\n" ++msgstr "RPC programa nerasta" ++ ++#: 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 ++#, c-format ++msgid "program %lu version %lu is not available\n" ++msgstr "" ++ ++#: 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 ++#, fuzzy ++msgid "No remote programs registered.\n" ++msgstr "RPC: Programa neregistruota" ++ ++#: sunrpc/rpcinfo.c:574 ++msgid " program vers proto port\n" ++msgstr "" ++ ++#: sunrpc/rpcinfo.c:613 ++msgid "(unknown)" ++msgstr "(nežinoma)" ++ ++#: 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 "Atsiprašome. Jūs nesate administratorius\n" ++ ++#: 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 ++#, fuzzy ++msgid "svc_run: - out of memory" ++msgstr "baigėsi atmintis" ++ ++#: 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 ++#, fuzzy ++msgid "registerrpc: out of memory\n" ++msgstr "baigėsi atmintis" ++ ++#: 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 ++#, fuzzy ++msgid "svctcp_create: out of memory\n" ++msgstr "baigėsi atmintis" ++ ++#: 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 ++#, fuzzy ++msgid "svcudp_create: out of memory\n" ++msgstr "baigėsi atmintis" ++ ++#: 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 ++#, fuzzy ++msgid "cache_set: victim not found" ++msgstr "%s: komanda nerasta" ++ ++#: 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 ++#, fuzzy ++msgid "svcunix_create: out of memory\n" ++msgstr "baigėsi atmintis" ++ ++#: sunrpc/svc_unix.c:215 ++msgid "svc_unix: makefd_xprt: out of memory\n" ++msgstr "" ++ ++#: sunrpc/xdr.c:566 ++#, fuzzy ++msgid "xdr_bytes: out of memory\n" ++msgstr "baigėsi atmintis" ++ ++#: sunrpc/xdr.c:718 ++#, fuzzy ++msgid "xdr_string: out of memory\n" ++msgstr "baigėsi atmintis" ++ ++#: sunrpc/xdr_array.c:106 ++#, fuzzy ++msgid "xdr_array: out of memory\n" ++msgstr "baigėsi atmintis" ++ ++#: sunrpc/xdr_rec.c:156 ++#, fuzzy ++msgid "xdrrec_create: out of memory\n" ++msgstr "baigėsi atmintis" ++ ++#: sunrpc/xdr_ref.c:86 ++#, fuzzy ++msgid "xdr_reference: out of memory\n" ++msgstr "baigėsi atmintis" ++ ++#: 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 "Pertraukimas" ++ ++#: sysdeps/generic/siglist.h:31 sysdeps/unix/siglist.c:29 ++msgid "Quit" ++msgstr "Išeita" ++ ++#: sysdeps/generic/siglist.h:32 sysdeps/unix/siglist.c:30 ++msgid "Illegal instruction" ++msgstr "Netaisyklinga instrukcija" ++ ++#: 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 "Slankaus kablelio klaida" ++ ++#: sysdeps/generic/siglist.h:36 sysdeps/unix/siglist.c:35 ++msgid "Killed" ++msgstr "Nutraukta" ++ ++#: sysdeps/generic/siglist.h:37 sysdeps/unix/siglist.c:36 ++msgid "Bus error" ++msgstr "Magistralės klaida" ++ ++#: sysdeps/generic/siglist.h:38 sysdeps/unix/siglist.c:37 ++msgid "Segmentation fault" ++msgstr "Segmentavimo klaida" ++ ++#. 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 "Žadintuvas" ++ ++#: sysdeps/generic/siglist.h:41 sysdeps/unix/siglist.c:41 ++#, fuzzy ++msgid "Terminated" ++msgstr "Užbaigta" ++ ++#: 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 "Sustabdyta (signalas)" ++ ++#: sysdeps/generic/siglist.h:44 sysdeps/unix/siglist.c:44 ++msgid "Stopped" ++msgstr "Sustabdyta" ++ ++#: sysdeps/generic/siglist.h:45 sysdeps/unix/siglist.c:45 ++msgid "Continued" ++msgstr "Pratęsta" ++ ++#: sysdeps/generic/siglist.h:46 sysdeps/unix/siglist.c:46 ++#, fuzzy ++msgid "Child exited" ++msgstr "Failas jau egzistuoja" ++ ++#: sysdeps/generic/siglist.h:47 sysdeps/unix/siglist.c:47 ++#, fuzzy ++msgid "Stopped (tty input)" ++msgstr "Sustabdyta (signalas)" ++ ++#: 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 "Viršyta CPU laiko riba" ++ ++#: sysdeps/generic/siglist.h:51 sysdeps/unix/siglist.c:51 ++msgid "File size limit exceeded" ++msgstr "Viršyta failo dydžio riba" ++ ++#: sysdeps/generic/siglist.h:52 sysdeps/unix/siglist.c:52 ++msgid "Virtual timer expired" ++msgstr "" ++ ++#: sysdeps/generic/siglist.h:53 sysdeps/unix/siglist.c:53 ++msgid "Profiling timer expired" ++msgstr "" ++ ++#: sysdeps/generic/siglist.h:54 sysdeps/unix/siglist.c:54 ++msgid "Window changed" ++msgstr "Langas pasikeitė" ++ ++#: sysdeps/generic/siglist.h:55 sysdeps/unix/siglist.c:56 ++msgid "User defined signal 1" ++msgstr "Naudotojo apibrėžtas signalas 1" ++ ++#: sysdeps/generic/siglist.h:56 sysdeps/unix/siglist.c:57 ++msgid "User defined signal 2" ++msgstr "Naudotojo apibrėžtas signalas 2" ++ ++#: sysdeps/generic/siglist.h:60 sysdeps/unix/siglist.c:33 ++msgid "EMT trap" ++msgstr "EMT gaudyklė" ++ ++#: sysdeps/generic/siglist.h:63 sysdeps/unix/siglist.c:38 ++msgid "Bad system call" ++msgstr "Blogas sisteminis kvietimas" ++ ++#: sysdeps/generic/siglist.h:66 ++msgid "Stack fault" ++msgstr "Steko klaida" ++ ++#: sysdeps/generic/siglist.h:69 ++msgid "Information request" ++msgstr "Informacijos užklausa" ++ ++#: sysdeps/generic/siglist.h:71 ++msgid "Power failure" ++msgstr "Elektros maitinimo sutrikimas" ++ ++#: sysdeps/generic/siglist.h:74 sysdeps/unix/siglist.c:55 ++msgid "Resource lost" ++msgstr "Resursas prarastas" ++ ++#. 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 "Operacija neleidžiama" ++ ++#. TRANS No process matches the specified process ID. ++#: sysdeps/gnu/errlist.c:45 ++msgid "No such process" ++msgstr "Tokio proceso nėra" ++ ++#. 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 "Nutrauktas sistemos iškvietimas" ++ ++#. TRANS Input/output error; usually used for physical read or write errors. ++#: sysdeps/gnu/errlist.c:69 ++msgid "Input/output error" ++msgstr "Įvedimo/išvedimo klaida" ++ ++#. 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 "Nėra tokio įrenginio ar adreso" ++ ++#. 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 "Argumentų sąrašas per ilgas" ++ ++#. 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 ++#, fuzzy ++msgid "Exec format error" ++msgstr "relokacijos klaida" ++ ++#. 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 ++#, fuzzy ++msgid "Bad file descriptor" ++msgstr "nepavyko užverti failo deskriptoriaus" ++ ++#. 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 ++#, fuzzy ++msgid "No child processes" ++msgstr "Tokio proceso nėra" ++ ++#. 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 "Nepavyko išskirti atminties" ++ ++#. 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 "Blogas adresas" ++ ++#. 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 "Reikalingas blokinis įrenginys" ++ ++#. 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 "Įrenginys ar resursas užimtas" ++ ++#. 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 "Failas jau egzistuoja" ++ ++#. 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 ++#, fuzzy ++msgid "Invalid cross-device link" ++msgstr "netaisyklingas naudotojas" ++ ++#. 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 "Tokio įrenginio nėra" ++ ++#. TRANS A file that isn't a directory was specified when a directory is required. ++#: sysdeps/gnu/errlist.c:229 ++#, fuzzy ++msgid "Not a directory" ++msgstr "Ne aplankas" ++ ++#. 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 ++#, fuzzy ++msgid "Is a directory" ++msgstr "Aplankas" ++ ++#. 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 ++#, fuzzy ++msgid "Invalid argument" ++msgstr "Galimi argumentai:" ++ ++#. 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 "Per daug atvertų failų" ++ ++#. 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 "Sistemoje per daug atvertų failų" ++ ++#. TRANS Inappropriate I/O control operation, such as trying to set terminal ++#. TRANS modes on an ordinary file. ++#: sysdeps/gnu/errlist.c:285 ++#, fuzzy ++msgid "Inappropriate ioctl for device" ++msgstr "Netinkamas failo tipas ar formatas" ++ ++#. 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 "Tekstinis failas užimtas" ++ ++#. TRANS File too big; the size of a file would be larger than allowed by the system. ++#: sysdeps/gnu/errlist.c:307 ++#, fuzzy ++msgid "File too large" ++msgstr "Failas per didelis" ++ ++#. 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 "Įrenginyje neliko vietos" ++ ++#. 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 "Failų sistema tik skaitymui" ++ ++#. 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 "Per daug nuorodų" ++ ++#. 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 "Skaitinis argumentas už apibrėžimo srities" ++ ++#. 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 "Skaitinis rezultatas už ribų" ++ ++#. 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 "Resursas laikinai neprieinamas" ++ ++#. 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 "Operacija blokuotųsi" ++ ++#. 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 "Operacija dabar vykdoma" ++ ++#. 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 "Operacija jau vykdoma" ++ ++#. 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 "Lizdo operacija taikoma ne lizdui" ++ ++#. 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 "Pranešimas per ilgas" ++ ++#. TRANS The socket type does not support the requested communications protocol. ++#: sysdeps/gnu/errlist.c:483 ++msgid "Protocol wrong type for socket" ++msgstr "" ++ ++#. 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 ++#, fuzzy ++msgid "Protocol not available" ++msgstr "Protokolas nepalaikomas" ++ ++#. 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 "Protokolas nepalaikomas" ++ ++#. TRANS The socket type is not supported. ++#: sysdeps/gnu/errlist.c:513 ++msgid "Socket type not supported" ++msgstr "Lizdo tipas nepalaikomas" ++ ++#. 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 ++#, fuzzy ++msgid "Operation not supported" ++msgstr "Operacija neleidžiama" ++ ++#. TRANS The socket communications protocol family you requested is not supported. ++#: sysdeps/gnu/errlist.c:536 ++msgid "Protocol family not supported" ++msgstr "Protokolo šeima nepalaikoma" ++ ++#. 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 "Adreso šeima nepalaikoma protokolo" ++ ++#. TRANS The requested socket address is already in use. @xref{Socket Addresses}. ++#: sysdeps/gnu/errlist.c:555 ++msgid "Address already in use" ++msgstr "Adresas jau naudojamas" ++ ++#. 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 "Nepavyko priskirti prašomo adreso" ++ ++#. TRANS A socket operation failed because the network was down. ++#: sysdeps/gnu/errlist.c:575 ++msgid "Network is down" ++msgstr "Tinklas išjungtas" ++ ++#. 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 "Tinklas neprieinamas" ++ ++#. 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 "Prisijungimas nutrauktas kito serverio" ++ ++#. 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 "Nėra vietos buferyje" ++ ++#. 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 "Transporto galinis taškas jau prijungtas" ++ ++#. 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 "Transporto galinis taškas neprijungtas" ++ ++#. 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 "Reikia paskirties adreso" ++ ++#. TRANS The socket has already been shut down. ++#: sysdeps/gnu/errlist.c:667 ++msgid "Cannot send after transport endpoint shutdown" ++msgstr "Negalima siųsti po transporto galinio taško išjungimo (shutdown)" ++ ++#. TRANS ??? ++#: sysdeps/gnu/errlist.c:676 ++#, fuzzy ++msgid "Too many references: cannot splice" ++msgstr "Per daug nuorodų: negalima skaidyti" ++ ++#. 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 "Baigėsi prisijungimo laukimo laikas" ++ ++#. 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 "Prisijungimas atmestas" ++ ++#. 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 "Per daug simbolinių nuorodų lygmenų" ++ ++#. 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 "Failo vardas per ilgas" ++ ++#. TRANS The remote host for a requested network connection is down. ++#: sysdeps/gnu/errlist.c:726 ++msgid "Host is down" ++msgstr "Serveris neveikia" ++ ++#. TRANS The remote host for a requested network connection is not reachable. ++#: sysdeps/gnu/errlist.c:735 ++msgid "No route to host" ++msgstr "Nėra kelio iki serverio" ++ ++#. 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 "Aplankas netuščias" ++ ++#. 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 "Per daug procesų" ++ ++#. 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 "Per daug naudotojų" ++ ++#. TRANS The user's disk quota was exceeded. ++#: sysdeps/gnu/errlist.c:775 ++msgid "Disk quota exceeded" ++msgstr "Viršyta disko kvota" ++ ++#. 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 "" ++ ++#. 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 "Objektas nutolęs" ++ ++#. TRANS ??? ++#: sysdeps/gnu/errlist.c:808 ++msgid "RPC struct is bad" ++msgstr "bloga RPC struktūra" ++ ++#. TRANS ??? ++#: sysdeps/gnu/errlist.c:817 ++msgid "RPC version wrong" ++msgstr "netinkama RPC versija" ++ ++#. TRANS ??? ++#: sysdeps/gnu/errlist.c:826 ++#, fuzzy ++msgid "RPC program not available" ++msgstr "RPC: Programa neregistruota" ++ ++#. TRANS ??? ++#: sysdeps/gnu/errlist.c:835 ++msgid "RPC program version wrong" ++msgstr "netinkama RPC programos versija" ++ ++#. TRANS ??? ++#: sysdeps/gnu/errlist.c:844 ++msgid "RPC bad procedure for program" ++msgstr "" ++ ++#. 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 ++#, fuzzy ++msgid "No locks available" ++msgstr "Nėra vietos buferyje" ++ ++#. 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 "Netinkamas failo tipas ar formatas" ++ ++#. TRANS ??? ++#: sysdeps/gnu/errlist.c:878 ++msgid "Authentication error" ++msgstr "Autentikacijos klaida" ++ ++#. TRANS ??? ++#: sysdeps/gnu/errlist.c:887 ++#, fuzzy ++msgid "Need authenticator" ++msgstr "Autentikacijos klaida" ++ ++#. 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 "Funkcija nerealizuota" ++ ++#. 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 "Nepalaikoma" ++ ++#. 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 "Netaisyklingas arba nepilnas daugiabaitis simbolis" ++ ++#. 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 "" ++ ++#. 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 "Šįkart susimovei kaip reikiant" ++ ++#. TRANS Go home and have a glass of warm, dairy-fresh milk. ++#: sysdeps/gnu/errlist.c:984 ++msgid "Computer bought the farm" ++msgstr "Kompiuteris nupirko fermą" ++ ++#. TRANS This error code has no purpose. ++#: sysdeps/gnu/errlist.c:993 ++#, fuzzy ++msgid "Gratuitous error" ++msgstr "relokacijos klaida" ++ ++#: sysdeps/gnu/errlist.c:1001 ++#, fuzzy ++msgid "Bad message" ++msgstr "neužbaigtas pranešimas" ++ ++#: sysdeps/gnu/errlist.c:1009 ++msgid "Identifier removed" ++msgstr "" ++ ++#: sysdeps/gnu/errlist.c:1017 ++msgid "Multihop attempted" ++msgstr "" ++ ++#: sysdeps/gnu/errlist.c:1025 ++#, fuzzy ++msgid "No data available" ++msgstr "Nėra vietos buferyje" ++ ++#: sysdeps/gnu/errlist.c:1033 ++#, fuzzy ++msgid "Link has been severed" ++msgstr "Raktas atšauktas" ++ ++#: 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 "Įrenginys nėra srautas" ++ ++#: sysdeps/gnu/errlist.c:1065 ++msgid "Value too large for defined data type" ++msgstr "Reikšmė per didelė apibrėžtam duomenų tipui" ++ ++#: sysdeps/gnu/errlist.c:1073 ++msgid "Protocol error" ++msgstr "Protokolo klaida" ++ ++#: sysdeps/gnu/errlist.c:1081 ++#, fuzzy ++msgid "Timer expired" ++msgstr "Baigėsi rakto galiojimo laikas" ++ ++#. 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 "Operacija nutraukta" ++ ++#: sysdeps/gnu/errlist.c:1101 ++msgid "Interrupted system call should be restarted" ++msgstr "Pertrauktas sistemos iškvietimas turėtų būti įvykdytas iš naujo" ++ ++#: sysdeps/gnu/errlist.c:1109 ++msgid "Channel number out of range" ++msgstr "Kanalo numeris už ribų" ++ ++#: sysdeps/gnu/errlist.c:1117 ++msgid "Level 2 not synchronized" ++msgstr "2 lygmuo nesinchonizuotas" ++ ++#: sysdeps/gnu/errlist.c:1125 ++msgid "Level 3 halted" ++msgstr "3 lygmuo sustabdytas" ++ ++#: sysdeps/gnu/errlist.c:1133 ++#, fuzzy ++msgid "Level 3 reset" ++msgstr "3 lygmuo sustabdytas" ++ ++#: sysdeps/gnu/errlist.c:1141 ++#, fuzzy ++msgid "Link number out of range" ++msgstr "%s: eilutės numeris už ribų" ++ ++#: sysdeps/gnu/errlist.c:1149 ++#, fuzzy ++msgid "Protocol driver not attached" ++msgstr "Protokolas nepalaikomas" ++ ++#: sysdeps/gnu/errlist.c:1157 ++#, fuzzy ++msgid "No CSI structure available" ++msgstr "Nėra vietos buferyje" ++ ++#: sysdeps/gnu/errlist.c:1165 ++msgid "Level 2 halted" ++msgstr "2 lygmuo sustabdytas" ++ ++#: sysdeps/gnu/errlist.c:1173 ++#, fuzzy ++msgid "Invalid exchange" ++msgstr "netaisyklingas kvietėjas" ++ ++#: sysdeps/gnu/errlist.c:1181 ++#, fuzzy ++msgid "Invalid request descriptor" ++msgstr "Blogas failo deskriptorius" ++ ++#: sysdeps/gnu/errlist.c:1189 ++msgid "Exchange full" ++msgstr "" ++ ++#: sysdeps/gnu/errlist.c:1197 ++msgid "No anode" ++msgstr "" ++ ++#: sysdeps/gnu/errlist.c:1205 ++#, fuzzy ++msgid "Invalid request code" ++msgstr "Visos užklausos baigtos" ++ ++#: sysdeps/gnu/errlist.c:1213 ++#, fuzzy ++msgid "Invalid slot" ++msgstr "netaisyklingas kvietėjas" ++ ++#: 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 "Kompiuterio nėra tinkle" ++ ++#: sysdeps/gnu/errlist.c:1245 ++msgid "Package not installed" ++msgstr "Paketas neįdiegtas" ++ ++#: sysdeps/gnu/errlist.c:1253 ++#, fuzzy ++msgid "Advertise error" ++msgstr "vidinė klaida" ++ ++#: sysdeps/gnu/errlist.c:1261 ++#, fuzzy ++msgid "Srmount error" ++msgstr "Protokolo klaida" ++ ++#: sysdeps/gnu/errlist.c:1269 ++msgid "Communication error on send" ++msgstr "Komunikacijos klaida siunčiant" ++ ++#: sysdeps/gnu/errlist.c:1277 ++msgid "RFS specific error" ++msgstr "RFS specifinė klaida" ++ ++#: sysdeps/gnu/errlist.c:1285 ++msgid "Name not unique on network" ++msgstr "Vardas tinkle neunikalus" ++ ++#: sysdeps/gnu/errlist.c:1293 ++#, fuzzy ++msgid "File descriptor in bad state" ++msgstr "Failo deskriptorius nekorektiškoje būsenoje" ++ ++#: sysdeps/gnu/errlist.c:1301 ++msgid "Remote address changed" ++msgstr "Nutolęs adresas pasikeitė" ++ ++#: 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 "" ++ ++#: sysdeps/gnu/errlist.c:1333 ++#, fuzzy ++msgid "Attempting to link in too many shared libraries" ++msgstr "klaida įkeliant bendrąsias bibliotekas" ++ ++#: 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 "" ++ ++#: sysdeps/gnu/errlist.c:1365 ++msgid "Not a XENIX named type file" ++msgstr "" ++ ++#: sysdeps/gnu/errlist.c:1373 ++#, fuzzy ++msgid "No XENIX semaphores available" ++msgstr "Nėra vietos buferyje" ++ ++#: sysdeps/gnu/errlist.c:1381 ++msgid "Is a named type file" ++msgstr "" ++ ++#: sysdeps/gnu/errlist.c:1389 ++msgid "Remote I/O error" ++msgstr "Nutolusio įvedimo/išvedimo klaida" ++ ++#: sysdeps/gnu/errlist.c:1397 ++#, fuzzy ++msgid "No medium found" ++msgstr "Nerasta laikmena" ++ ++#: sysdeps/gnu/errlist.c:1405 ++msgid "Wrong medium type" ++msgstr "Netinkamas laikmenos tipas" ++ ++#: sysdeps/gnu/errlist.c:1413 ++msgid "Required key not available" ++msgstr "Reikalingas raktas nerastas" ++ ++#: sysdeps/gnu/errlist.c:1421 ++msgid "Key has expired" ++msgstr "Baigėsi rakto galiojimo laikas" ++ ++#: sysdeps/gnu/errlist.c:1429 ++msgid "Key has been revoked" ++msgstr "Raktas atšauktas" ++ ++#: sysdeps/gnu/errlist.c:1437 ++msgid "Key was rejected by service" ++msgstr "Raktas atmestas tarnybos" ++ ++#: 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 ++msgid "Address family for hostname not supported" ++msgstr "" ++ ++#: sysdeps/posix/gai_strerror-strs.h:2 ++msgid "Temporary failure in name resolution" ++msgstr "Laikinas vardų paieškos sutrikimas" ++ ++#: 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 ++msgid "ai_family not supported" ++msgstr "" ++ ++#: sysdeps/posix/gai_strerror-strs.h:6 ++msgid "Memory allocation failure" ++msgstr "Atminties išskyrimo klaida" ++ ++#: 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 ++msgid "ai_socktype not supported" ++msgstr "" ++ ++#: sysdeps/posix/gai_strerror-strs.h:11 ++msgid "System error" ++msgstr "" ++ ++#: sysdeps/posix/gai_strerror-strs.h:12 ++msgid "Processing request in progress" ++msgstr "" ++ ++#: sysdeps/posix/gai_strerror-strs.h:13 ++msgid "Request canceled" ++msgstr "Užklausa nutraukta" ++ ++#: sysdeps/posix/gai_strerror-strs.h:14 ++msgid "Request not canceled" ++msgstr "Užklausa nenutraukta" ++ ++#: sysdeps/posix/gai_strerror-strs.h:15 ++msgid "All requests done" ++msgstr "Visos užklausos baigtos" ++ ++#: sysdeps/posix/gai_strerror-strs.h:16 ++msgid "Interrupted by a signal" ++msgstr "Nutraukta signalo" ++ ++#: 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 ++#, fuzzy ++msgid "IOT trap" ++msgstr "EMT gaudyklė" ++ ++#: sysdeps/unix/sysv/linux/i386/readelflib.c:49 ++#, fuzzy, c-format ++msgid "%s is for unknown machine %d.\n" ++msgstr "Rasta %d bibliotekų podėlyje „%s“\n" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "cannot open `%s'" ++msgstr "nepavyko atverti" ++ ++#: sysdeps/unix/sysv/linux/lddlibc4.c:68 ++#, fuzzy, c-format ++msgid "cannot read header from `%s'" ++msgstr "nepavyko perskaityti antraštės" ++ ++#: timezone/zdump.c:211 ++#, fuzzy ++msgid "lacks alphabetic at start" ++msgstr "laiko zonos santrumpos pradžioje nėra raidės" ++ ++#: timezone/zdump.c:213 ++#, fuzzy ++msgid "has fewer than 3 alphabetics" ++msgstr "laiko zonos santrumpoje yra daugiau negu 3 raidės" ++ ++#: timezone/zdump.c:215 ++#, fuzzy ++msgid "has more than 6 alphabetics" ++msgstr "laiko zonos santrumpoje yra daugiau negu 3 raidės" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "%s: wild -c argument %s\n" ++msgstr "%s: Per daug argumentų\n" ++ ++#: timezone/zdump.c:388 ++#, fuzzy ++msgid "Error writing to standard output" ++msgstr "standartinis išvedimas" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "%s: Memory exhausted: %s\n" ++msgstr "Baigėsi atmintis" ++ ++#: 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 ++#, fuzzy ++msgid "warning: " ++msgstr "įspėjimas: " ++ ++#: 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 ++#, fuzzy ++msgid "wild compilation-time specification of zic_t" ++msgstr "%s: nėra baigimo specifikacijos" ++ ++#: timezone/zic.c:528 ++#, fuzzy, c-format ++msgid "%s: More than one -d option specified\n" ++msgstr "%s: nėra baigimo specifikacijos" ++ ++#: timezone/zic.c:538 ++#, fuzzy, c-format ++msgid "%s: More than one -l option specified\n" ++msgstr "%s: nėra baigimo specifikacijos" ++ ++#: timezone/zic.c:548 ++#, fuzzy, c-format ++msgid "%s: More than one -p option specified\n" ++msgstr "%s: nėra baigimo specifikacijos" ++ ++#: timezone/zic.c:558 ++#, fuzzy, c-format ++msgid "%s: More than one -y option specified\n" ++msgstr "%s: nėra baigimo specifikacijos" ++ ++#: timezone/zic.c:568 ++#, fuzzy, c-format ++msgid "%s: More than one -L option specified\n" ++msgstr "%s: nėra baigimo specifikacijos" ++ ++#: 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 ++#, fuzzy, c-format ++msgid "%s: Can't link from %s to %s: %s\n" ++msgstr "Nepavyko susaistyti (link) %s su %s" ++ ++#: timezone/zic.c:762 timezone/zic.c:764 ++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 ++#, fuzzy, c-format ++msgid "%s: Can't open %s: %s\n" ++msgstr "nepavyko atverti" ++ ++#: timezone/zic.c:849 ++#, fuzzy ++msgid "line too long" ++msgstr "Failo vardas per ilgas" ++ ++#: 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:1329 timezone/zic.c:1351 ++#, c-format ++msgid "%s: panic: Invalid l_value %d\n" ++msgstr "" ++ ++#: timezone/zic.c:900 ++#, fuzzy, c-format ++msgid "%s: Error reading %s\n" ++msgstr "%s: Klaida rašant %s\n" ++ ++#: timezone/zic.c:907 ++#, fuzzy, c-format ++msgid "%s: Error closing %s: %s\n" ++msgstr "%s: Klaida rašant %s\n" ++ ++#: timezone/zic.c:912 ++msgid "expected continuation line not found" ++msgstr "" ++ ++#: timezone/zic.c:956 timezone/zic.c:2489 timezone/zic.c:2508 ++msgid "time overflow" ++msgstr "" ++ ++#: timezone/zic.c:960 ++msgid "24:00 not handled by pre-1998 versions of zic" ++msgstr "" ++ ++#: timezone/zic.c:963 ++msgid "values over 24 hours not handled by pre-2007 versions of zic" ++msgstr "" ++ ++#: timezone/zic.c:976 ++msgid "wrong number of fields on Rule line" ++msgstr "" ++ ++#: timezone/zic.c:980 ++msgid "nameless rule" ++msgstr "" ++ ++#: timezone/zic.c:985 ++#, fuzzy ++msgid "invalid saved time" ++msgstr "netaisyklingas kvietėjas" ++ ++#: timezone/zic.c:1006 ++msgid "wrong number of fields on Zone line" ++msgstr "" ++ ++#: timezone/zic.c:1012 ++#, c-format ++msgid "\"Zone %s\" line and -l option are mutually exclusive" ++msgstr "" ++ ++#: timezone/zic.c:1020 ++#, c-format ++msgid "\"Zone %s\" line and -p option are mutually exclusive" ++msgstr "" ++ ++#: timezone/zic.c:1032 ++#, c-format ++msgid "duplicate zone name %s (file \"%s\", line %d)" ++msgstr "" ++ ++#: timezone/zic.c:1048 ++msgid "wrong number of fields on Zone continuation line" ++msgstr "" ++ ++#: timezone/zic.c:1088 ++#, fuzzy ++msgid "invalid UTC offset" ++msgstr "netaisyklingas kvietėjas" ++ ++#: timezone/zic.c:1091 ++#, fuzzy ++msgid "invalid abbreviation format" ++msgstr "netinkamas mėnesio pavadinimas" ++ ++#: timezone/zic.c:1120 ++msgid "Zone continuation line end time is not after end time of previous line" ++msgstr "" ++ ++#: timezone/zic.c:1148 ++msgid "wrong number of fields on Leap line" ++msgstr "" ++ ++#: timezone/zic.c:1157 ++#, fuzzy ++msgid "invalid leaping year" ++msgstr "nurodyta netaisyklinga koduotė" ++ ++#: timezone/zic.c:1177 timezone/zic.c:1283 ++#, fuzzy ++msgid "invalid month name" ++msgstr "netaisyklinga veiksena" ++ ++#: timezone/zic.c:1190 timezone/zic.c:1396 timezone/zic.c:1410 ++msgid "invalid day of month" ++msgstr "netinkama mėnesio diena" ++ ++#: timezone/zic.c:1195 ++msgid "time before zero" ++msgstr "" ++ ++#: timezone/zic.c:1199 ++msgid "time too small" ++msgstr "" ++ ++#: timezone/zic.c:1203 ++#, fuzzy ++msgid "time too large" ++msgstr "Failas per didelis" ++ ++#: timezone/zic.c:1207 timezone/zic.c:1312 ++#, fuzzy ++msgid "invalid time of day" ++msgstr "netaisyklinga veiksena" ++ ++#: timezone/zic.c:1226 ++msgid "illegal CORRECTION field on Leap line" ++msgstr "" ++ ++#: timezone/zic.c:1231 ++msgid "illegal Rolling/Stationary field on Leap line" ++msgstr "" ++ ++#: timezone/zic.c:1247 ++msgid "wrong number of fields on Link line" ++msgstr "" ++ ++#: timezone/zic.c:1251 ++msgid "blank FROM field on Link line" ++msgstr "" ++ ++#: timezone/zic.c:1255 ++msgid "blank TO field on Link line" ++msgstr "" ++ ++#: timezone/zic.c:1333 ++#, fuzzy ++msgid "invalid starting year" ++msgstr "netaisyklingas naudotojas" ++ ++#: timezone/zic.c:1355 ++#, fuzzy ++msgid "invalid ending year" ++msgstr "nurodyta netaisyklinga koduotė" ++ ++#: timezone/zic.c:1359 ++msgid "starting year greater than ending year" ++msgstr "" ++ ++#: timezone/zic.c:1366 ++msgid "typed single year" ++msgstr "" ++ ++#: timezone/zic.c:1401 ++#, fuzzy ++msgid "invalid weekday name" ++msgstr "netinkamas mėnesio pavadinimas" ++ ++#: timezone/zic.c:1579 ++#, fuzzy, c-format ++msgid "%s: Can't remove %s: %s\n" ++msgstr "%s:%u: nepavyko perskaityti aplanko %s" ++ ++#: timezone/zic.c:1589 ++#, fuzzy, c-format ++msgid "%s: Can't create %s: %s\n" ++msgstr "%s:%u: nepavyko perskaityti aplanko %s" ++ ++#: timezone/zic.c:1739 ++#, c-format ++msgid "%s: Error writing %s\n" ++msgstr "%s: Klaida rašant %s\n" ++ ++#: timezone/zic.c:2031 ++msgid "no POSIX environment variable for zone" ++msgstr "" ++ ++#: timezone/zic.c:2185 ++msgid "can't determine time zone abbreviation to use just after until time" ++msgstr "" ++ ++#: timezone/zic.c:2231 ++#, fuzzy ++msgid "too many transitions?!" ++msgstr "per daug keliamųjų sekundžių" ++ ++#: timezone/zic.c:2250 ++msgid "internal error - addtype called with bad isdst" ++msgstr "" ++ ++#: timezone/zic.c:2254 ++msgid "internal error - addtype called with bad ttisstd" ++msgstr "" ++ ++#: timezone/zic.c:2258 ++msgid "internal error - addtype called with bad ttisgmt" ++msgstr "" ++ ++#: timezone/zic.c:2277 ++msgid "too many local time types" ++msgstr "per daug lokalaus laiko tipų" ++ ++#: timezone/zic.c:2281 ++#, fuzzy ++msgid "UTC offset out of range" ++msgstr "UTC poslinkis už ribų" ++ ++#: timezone/zic.c:2309 ++msgid "too many leap seconds" ++msgstr "per daug keliamųjų sekundžių" ++ ++#: timezone/zic.c:2315 ++msgid "repeated leap second moment" ++msgstr "Pakartotinis keliamosios sekundės momentas" ++ ++#: timezone/zic.c:2367 ++msgid "Wild result from command execution" ++msgstr "" ++ ++#: timezone/zic.c:2368 ++#, c-format ++msgid "%s: command was '%s', result was %d\n" ++msgstr "" ++ ++#: timezone/zic.c:2466 ++msgid "Odd number of quotation marks" ++msgstr "Nelyginis kabučių skaičius" ++ ++#: timezone/zic.c:2555 ++msgid "use of 2/29 in non leap-year" ++msgstr "vasario 29 d. nekeliamuosiuose metuose" ++ ++#: timezone/zic.c:2590 ++msgid "rule goes past start/end of month--will not work with pre-2004 versions of zic" ++msgstr "" ++ ++#: timezone/zic.c:2622 ++msgid "time zone abbreviation lacks alphabetic at start" ++msgstr "laiko zonos santrumpos pradžioje nėra raidės" ++ ++#: timezone/zic.c:2624 ++msgid "time zone abbreviation has more than 3 alphabetics" ++msgstr "laiko zonos santrumpoje yra daugiau negu 3 raidės" ++ ++#: timezone/zic.c:2626 ++#, fuzzy ++msgid "time zone abbreviation has too many alphabetics" ++msgstr "laiko zonos santrumpoje yra daugiau negu 3 raidės" ++ ++#: timezone/zic.c:2636 ++#, fuzzy ++msgid "time zone abbreviation differs from POSIX standard" ++msgstr "laiko zonos santrumpos pradžioje nėra raidės" ++ ++#: timezone/zic.c:2648 ++msgid "too many, or too long, time zone abbreviations" ++msgstr "" ++ ++#: timezone/zic.c:2689 ++#, fuzzy, c-format ++msgid "%s: Can't create directory %s: %s\n" ++msgstr "Nepavyko atverti aplanko %s" ++ ++#: timezone/zic.c:2711 ++#, c-format ++msgid "%s: %d did not sign extend correctly\n" ++msgstr "" ++ ++#~ msgid "%s: first non-whitespace character is not `\"'" ++#~ msgstr "%s: pirmas ne tarpo simbolis nėra „\"“" ++ ++#~ msgid "no closing `%c' in %s" ++#~ msgstr "nėra uždarančiojo „%c“ %s" ++ ++#, fuzzy ++#~ msgid "%s: cannot read: %s" ++#~ msgstr "%s:%u: nepavyko perskaityti aplanko %s" ++ ++#~ msgid "%s is not bound to any keys.\n" ++#~ msgstr "%s nėra priskirtas jokiam klavišui.\n" ++ ++#~ msgid "%s can be invoked via " ++#~ msgstr "%s gali būti iškviestas su" ++ ++#~ msgid "only meaningful in a `for', `while', or `until' loop" ++#~ msgstr "prasminga tik „for“, „while“ arba „until“ cikle" ++ ++#~ msgid " " ++#~ msgstr " " ++ ++#~ msgid "HOME not set" ++#~ msgstr "HOME nenustatytas" ++ ++#~ msgid "OLDPWD not set" ++#~ msgstr "OLDPWD nenustatytas" ++ ++#, fuzzy ++#~ msgid "%s: option requires an argument" ++#~ msgstr "%s: parametrui „%s“ reikia argumento\n" ++ ++#~ msgid "%s: numeric argument required" ++#~ msgstr "%s: reikia skaitinio argumento" ++ ++#, fuzzy ++#~ msgid "%s: invalid option name" ++#~ msgstr "%s: netaisyklingas parametras --%c\n" ++ ++#~ msgid "`%s': not a valid identifier" ++#~ msgstr "`%s': netaisyklingas identifikatorius" ++ ++#, fuzzy ++#~ msgid "%s: invalid number" ++#~ msgstr "nekorektiška eilutė" ++ ++#, fuzzy ++#~ msgid "%s: invalid signal specification" ++#~ msgstr "netaisyklingas apibrėžimas" ++ ++#~ msgid "`%s': not a pid or valid job spec" ++#~ msgstr "„%s“: ne pid'as ar taisyklinga darbo specifikacija" ++ ++#~ msgid "%s: readonly variable" ++#~ msgstr "%s: kintamasis tik skaitymui" ++ ++#, fuzzy ++#~ msgid "%s: %s out of range" ++#~ msgstr "UTC poslinkis už ribų" ++ ++#~ msgid "%s: no such job" ++#~ msgstr "%s: nėra tokio darbo" ++ ++#~ msgid "%s: no job control" ++#~ msgstr "%s: nėra darbų valdymo" ++ ++#~ msgid "no job control" ++#~ msgstr "nėra darbų valdymo" ++ ++#~ msgid "%s: restricted" ++#~ msgstr "%s: apribota" ++ ++#, fuzzy ++#~ msgid "%s: not a shell builtin" ++#~ msgstr "%s nėra simbolinė nuoroda\n" ++ ++#, fuzzy ++#~ msgid "%s: error retrieving current directory: %s: %s\n" ++#~ msgstr "%s: Nepavyko sukurti aplanko %s: %s\n" ++ ++#~ msgid "%s: ambiguous job spec" ++#~ msgstr "%s: dviprasmis darbo aprašymas" ++ ++#~ msgid "warning: -F option may not work as you expect" ++#~ msgstr "įspėjimas: parametras -F gali neveikti taip, kaip tikitės" ++ ++#~ msgid "warning: -C option may not work as you expect" ++#~ msgstr "įspėjimas: parametras -C gali neveikti taip, kaip tikitės" ++ ++#~ msgid "can only be used in a function" ++#~ msgstr "galima naudoti tik funkcijoje" ++ ++#~ msgid "cannot use `-f' to make functions" ++#~ msgstr "negalima naudoti „-f“ funkcijoms kurti" ++ ++#~ msgid "%s: readonly function" ++#~ msgstr "%s: funkcija tik skaitymui" ++ ++#~ msgid "%s: cannot destroy array variables in this way" ++#~ msgstr "%s: negalima tokiu būdu sunaikinti masyvų kintamųjų" ++ ++#, fuzzy ++#~ msgid "%s: not dynamically loaded" ++#~ msgstr "nepavyko dinamiškai įkelti paleidžiamojo failo" ++ ++#, fuzzy ++#~ msgid "%s: cannot delete: %s" ++#~ msgstr "%s:%u: nepavyko perskaityti aplanko %s" ++ ++#~ msgid "There are stopped jobs.\n" ++#~ msgstr "Yra sustabdytų darbų.\n" ++ ++#~ msgid "%s: hash table empty\n" ++#~ msgstr "%s: maišos lentelė tuščia\n" ++ ++#~ msgid "no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." ++#~ msgstr "nėra žinyno temų, atitinkančių „%s“. Bandykite „help help“, „man -k %s“ arba „info %s“." ++ ++#~ msgid "missing hex digit for \\x" ++#~ msgstr "trūksta šešioliktainio skaitmens išraiškoje \\x" ++ ++#, fuzzy ++#~ msgid "no other directory" ++#~ msgstr "Ne aplankas" ++ ++#, fuzzy ++#~ msgid "" ++#~ msgstr "Ne aplankas" ++ ++#, fuzzy ++#~ msgid "%s: invalid file descriptor specification" ++#~ msgstr "Blogas failo deskriptorius" ++ ++#~ msgid "read error: %d: %s" ++#~ msgstr "skaitymo klaida: %d: %s" ++ ++#~ msgid "can only `return' from a function or sourced script" ++#~ msgstr "galima grįžti (return) tik iš funkcijos ar scenarijaus" ++ ++#, fuzzy ++#~ msgid "%s: cannot unset: readonly %s" ++#~ msgstr "%s:%u: nepavyko perskaityti aplanko %s" ++ ++#~ msgid "%s: not an array variable" ++#~ msgstr "%s: ne masyvo kintamasis" ++ ++#~ msgid "%s: not a function" ++#~ msgstr "%s: ne funkcija" ++ ++#~ msgid "shift count" ++#~ msgstr "postūmių skaičius" ++ ++#, fuzzy ++#~ msgid "%s: invalid shell option name" ++#~ msgstr "%s: netaisyklingas parametras --%c\n" ++ ++#~ msgid "filename argument required" ++#~ msgstr "reikia failo pavadinimo argumento" ++ ++#, fuzzy ++#~ msgid "cannot suspend a login shell" ++#~ msgstr "nepavyko atverti duomenų failo" ++ ++#~ msgid "%s is aliased to `%s'\n" ++#~ msgstr "%s yra „%s“ sinonimas\n" ++ ++#~ msgid "%s is a shell keyword\n" ++#~ msgstr "%s yra aplinkos raktinis žodis\n" ++ ++#~ msgid "%s is a function\n" ++#~ msgstr "%s yra funkcija\n" ++ ++#, fuzzy ++#~ msgid "%s is a shell builtin\n" ++#~ msgstr "%s nėra simbolinė nuoroda\n" ++ ++#~ msgid "%s is %s\n" ++#~ msgstr "%s yra %s\n" ++ ++#, fuzzy ++#~ msgid "%s: invalid limit argument" ++#~ msgstr "Netaisyklingas argumentas" ++ ++#~ msgid "`%c': bad command" ++#~ msgstr "`%c': bloga komanda" ++ ++#, fuzzy ++#~ msgid "%s: cannot get limit: %s" ++#~ msgstr "%s:%u: nepavyko perskaityti aplanko %s" ++ ++#, fuzzy ++#~ msgid "%s: cannot modify limit: %s" ++#~ msgstr "%s:%u: nepavyko perskaityti aplanko %s" ++ ++#, fuzzy ++#~ msgid "octal number" ++#~ msgstr "netaisyklingas rinkinio numeris" ++ ++#, fuzzy ++#~ msgid "`%c': invalid symbolic mode character" ++#~ msgstr "netaisyklingas kabučių simbolis" ++ ++#~ msgid "last command: %s\n" ++#~ msgstr "paskutinė komanda: %s\n" ++ ++#~ msgid "Aborting..." ++#~ msgstr "Nutraukiama..." ++ ++#~ msgid "bad command type" ++#~ msgstr "blogas komandos tipas" ++ ++#, fuzzy ++#~ msgid "bad jump" ++#~ msgstr "blogas argumentas" ++ ++#~ msgid "%s: unbound variable" ++#~ msgstr "%s: nepriskirtas kintamasis" ++ ++#~ msgid "\atimed out waiting for input: auto-logout\n" ++#~ msgstr "\alaukiant įvedimo baigėsi laikas: automatiškai atsijungta\n" ++ ++#, fuzzy ++#~ msgid "TIMEFORMAT: `%c': invalid format character" ++#~ msgstr "netaisyklingas kabučių simbolis" ++ ++#~ msgid "%s: %s: bad interpreter" ++#~ msgstr "%s: %s: blogas interpretatorius" ++ ++#~ msgid "expression recursion level exceeded" ++#~ msgstr "viršytas išraiškos rekursijos lygis" ++ ++#~ msgid "recursion stack underflow" ++#~ msgstr "rekursijos steko atvirkštinis perpildymas" ++ ++#~ msgid "attempted assignment to non-variable" ++#~ msgstr "bandymas priskirti ne kintamajam" ++ ++#~ msgid "division by 0" ++#~ msgstr "dalyba iš 0" ++ ++#~ msgid "bug: bad expassign token" ++#~ msgstr "klaida: bloga expassign leksema" ++ ++#~ msgid "`:' expected for conditional expression" ++#~ msgstr "sąlygos išraiškoje tikėtasi „:“" ++ ++#~ msgid "exponent less than 0" ++#~ msgstr "eksponentas mažesnis už 0" ++ ++#~ msgid "missing `)'" ++#~ msgstr "Trūksta „)“" ++ ++#~ msgid "syntax error: operand expected" ++#~ msgstr "sintaksės klaida: tikėtasi operando" ++ ++#~ msgid "syntax error: invalid arithmetic operator" ++#~ msgstr "sintaksės klaida: netaisyklingas aritmetinis operatorius" ++ ++#, fuzzy ++#~ msgid "invalid arithmetic base" ++#~ msgstr "netaisyklinga vardų sritis" ++ ++#~ msgid "value too great for base" ++#~ msgstr "per didelė pagrindo reikšmė" ++ ++#~ msgid "getcwd: cannot access parent directories" ++#~ msgstr "getcwd: nepavyko pasiekti aukštesnių aplankų" ++ ++#~ msgid "describe_pid: %ld: no such pid" ++#~ msgstr "describe_pid: %ld: tokio pid nėra" ++ ++#~ msgid "wait_for: No record of process %ld" ++#~ msgstr "wait_for: nėra proceso %ld įrašo" ++ ++#~ msgid "wait_for_job: job %d is stopped" ++#~ msgstr "wait_for_job: darbas %d yra sustabdytas" ++ ++#~ msgid "%s: job has terminated" ++#~ msgstr "%s: darbas baigtas" ++ ++#~ msgid "%s: job %d already in background" ++#~ msgstr "%s: darbas %d jau fone" ++ ++#~ msgid "no job control in this shell" ++#~ msgstr "šioje aplinkoje nėra darbų valdymo" ++ ++#~ msgid "malloc: failed assertion: %s\n" ++#~ msgstr "malloc: pažeista prielaida: %s\n" ++ ++#~ msgid "" ++#~ "\r\n" ++#~ "malloc: %s:%d: assertion botched\r\n" ++#~ msgstr "" ++#~ "\r\n" ++#~ "malloc: %s:%d: prielaida pažeista\r\n" ++ ++#~ msgid "allocated" ++#~ msgstr "išskirta" ++ ++#~ msgid "freed" ++#~ msgstr "atlaisvinta" ++ ++#~ msgid "requesting resize" ++#~ msgstr "prašoma dydžio keitimo" ++ ++#~ msgid "just resized" ++#~ msgstr "tik ką pakeistas dydis" ++ ++#, fuzzy ++#~ msgid "bug: unknown operation" ++#~ msgstr "RPC: Nežinomas protokolas" ++ ++#, fuzzy ++#~ msgid "%s: host unknown" ++#~ msgstr "nežinoma" ++ ++#~ msgid "%s: bad network path specification" ++#~ msgstr "%s: netaisyklingas tinklo kelias" ++ ++#~ msgid "You have mail in $_" ++#~ msgstr "Turite laiškų $_" ++ ++#~ msgid "You have new mail in $_" ++#~ msgstr "Turite naujų laiškų $_" ++ ++#~ msgid "The mail in %s has been read\n" ++#~ msgstr "Paštas %s perskaitytas\n" ++ ++#~ msgid "syntax error: arithmetic expression required" ++#~ msgstr "sintaksės klaida: reikia aritmetinės išraiškos" ++ ++#~ msgid "syntax error: `;' unexpected" ++#~ msgstr "sintaksės klaida: netikėtas „;“" ++ ++#, fuzzy ++#~ msgid "syntax error: `((%s))'" ++#~ msgstr "sintaksės klaida prologe: %s" ++ ++#~ msgid "make_here_document: bad instruction type %d" ++#~ msgstr "make_here_document: blogas instrukcijos tipas %d" ++ ++#~ msgid "make_redirection: redirection instruction `%d' out of range" ++#~ msgstr "make_redirection: nukreipimo instrukcija „%d“ už ribų" ++ ++#~ msgid "unexpected EOF while looking for matching `%c'" ++#~ msgstr "netikėta failo pabaiga ieškant atitinkamo „%c“" ++ ++#~ msgid "unexpected EOF while looking for `]]'" ++#~ msgstr "netikėta failo pabaiga ieškant „]]“" ++ ++#~ msgid "syntax error in conditional expression: unexpected token `%s'" ++#~ msgstr "sintaksės klaida sąlygos išraiškoje: netikėta leksema „%s“" ++ ++#~ msgid "unexpected token `%s', expected `)'" ++#~ msgstr "netikėta leksema „%s“, tikėtasi „)“" ++ ++#~ msgid "expected `)'" ++#~ msgstr "tikėtasi „)“" ++ ++#~ msgid "unexpected argument `%s' to conditional unary operator" ++#~ msgstr "netikėtas argumentas „%s“ sąlygos unariniam operatoriui" ++ ++#~ msgid "unexpected argument to conditional unary operator" ++#~ msgstr "netikėtas argumentas sąlygos unariniam operatoriui" ++ ++#~ msgid "unexpected token `%s', conditional binary operator expected" ++#~ msgstr "netikėta leksema „%s“, tikėtasi sąlyginio binarinio operatoriaus" ++ ++#~ msgid "conditional binary operator expected" ++#~ msgstr "tikėtasi sąlygos binarinio operatoriaus" ++ ++#~ msgid "unexpected argument `%s' to conditional binary operator" ++#~ msgstr "netikėtas argumentas „%s“ sąlygos binariniam operatoriui" ++ ++#~ msgid "unexpected argument to conditional binary operator" ++#~ msgstr "netikėtas argumentas sąlygos binariniam operatoriui" ++ ++#~ msgid "unexpected token `%c' in conditional command" ++#~ msgstr "netikėta leksema „%c“ sąlygos komandoje" ++ ++#~ msgid "unexpected token `%s' in conditional command" ++#~ msgstr "netikėta leksema „%s“ sąlygos komandoje" ++ ++#~ msgid "unexpected token %d in conditional command" ++#~ msgstr "netikėta leksema %d sąlygos komandoje" ++ ++#, fuzzy ++#~ msgid "syntax error near unexpected token `%s'" ++#~ msgstr "sintaksės klaida prologe: %s" ++ ++#, fuzzy ++#~ msgid "syntax error: unexpected end of file" ++#~ msgstr "%s: per ankstyva failo pabaiga" ++ ++#~ msgid "Use \"%s\" to leave the shell.\n" ++#~ msgstr "Naudokite „%s“, jei norite išeiti iš ap.\n" ++ ++#~ msgid "unexpected EOF while looking for matching `)'" ++#~ msgstr "netikėta failo pabaiga ieškant atitinkamo „)“" ++ ++#~ msgid "progcomp_insert: %s: NULL COMPSPEC" ++#~ msgstr "progcomp_insert: %s: NULL COMPSPEC" ++ ++#~ msgid "print_command: bad connector `%d'" ++#~ msgstr "print_command: blogas jungtukas  „%d“" ++ ++#, fuzzy ++#~ msgid "cprintf: `%c': invalid format character" ++#~ msgstr "netaisyklingas kabučių simbolis" ++ ++#~ msgid "%s: ambiguous redirect" ++#~ msgstr "%s: ambiguous redirect" ++ ++#, fuzzy ++#~ msgid "%s: cannot overwrite existing file" ++#~ msgstr "nepavyko atverti duomenų failo" ++ ++#, fuzzy ++#~ msgid "%s: restricted: cannot redirect output" ++#~ msgstr "%s:%u: nepavyko perskaityti aplanko %s" ++ ++#~ msgid "/dev/(tcp|udp)/host/port not supported without networking" ++#~ msgstr "/dev/(tcp|udp)/komp/prievadas nepalaikoma be tinklo" ++ ++#~ msgid "redirection error: cannot duplicate fd" ++#~ msgstr "nukreipimo klaida: nepavyko dublikuoti fd" ++ ++#~ msgid "could not find /tmp, please create!" ++#~ msgstr "nepavyko rasti /tmp, sukurkite šį aplanką!" ++ ++#~ msgid "/tmp must be a valid directory name" ++#~ msgstr "/tmp turi būti taisyklingas aplanko pavadinimas" ++ ++#, fuzzy ++#~ msgid "%c%c: invalid option" ++#~ msgstr "%s: netaisyklingas parametras --%c\n" ++ ++#~ msgid "I have no name!" ++#~ msgstr "Neturiu vardo!" ++ ++#, fuzzy ++#~ msgid "Type `%s -c \"help set\"' for more information about shell options.\n" ++#~ msgstr "Bandykite „%s --help“ arba „%s --usage“, jei norite gauti daugiau informacijos.\n" ++ ++#, fuzzy ++#~ msgid "Type `%s -c help' for more information about shell builtin commands.\n" ++#~ msgstr "Bandykite „ldd --help“, jei norite daugiau informacijos." ++ ++#~ msgid "sigprocmask: %d: invalid operation" ++#~ msgstr "sigprocmask: %d: netaisyklinga operacija" ++ ++#, fuzzy ++#~ msgid "cannot duplicate named pipe %s as fd %d" ++#~ msgstr "nepavyko išskirti vardo įrašo" ++ ++#~ msgid "$%s: cannot assign in this way" ++#~ msgstr "$%s: negalima tokiu būdu priskirti" ++ ++#, fuzzy ++#~ msgid "no match: %s" ++#~ msgstr "Atitikmenų nėra" ++ ++#~ msgid "argument expected" ++#~ msgstr "tikėtasi argumento" ++ ++#~ msgid "%s: integer expression expected" ++#~ msgstr "%s: tikėtasi skaitinės išraiškos" ++ ++#~ msgid "`)' expected" ++#~ msgstr "tikėtasi „)“" ++ ++#~ msgid "`)' expected, found %s" ++#~ msgstr "tikėtasi „)“, rasta %s" ++ ++#~ msgid "%s: unary operator expected" ++#~ msgstr "%s: tikėtasi unarinio operatoriaus" ++ ++#~ msgid "%s: binary operator expected" ++#~ msgstr "%s: tikėtasi binarinio operatoriaus" ++ ++#~ msgid "missing `]'" ++#~ msgstr "trūksta „]“" ++ ++#, fuzzy ++#~ msgid "invalid signal number" ++#~ msgstr "netaisyklingas kvietėjas" ++ ++#~ msgid "run_pending_traps: bad value in trap_list[%d]: %p" ++#~ msgstr "run_pending_traps: bloga trap_list[%d] reikšmė: %p" ++ ++#~ msgid "trap_handler: bad signal %d" ++#~ msgstr "trap_handler: blogas signalas %d" ++ ++#~ msgid "error importing function definition for `%s'" ++#~ msgstr "klaida importuojant funkcijos apibrėžimą „%s“" ++ ++#, fuzzy ++#~ msgid "make_local_variable: no function context at current scope" ++#~ msgstr "make_local_variable: " ++ ++#~ msgid "Copyright (C) 2006 Free Software Foundation, Inc.\n" ++#~ msgstr "Autorinės teisės (C) 2006 Free Software Foundation, Inc.\n" ++ ++#~ msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" ++#~ msgstr "xmalloc: nepavyko išskirti %lu baitų (%lu baitų išskirta)" ++ ++#~ msgid "xmalloc: cannot allocate %lu bytes" ++#~ msgstr "xmalloc: nepavyko išskirti %lu baitų" ++ ++#~ msgid "xrealloc: cannot allocate %lu bytes" ++#~ msgstr "xrealloc: nepavyko išskirti %lu baitų" ++ ++#~ msgid "xmalloc: %s:%d: cannot allocate %lu bytes" ++#~ msgstr "xmalloc: %s:%d: nepavyko išskirti %lu baitų" ++ ++#~ msgid "xrealloc: %s:%d: cannot allocate %lu bytes" ++#~ msgstr "xrealloc: %s:%d: nepavyko išskirti %lu baitų" diff --git a/glibc-nscd.patch b/glibc-nscd.patch new file mode 100644 index 0000000..bff6d9d --- /dev/null +++ b/glibc-nscd.patch @@ -0,0 +1,1152 @@ +2008-06-18 Ulrich Drepper + + * nscd/connections.c (main_loop_poll): Fix test for read error. + (main_loop_epoll): Likewise. + +2008-06-13 Ulrich Drepper + + * nscd/connections.c: Also recognize and handle changes to the + resolver configuration file. + +2008-06-12 Ulrich Drepper + + * nscd/nscd.h (struct database_dyn): Add inotify_descr and clear_cache + fields. + * nscd/connections.c (inotify_fd): New variable. + (nscd_init): Try to open an inotify descriptor. + If successful, watch files for databases using inotify instead of + having prune threads stat the files. + (nscd_run_prune): Recognize clear_cache flag being set and call + prune_cache appropriately. + (main_loop_poll): Add inotify descriptor to wait set and handle the + reported changes. + (main_loop_epoll): Likewise. + * nscd/cache.c (prune_cache): Don't stat files for databases if + inotify is used. + * sysdeps/unix/sysv/linux/Makefile [subdir=nscd] + (CFLAGS-connections.c): Add -DHAVE_INOTIFY. + + * nscd/grpcache.c (cache_addgr): Correctly compute size of + fixed-size portion of the record. + * nscd/servicescache.c (cache_addserv): Likewise. + * nscd/pwdcache.c (cache_addpw): Likewise. + * nscd/initgrcache.c (addinitgroupsX): Likewise. + +2008-06-11 Ulrich Drepper + + * nscd/mem.c (gc): Initialize obstack earlier so that if we jump + out we don't use uninitialized memory. + + * nscd/hstcache.c (cache_addhst): Send correct number of bytes to + the client. + +2008-05-18 Ulrich Drepper + + * nscd/cache.c (cache_add): Take additional parameter specifying + whether this is in response of a cache refill. Check alignment + of package data. Revamp waking of pruning thread. + (prune_cache): Small optimization. + * nscd/nscd.h: Adjust cache_add prototypes. + * nscd/aicache.c: Adjust cache_add calls. + * nscd/grpcache.c: Likewise. + * nscd/hstcache.c: Likewise. + * nscd/initgrcache.c: Likewise. + * nscd/pwdcache.c: Likewise. + * nscd/servicescache.c: Likewise. + * nscd/connections.c (restart): Really disable cache use before + exec attempt. If it fails, reenable cache. + (nscd_run_prune): Initialize wakeup_time. After wakeup, set wakeup + time to max to be able to notice concurrent cache additions. Unlock + prune_lock while performing gc. Afterwards compute wakeup time with + current wakeup_time value in mind. + +2008-05-17 Ulrich Drepper + + * nscd/mem.c (gc): Avoid stack overflow when allocating move list. + + * nscd/mem.c (gc): Correctly determine highest used array element + in mark. + + * nscd/mem.c (markrange): Add assert to check entries are all + aligned. Small cleanup in bitmap use. + + * nscd/nscd.h (mem_in_flight): Replace blockaddr field with + blockoff of type nscd_ssize_t. + * nscd/mem.c (gc): Simplify markrange call for on-flight blocks. + (mempoll_alloc): Record block offset and not address. + + * nscd/mem.c (gc): Fix test for stack overuse. + +2008-05-10 Ulrich Drepper + + * nscd/cache.c (cache_add): Before returning with failure and this + is the first use of the record, mark it as unusable. + * nscd/aicache.c: Don't touch the dataset after cache_add returns + reporting a failure. + * nscd/grpcache.c: Likewise + * nscd/hstcache.c: Likewise. + * nscd/initgrcache.c: Likewise. + * nscd/pwdcache.c: Likewise. + * nscd/servicescache.c: Likewise. + +--- libc/nscd/aicache.c 19 Apr 2008 16:42:32 -0000 1.18 ++++ libc/nscd/aicache.c 18 May 2008 21:54:07 -0000 1.22 +@@ -468,10 +468,8 @@ addhstaiX (struct database_dyn *db, int + /* Now get the lock to safely insert the records. */ + pthread_rwlock_rdlock (&db->lock); + +- if (cache_add (req->type, key_copy, req->key_len, &dataset->head, true, +- db, uid) < 0) +- /* Ensure the data can be recovered. */ +- dataset->head.usable = false; ++ (void) cache_add (req->type, key_copy, req->key_len, &dataset->head, ++ true, db, uid, he == NULL); + + pthread_rwlock_unlock (&db->lock); + +--- libc/nscd/cache.c 19 Apr 2008 16:41:46 -0000 1.36 ++++ libc/nscd/cache.c 12 Jun 2008 22:39:47 -0000 1.39 +@@ -135,7 +135,7 @@ cache_search (request_type type, void *k + int + cache_add (int type, const void *key, size_t len, struct datahead *packet, + bool first, struct database_dyn *table, +- uid_t owner) ++ uid_t owner, bool prune_wakeup) + { + if (__builtin_expect (debug_level >= 2, 0)) + { +@@ -161,6 +161,11 @@ cache_add (int type, const void *key, si + { + ++table->head->addfailed; + ++ /* If necessary mark the entry as unusable so that lookups will ++ not use it. */ ++ if (first) ++ packet->usable = false; ++ + /* Mark the in-flight memory as unused. */ + for (enum in_flight idx = 0; idx < IDX_record_data; ++idx) + mem_in_flight.block[idx].dbidx = -1; +@@ -175,6 +180,7 @@ cache_add (int type, const void *key, si + assert (newp->key + newp->len <= table->head->first_free); + newp->owner = owner; + newp->packet = (char *) packet - table->data; ++ assert ((newp->packet & BLOCK_ALIGN_M1) == 0); + + /* Put the new entry in the first position. */ + do +@@ -206,19 +212,27 @@ cache_add (int type, const void *key, si + (char *) &table->head->array[hash] - (char *) table->head + + sizeof (ref_t), MS_ASYNC); + +- /* Perhaps the prune thread for the data is not running in a long +- time. Wake it if necessary. */ +- time_t next_wakeup = table->wakeup_time; +- while (next_wakeup + CACHE_PRUNE_INTERVAL > packet->timeout) +- if (atomic_compare_and_exchange_bool_acq (&table->wakeup_time, +- packet->timeout, +- next_wakeup) == 0) +- { ++ /* We do not have to worry about the pruning thread if we are ++ re-adding the data since this is done by the pruning thread. We ++ also do not have to do anything in case this is not the first ++ time the data is entered since different data heads all have the ++ same timeout. */ ++ if (first && prune_wakeup) ++ { ++ /* Perhaps the prune thread for the table is not running in a long ++ time. Wake it if necessary. */ ++ pthread_mutex_lock (&table->prune_lock); ++ time_t next_wakeup = table->wakeup_time; ++ bool do_wakeup = false; ++ if (next_wakeup > packet->timeout + CACHE_PRUNE_INTERVAL) ++ { ++ table->wakeup_time = packet->timeout; ++ do_wakeup = true; ++ } ++ pthread_mutex_unlock (&table->prune_lock); ++ if (do_wakeup) + pthread_cond_signal (&table->prune_cond); +- break; +- } +- else +- next_wakeup = table->wakeup_time; ++ } + + /* Mark the in-flight memory as unused. */ + for (enum in_flight idx = 0; idx < IDX_last; ++idx) +@@ -260,7 +274,7 @@ prune_cache (struct database_dyn *table, + + /* If we check for the modification of the underlying file we invalidate + the entries also in this case. */ +- if (table->check_file && now != LONG_MAX) ++ if (table->inotify_descr < 0 && table->check_file && now != LONG_MAX) + { + struct stat64 st; + +@@ -431,7 +445,8 @@ prune_cache (struct database_dyn *table, + ref_t *old = &table->head->array[first]; + ref_t run = table->head->array[first]; + +- while (run != ENDREF) ++ assert (run != ENDREF); ++ do + { + struct hashentry *runp = (struct hashentry *) (data + run); + struct datahead *dh +@@ -457,6 +472,7 @@ prune_cache (struct database_dyn *table, + run = runp->next; + } + } ++ while (run != ENDREF); + } + + ++first; +--- libc/nscd/connections.c 22 Apr 2008 15:53:45 -0000 1.111 ++++ libc/nscd/connections.c 18 Jun 2008 22:28:42 -0000 1.115 +@@ -35,6 +35,9 @@ + #ifdef HAVE_EPOLL + # include + #endif ++#ifdef HAVE_INOTIFY ++# include ++#endif + #include + #include + #include +@@ -48,6 +51,7 @@ + #include "nscd.h" + #include "dbg_log.h" + #include "selinux.h" ++#include + #ifdef HAVE_SENDFILE + # include + #endif +@@ -222,6 +226,14 @@ int max_nthreads = 32; + /* Socket for incoming connections. */ + static int sock; + ++#ifdef HAVE_INOTIFY ++/* Inotify descriptor. */ ++static int inotify_fd = -1; ++ ++/* Watch descriptor for resolver configuration file. */ ++static int resolv_conf_descr = -1; ++#endif ++ + /* Number of times clients had to wait. */ + unsigned long int client_queued; + +@@ -503,6 +515,13 @@ nscd_init (void) + /* No configuration for this value, assume a default. */ + nthreads = 4; + ++#ifdef HAVE_INOTIFY ++ /* Use inotify to recognize changed files. */ ++ inotify_fd = inotify_init (); ++ if (inotify_fd != -1) ++ fcntl (inotify_fd, F_SETFL, O_NONBLOCK); ++#endif ++ + for (size_t cnt = 0; cnt < lastdb; ++cnt) + if (dbs[cnt].enabled) + { +@@ -805,21 +824,39 @@ cannot set socket to close on exec: %s; + assert (dbs[cnt].ro_fd == -1); + } + ++ dbs[cnt].inotify_descr = -1; + if (dbs[cnt].check_file) + { +- /* We need the modification date of the file. */ +- struct stat64 st; +- +- if (stat64 (dbs[cnt].filename, &st) < 0) ++#ifdef HAVE_INOTIFY ++ if (inotify_fd < 0 ++ || (dbs[cnt].inotify_descr ++ = inotify_add_watch (inotify_fd, dbs[cnt].filename, ++ IN_DELETE_SELF | IN_MODIFY)) < 0) ++ /* We cannot notice changes in the main thread. */ ++#endif + { +- /* We cannot stat() the file, disable file checking. */ +- dbg_log (_("cannot stat() file `%s': %s"), +- dbs[cnt].filename, strerror (errno)); +- dbs[cnt].check_file = 0; ++ /* We need the modification date of the file. */ ++ struct stat64 st; ++ ++ if (stat64 (dbs[cnt].filename, &st) < 0) ++ { ++ /* We cannot stat() the file, disable file checking. */ ++ dbg_log (_("cannot stat() file `%s': %s"), ++ dbs[cnt].filename, strerror (errno)); ++ dbs[cnt].check_file = 0; ++ } ++ else ++ dbs[cnt].file_mtime = st.st_mtime; + } +- else +- dbs[cnt].file_mtime = st.st_mtime; + } ++ ++#ifdef HAVE_INOTIFY ++ if (cnt == hstdb && inotify_fd >= -1) ++ /* We also monitor the resolver configuration file. */ ++ resolv_conf_descr = inotify_add_watch (inotify_fd, ++ _PATH_RESCONF, ++ IN_DELETE_SELF | IN_MODIFY); ++#endif + } + + /* Create the socket. */ +@@ -1330,11 +1367,14 @@ cannot change to old working directory: + } + + /* Synchronize memory. */ ++ int32_t certainly[lastdb]; + for (int cnt = 0; cnt < lastdb; ++cnt) + if (dbs[cnt].enabled) + { + /* Make sure nobody keeps using the database. */ + dbs[cnt].head->timestamp = 0; ++ certainly[cnt] = dbs[cnt].head->nscd_certainly_running; ++ dbs[cnt].head->nscd_certainly_running = 0; + + if (dbs[cnt].persistent) + // XXX async OK? +@@ -1357,6 +1397,15 @@ cannot change to old working directory: + dbg_log (_("cannot change current working directory to \"/\": %s"), + strerror (errno)); + paranoia = 0; ++ ++ /* Reenable the databases. */ ++ time_t now = time (NULL); ++ for (int cnt = 0; cnt < lastdb; ++cnt) ++ if (dbs[cnt].enabled) ++ { ++ dbs[cnt].head->timestamp = now; ++ dbs[cnt].head->nscd_certainly_running = certainly[cnt]; ++ } + } + + +@@ -1394,42 +1443,75 @@ nscd_run_prune (void *p) + + int dont_need_update = setup_thread (&dbs[my_number]); + ++ time_t now = time (NULL); ++ + /* We are running. */ +- dbs[my_number].head->timestamp = time (NULL); ++ dbs[my_number].head->timestamp = now; + + struct timespec prune_ts; +- if (clock_gettime (timeout_clock, &prune_ts) == -1) ++ if (__builtin_expect (clock_gettime (timeout_clock, &prune_ts) == -1, 0)) + /* Should never happen. */ + abort (); + + /* Compute the initial timeout time. Prevent all the timers to go + off at the same time by adding a db-based value. */ + prune_ts.tv_sec += CACHE_PRUNE_INTERVAL + my_number; ++ dbs[my_number].wakeup_time = now + CACHE_PRUNE_INTERVAL + my_number; + +- pthread_mutex_lock (&dbs[my_number].prune_lock); ++ pthread_mutex_t *prune_lock = &dbs[my_number].prune_lock; ++ pthread_cond_t *prune_cond = &dbs[my_number].prune_cond; ++ ++ pthread_mutex_lock (prune_lock); + while (1) + { + /* Wait, but not forever. */ +- int e = pthread_cond_timedwait (&dbs[my_number].prune_cond, +- &dbs[my_number].prune_lock, +- &prune_ts); +- assert (e == 0 || e == ETIMEDOUT); ++ int e = 0; ++ if (! dbs[my_number].clear_cache) ++ e = pthread_cond_timedwait (prune_cond, prune_lock, &prune_ts); ++ assert (__builtin_expect (e == 0 || e == ETIMEDOUT, 1)); + + time_t next_wait; +- time_t now = time (NULL); +- if (e == ETIMEDOUT || now >= dbs[my_number].wakeup_time) +- { +- next_wait = prune_cache (&dbs[my_number], now, -1); ++ now = time (NULL); ++ if (e == ETIMEDOUT || now >= dbs[my_number].wakeup_time ++ || dbs[my_number].clear_cache) ++ { ++ /* We will determine the new timout values based on the ++ cache content. Should there be concurrent additions to ++ the cache which are not accounted for in the cache ++ pruning we want to know about it. Therefore set the ++ timeout to the maximum. It will be descreased when adding ++ new entries to the cache, if necessary. */ ++ if (sizeof (time_t) == sizeof (long int)) ++ dbs[my_number].wakeup_time = LONG_MAX; ++ else ++ dbs[my_number].wakeup_time = INT_MAX; ++ ++ /* Unconditionally reset the flag. */ ++ time_t prune_now = dbs[my_number].clear_cache ? LONG_MAX : now; ++ dbs[my_number].clear_cache = 0; ++ ++ pthread_mutex_unlock (prune_lock); ++ ++ next_wait = prune_cache (&dbs[my_number], prune_now, -1); ++ + next_wait = MAX (next_wait, CACHE_PRUNE_INTERVAL); + /* If clients cannot determine for sure whether nscd is running + we need to wake up occasionally to update the timestamp. + Wait 90% of the update period. */ + #define UPDATE_MAPPING_TIMEOUT (MAPPING_TIMEOUT * 9 / 10) + if (__builtin_expect (! dont_need_update, 0)) +- next_wait = MIN (UPDATE_MAPPING_TIMEOUT, next_wait); ++ { ++ next_wait = MIN (UPDATE_MAPPING_TIMEOUT, next_wait); ++ dbs[my_number].head->timestamp = now; ++ } ++ ++ pthread_mutex_lock (prune_lock); + + /* Make it known when we will wake up again. */ +- dbs[my_number].wakeup_time = now + next_wait; ++ if (now + next_wait < dbs[my_number].wakeup_time) ++ dbs[my_number].wakeup_time = now + next_wait; ++ else ++ next_wait = dbs[my_number].wakeup_time - now; + } + else + /* The cache was just pruned. Do not do it again now. Just +@@ -1665,6 +1747,16 @@ main_loop_poll (void) + size_t nused = 1; + size_t firstfree = 1; + ++#ifdef HAVE_INOTIFY ++ if (inotify_fd != -1) ++ { ++ conns[1].fd = inotify_fd; ++ conns[1].events = POLLRDNORM; ++ nused = 2; ++ firstfree = 2; ++ } ++#endif ++ + while (1) + { + /* Wait for any event. We wait at most a couple of seconds so +@@ -1712,7 +1804,52 @@ main_loop_poll (void) + --n; + } + +- for (size_t cnt = 1; cnt < nused && n > 0; ++cnt) ++ size_t first = 1; ++#ifdef HAVE_INOTIFY ++ if (conns[1].fd == inotify_fd) ++ { ++ if (conns[1].revents != 0) ++ { ++ bool done[lastdb] = { false, }; ++ union ++ { ++ struct inotify_event i; ++ char buf[100]; ++ } inev; ++ ++ while (TEMP_FAILURE_RETRY (read (inotify_fd, &inev, ++ sizeof (inev))) ++ >= (ssize_t) sizeof (struct inotify_event)) ++ { ++ /* Check which of the files changed. */ ++ for (size_t dbcnt = 0; dbcnt < lastdb; ++dbcnt) ++ if (!done[dbcnt] ++ && (inev.i.wd == dbs[dbcnt].inotify_descr ++ || (dbcnt == hstdb ++ && inev.i.wd == resolv_conf_descr))) ++ { ++ if (dbcnt == hstdb ++ && inev.i.wd == resolv_conf_descr) ++ res_init (); ++ ++ pthread_mutex_lock (&dbs[dbcnt].prune_lock); ++ dbs[dbcnt].clear_cache = 1; ++ pthread_mutex_unlock (&dbs[dbcnt].prune_lock); ++ pthread_cond_signal (&dbs[dbcnt].prune_cond); ++ ++ done[dbcnt] = true; ++ break; ++ } ++ } ++ ++ --n; ++ } ++ ++ first = 2; ++ } ++#endif ++ ++ for (size_t cnt = first; cnt < nused && n > 0; ++cnt) + if (conns[cnt].revents != 0) + { + fd_ready (conns[cnt].fd); +@@ -1778,6 +1915,18 @@ main_loop_epoll (int efd) + /* We cannot use epoll. */ + return; + ++#ifdef HAVE_INOTIFY ++ if (inotify_fd != -1) ++ { ++ ev.events = EPOLLRDNORM; ++ ev.data.fd = inotify_fd; ++ if (epoll_ctl (efd, EPOLL_CTL_ADD, inotify_fd, &ev) == -1) ++ /* We cannot use epoll. */ ++ return; ++ nused = 2; ++ } ++#endif ++ + while (1) + { + struct epoll_event revs[100]; +@@ -1814,6 +1963,32 @@ main_loop_epoll (int efd) + } + } + } ++#ifdef HAVE_INOTIFY ++ else if (revs[cnt].data.fd == inotify_fd) ++ { ++ union ++ { ++ struct inotify_event i; ++ char buf[100]; ++ } inev; ++ ++ while (TEMP_FAILURE_RETRY (read (inotify_fd, &inev, ++ sizeof (inev))) ++ >= (ssize_t) sizeof (struct inotify_event)) ++ { ++ /* Check which of the files changed. */ ++ for (size_t dbcnt = 0; dbcnt < lastdb; ++dbcnt) ++ if (inev.i.wd == dbs[dbcnt].inotify_descr) ++ { ++ pthread_mutex_trylock (&dbs[dbcnt].prune_lock); ++ dbs[dbcnt].clear_cache = 1; ++ pthread_mutex_unlock (&dbs[dbcnt].prune_lock); ++ pthread_cond_signal (&dbs[dbcnt].prune_cond); ++ break; ++ } ++ } ++ } ++#endif + else + { + /* Remove the descriptor from the epoll descriptor. */ +--- libc/nscd/grpcache.c 19 Apr 2008 16:42:32 -0000 1.51 ++++ libc/nscd/grpcache.c 12 Jun 2008 16:03:36 -0000 1.54 +@@ -146,10 +146,8 @@ cache_addgr (struct database_dyn *db, in + /* Now get the lock to safely insert the records. */ + pthread_rwlock_rdlock (&db->lock); + +- if (cache_add (req->type, &dataset->strdata, req->key_len, +- &dataset->head, true, db, owner) < 0) +- /* Ensure the data can be recovered. */ +- dataset->head.usable = false; ++ (void) cache_add (req->type, &dataset->strdata, req->key_len, ++ &dataset->head, true, db, owner, he == NULL); + + pthread_rwlock_unlock (&db->lock); + +@@ -192,7 +190,7 @@ cache_addgr (struct database_dyn *db, in + gr_mem_len_total += gr_mem_len[gr_mem_cnt]; + } + +- written = total = (sizeof (struct dataset) ++ written = total = (offsetof (struct dataset, strdata) + + gr_mem_cnt * sizeof (uint32_t) + + gr_name_len + gr_passwd_len + gr_mem_len_total); + +@@ -254,6 +252,9 @@ cache_addgr (struct database_dyn *db, in + char *key_copy = cp + key_offset; + assert (key_copy == (char *) rawmemchr (cp, '\0') + 1); + ++ assert (cp == dataset->strdata + total - offsetof (struct dataset, ++ strdata)); ++ + /* Now we can determine whether on refill we have to create a new + record or not. */ + if (he != NULL) +@@ -355,13 +356,8 @@ cache_addgr (struct database_dyn *db, in + if (req->type == GETGRBYGID) + { + if (cache_add (GETGRBYGID, cp, key_offset, &dataset->head, true, +- db, owner) < 0) +- { +- /* Could not allocate memory. Make sure the data gets +- discarded. */ +- dataset->head.usable = false; +- goto out; +- } ++ db, owner, he == NULL) < 0) ++ goto out; + + first = false; + } +@@ -369,13 +365,8 @@ cache_addgr (struct database_dyn *db, in + else if (strcmp (key_copy, gr_name) != 0) + { + if (cache_add (GETGRBYNAME, key_copy, key_len + 1, +- &dataset->head, true, db, owner) < 0) +- { +- /* Could not allocate memory. Make sure the data gets +- discarded. */ +- dataset->head.usable = false; +- goto out; +- } ++ &dataset->head, true, db, owner, he == NULL) < 0) ++ goto out; + + first = false; + } +@@ -384,17 +375,14 @@ cache_addgr (struct database_dyn *db, in + if ((req->type == GETGRBYNAME || db->propagate) + && __builtin_expect (cache_add (GETGRBYNAME, gr_name, + gr_name_len, +- &dataset->head, first, db, owner) ++ &dataset->head, first, db, owner, ++ he == NULL) + == 0, 1)) + { + if (req->type == GETGRBYNAME && db->propagate) + (void) cache_add (GETGRBYGID, cp, key_offset, &dataset->head, +- req->type != GETGRBYNAME, db, owner); ++ false, db, owner, false); + } +- else if (first) +- /* Could not allocate memory. Make sure the data gets +- discarded. */ +- dataset->head.usable = false; + + out: + pthread_rwlock_unlock (&db->lock); +--- libc/nscd/hstcache.c 19 Apr 2008 16:42:32 -0000 1.47 ++++ libc/nscd/hstcache.c 12 Jun 2008 04:51:51 -0000 1.50 +@@ -83,8 +83,7 @@ cache_addhst (struct database_dyn *db, i + struct hashentry *he, struct datahead *dh, int errval, + int32_t ttl) + { +- ssize_t total; +- ssize_t written; ++ bool all_written = true; + time_t t = time (NULL); + + /* We allocate all data in one memory block: the iov vector, +@@ -108,18 +107,17 @@ cache_addhst (struct database_dyn *db, i + if (reload_count != UINT_MAX) + /* Do not reset the value if we never not reload the record. */ + dh->nreloads = reload_count - 1; +- +- written = total = 0; + } + else + { + /* We have no data. This means we send the standard reply for this + case. */ +- written = total = sizeof (notfound); ++ ssize_t total = sizeof (notfound); + +- if (fd != -1) +- written = TEMP_FAILURE_RETRY (send (fd, ¬found, total, +- MSG_NOSIGNAL)); ++ if (fd != -1 && ++ TEMP_FAILURE_RETRY (send (fd, ¬found, total, ++ MSG_NOSIGNAL)) != total) ++ all_written = false; + + dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, + IDX_result_data); +@@ -155,10 +153,8 @@ cache_addhst (struct database_dyn *db, i + /* Now get the lock to safely insert the records. */ + pthread_rwlock_rdlock (&db->lock); + +- if (cache_add (req->type, &dataset->strdata, req->key_len, +- &dataset->head, true, db, owner) < 0) +- /* Ensure the data can be recovered. */ +- dataset->head.usable = false; ++ (void) cache_add (req->type, &dataset->strdata, req->key_len, ++ &dataset->head, true, db, owner, he == NULL); + + pthread_rwlock_unlock (&db->lock); + +@@ -183,6 +179,7 @@ cache_addhst (struct database_dyn *db, i + char *key_copy = NULL; + char *cp; + size_t cnt; ++ ssize_t total; + + /* Determine the number of aliases. */ + h_aliases_cnt = 0; +@@ -210,7 +207,6 @@ cache_addhst (struct database_dyn *db, i + + h_name_len + + h_aliases_cnt * sizeof (uint32_t) + + h_addr_list_cnt * hst->h_length); +- written = total; + + /* If we refill the cache, first assume the reconrd did not + change. Allocate memory on the cache since it is likely +@@ -262,6 +258,9 @@ cache_addhst (struct database_dyn *db, i + dataset->resp.h_addr_list_cnt = h_addr_list_cnt; + dataset->resp.error = NETDB_SUCCESS; + ++ /* Make sure there is no gap. */ ++ assert ((char *) (&dataset->resp.error + 1) == dataset->strdata); ++ + cp = dataset->strdata; + + cp = mempcpy (cp, hst->h_name, h_name_len); +@@ -288,6 +287,8 @@ cache_addhst (struct database_dyn *db, i + we explicitly add the name here. */ + key_copy = memcpy (cp, key, req->key_len); + ++ assert ((char *) &dataset->resp + dataset->head.recsize == cp); ++ + /* Now we can determine whether on refill we have to create a new + record or not. */ + if (he != NULL) +@@ -353,20 +354,27 @@ cache_addhst (struct database_dyn *db, i + <= (sizeof (struct database_pers_head) + + db->head->module * sizeof (ref_t) + + db->head->data_size)); +- written = sendfileall (fd, db->wr_fd, +- (char *) &dataset->resp +- - (char *) db->head, total); ++ ssize_t written = sendfileall (fd, db->wr_fd, ++ (char *) &dataset->resp ++ - (char *) db->head, ++ dataset->head.recsize); ++ if (written != dataset->head.recsize) ++ { + # ifndef __ASSUME_SENDFILE +- if (written == -1 && errno == ENOSYS) +- goto use_write; ++ if (written == -1 && errno == ENOSYS) ++ goto use_write; + # endif ++ all_written = false; ++ } + } + else + # ifndef __ASSUME_SENDFILE + use_write: + # endif + #endif +- written = writeall (fd, &dataset->resp, total); ++ if (writeall (fd, &dataset->resp, dataset->head.recsize) ++ != dataset->head.recsize) ++ all_written = false; + } + + /* Add the record to the database. But only if it has not been +@@ -409,17 +417,14 @@ cache_addhst (struct database_dyn *db, i + || req->type == GETHOSTBYADDR + || req->type == GETHOSTBYADDRv6); + +- if (cache_add (req->type, key_copy, req->key_len, +- &dataset->head, true, db, owner) < 0) +- /* Could not allocate memory. Make sure the +- data gets discarded. */ +- dataset->head.usable = false; ++ (void) cache_add (req->type, key_copy, req->key_len, ++ &dataset->head, true, db, owner, he == NULL); + + pthread_rwlock_unlock (&db->lock); + } + } + +- if (__builtin_expect (written != total, 0) && debug_level > 0) ++ if (__builtin_expect (!all_written, 0) && debug_level > 0) + { + char buf[256]; + dbg_log (_("short write in %s: %s"), __FUNCTION__, +--- libc/nscd/initgrcache.c 19 Apr 2008 16:42:32 -0000 1.13 ++++ libc/nscd/initgrcache.c 12 Jun 2008 16:04:05 -0000 1.16 +@@ -230,10 +230,8 @@ addinitgroupsX (struct database_dyn *db, + /* Now get the lock to safely insert the records. */ + pthread_rwlock_rdlock (&db->lock); + +- if (cache_add (req->type, key_copy, req->key_len, +- &dataset->head, true, db, uid) < 0) +- /* Ensure the data can be recovered. */ +- dataset->head.usable = false; ++ (void) cache_add (req->type, key_copy, req->key_len, ++ &dataset->head, true, db, uid, he == NULL); + + pthread_rwlock_unlock (&db->lock); + +@@ -248,7 +246,8 @@ addinitgroupsX (struct database_dyn *db, + else + { + +- written = total = sizeof (struct dataset) + start * sizeof (int32_t); ++ written = total = (offsetof (struct dataset, strdata) ++ + start * sizeof (int32_t)); + + /* If we refill the cache, first assume the reconrd did not + change. Allocate memory on the cache since it is likely +@@ -309,6 +308,9 @@ addinitgroupsX (struct database_dyn *db, + /* Finally the user name. */ + memcpy (cp, key, req->key_len); + ++ assert (cp == dataset->strdata + total - offsetof (struct dataset, ++ strdata)); ++ + /* Now we can determine whether on refill we have to create a new + record or not. */ + if (he != NULL) +@@ -399,11 +401,8 @@ addinitgroupsX (struct database_dyn *db, + /* Now get the lock to safely insert the records. */ + pthread_rwlock_rdlock (&db->lock); + +- if (cache_add (INITGROUPS, cp, req->key_len, &dataset->head, true, +- db, uid) < 0) +- /* Could not allocate memory. Make sure the data gets +- discarded. */ +- dataset->head.usable = false; ++ (void) cache_add (INITGROUPS, cp, req->key_len, &dataset->head, true, ++ db, uid, he == NULL); + + pthread_rwlock_unlock (&db->lock); + } +--- libc/nscd/mem.c 19 Apr 2008 16:41:32 -0000 1.13 ++++ libc/nscd/mem.c 12 Jun 2008 04:52:27 -0000 1.19 +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -79,6 +80,7 @@ static void + markrange (BITMAP_T *mark, ref_t start, size_t len) + { + /* Adjust parameters for block alignment. */ ++ assert ((start & BLOCK_ALIGN_M1) == 0); + start /= BLOCK_ALIGN; + len = (len + BLOCK_ALIGN_M1) / BLOCK_ALIGN; + +@@ -93,7 +95,7 @@ markrange (BITMAP_T *mark, ref_t start, + return; + } + +- mark[elem++] |= 0xff << (start % BITS); ++ mark[elem++] |= ALLBITS << (start % BITS); + len -= BITS - (start % BITS); + } + +@@ -130,14 +132,14 @@ gc (struct database_dyn *db) + size_t stack_used = sizeof (bool) * db->head->module; + if (__builtin_expect (stack_used > MAX_STACK_USE, 0)) + stack_used = 0; +- size_t memory_needed = ((db->head->first_free / BLOCK_ALIGN + BITS - 1) +- / BITS) * sizeof (BITMAP_T); +- if (memory_needed <= MAX_STACK_USE) ++ size_t nmark = (db->head->first_free / BLOCK_ALIGN + BITS - 1) / BITS; ++ size_t memory_needed = nmark * sizeof (BITMAP_T); ++ if (stack_used + memory_needed <= MAX_STACK_USE) + { + mark = (BITMAP_T *) alloca (memory_needed); + mark_use_malloc = false; + memset (mark, '\0', memory_needed); +- stack_used = memory_needed; ++ stack_used += memory_needed; + } + else + { +@@ -156,6 +158,7 @@ gc (struct database_dyn *db) + he = alloca (db->head->nentries * sizeof (struct hashentry *)); + he_data = alloca (db->head->nentries * sizeof (struct hashentry *)); + he_use_malloc = false; ++ stack_used += memory_needed; + } + else + { +@@ -212,11 +215,12 @@ gc (struct database_dyn *db) + for (enum in_flight idx = IDX_result_data; + idx < IDX_last && mrunp->block[idx].dbidx == db - dbs; ++idx) + { +- assert ((char *) mrunp->block[idx].blockaddr > db->data); +- assert ((char *) mrunp->block[idx].blockaddr +- + mrunp->block[0].blocklen <= db->data + db->memsize); +- markrange (mark, (char *) mrunp->block[idx].blockaddr - db->data, +- mrunp->block[idx].blocklen); ++ assert (mrunp->block[idx].blockoff >= 0); ++ assert (mrunp->block[idx].blocklen < db->memsize); ++ assert (mrunp->block[idx].blockoff ++ + mrunp->block[0].blocklen <= db->memsize); ++ markrange (mark, mrunp->block[idx].blockoff, ++ mrunp->block[idx].blocklen); + } + + mrunp = mrunp->next; +@@ -231,8 +235,13 @@ gc (struct database_dyn *db) + /* Sort the entries by their address. */ + qsort (he, cnt, sizeof (struct hashentry *), sort_he); + ++#define obstack_chunk_alloc xmalloc ++#define obstack_chunk_free free ++ struct obstack ob; ++ obstack_init (&ob); ++ + /* Determine the highest used address. */ +- size_t high = sizeof (mark); ++ size_t high = nmark; + while (high > 0 && mark[high - 1] == 0) + --high; + +@@ -363,8 +372,14 @@ gc (struct database_dyn *db) + displacement. */ + ref_t disp = off_alloc - off_free; + +- struct moveinfo *new_move +- = (struct moveinfo *) alloca (sizeof (*new_move)); ++ struct moveinfo *new_move; ++ if (stack_used + sizeof (*new_move) <= MAX_STACK_USE) ++ { ++ new_move = alloca (sizeof (*new_move)); ++ stack_used += sizeof (*new_move); ++ } ++ else ++ new_move = obstack_alloc (&ob, sizeof (*new_move)); + new_move->from = db->data + off_alloc; + new_move->to = db->data + off_free; + new_move->size = off_allocend - off_alloc; +@@ -524,6 +539,8 @@ gc (struct database_dyn *db) + free (he); + if (mark_use_malloc) + free (mark); ++ ++ obstack_free (&ob, NULL); + } + + +@@ -589,15 +606,16 @@ mempool_alloc (struct database_dyn *db, + } + else + { +- db->head->first_free += len; +- +- db->last_alloc_failed = false; +- + /* Remember that we have allocated this memory. */ + assert (idx >= 0 && idx < IDX_last); + mem_in_flight.block[idx].dbidx = db - dbs; + mem_in_flight.block[idx].blocklen = len; +- mem_in_flight.block[idx].blockaddr = res; ++ mem_in_flight.block[idx].blockoff = db->head->first_free; ++ ++ db->head->first_free += len; ++ ++ db->last_alloc_failed = false; ++ + } + + pthread_mutex_unlock (&db->memlock); +--- libc/nscd/nscd.h 22 Apr 2008 15:53:29 -0000 1.35 ++++ libc/nscd/nscd.h 12 Jun 2008 22:39:21 -0000 1.38 +@@ -73,6 +73,8 @@ struct database_dyn + + int enabled; + int check_file; ++ int inotify_descr; ++ int clear_cache; + int persistent; + int shared; + int propagate; +@@ -197,7 +199,7 @@ extern __thread struct mem_in_flight + { + int dbidx; + nscd_ssize_t blocklen; +- void *blockaddr; ++ nscd_ssize_t blockoff; + } block[IDX_last]; + + struct mem_in_flight *next; +@@ -231,7 +233,8 @@ extern struct datahead *cache_search (re + uid_t owner); + extern int cache_add (int type, const void *key, size_t len, + struct datahead *packet, bool first, +- struct database_dyn *table, uid_t owner); ++ struct database_dyn *table, uid_t owner, ++ bool prune_wakeup); + extern time_t prune_cache (struct database_dyn *table, time_t now, int fd); + + /* pwdcache.c */ +--- libc/nscd/pwdcache.c 19 Apr 2008 16:42:32 -0000 1.49 ++++ libc/nscd/pwdcache.c 12 Jun 2008 16:04:22 -0000 1.52 +@@ -153,11 +153,8 @@ cache_addpw (struct database_dyn *db, in + /* Now get the lock to safely insert the records. */ + pthread_rwlock_rdlock (&db->lock); + +- if (cache_add (req->type, key_copy, req->key_len, +- &dataset->head, true, db, owner) < 0) +- /* Ensure the data can be recovered. */ +- dataset->head.usable = false; +- ++ (void) cache_add (req->type, key_copy, req->key_len, ++ &dataset->head, true, db, owner, he == NULL); + + pthread_rwlock_unlock (&db->lock); + +@@ -188,7 +185,8 @@ cache_addpw (struct database_dyn *db, in + n = snprintf (buf, buf_len, "%d%c%n%s", pwd->pw_uid, '\0', + &key_offset, (char *) key) + 1; + +- written = total = (sizeof (struct dataset) + pw_name_len + pw_passwd_len ++ written = total = (offsetof (struct dataset, strdata) ++ + pw_name_len + pw_passwd_len + + pw_gecos_len + pw_dir_len + pw_shell_len); + + /* If we refill the cache, first assume the reconrd did not +@@ -250,16 +248,28 @@ cache_addpw (struct database_dyn *db, in + char *key_copy = cp + key_offset; + assert (key_copy == (char *) rawmemchr (cp, '\0') + 1); + ++ assert (cp == dataset->strdata + total - offsetof (struct dataset, ++ strdata)); ++ + /* Now we can determine whether on refill we have to create a new + record or not. */ + if (he != NULL) + { + assert (fd == -1); + +- if (total + n == dh->allocsize +- && total - offsetof (struct dataset, resp) == dh->recsize ++#if 0 ++ if (dataset->head.datasize == dh->allocsize ++ && dataset->head.recsize == dh->recsize + && memcmp (&dataset->resp, dh->data, + dh->allocsize - offsetof (struct dataset, resp)) == 0) ++#else ++ if (dataset->head.allocsize != dh->allocsize) ++ goto nnn; ++ if (dataset->head.recsize != dh->recsize) ++ goto nnn; ++ if(memcmp (&dataset->resp, dh->data, ++ dh->allocsize - offsetof (struct dataset, resp)) == 0) ++#endif + { + /* The data has not changed. We will just bump the + timeout value. Note that the new record has been +@@ -269,6 +279,7 @@ cache_addpw (struct database_dyn *db, in + } + else + { ++ nnn:; + /* We have to create a new record. Just allocate + appropriate memory and copy it. */ + struct dataset *newp +@@ -351,13 +362,8 @@ cache_addpw (struct database_dyn *db, in + if (req->type == GETPWBYUID) + { + if (cache_add (GETPWBYUID, cp, key_offset, &dataset->head, true, +- db, owner) < 0) +- { +- /* Could not allocate memory. Make sure the data gets +- discarded. */ +- dataset->head.usable = false; +- goto out; +- } ++ db, owner, he == NULL) < 0) ++ goto out; + + first = false; + } +@@ -365,13 +371,8 @@ cache_addpw (struct database_dyn *db, in + else if (strcmp (key_copy, dataset->strdata) != 0) + { + if (cache_add (GETPWBYNAME, key_copy, key_len + 1, +- &dataset->head, true, db, owner) < 0) +- { +- /* Could not allocate memory. Make sure the data gets +- discarded. */ +- dataset->head.usable = false; +- goto out; +- } ++ &dataset->head, true, db, owner, he == NULL) < 0) ++ goto out; + + first = false; + } +@@ -380,16 +381,13 @@ cache_addpw (struct database_dyn *db, in + if ((req->type == GETPWBYNAME || db->propagate) + && __builtin_expect (cache_add (GETPWBYNAME, dataset->strdata, + pw_name_len, &dataset->head, +- first, db, owner) == 0, 1)) ++ first, db, owner, he == NULL) ++ == 0, 1)) + { + if (req->type == GETPWBYNAME && db->propagate) + (void) cache_add (GETPWBYUID, cp, key_offset, &dataset->head, +- req->type != GETPWBYNAME, db, owner); ++ false, db, owner, false); + } +- else if (first) +- /* Could not allocate memory. Make sure the data gets +- discarded. */ +- dataset->head.usable = false; + + out: + pthread_rwlock_unlock (&db->lock); +--- libc/nscd/servicescache.c 19 Apr 2008 16:42:32 -0000 1.6 ++++ libc/nscd/servicescache.c 12 Jun 2008 16:04:37 -0000 1.9 +@@ -136,10 +136,8 @@ cache_addserv (struct database_dyn *db, + /* Now get the lock to safely insert the records. */ + pthread_rwlock_rdlock (&db->lock); + +- if (cache_add (req->type, &dataset->strdata, req->key_len, +- &dataset->head, true, db, owner) < 0) +- /* Ensure the data can be recovered. */ +- dataset->head.usable = false; ++ (void) cache_add (req->type, &dataset->strdata, req->key_len, ++ &dataset->head, true, db, owner, he == NULL); + + pthread_rwlock_unlock (&db->lock); + +@@ -175,7 +173,7 @@ cache_addserv (struct database_dyn *db, + total += s_aliases_len[cnt]; + } + +- total += (sizeof (struct dataset) ++ total += (offsetof (struct dataset, strdata) + + s_name_len + + s_proto_len + + s_aliases_cnt * sizeof (uint32_t)); +@@ -332,11 +330,8 @@ cache_addserv (struct database_dyn *db, + /* Now get the lock to safely insert the records. */ + pthread_rwlock_rdlock (&db->lock); + +- if (cache_add (req->type, key_copy, req->key_len, +- &dataset->head, true, db, owner) < 0) +- /* Could not allocate memory. Make sure the +- data gets discarded. */ +- dataset->head.usable = false; ++ (void) cache_add (req->type, key_copy, req->key_len, ++ &dataset->head, true, db, owner, he == NULL); + + pthread_rwlock_unlock (&db->lock); + } +--- libc/sysdeps/unix/sysv/linux/Makefile 10 Feb 2008 19:43:32 -0000 1.159 ++++ libc/sysdeps/unix/sysv/linux/Makefile 12 Jun 2008 22:40:01 -0000 1.160 +@@ -154,7 +154,7 @@ CFLAGS-mq_receive.c += -fexceptions + endif + + ifeq ($(subdir),nscd) +-CFLAGS-connections.c += -DHAVE_EPOLL -DHAVE_SENDFILE ++CFLAGS-connections.c += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY + CFLAGS-pwdcache.c += -DHAVE_SENDFILE + CFLAGS-grpcache.c += -DHAVE_SENDFILE + CFLAGS-hstcache.c += -DHAVE_SENDFILE diff --git a/glibc-res-hconf-init.patch b/glibc-res-hconf-init.patch new file mode 100644 index 0000000..7335d83 --- /dev/null +++ b/glibc-res-hconf-init.patch @@ -0,0 +1,147 @@ +2008-06-13 Ulrich Drepper + + * sysdeps/posix/getaddrinfo.c: Move _res_hconf_init call to a + better place so it is not called when nscd is used. + +2008-05-14 Ulrich Drepper + + * sysdeps/posix/getaddrinfo.c (getaddrinfo): Call _res_hconf_init + if necessary. + * posix/tst-rfc3484.c: Add dummy definition of _res_hconf_init. + * posix/tst-rfc3484-2.c: Likewise. + * posix/tst-rfc3484-3.c: Likewise. + +--- libc/sysdeps/posix/getaddrinfo.c 10 May 2008 23:27:32 -0000 1.126 ++++ libc/sysdeps/posix/getaddrinfo.c 14 May 2008 22:46:55 -0000 1.131 +@@ -61,6 +61,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI + #include + #include + #include ++#include + + #ifdef HAVE_LIBIDN + extern int __idna_to_ascii_lz (const char *input, char **output, int flags); +@@ -684,6 +684,9 @@ gaih_inet (const char *name, const struc + "dns [!UNAVAIL=return] files", + &nip); + ++ /* Initialize configurations. */ ++ if (__builtin_expect (!_res_hconf.initialized, 0)) ++ _res_hconf_init (); + if (__res_maybe_init (&_res, 0) == -1) + no_more = 1; + +--- libc/posix/tst-rfc3484-2.c 10 Jan 2008 20:00:37 -0000 1.11 ++++ libc/posix/tst-rfc3484-2.c 15 May 2008 03:06:05 -0000 1.12 +@@ -18,24 +18,35 @@ __check_pf (bool *p1, bool *p2, struct i + *in6ai = NULL; + *in6ailen = 0; + } ++ + void + attribute_hidden + __check_native (uint32_t a1_index, int *a1_native, + uint32_t a2_index, int *a2_native) + { + } ++ + int ++attribute_hidden + __idna_to_ascii_lz (const char *input, char **output, int flags) + { + return 0; + } ++ + int ++attribute_hidden + __idna_to_unicode_lzlz (const char *input, char **output, int flags) + { + *output = NULL; + return 0; + } + ++void ++attribute_hidden ++_res_hconf_init (void) ++{ ++} ++ + #include "../sysdeps/posix/getaddrinfo.c" + + service_user *__nss_hosts_database attribute_hidden; +--- libc/posix/tst-rfc3484-3.c 10 Jan 2008 20:00:37 -0000 1.2 ++++ libc/posix/tst-rfc3484-3.c 15 May 2008 03:06:05 -0000 1.3 +@@ -18,24 +18,35 @@ __check_pf (bool *p1, bool *p2, struct i + *in6ai = NULL; + *in6ailen = 0; + } ++ + void + attribute_hidden + __check_native (uint32_t a1_index, int *a1_native, + uint32_t a2_index, int *a2_native) + { + } ++ + int ++attribute_hidden + __idna_to_ascii_lz (const char *input, char **output, int flags) + { + return 0; + } ++ + int ++attribute_hidden + __idna_to_unicode_lzlz (const char *input, char **output, int flags) + { + *output = NULL; + return 0; + } + ++void ++attribute_hidden ++_res_hconf_init (void) ++{ ++} ++ + #include "../sysdeps/posix/getaddrinfo.c" + + service_user *__nss_hosts_database attribute_hidden; +--- libc/posix/tst-rfc3484.c 10 Jan 2008 20:00:37 -0000 1.11 ++++ libc/posix/tst-rfc3484.c 15 May 2008 03:06:05 -0000 1.12 +@@ -18,24 +18,35 @@ __check_pf (bool *p1, bool *p2, struct i + *in6ai = NULL; + *in6ailen = 0; + } ++ + void + attribute_hidden + __check_native (uint32_t a1_index, int *a1_native, + uint32_t a2_index, int *a2_native) + { + } ++ + int ++attribute_hidden + __idna_to_ascii_lz (const char *input, char **output, int flags) + { + return 0; + } ++ + int ++attribute_hidden + __idna_to_unicode_lzlz (const char *input, char **output, int flags) + { + *output = NULL; + return 0; + } + ++void ++attribute_hidden ++_res_hconf_init (void) ++{ ++} ++ + #include "../sysdeps/posix/getaddrinfo.c" + + service_user *__nss_hosts_database attribute_hidden; diff --git a/glibc-rh446406.patch b/glibc-rh446406.patch new file mode 100644 index 0000000..f34d3da --- /dev/null +++ b/glibc-rh446406.patch @@ -0,0 +1,41 @@ +2008-06-05 Jakub Jelinek + + * misc/regexp.h (compile): Use __REPB_PREFIX macro. + Avoid segfault if first GETC returns eof/'\0'/'\n'. + +--- libc/misc/regexp.h 19 May 2004 16:52:44 -0000 1.12 ++++ libc/misc/regexp.h 6 Jun 2008 19:23:39 -0000 1.13 +@@ -129,8 +130,9 @@ compile (char *__restrict instring, char + __expr_ptr = (regex_t *) expbuf; + /* The remaining space in the buffer can be used for the compiled + pattern. */ +- __expr_ptr->buffer = expbuf + sizeof (regex_t); +- __expr_ptr->allocated = endbuf - (char *) __expr_ptr->buffer; ++ __expr_ptr->__REPB_PREFIX (buffer) = expbuf + sizeof (regex_t); ++ __expr_ptr->__REPB_PREFIX (allocated) ++ = endbuf - (char *) __expr_ptr->__REPB_PREFIX (buffer); + + while ((__ch = (GETC ())) != eof) + { +@@ -162,7 +164,10 @@ compile (char *__restrict instring, char + } + __input_buffer[__current_size++] = __ch; + } +- __input_buffer[__current_size++] = '\0'; ++ if (__current_size) ++ __input_buffer[__current_size++] = '\0'; ++ else ++ __input_buffer = ""; + + /* Now compile the pattern. */ + __error = regcomp (__expr_ptr, __input_buffer, REG_NEWLINE); +@@ -198,7 +203,8 @@ compile (char *__restrict instring, char + } + + /* Everything is ok. */ +- RETURN ((char *) (__expr_ptr->buffer + __expr_ptr->used)); ++ RETURN ((char *) (__expr_ptr->__REPB_PREFIX (buffer) ++ + __expr_ptr->__REPB_PREFIX (used))); + } + #endif + diff --git a/glibc-rh449358.patch b/glibc-rh449358.patch new file mode 100644 index 0000000..3584588 --- /dev/null +++ b/glibc-rh449358.patch @@ -0,0 +1,17 @@ +2008-06-03 Jakub Jelinek + + * nscd/nscd_getserv_r.c (__nscd_getservbyport_r): Pass cp + instead of portstr to nscd_getserv_r. Patch by + Roman Kagan . + +--- libc/nscd/nscd_getserv_r.c 13 Oct 2007 23:04:28 -0000 1.5 ++++ libc/nscd/nscd_getserv_r.c 3 Jun 2008 10:22:52 -0000 1.6 +@@ -53,7 +53,7 @@ __nscd_getservbyport_r (int port, const + portstr[sizeof (portstr) - 1] = '\0'; + char *cp = _itoa_word (port, portstr + sizeof (portstr) - 1, 10, 0); + +- return nscd_getserv_r (portstr, portstr + sizeof (portstr) - cp, proto, ++ return nscd_getserv_r (cp, portstr + sizeof (portstr) - cp, proto, + GETSERVBYPORT, result_buf, buf, buflen, result); + } + diff --git a/glibc-rh450790.patch b/glibc-rh450790.patch new file mode 100644 index 0000000..dc2c4c8 --- /dev/null +++ b/glibc-rh450790.patch @@ -0,0 +1,82 @@ +2008-06-12 Jakub Jelinek + + * sysdeps/powerpc/powerpc64/fpu/s_llround.S (__llround): Avoid using + cr[34] registers. + * sysdeps/powerpc/powerpc64/fpu/s_llroundf.S (__llroundf): Likewise. + * sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S (__llround): + Likewise. + * sysdeps/powerpc/powerpc32/fpu/s_lround.S (__lround): Avoid using cr3 + register. + +--- libc/sysdeps/powerpc/powerpc32/fpu/s_lround.S 11 Apr 2008 19:30:46 -0000 1.8 ++++ libc/sysdeps/powerpc/powerpc32/fpu/s_lround.S 13 Jun 2008 01:18:11 -0000 1.9 +@@ -65,10 +65,10 @@ ENTRY (__lround) + fabs fp2, fp1 /* Get the absolute value of x. */ + fsub fp12,fp10,fp10 /* Compute 0.0. */ + fcmpu cr6, fp2, fp10 /* if |x| < 0.5 */ +- fcmpu cr3, fp1, fp12 /* x is negative? x < 0.0 */ ++ fcmpu cr7, fp1, fp12 /* x is negative? x < 0.0 */ + blt- cr6,.Lretzero + fadd fp3,fp2,fp10 /* |x|+=0.5 bias to prepare to round. */ +- bge cr3,.Lconvert /* x is positive so don't negate x. */ ++ bge cr7,.Lconvert /* x is positive so don't negate x. */ + fnabs fp3,fp3 /* -(|x|+=0.5) */ + .Lconvert: + fctiwz fp4,fp3 /* Convert to Integer word lround toward 0. */ +--- libc/sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S 11 Apr 2008 19:31:08 -0000 1.2 ++++ libc/sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S 13 Jun 2008 01:18:11 -0000 1.3 +@@ -75,12 +75,12 @@ ENTRY (__llround) + fabs fp2,fp1 /* Get the absolute value of x. */ + fsub fp12,fp10,fp10 /* Compute 0.0 into fpr12. */ + fcmpu cr6,fp2,fp10 /* if |x| < 0.5 */ +- fcmpu cr4,fp2,fp9 /* if |x| >= 2^52 */ +- fcmpu cr3,fp1,fp12 /* x is negative? x < 0.0 */ ++ fcmpu cr7,fp2,fp9 /* if |x| >= 2^52 */ ++ fcmpu cr1,fp1,fp12 /* x is negative? x < 0.0 */ + blt- cr6,.Lretzero /* 0.5 > x < -0.5 so just return 0. */ +- bge- cr4,.Lnobias /* 2^52 > x < -2^52 just convert with no bias. */ ++ bge- cr7,.Lnobias /* 2^52 > x < -2^52 just convert with no bias. */ + fadd fp3,fp2,fp10 /* |x|+=0.5 bias to prepare to round. */ +- bge cr3,.Lconvert /* x is positive so don't negate x. */ ++ bge cr1,.Lconvert /* x is positive so don't negate x. */ + fnabs fp3,fp3 /* -(|x|+=0.5) */ + .Lconvert: + fctidz fp4,fp3 /* Convert to Integer double word round toward 0. */ +--- libc/sysdeps/powerpc/powerpc64/fpu/s_llround.S 11 Apr 2008 19:31:51 -0000 1.4 ++++ libc/sysdeps/powerpc/powerpc64/fpu/s_llround.S 13 Jun 2008 01:18:11 -0000 1.5 +@@ -52,12 +52,12 @@ ENTRY (__llround) + fabs fp2,fp1 /* Get the absolute value of x. */ + fsub fp12,fp10,fp10 /* Compute 0.0 into fp12. */ + fcmpu cr6,fp2,fp10 /* if |x| < 0.5 */ +- fcmpu cr4,fp2,fp9 /* if |x| >= 2^52 */ +- fcmpu cr3,fp1,fp12 /* x is negative? x < 0.0 */ ++ fcmpu cr7,fp2,fp9 /* if |x| >= 2^52 */ ++ fcmpu cr1,fp1,fp12 /* x is negative? x < 0.0 */ + blt- cr6,.Lretzero /* 0.5 > x < -0.5 so just return 0. */ +- bge- cr4,.Lnobias /* 2^52 > x < -2^52 just convert with no bias. */ ++ bge- cr7,.Lnobias /* 2^52 > x < -2^52 just convert with no bias. */ + fadd fp3,fp2,fp10 /* |x|+=0.5 bias to prepare to round. */ +- bge cr3,.Lconvert /* x is positive so don't negate x. */ ++ bge cr1,.Lconvert /* x is positive so don't negate x. */ + fnabs fp3,fp3 /* -(|x|+=0.5) */ + .Lconvert: + fctidz fp4,fp3 /* Convert to Integer double word round toward 0. */ +--- libc/sysdeps/powerpc/powerpc64/fpu/s_llroundf.S 11 Apr 2008 19:31:51 -0000 1.4 ++++ libc/sysdeps/powerpc/powerpc64/fpu/s_llroundf.S 13 Jun 2008 01:18:11 -0000 1.5 +@@ -51,12 +51,12 @@ ENTRY (__llroundf) + fabs fp2,fp1 /* Get the absolute value of x. */ + fsub fp12,fp10,fp10 /* Compute 0.0 into fp12. */ + fcmpu cr6,fp2,fp10 /* if |x| < 0.5 */ +- fcmpu cr4,fp2,fp9 /* if |x| >= 2^23 */ +- fcmpu cr3,fp1,fp12 /* x is negative? x < 0.0 */ ++ fcmpu cr7,fp2,fp9 /* if |x| >= 2^23 */ ++ fcmpu cr1,fp1,fp12 /* x is negative? x < 0.0 */ + blt- cr6,.Lretzero /* 0.5 > x < -0.5 so just return 0. */ +- bge- cr4,.Lnobias /* 2^23 > x < -2^23 just convert with no bias. */ ++ bge- cr7,.Lnobias /* 2^23 > x < -2^23 just convert with no bias. */ + fadd fp3,fp2,fp10 /* |x|+=0.5 bias to prepare to round. */ +- bge cr3,.Lconvert /* x is positive so don't negate x. */ ++ bge cr1,.Lconvert /* x is positive so don't negate x. */ + fnabs fp3,fp3 /* -(|x|+=0.5) */ + .Lconvert: + fctidz fp4,fp3 /* Convert to Integer double word round toward 0. */ diff --git a/glibc-rwlock-pshared.patch b/glibc-rwlock-pshared.patch new file mode 100644 index 0000000..7bf08ac --- /dev/null +++ b/glibc-rwlock-pshared.patch @@ -0,0 +1,195 @@ +2008-05-10 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Access + __pshared correctly. + * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S: + Likewise. + * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S: + Likewise. + * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: + Likewise. + * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: + Likewise. + Reported by Clemens Kolbitsch . + +--- libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S 14 Aug 2007 02:24:49 -0000 1.15 ++++ libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S 11 May 2008 05:40:33 -0000 1.16 +@@ -122,7 +122,7 @@ __pthread_rwlock_rdlock: + #else + leal MUTEX(%ebx), %edx + #endif +- movl PSHARED(%ebx), %ecx ++ movzbl PSHARED(%ebx), %ecx + call __lll_lock_wait + jmp 2b + +@@ -138,7 +138,7 @@ __pthread_rwlock_rdlock: + #else + leal MUTEX(%ebx), %eax + #endif +- movl PSHARED(%ebx), %ecx ++ movzbl PSHARED(%ebx), %ecx + call __lll_unlock_wake + jmp 7b + +@@ -158,7 +158,7 @@ __pthread_rwlock_rdlock: + #else + leal MUTEX(%ebx), %eax + #endif +- movl PSHARED(%ebx), %ecx ++ movzbl PSHARED(%ebx), %ecx + call __lll_unlock_wake + jmp 11b + +@@ -168,7 +168,7 @@ __pthread_rwlock_rdlock: + #else + leal MUTEX(%ebx), %edx + #endif +- movl PSHARED(%ebx), %ecx ++ movzbl PSHARED(%ebx), %ecx + call __lll_lock_wait + jmp 13b + .size __pthread_rwlock_rdlock,.-__pthread_rwlock_rdlock +--- libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S 14 Aug 2007 02:25:44 -0000 1.16 ++++ libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S 11 May 2008 05:40:33 -0000 1.17 +@@ -162,7 +162,7 @@ pthread_rwlock_timedrdlock: + #else + leal MUTEX(%ebp), %edx + #endif +- movl PSHARED(%ebp), %ecx ++ movzbl PSHARED(%ebp), %ecx + call __lll_lock_wait + jmp 2b + +@@ -177,7 +177,7 @@ pthread_rwlock_timedrdlock: + #else + leal MUTEX(%ebp), %eax + #endif +- movl PSHARED(%ebp), %ecx ++ movzbl PSHARED(%ebp), %ecx + call __lll_unlock_wake + jmp 7b + +@@ -197,7 +197,7 @@ pthread_rwlock_timedrdlock: + #else + leal MUTEX(%ebp), %eax + #endif +- movl PSHARED(%ebp), %ecx ++ movzbl PSHARED(%ebp), %ecx + call __lll_unlock_wake + jmp 11b + +@@ -207,7 +207,7 @@ pthread_rwlock_timedrdlock: + #else + leal MUTEX(%ebp), %edx + #endif +- movl PSHARED(%ebp), %ecx ++ movzbl PSHARED(%ebp), %ecx + call __lll_lock_wait + jmp 13b + +--- libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S 14 Aug 2007 02:24:58 -0000 1.17 ++++ libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S 11 May 2008 05:40:33 -0000 1.18 +@@ -160,7 +160,7 @@ pthread_rwlock_timedwrlock: + #else + leal MUTEX(%ebp), %edx + #endif +- movl PSHARED(%ebp), %ecx ++ movzbl PSHARED(%ebp), %ecx + call __lll_lock_wait + jmp 2b + +@@ -175,7 +175,7 @@ pthread_rwlock_timedwrlock: + #else + leal MUTEX(%ebp), %eax + #endif +- movl PSHARED(%ebp), %ecx ++ movzbl PSHARED(%ebp), %ecx + call __lll_unlock_wake + jmp 7b + +@@ -190,7 +190,7 @@ pthread_rwlock_timedwrlock: + #else + leal MUTEX(%ebp), %eax + #endif +- movl PSHARED(%ebp), %ecx ++ movzbl PSHARED(%ebp), %ecx + call __lll_unlock_wake + jmp 11b + +@@ -200,7 +200,7 @@ pthread_rwlock_timedwrlock: + #else + leal MUTEX(%ebp), %edx + #endif +- movl PSHARED(%ebp), %ecx ++ movzbl PSHARED(%ebp), %ecx + call __lll_lock_wait + jmp 13b + +--- libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S 14 Aug 2007 02:25:06 -0000 1.13 ++++ libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S 11 May 2008 05:40:33 -0000 1.14 +@@ -110,7 +110,7 @@ __pthread_rwlock_unlock: + #else + leal MUTEX(%edi), %edx + #endif +- movl PSHARED(%edi), %ecx ++ movzbl PSHARED(%edi), %ecx + call __lll_lock_wait + jmp 2b + +@@ -120,7 +120,7 @@ __pthread_rwlock_unlock: + #else + leal MUTEX(%edi), %eax + #endif +- movl PSHARED(%edi), %ecx ++ movzbl PSHARED(%edi), %ecx + call __lll_unlock_wake + jmp 4b + +@@ -130,7 +130,7 @@ __pthread_rwlock_unlock: + #else + leal MUTEX(%edi), %eax + #endif +- movl PSHARED(%edi), %ecx ++ movzbl PSHARED(%edi), %ecx + call __lll_unlock_wake + jmp 8b + +--- libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S 14 Aug 2007 02:25:27 -0000 1.15 ++++ libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S 11 May 2008 05:40:33 -0000 1.16 +@@ -120,7 +120,7 @@ __pthread_rwlock_wrlock: + #else + leal MUTEX(%ebx), %edx + #endif +- movl PSHARED(%ebx), %ecx ++ movzbl PSHARED(%ebx), %ecx + call __lll_lock_wait + jmp 2b + +@@ -135,7 +135,7 @@ __pthread_rwlock_wrlock: + #else + leal MUTEX(%ebx), %eax + #endif +- movl PSHARED(%ebx), %ecx ++ movzbl PSHARED(%ebx), %ecx + call __lll_unlock_wake + jmp 7b + +@@ -149,7 +149,7 @@ __pthread_rwlock_wrlock: + #else + leal MUTEX(%ebx), %eax + #endif +- movl PSHARED(%ebx), %ecx ++ movzbl PSHARED(%ebx), %ecx + call __lll_unlock_wake + jmp 11b + +@@ -159,7 +159,7 @@ __pthread_rwlock_wrlock: + #else + leal MUTEX(%ebx), %edx + #endif +- movl PSHARED(%ebx), %ecx ++ movzbl PSHARED(%ebx), %ecx + call __lll_lock_wait + jmp 13b + .size __pthread_rwlock_wrlock,.-__pthread_rwlock_wrlock diff --git a/glibc-sparc.patch b/glibc-sparc.patch new file mode 100644 index 0000000..456a19c --- /dev/null +++ b/glibc-sparc.patch @@ -0,0 +1,1003 @@ +2008-05-08 David S. Miller + + * sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S: Use + HIDDEN_JUMPTARGET. + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h + (__SYSCALL_CLOBBERS): Remove %g* registers. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h + (__SYSCALL_CLOBBERS): Likewise. + +2008-05-21 Jakub Jelinek + + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h + (CALL_ERRNO_LOCATION): Define. + (__SYSCALL_STRING, __CLONE_SYSCALL_STRING): Use it. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h + (CALL_ERRNO_LOCATION): Define. + (__SYSCALL_STRING, __CLONE_SYSCALL_STRING): Use it. + * sysdeps/unix/sysv/linux/sparc/sparc64/brk.S (__brk): Use + HIDDEN_JUMPTARGET for __errno_location call in libc.so. + +2008-05-20 Jakub Jelinek + + * sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h + (FIRST_FRAME_POINTER): Define. + +2008-05-19 Jakub Jelinek + + * elf/soinit.c (__EH_FRAME_BEGIN__): Remove. + +2008-05-09 David S. Miller + + * sysdeps/sparc/sparc64/backtrace.c: New file. + +2008-05-14 David S. Miller + + * sysdeps/sparc/machine-gmon.h: New file. + * sysdeps/sparc/sparc-mcount.S: Likewise. + * sysdeps/sparc/Makefile: Add sparc-mcount target to + sysdep_routines in gmon directory. + +2008-05-08 David S. Miller + + * misc/truncate64.c (truncate64): Use __truncate not truncate. + + * sysdeps/ieee754/ldbl-128/e_j0l.c (__ieee751_j0l): Use __finitel. + (__ieee754_y0l): Likewise. + * sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_j1l): Likewise. + (__ieee754_y1l): Likewise. + * sysdeps/ieee754/ldbl-128/s_expm1l.c (__expm1l): Use __ldexpl. + * sysdeps/ieee754/ldbl-128/s_log1pl.c: Kill bogus prototypes for + frexpl and ldexpl. math_private.h provides them and the latter + is not even used. + (__log1pl): Use __frexpl. + +2008-05-05 David S. Miller + + * sysdeps/sparc/sparc32/Makefile: Use -mcpu=v7 for initfini.s build. + * sysdeps/sparc/sparc64/Makefile: Use -mcpu=v9 for initfini.s build. + +2008-05-01 David S. Miller + + * sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/Makefile [$(subdir) = stdlib]: + (gen-as-const-headers): Add it. + * sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S: Likewise. + + * sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S: Add support for + six system call parameters. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Likewise. + +nptl/ +2008-05-20 Jakub Jelinek + David S. Miller + + * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file. + +--- libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile 1 Jan 1970 00:00:00 -0000 ++++ libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile 20 May 2008 07:42:00 -0000 1.1 +@@ -0,0 +1,4 @@ ++ifeq ($(subdir),nptl) ++CFLAGS-pause.c += -fexceptions ++CFLAGS-sigsuspend.c += -fexceptions ++endif +--- libc/sysdeps/sparc/Makefile 18 Jan 2006 23:25:05 -0000 1.19 ++++ libc/sysdeps/sparc/Makefile 20 May 2008 07:48:50 -0000 1.20 +@@ -1,6 +1,10 @@ + # The Sparc `long double' is a distinct type we support. + long-double-fcts = yes + ++ifeq ($(subdir),gmon) ++sysdep_routines += sparc-mcount ++endif ++ + ifeq ($(subdir),db2) + CPPFLAGS += -DHAVE_SPINLOCKS=1 -DHAVE_ASSEM_SPARC_GCC=1 + endif +--- libc/sysdeps/sparc/machine-gmon.h 1 Jan 1970 00:00:00 -0000 ++++ libc/sysdeps/sparc/machine-gmon.h 20 May 2008 07:48:50 -0000 1.1 +@@ -0,0 +1,33 @@ ++/* sparc-specific implementation of profiling support. ++ Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by David S. Miller , 2008 ++ ++ 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 ++ ++/* We must not pollute the global namespace. */ ++#define mcount_internal __mcount_internal ++ ++extern void mcount_internal (u_long frompc, u_long selfpc) internal_function; ++ ++#define _MCOUNT_DECL(frompc, selfpc) \ ++void internal_function mcount_internal (u_long frompc, u_long selfpc) ++ ++/* Define MCOUNT as empty since we have the implementation in another ++ file. */ ++#define MCOUNT +--- libc/sysdeps/sparc/sparc-mcount.S 1 Jan 1970 00:00:00 -0000 ++++ libc/sysdeps/sparc/sparc-mcount.S 20 May 2008 07:48:50 -0000 1.1 +@@ -0,0 +1,29 @@ ++/* sparc-specific implemetation of profiling support. ++ Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by David S. Miller , 2008. ++ ++ 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 ++ ++ENTRY(_mcount) ++ mov %i7, %o0 ++ ba __mcount_internal ++ mov %o7, %o1 ++END(_mcount) ++ ++weak_alias (_mcount, mcount) +--- libc/sysdeps/sparc/sparc32/Makefile 6 Jul 2001 04:56:04 -0000 1.5 ++++ libc/sysdeps/sparc/sparc32/Makefile 6 May 2008 09:13:49 -0000 1.6 +@@ -20,6 +20,10 @@ ifeq ($(subdir),gnulib) + sysdep_routines = dotmul umul $(divrem) alloca + endif # gnulib + ++ifeq ($(subdir),csu) ++CFLAGS-initfini.s += -mcpu=v7 ++endif ++ + # We distribute these files, even though they are generated, + # so as to avoid the need for a functioning m4 to build the library. + divrem := sdiv udiv rem urem +--- libc/sysdeps/sparc/sparc64/Makefile 18 Jan 2006 23:25:05 -0000 1.8 ++++ libc/sysdeps/sparc/sparc64/Makefile 6 May 2008 09:13:49 -0000 1.9 +@@ -2,3 +2,7 @@ ifeq ($(subdir),csu) + sysdep_routines += hp-timing + elide-routines.os += hp-timing + endif ++ ++ifeq ($(subdir),csu) ++CFLAGS-initfini.s += -mcpu=v9 ++endif +--- libc/sysdeps/sparc/sparc64/backtrace.c 1 Jan 1970 00:00:00 -0000 ++++ libc/sysdeps/sparc/sparc64/backtrace.c 20 May 2008 19:23:00 -0000 1.1 +@@ -0,0 +1,58 @@ ++/* Return backtrace of current program state. ++ Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by David S. Miller ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 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 ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++#include ++#include ++ ++struct layout ++{ ++ unsigned long locals[8]; ++ unsigned long ins[6]; ++ unsigned long next; ++ void *__unbounded return_address; ++}; ++ ++int ++__backtrace (void **array, int size) ++{ ++ struct layout *current; ++ unsigned long fp; ++ int count; ++ ++ asm volatile ("flushw"); ++ asm volatile ("mov %%fp, %0" : "=r"(fp)); ++ current = (struct layout *__unbounded) (fp + STACK_BIAS); ++ current = BOUNDED_1 (current); ++ ++ for (count = 0; count < size; count++) ++ { ++ array[count] = current->return_address; ++ if (!current->next) ++ break; ++ current = (struct layout *__unbounded) (current->next + STACK_BIAS); ++ current = BOUNDED_1 (current); ++ } ++ ++ return count; ++} ++weak_alias (__backtrace, backtrace) ++libc_hidden_def (__backtrace) +--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile 1 Feb 2006 03:00:30 -0000 1.13 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile 5 May 2008 09:34:18 -0000 1.14 +@@ -2,6 +2,10 @@ asm-CPPFLAGS = -D__ASSEMBLY__ + ASFLAGS-.os += -fPIC + LD += -melf32_sparc + ++ifeq ($(subdir),stdlib) ++gen-as-const-headers += ucontext_i.sym ++endif ++ + # When I get this to work, this is the right thing + ifeq ($(subdir),elf) + CFLAGS-rtld.c += -mcpu=v8 +--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S 1 Jan 1970 00:00:00 -0000 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S 5 May 2008 09:34:18 -0000 1.1 +@@ -0,0 +1,85 @@ ++/* Save current context. ++ Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by David S. Miller , 2008. ++ ++ 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 "ucontext_i.h" ++ ++/* int __getcontext (ucontext_t *ucp) ++ ++ Saves the machine context in UCP such that when it is activated, ++ it appears as if __getcontext() returned again. ++ ++ This implementation is intended to be used for *synchronous* context ++ switches only. Therefore, it does not have to save anything ++ other than the PRESERVED state. */ ++ ++ ++ENTRY(__getcontext) ++ save %sp, -112, %sp ++ st %g0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_PSR] ++ ++ /* In reality, we only use the GREG_PC value when setting ++ or swapping contexts. But we fill in NPC for completeness. */ ++ add %i7, 8, %o0 ++ st %o0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_PC] ++ add %o0, 4, %o0 ++ st %o0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_NPC] ++ ++ rd %y, %o1 ++ st %o1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_Y] ++ ++ st %g1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G1] ++ st %g2, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G2] ++ st %g3, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G3] ++ st %g4, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G4] ++ st %g5, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G5] ++ st %g6, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G6] ++ st %g7, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G7] ++ ++ mov SIG_BLOCK, %o0 ++ clr %o1 ++ add %i0, UC_SIGMASK, %o2 ++ mov 8, %o3 ++ mov __NR_rt_sigprocmask, %g1 ++ ta 0x10 ++ ++ /* Zero, success, return value. */ ++ st %g0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O0] ++ st %i1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O1] ++ st %i2, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O2] ++ st %i3, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O3] ++ st %i4, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O4] ++ st %i5, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O5] ++ st %i6, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O6] ++ st %i7, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O7] ++ ++ st %g0, [%i0 + UC_MCONTEXT + MC_GWINS] ++ ++ /* Do not save FPU state, it is volatile across calls. */ ++ stb %g0, [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_EN] ++ ++ st %g0, [%i0 + UC_MCONTEXT + MC_XRS + XRS_ID] ++ st %g0, [%i0 + UC_MCONTEXT + MC_XRS + XRS_PTR] ++ jmpl %i7 + 8, %g0 ++ restore %g0, %g0, %o0 ++END(__getcontext) ++ ++weak_alias (__getcontext, getcontext) +--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c 1 Jan 1970 00:00:00 -0000 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c 5 May 2008 09:34:18 -0000 1.1 +@@ -0,0 +1,93 @@ ++/* Create new context. ++ Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by David S. Miller , 2008. ++ ++ 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 ++ ++/* Sets up the outgoing arguments and the program counter for a user ++ context for the requested function call. ++ ++ Returning to the correct parent context is pretty simple on ++ Sparc. We only need to link up the register windows correctly. ++ Since global registers are clobbered by calls, we need not be ++ concernred about those, and thus is all could be worked out without ++ using a trampoline. ++ ++ Except that we must deal with the signal mask, thus a trampoline ++ is unavoidable. 32-bit stackframe layout: ++ +-----------------------------------------+ ++ | 7th and further parameters | ++ +-----------------------------------------+ ++ | backup storage for initial 6 parameters | ++ +-----------------------------------------+ ++ | struct return pointer | ++ +-----------------------------------------+ ++ | 8 incoming registers | ++ +-----------------------------------------+ ++ | 8 local registers | ++ %sp --> +-----------------------------------------+ ++ ++*/ ++ ++void ++__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) ++{ ++ extern void __start_context (void); ++ unsigned long int *sp; ++ va_list ap; ++ int i; ++ ++ sp = (unsigned long int *) (ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); ++ sp -= 16 + 7 + argc; ++ sp = (unsigned long int *) (((uintptr_t) sp) & ~(8 - 1)); ++ ++ for (i = 0; i < 8; i++) ++ sp[i + 8] = ucp->uc_mcontext.gregs[REG_O0 + i]; ++ ++ /* The struct return pointer is essentially unused, so we can ++ place the link there. */ ++ sp[16] = (unsigned long int) ucp->uc_link; ++ ++ va_start (ap, argc); ++ ++ /* Fill in outgoing arguments, including those which will ++ end up being passed on the stack. */ ++ for (i = 0; i < argc; i++) ++ { ++ unsigned long int arg = va_arg (ap, unsigned long int); ++ if (i < 6) ++ ucp->uc_mcontext.gregs[REG_O0 + i] = arg; ++ else ++ sp[i + 23] = arg; ++ } ++ ++ va_end (ap); ++ ++ ucp->uc_mcontext.gregs[REG_O6] = (unsigned long int) sp; ++ ++ ucp->uc_mcontext.gregs[REG_O7] = ((unsigned long int) __start_context) - 8; ++ ++ ucp->uc_mcontext.gregs[REG_PC] = (unsigned long int) func; ++ ucp->uc_mcontext.gregs[REG_nPC] = ucp->uc_mcontext.gregs[REG_PC] + 4; ++} ++ ++weak_alias (__makecontext, makecontext) +--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S 1 Jan 1970 00:00:00 -0000 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S 21 May 2008 09:29:07 -0000 1.2 +@@ -0,0 +1,119 @@ ++/* Install given context. ++ Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by David S. Miller , 2008. ++ ++ 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 "ucontext_i.h" ++ ++ ++/* int __setcontext (const ucontext_t *ucp) ++ ++ Restores the machine context in UCP and thereby resumes execution ++ in that context. ++ ++ This implementation is intended to be used for *synchronous* context ++ switches only. Therefore, it does not have to restore anything ++ other than the PRESERVED state. */ ++ ++ENTRY(__setcontext) ++ save %sp, -112, %sp ++ ++ mov SIG_SETMASK, %o0 ++ add %i0, UC_SIGMASK, %o1 ++ clr %o2 ++ mov 8, %o3 ++ mov __NR_rt_sigprocmask, %g1 ++ ta 0x10 ++ ++ /* This is a bit on the expensive side, and we could optimize ++ the unwind similar to how the 32-bit sparc longjmp code ++ does if performance of this routine really matters. */ ++ ta ST_FLUSH_WINDOWS ++ ++ ldub [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_EN], %g1 ++ cmp %g1, 0 ++ be 1f ++ nop ++ ld [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_FSR], %fsr ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D0], %f0 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D2], %f2 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D4], %f4 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D6], %f6 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D8], %f8 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D10], %f10 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D12], %f12 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D14], %f14 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D16], %f16 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D18], %f18 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D20], %f20 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D22], %f22 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D24], %f24 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D26], %f26 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D28], %f28 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D30], %f30 ++1: ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_Y], %g1 ++ wr %g1, 0x0, %y ++ ++ /* We specifically do not restore %g1 since we need it here as ++ a temporary. */ ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G2], %g2 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G3], %g3 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G4], %g4 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G5], %g5 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G6], %g6 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G7], %g7 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O1], %i1 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O2], %i2 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O3], %i3 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O4], %i4 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O5], %i5 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O6], %i6 ++ restore ++ ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_O7], %o7 ++ ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_PC], %g1 ++ jmpl %g1, %g0 ++ ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_O0], %o0 ++END(__setcontext) ++ ++weak_alias (__setcontext, setcontext) ++ ++/* This is the helper code which gets called if a function which is ++ registered with 'makecontext' returns. In this case we have to ++ install the context listed in the uc_link element of the context ++ 'makecontext' manipulated at the time of the 'makecontext' call. ++ If the pointer is NULL the process must terminate. */ ++ ++ENTRY(__start_context) ++ ld [%sp + (16 * 4)], %g1 ++ cmp %g1, 0 ++ be,a 1f ++ clr %o0 ++ call __setcontext ++ mov %g1, %o0 ++ /* If this returns (which can happen if the syscall fails) we'll ++ exit the program with the return error value (-1). */ ++1: call HIDDEN_JUMPTARGET(exit) ++ nop ++ /* The 'exit' call should never return. In case it does cause ++ the process to terminate. */ ++ unimp ++END(__start_context) +--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h 6 Jul 2001 04:56:21 -0000 1.7 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h 20 May 2008 19:23:00 -0000 1.8 +@@ -20,6 +20,9 @@ + #define SIGCONTEXT struct sigcontext * + #define SIGCONTEXT_EXTRA_ARGS + #define GET_PC(__ctx) ((void *) ((__ctx)->si_regs.pc)) ++#define FIRST_FRAME_POINTER \ ++ ({ void *ret; \ ++ asm volatile ("ta 3; add %%fp, 56, %0" : "=r" (ret)); ret; }) + #define ADVANCE_STACK_FRAME(__next) \ + ((void *) (((unsigned *)(__next))+14)) + +--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S 1 Jan 1970 00:00:00 -0000 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S 5 May 2008 09:34:18 -0000 1.1 +@@ -0,0 +1,119 @@ ++/* Save current context and install the given one. ++ Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by David S. Miller , 2008. ++ ++ 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 "ucontext_i.h" ++ ++ ++/* int __swapcontext (ucontext_t *oucp, const ucontext_t *ucp); ++ ++ Saves the machine context in oucp such that when it is activated, ++ it appears as if __swapcontext() returned again, restores the ++ machine context in ucp and thereby resumes execution in that ++ context. ++ ++ This implementation is intended to be used for *synchronous* context ++ switches only. Therefore, it does not have to save anything ++ other than the PRESERVED state. */ ++ ++ENTRY(__swapcontext) ++ save %sp, -112, %sp ++ ta ST_FLUSH_WINDOWS ++ st %g0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_PSR] ++ add %i7, 8, %o0 ++ st %o0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_PC] ++ add %o0, 4, %o0 ++ st %o0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_NPC] ++ rd %y, %o1 ++ st %o1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_Y] ++ st %g1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G1] ++ st %g2, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G2] ++ st %g3, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G3] ++ st %g4, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G4] ++ st %g5, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G5] ++ st %g6, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G6] ++ st %g7, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G7] ++ st %g0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O0] ++ st %i1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O1] ++ st %i2, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O2] ++ st %i3, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O3] ++ st %i4, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O4] ++ st %i5, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O5] ++ st %i6, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O6] ++ st %i7, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O7] ++ st %g0, [%i0 + UC_MCONTEXT + MC_GWINS] ++ stb %g0, [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_EN] ++ st %g0, [%i0 + UC_MCONTEXT + MC_XRS + XRS_ID] ++ st %g0, [%i0 + UC_MCONTEXT + MC_XRS + XRS_PTR] ++ ++ mov SIG_SETMASK, %o0 ++ add %i1, UC_SIGMASK, %o1 ++ add %i0, UC_SIGMASK, %o2 ++ mov 8, %o3 ++ mov __NR_rt_sigprocmask, %g1 ++ ta 0x10 ++ ++ mov %i1, %i0 ++ ldub [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_EN], %g1 ++ cmp %g1, 0 ++ be 1f ++ nop ++ ld [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_FSR], %fsr ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D0], %f0 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D2], %f2 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D4], %f4 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D6], %f6 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D8], %f8 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D10], %f10 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D12], %f12 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D14], %f14 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D16], %f16 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D18], %f18 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D20], %f20 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D22], %f22 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D24], %f24 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D26], %f26 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D28], %f28 ++ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D30], %f30 ++1: ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_Y], %g1 ++ wr %g1, 0x0, %y ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G2], %g2 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G3], %g3 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G4], %g4 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G5], %g5 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G6], %g6 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G7], %g7 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O1], %i1 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O2], %i2 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O3], %i3 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O4], %i4 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O5], %i5 ++ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O6], %i6 ++ restore ++ ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_O7], %o7 ++ ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_PC], %g1 ++ jmpl %g1, %g0 ++ ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_O0], %o0 ++END(__swapcontext) ++ ++weak_alias (__swapcontext, swapcontext) +--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S 6 Mar 2006 01:33:04 -0000 1.4 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S 5 May 2008 09:17:00 -0000 1.5 +@@ -27,6 +27,7 @@ ENTRY(syscall) + mov %o3, %o2 + mov %o4, %o3 + mov %o5, %o4 ++ ld [%sp + 92], %o5 + ta 0x10 + bcc 1f + mov %o7, %g1 +--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h 6 Mar 2006 01:33:04 -0000 1.17 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h 21 May 2008 09:29:07 -0000 1.19 +@@ -1,4 +1,5 @@ +-/* Copyright (C) 1997, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. ++/* Copyright (C) 1997, 2002, 2003, 2004, 2006, 2008 ++ Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Miguel de Icaza , January 1997. + +@@ -89,6 +90,13 @@ ENTRY(name); \ + + #else /* __ASSEMBLER__ */ + ++#if defined SHARED && defined DO_VERSIONING && defined PIC \ ++ && !defined NO_HIDDEN && !defined NOT_IN_libc ++# define CALL_ERRNO_LOCATION "call __GI___errno_location;" ++#else ++# define CALL_ERRNO_LOCATION "call __errno_location;" ++#endif ++ + #define __SYSCALL_STRING \ + "ta 0x10;" \ + "bcs 2f;" \ +@@ -97,7 +105,7 @@ ENTRY(name); \ + ".subsection 2;" \ + "2:" \ + "save %%sp, -192, %%sp;" \ +- "call __errno_location;" \ ++ CALL_ERRNO_LOCATION \ + " nop;" \ + "st %%i0,[%%o0];" \ + "ba 1b;" \ +@@ -113,7 +121,7 @@ ENTRY(name); \ + ".subsection 2;" \ + "2:" \ + "save %%sp, -192, %%sp;" \ +- "call __errno_location;" \ ++ CALL_ERRNO_LOCATION \ + " nop;" \ + "st %%i0, [%%o0];" \ + "ba 1b;" \ +@@ -126,7 +134,7 @@ ENTRY(name); \ + " sub %%g0, %%o0, %%o0;" \ + "1:" + +-#define __SYSCALL_CLOBBERS "g2", "g3", "g4", "g5", "g6", \ ++#define __SYSCALL_CLOBBERS \ + "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \ + "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \ + "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \ +--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym 1 Jan 1970 00:00:00 -0000 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym 5 May 2008 09:34:18 -0000 1.1 +@@ -0,0 +1,61 @@ ++#include ++#include ++#include ++ ++-- ++ ++SIG_BLOCK ++SIG_SETMASK ++ ++UC_FLAGS offsetof (ucontext_t, uc_flags) ++UC_LINK offsetof (ucontext_t, uc_link) ++UC_SIGMASK offsetof (ucontext_t, uc_sigmask) ++UC_STACK offsetof (ucontext_t, uc_stack) ++UC_MCONTEXT offsetof (ucontext_t, uc_mcontext) ++MC_GREGS offsetof (mcontext_t, gregs) ++MC_GWINS offsetof (mcontext_t, gwins) ++MC_FPREGS offsetof (mcontext_t, fpregs) ++MC_XRS offsetof (mcontext_t, xrs) ++MC_FILLER offsetof (mcontext_t, filler) ++GREG_PSR (REG_PSR * sizeof(greg_t)) ++GREG_PC (REG_PC * sizeof(greg_t)) ++GREG_NPC (REG_nPC * sizeof(greg_t)) ++GREG_Y (REG_Y * sizeof(greg_t)) ++GREG_G1 (REG_G1 * sizeof(greg_t)) ++GREG_G2 (REG_G2 * sizeof(greg_t)) ++GREG_G3 (REG_G3 * sizeof(greg_t)) ++GREG_G4 (REG_G4 * sizeof(greg_t)) ++GREG_G5 (REG_G5 * sizeof(greg_t)) ++GREG_G6 (REG_G6 * sizeof(greg_t)) ++GREG_G7 (REG_G7 * sizeof(greg_t)) ++GREG_O0 (REG_O0 * sizeof(greg_t)) ++GREG_O1 (REG_O1 * sizeof(greg_t)) ++GREG_O2 (REG_O2 * sizeof(greg_t)) ++GREG_O3 (REG_O3 * sizeof(greg_t)) ++GREG_O4 (REG_O4 * sizeof(greg_t)) ++GREG_O5 (REG_O5 * sizeof(greg_t)) ++GREG_O6 (REG_O6 * sizeof(greg_t)) ++GREG_O7 (REG_O7 * sizeof(greg_t)) ++FPU_D0 offsetof (fpregset_t, fpu_fr.fpu_dregs[0]) ++FPU_D2 offsetof (fpregset_t, fpu_fr.fpu_dregs[1]) ++FPU_D4 offsetof (fpregset_t, fpu_fr.fpu_dregs[2]) ++FPU_D6 offsetof (fpregset_t, fpu_fr.fpu_dregs[3]) ++FPU_D8 offsetof (fpregset_t, fpu_fr.fpu_dregs[4]) ++FPU_D10 offsetof (fpregset_t, fpu_fr.fpu_dregs[5]) ++FPU_D12 offsetof (fpregset_t, fpu_fr.fpu_dregs[6]) ++FPU_D14 offsetof (fpregset_t, fpu_fr.fpu_dregs[7]) ++FPU_D16 offsetof (fpregset_t, fpu_fr.fpu_dregs[8]) ++FPU_D18 offsetof (fpregset_t, fpu_fr.fpu_dregs[9]) ++FPU_D20 offsetof (fpregset_t, fpu_fr.fpu_dregs[10]) ++FPU_D22 offsetof (fpregset_t, fpu_fr.fpu_dregs[11]) ++FPU_D24 offsetof (fpregset_t, fpu_fr.fpu_dregs[12]) ++FPU_D26 offsetof (fpregset_t, fpu_fr.fpu_dregs[13]) ++FPU_D28 offsetof (fpregset_t, fpu_fr.fpu_dregs[14]) ++FPU_D30 offsetof (fpregset_t, fpu_fr.fpu_dregs[15]) ++FPU_Q offsetof (fpregset_t, fpu_q) ++FPU_FSR offsetof (fpregset_t, fpu_fsr) ++FPU_QCNT offsetof (fpregset_t, fpu_qcnt) ++FPU_Q_ENTRY_SZ offsetof (fpregset_t, fpu_q_entrysize) ++FPU_EN offsetof (fpregset_t, fpu_en) ++XRS_ID offsetof (xrs_t, xrs_id) ++XRS_PTR offsetof (xrs_t, xrs_ptr) +--- libc/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S 6 Mar 2006 01:33:03 -0000 1.5 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S 21 May 2008 08:48:21 -0000 1.6 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1997 Free Software Foundation, Inc. ++/* Copyright (C) 1997, 2008 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson , 1997. + +@@ -86,7 +86,11 @@ ENTRY (__brk) + #endif + st %o0, [%g1] + #else ++#ifndef NOT_IN_libc ++ call HIDDEN_JUMPTARGET(__errno_location) ++#else + call __errno_location ++#endif + mov %o0,%l1 + st %l1, [%o0] + #endif +--- libc/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S 6 Mar 2006 01:33:03 -0000 1.6 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S 5 May 2008 09:17:00 -0000 1.7 +@@ -27,6 +27,7 @@ ENTRY(syscall) + mov %o3,%o2 + mov %o4,%o3 + mov %o5,%o4 ++ ldx [%sp + STACK_BIAS + 176],%o5 + + ta 0x6d + +--- libc/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h 6 Mar 2006 01:33:03 -0000 1.20 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h 21 May 2008 09:29:07 -0000 1.22 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1997, 2000, 2002, 2003, 2004, 2006 ++/* Copyright (C) 1997, 2000, 2002, 2003, 2004, 2006, 2008 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson , 1997. +@@ -106,12 +106,19 @@ ENTRY(name); \ + + #else /* __ASSEMBLER__ */ + ++#if defined SHARED && defined DO_VERSIONING && defined PIC \ ++ && !defined NO_HIDDEN && !defined NOT_IN_libc ++# define CALL_ERRNO_LOCATION "call __GI___errno_location;" ++#else ++# define CALL_ERRNO_LOCATION "call __errno_location;" ++#endif ++ + #define __SYSCALL_STRING \ + "ta 0x6d;" \ + "bcc,pt %%xcc, 1f;" \ + " nop;" \ + "save %%sp, -192, %%sp;" \ +- "call __errno_location;" \ ++ CALL_ERRNO_LOCATION \ + " nop;" \ + "st %%i0,[%%o0];" \ + "restore %%g0, -1, %%o0;" \ +@@ -122,7 +129,7 @@ ENTRY(name); \ + "bcc,pt %%xcc, 1f;" \ + " sub %%o1, 1, %%o1;" \ + "save %%sp, -192, %%sp;" \ +- "call __errno_location;" \ ++ CALL_ERRNO_LOCATION \ + " mov -1, %%i1;" \ + "st %%i0,[%%o0];" \ + "restore %%g0, -1, %%o0;" \ +@@ -135,7 +142,7 @@ ENTRY(name); \ + " sub %%g0, %%o0, %%o0;" \ + "1:" + +-#define __SYSCALL_CLOBBERS "g2", "g3", "g4", "g5", "g6", \ ++#define __SYSCALL_CLOBBERS \ + "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \ + "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \ + "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \ +--- libc/elf/soinit.c 24 Feb 2006 22:57:31 -0000 1.14 ++++ libc/elf/soinit.c 19 May 2008 18:43:36 -0000 1.15 +@@ -20,10 +20,6 @@ run_hooks (void (*const list[]) (void)) + (**list) (); + } + +-static const char __EH_FRAME_BEGIN__[] +- __attribute__ ((used, section (".eh_frame"))) +- = { }; +- + /* This function will be called from _init in init-first.c. */ + void + __libc_global_ctors (void) +--- libc/misc/truncate64.c 14 Dec 2005 11:27:42 -0000 1.1 ++++ libc/misc/truncate64.c 10 May 2008 23:38:21 -0000 1.2 +@@ -31,5 +31,5 @@ truncate64 (path, length) + __set_errno (EINVAL); + return -1; + } +- return truncate (path, (off_t) length); ++ return __truncate (path, (off_t) length); + } +--- libc/sysdeps/ieee754/ldbl-128/e_j0l.c 11 Apr 2008 22:20:35 -0000 1.8 ++++ libc/sysdeps/ieee754/ldbl-128/e_j0l.c 10 May 2008 23:35:21 -0000 1.9 +@@ -679,7 +679,7 @@ __ieee754_j0l (long double x) + { + long double xx, xinv, z, p, q, c, s, cc, ss; + +- if (! finitel (x)) ++ if (! __finitel (x)) + { + if (x != x) + return x; +@@ -816,7 +816,7 @@ long double + { + long double xx, xinv, z, p, q, c, s, cc, ss; + +- if (! finitel (x)) ++ if (! __finitel (x)) + { + if (x != x) + return x; +--- libc/sysdeps/ieee754/ldbl-128/e_j1l.c 11 Apr 2008 22:22:54 -0000 1.6 ++++ libc/sysdeps/ieee754/ldbl-128/e_j1l.c 10 May 2008 23:35:59 -0000 1.7 +@@ -685,7 +685,7 @@ __ieee754_j1l (long double x) + { + long double xx, xinv, z, p, q, c, s, cc, ss; + +- if (! finitel (x)) ++ if (! __finitel (x)) + { + if (x != x) + return x; +@@ -823,7 +823,7 @@ __ieee754_y1l (long double x) + { + long double xx, xinv, z, p, q, c, s, cc, ss; + +- if (! finitel (x)) ++ if (! __finitel (x)) + { + if (x != x) + return x; +--- libc/sysdeps/ieee754/ldbl-128/s_expm1l.c 10 Sep 2002 00:57:17 -0000 1.6 ++++ libc/sysdeps/ieee754/ldbl-128/s_expm1l.c 10 May 2008 23:36:10 -0000 1.7 +@@ -153,7 +153,7 @@ __expm1l (long double x) + exp(x) - 1 = 2^k (qx + 1) - 1 + = 2^k qx + 2^k - 1. */ + +- px = ldexpl (1.0L, k); ++ px = __ldexpl (1.0L, k); + x = px * qx + (px - 1.0); + return x; + } +--- libc/sysdeps/ieee754/ldbl-128/s_log1pl.c 26 Aug 2002 22:40:02 -0000 1.5 ++++ libc/sysdeps/ieee754/ldbl-128/s_log1pl.c 10 May 2008 23:36:28 -0000 1.6 +@@ -120,13 +120,6 @@ static const long double maxlog = 1.1356 + static const long double big = 2e4932L; + static const long double zero = 0.0L; + +-#if 1 +-/* Make sure these are prototyped. */ +-long double frexpl (long double, int *); +-long double ldexpl (long double, int); +-#endif +- +- + long double + __log1pl (long double xm1) + { +@@ -160,7 +153,7 @@ __log1pl (long double xm1) + /* Separate mantissa from exponent. */ + + /* Use frexp used so that denormal numbers will be handled properly. */ +- x = frexpl (x, &e); ++ x = __frexpl (x, &e); + + /* Logarithm using log(x) = z + z^3 P(z^2)/Q(z^2), + where z = 2(x-1)/x+1). */ diff --git a/glibc-tls-getaddr.patch b/glibc-tls-getaddr.patch new file mode 100644 index 0000000..d95b667 --- /dev/null +++ b/glibc-tls-getaddr.patch @@ -0,0 +1,123 @@ +2008-05-11 Ulrich Drepper + + * elf/dl-tls.c (__tls_get_addr): Optimize by moving slow path in + its own function. This reduces the frame setup costs and more. + +--- libc/elf/dl-tls.c 8 Mar 2008 06:11:58 -0000 1.6 ++++ libc/elf/dl-tls.c 12 May 2008 05:35:52 -0000 1.7 +@@ -691,6 +691,61 @@ _dl_update_slotinfo (unsigned long int r + } + + ++static void * ++__attribute_noinline__ ++tls_get_addr_tail (dtv_t *dtv, struct link_map *the_map, size_t module) ++{ ++ /* The allocation was deferred. Do it now. */ ++ if (the_map == NULL) ++ { ++ /* Find the link map for this module. */ ++ size_t idx = module; ++ struct dtv_slotinfo_list *listp = GL(dl_tls_dtv_slotinfo_list); ++ ++ while (idx >= listp->len) ++ { ++ idx -= listp->len; ++ listp = listp->next; ++ } ++ ++ the_map = listp->slotinfo[idx].map; ++ } ++ ++ again: ++ /* Make sure that, if a dlopen running in parallel forces the ++ variable into static storage, we'll wait until the address in the ++ static TLS block is set up, and use that. If we're undecided ++ yet, make sure we make the decision holding the lock as well. */ ++ if (__builtin_expect (the_map->l_tls_offset ++ != FORCED_DYNAMIC_TLS_OFFSET, 0)) ++ { ++ __rtld_lock_lock_recursive (GL(dl_load_lock)); ++ if (__builtin_expect (the_map->l_tls_offset == NO_TLS_OFFSET, 1)) ++ { ++ the_map->l_tls_offset = FORCED_DYNAMIC_TLS_OFFSET; ++ __rtld_lock_unlock_recursive (GL(dl_load_lock)); ++ } ++ else ++ { ++ __rtld_lock_unlock_recursive (GL(dl_load_lock)); ++ if (__builtin_expect (the_map->l_tls_offset ++ != FORCED_DYNAMIC_TLS_OFFSET, 1)) ++ { ++ void *p = dtv[module].pointer.val; ++ if (__builtin_expect (p == TLS_DTV_UNALLOCATED, 0)) ++ goto again; ++ ++ return p; ++ } ++ } ++ } ++ void *p = dtv[module].pointer.val = allocate_and_init (the_map); ++ dtv[module].pointer.is_static = false; ++ ++ return p; ++} ++ ++ + /* The generic dynamic and local dynamic model cannot be used in + statically linked applications. */ + void * +@@ -703,52 +758,10 @@ __tls_get_addr (GET_ADDR_ARGS) + if (__builtin_expect (dtv[0].counter != GL(dl_tls_generation), 0)) + the_map = _dl_update_slotinfo (GET_ADDR_MODULE); + +- retry: + p = dtv[GET_ADDR_MODULE].pointer.val; + + if (__builtin_expect (p == TLS_DTV_UNALLOCATED, 0)) +- { +- /* The allocation was deferred. Do it now. */ +- if (the_map == NULL) +- { +- /* Find the link map for this module. */ +- size_t idx = GET_ADDR_MODULE; +- struct dtv_slotinfo_list *listp = GL(dl_tls_dtv_slotinfo_list); +- +- while (idx >= listp->len) +- { +- idx -= listp->len; +- listp = listp->next; +- } +- +- the_map = listp->slotinfo[idx].map; +- } +- +- /* Make sure that, if a dlopen running in parallel forces the +- variable into static storage, we'll wait until the address in +- the static TLS block is set up, and use that. If we're +- undecided yet, make sure we make the decision holding the +- lock as well. */ +- if (__builtin_expect (the_map->l_tls_offset +- != FORCED_DYNAMIC_TLS_OFFSET, 0)) +- { +- __rtld_lock_lock_recursive (GL(dl_load_lock)); +- if (__builtin_expect (the_map->l_tls_offset == NO_TLS_OFFSET, 1)) +- { +- the_map->l_tls_offset = FORCED_DYNAMIC_TLS_OFFSET; +- __rtld_lock_unlock_recursive (GL(dl_load_lock)); +- } +- else +- { +- __rtld_lock_unlock_recursive (GL(dl_load_lock)); +- if (__builtin_expect (the_map->l_tls_offset +- != FORCED_DYNAMIC_TLS_OFFSET, 1)) +- goto retry; +- } +- } +- p = dtv[GET_ADDR_MODULE].pointer.val = allocate_and_init (the_map); +- dtv[GET_ADDR_MODULE].pointer.is_static = false; +- } ++ p = tls_get_addr_tail (dtv, the_map, GET_ADDR_MODULE); + + return (char *) p + GET_ADDR_OFFSET; + } diff --git a/glibc.spec b/glibc.spec index 440086b..09e2234 100644 --- a/glibc.spec +++ b/glibc.spec @@ -58,6 +58,7 @@ Patch15: glibc-rh450790.patch Patch16: glibc-rwlock-pshared.patch Patch17: glibc-sparc.patch Patch18: glibc-tls-getaddr.patch +Patch19: glibc-bz6719.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Obsoletes: glibc-profile < 2.4 Provides: ldconfig @@ -254,6 +255,7 @@ package or when debugging this package. %patch16 -p1 %patch17 -p1 %patch18 -p1 +%patch19 -p1 # A lot of programs still misuse memcpy when they have to use # memmove. The memcpy implementation below is not tolerant at @@ -1016,7 +1018,7 @@ rm -f *.filelist* %changelog * Tue Jul 8 2008 Jakub Jelinek 2.8-7 - assorted nscd fixes (#450704, #445656, #449358) -- misc upstream fixes (BZ#3406, BZ#6461, BZ#6472, BZ#6612, BZ#6657, BZ#6723) +- misc fixes (BZ#3406, BZ#6461, BZ#6472, BZ#6612, BZ#6657, BZ#6723, BZ#6719) - fix *scanf in -std=c99 mode - add lt translations - some SPARC fixes