aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nptl/ChangeLog22
-rw-r--r--nptl/atomic.h2
-rw-r--r--nptl/sysdeps/pthread/pthread_cond_timedwait.c23
-rw-r--r--nptl/sysdeps/pthread/pthread_cond_wait.c42
-rw-r--r--nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c8
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c25
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c2
-rw-r--r--nptl/sysdeps/unix/sysv/linux/s390/sem_post.c2
-rw-r--r--po/gl.po521
-rw-r--r--po/sv.po6
10 files changed, 377 insertions, 276 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index d6ca84806c..740d6ff1f8 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,25 @@
+2003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
+
+ * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
+
+ * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
+ Fix handling of cancellation and failing pthread_mutex_unlock call.
+ * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
+ (__pthread_cond_wait): Likewise.
+
+ * sysdeps/pthread/pthread_rwlock_timedrdlock.c
+ (pthread_rwlock_timedrdlock): Fix clobber of result variable by
+ lll_futex_timed_wait call.
+ * sysdeps/pthread/pthread_rwlock_timedwrlock.c
+ (pthread_rwlock_timedwrlock): Likewise.
+
+ * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
+ Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
+ * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
+
+ * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
+ check of lll_futex_wake return value.
+
2003-03-03 Roland McGrath <roland@redhat.com>
* forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
diff --git a/nptl/atomic.h b/nptl/atomic.h
index 4279235a71..813fb80a03 100644
--- a/nptl/atomic.h
+++ b/nptl/atomic.h
@@ -60,7 +60,7 @@
while (atomic_compare_and_exchange_acq (__memp, __oldval + __value, \
__oldval)); \
\
- __oldval; })
+ __oldval + __value; })
#endif
diff --git a/nptl/sysdeps/pthread/pthread_cond_timedwait.c b/nptl/sysdeps/pthread/pthread_cond_timedwait.c
index 797d244cf7..3b29cb4ea6 100644
--- a/nptl/sysdeps/pthread/pthread_cond_timedwait.c
+++ b/nptl/sysdeps/pthread/pthread_cond_timedwait.c
@@ -31,6 +31,12 @@
extern void __condvar_cleanup (void *arg)
__attribute__ ((visibility ("hidden")));
+struct _condvar_cleanup_buffer
+{
+ int oldtype;
+ pthread_cond_t *cond;
+ pthread_mutex_t *mutex;
+};
int
__pthread_cond_timedwait (cond, mutex, abstime)
@@ -39,6 +45,7 @@ __pthread_cond_timedwait (cond, mutex, abstime)
const struct timespec *abstime;
{
struct _pthread_cleanup_buffer buffer;
+ struct _condvar_cleanup_buffer cbuffer;
int result = 0;
/* Catch invalid parameters. */
@@ -54,9 +61,13 @@ __pthread_cond_timedwait (cond, mutex, abstime)
/* We have one new user of the condvar. */
++cond->__data.__total_seq;
+ /* Prepare structure passed to cancellation handler. */
+ cbuffer.cond = cond;
+ cbuffer.mutex = mutex;
+
/* Before we block we enable cancellation. Therefore we have to
install a cancellation handler. */
- __pthread_cleanup_push (&buffer, __condvar_cleanup, cond);
+ __pthread_cleanup_push (&buffer, __condvar_cleanup, &cbuffer);
/* The current values of the wakeup counter. The "woken" counter
must exceed this value. */
@@ -76,6 +87,8 @@ __pthread_cond_timedwait (cond, mutex, abstime)
while (1)
{
+ int err;
+
/* Get the current time. So far we support only one clock. */
struct timeval tv;
(void) gettimeofday (&tv, NULL);
@@ -104,14 +117,14 @@ __pthread_cond_timedwait (cond, mutex, abstime)
lll_mutex_unlock (cond->__data.__lock);
/* Enable asynchronous cancellation. Required by the standard. */
- int oldtype = __pthread_enable_asynccancel ();
+ cbuffer.oldtype = __pthread_enable_asynccancel ();
/* Wait until woken by signal or broadcast. Note that we
truncate the 'val' value to 32 bits. */
- result = lll_futex_timed_wait (futex, (unsigned int) val, &rt);
+ err = lll_futex_timed_wait (futex, (unsigned int) val, &rt);
/* Disable asynchronous cancellation. */
- __pthread_disable_asynccancel (oldtype);
+ __pthread_disable_asynccancel (cbuffer.oldtype);
/* We are going to look at shared data again, so get the lock. */
lll_mutex_lock(cond->__data.__lock);
@@ -123,7 +136,7 @@ __pthread_cond_timedwait (cond, mutex, abstime)
break;
/* Not woken yet. Maybe the time expired? */
- if (result == -ETIMEDOUT)
+ if (err == -ETIMEDOUT)
{
/* Yep. Adjust the counters. */
++cond->__data.__wakeup_seq;
diff --git a/nptl/sysdeps/pthread/pthread_cond_wait.c b/nptl/sysdeps/pthread/pthread_cond_wait.c
index d0b63bd8df..d96444f49b 100644
--- a/nptl/sysdeps/pthread/pthread_cond_wait.c
+++ b/nptl/sysdeps/pthread/pthread_cond_wait.c
@@ -27,22 +27,35 @@
#include <shlib-compat.h>
+struct _condvar_cleanup_buffer
+{
+ int oldtype;
+ pthread_cond_t *cond;
+ pthread_mutex_t *mutex;
+};
+
void
__attribute__ ((visibility ("hidden")))
__condvar_cleanup (void *arg)
{
- pthread_cond_t *cond = (pthread_cond_t *) arg;
+ struct _condvar_cleanup_buffer *cbuffer =
+ (struct _condvar_cleanup_buffer *) arg;
/* We are going to modify shared data. */
- lll_mutex_lock (cond->__data.__lock);
+ lll_mutex_lock (cbuffer->cond->__data.__lock);
/* This thread is not waiting anymore. Adjust the sequence counters
appropriately. */
- ++cond->__data.__wakeup_seq;
- ++cond->__data.__woken_seq;
+ ++cbuffer->cond->__data.__wakeup_seq;
+ ++cbuffer->cond->__data.__woken_seq;
/* We are done. */
- lll_mutex_unlock (cond->__data.__lock);
+ lll_mutex_unlock (cbuffer->cond->__data.__lock);
+
+ /* Get the mutex before returning unless asynchronous cancellation
+ is in effect. */
+ if (!(cbuffer->oldtype & CANCELTYPE_BITMASK))
+ __pthread_mutex_lock_internal (cbuffer->mutex);
}
@@ -52,19 +65,30 @@ __pthread_cond_wait (cond, mutex)
pthread_mutex_t *mutex;
{
struct _pthread_cleanup_buffer buffer;
+ struct _condvar_cleanup_buffer cbuffer;
+ int err;
/* Make sure we are along. */
lll_mutex_lock (cond->__data.__lock);
/* Now we can release the mutex. */
- __pthread_mutex_unlock_internal (mutex);
+ err = __pthread_mutex_unlock_internal (mutex);
+ if (err)
+ {
+ lll_mutex_unlock (cond->__data.__lock);
+ return err;
+ }
/* We have one new user of the condvar. */
++cond->__data.__total_seq;
+ /* Prepare structure passed to cancellation handler. */
+ cbuffer.cond = cond;
+ cbuffer.mutex = mutex;
+
/* Before we block we enable cancellation. Therefore we have to
install a cancellation handler. */
- __pthread_cleanup_push (&buffer, __condvar_cleanup, cond);
+ __pthread_cleanup_push (&buffer, __condvar_cleanup, &cbuffer);
/* The current values of the wakeup counter. The "woken" counter
must exceed this value. */
@@ -88,14 +112,14 @@ __pthread_cond_wait (cond, mutex)
lll_mutex_unlock (cond->__data.__lock);
/* Enable asynchronous cancellation. Required by the standard. */
- int oldtype = __pthread_enable_asynccancel ();
+ cbuffer.oldtype = __pthread_enable_asynccancel ();
/* Wait until woken by signal or broadcast. Note that we
truncate the 'val' value to 32 bits. */
lll_futex_wait (futex, (unsigned int) val);
/* Disable asynchronous cancellation. */
- __pthread_disable_asynccancel (oldtype);
+ __pthread_disable_asynccancel (cbuffer.oldtype);
/* We are going to look at shared data again, so get the lock. */
lll_mutex_lock(cond->__data.__lock);
diff --git a/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c b/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c
index fb6382544e..9c1815570f 100644
--- a/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c
+++ b/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c
@@ -37,6 +37,8 @@ pthread_rwlock_timedrdlock (rwlock, abstime)
while (1)
{
+ int err;
+
/* Get the rwlock if there is no writer... */
if (rwlock->__data.__writer == 0
/* ...and if either no writer is waiting or we prefer readers. */
@@ -111,14 +113,14 @@ pthread_rwlock_timedrdlock (rwlock, abstime)
lll_mutex_unlock (rwlock->__data.__lock);
/* Wait for the writer to finish. */
- result = lll_futex_timed_wait (&rwlock->__data.__readers_wakeup,
- waitval, &rt);
+ err = lll_futex_timed_wait (&rwlock->__data.__readers_wakeup,
+ waitval, &rt);
/* Get the lock. */
lll_mutex_lock (rwlock->__data.__lock);
/* Did the futex call time out? */
- if (result == -ETIMEDOUT)
+ if (err == -ETIMEDOUT)
{
/* Yep, report it. */
result = ETIMEDOUT;
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c b/nptl/sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c
index 40b5c3e441..7035479c1a 100644
--- a/nptl/sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c
+++ b/nptl/sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c
@@ -17,5 +17,26 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
-/* No difference to lowlevellock.c */
-#include "lowlevellock.c"
+#include <errno.h>
+#include <sysdep.h>
+#include <lowlevellock.h>
+#include <sys/time.h>
+
+
+void
+___lll_lock (futex, newval)
+ int *futex;
+ int newval;
+{
+ do
+ {
+ int oldval;
+
+ lll_futex_wait (futex, newval);
+ lll_compare_and_swap (futex, oldval, newval, "lr %2,%1; ahi %2,-1");
+ }
+ while (newval != 0);
+
+ *futex = -1;
+}
+hidden_proto (___lll_lock)
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c
index bc501c7ee4..f98e163ae1 100644
--- a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c
+++ b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c
@@ -42,7 +42,6 @@ ___lll_lock (futex, newval)
hidden_proto (___lll_lock)
-/* XXX Should not be in libc.so */
int
lll_unlock_wake_cb (futex)
int *futex;
@@ -58,7 +57,6 @@ lll_unlock_wake_cb (futex)
hidden_proto (lll_unlock_wake_cb)
-/* XXX Should not be in libc.so */
int
___lll_timedwait_tid (ptid, abstime)
int *ptid;
diff --git a/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c b/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c
index df64c03ba6..b573532a32 100644
--- a/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c
+++ b/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c
@@ -34,7 +34,7 @@ __new_sem_post (sem_t *sem)
lll_compare_and_swap ((int *) sem, oldval, newval, "lr %2,%1; ahi %2,1");
err = lll_futex_wake(((int *) sem), newval);
- if (err != 0)
+ if (err < 0)
{
__set_errno(-err);
return -1;
diff --git a/po/gl.po b/po/gl.po
index 6eac219d60..e5eeeb735f 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -4,9 +4,9 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.3\n"
-"POT-Creation-Date: 2002-10-02 17:22-0700\n"
-"PO-Revision-Date: 2002-10-05 15:13+0200\n"
+"Project-Id-Version: libc 2.3.2\n"
+"POT-Creation-Date: 2003-02-22 15:34-0800\n"
+"PO-Revision-Date: 2003-03-03 20:13+0100\n"
"Last-Translator: Jacobo Tarrio <jtarrio@trasno.net>\n"
"Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
"MIME-Version: 1.0\n"
@@ -259,8 +259,8 @@ msgstr "non se pode abri-lo ficheiro de saída"
#: iconv/iconv_prog.c:241
#, c-format
-msgid "conversions from `%s' and to `%s' are not supported"
-msgstr "as conversións de `%s' a `%s' non están soportadas"
+msgid "conversion from `%s' and to `%s' are not supported"
+msgstr "as conversións de `%s' e a `%s' non están soportadas"
#: iconv/iconv_prog.c:246
#, c-format
@@ -285,15 +285,15 @@ msgstr "non se puido comeza-lo procesamento de conversión"
msgid "error while closing output file"
msgstr "erro ao pecha-lo ficheiro de saída"
-#: iconv/iconv_prog.c:407 iconv/iconvconfig.c:355 locale/programs/locale.c:268
+#: iconv/iconv_prog.c:407 iconv/iconvconfig.c:357 locale/programs/locale.c:274
#: locale/programs/localedef.c:372 catgets/gencat.c:233
#: malloc/memusagestat.c:602 debug/pcprofiledump.c:199
msgid "Report bugs using the `glibcbug' script to <bugs@gnu.org>.\n"
msgstr "Informe dos erros usando o script `glibcbug' a <bugs@gnu.org>.\n"
-#: iconv/iconv_prog.c:421 iconv/iconvconfig.c:369 locale/programs/locale.c:281
-#: locale/programs/localedef.c:386 catgets/gencat.c:246 posix/getconf.c:904
-#: nss/getent.c:74 nscd/nscd.c:279 nscd/nscd_nischeck.c:90 elf/ldconfig.c:259
+#: iconv/iconv_prog.c:421 iconv/iconvconfig.c:371 locale/programs/locale.c:287
+#: locale/programs/localedef.c:386 catgets/gencat.c:246 posix/getconf.c:910
+#: nss/getent.c:74 nscd/nscd.c:330 nscd/nscd_nischeck.c:90 elf/ldconfig.c:271
#: elf/sprof.c:349
#, c-format
msgid ""
@@ -305,9 +305,9 @@ msgstr ""
"Isto é software libre; vexa o código fonte polas condicións de copia. NON hai\n"
"garantía; nin sequera de COMERCIABILIDADE ou APTITUDE PARA UN FIN DETERMINADO.\n"
-#: iconv/iconv_prog.c:426 iconv/iconvconfig.c:374 locale/programs/locale.c:286
-#: locale/programs/localedef.c:391 catgets/gencat.c:251 posix/getconf.c:909
-#: nss/getent.c:79 nscd/nscd.c:284 nscd/nscd_nischeck.c:95 elf/ldconfig.c:264
+#: iconv/iconv_prog.c:426 iconv/iconvconfig.c:376 locale/programs/locale.c:292
+#: locale/programs/localedef.c:391 catgets/gencat.c:251 posix/getconf.c:915
+#: nss/getent.c:79 nscd/nscd.c:335 nscd/nscd_nischeck.c:95 elf/ldconfig.c:276
#: elf/sprof.c:355
#, c-format
msgid "Written by %s.\n"
@@ -359,15 +359,15 @@ msgstr "[DIR...]"
msgid "Prefix used for all file accesses"
msgstr "Prefixo a empregar para tódolos accesos a ficheiro"
-#: iconv/iconvconfig.c:325 locale/programs/localedef.c:292
+#: iconv/iconvconfig.c:327 locale/programs/localedef.c:292
msgid "no output file produced because warning were issued"
msgstr "non se producíu un ficheiro de saída porque se deron avisos"
-#: iconv/iconvconfig.c:403
+#: iconv/iconvconfig.c:405
msgid "while inserting in search tree"
msgstr "ao inserir na árbore de busca"
-#: iconv/iconvconfig.c:1202
+#: iconv/iconvconfig.c:1204
msgid "cannot generate output file"
msgstr "non se pode xera-lo ficheiro de saída"
@@ -1277,7 +1277,7 @@ msgstr "lixo á fin da especificación do código de caracteres"
msgid "unterminated symbolic name"
msgstr "nome simbólico non rematado"
-#: locale/programs/linereader.c:537 catgets/gencat.c:1166
+#: locale/programs/linereader.c:537 catgets/gencat.c:1195
msgid "invalid escape sequence"
msgstr "secuencia de escape non válida"
@@ -1307,39 +1307,39 @@ msgstr "o símbolo `%.*s' non está no mapa de repertorios"
msgid "trailing garbage at end of line"
msgstr "lixo na fin da liña"
-#: locale/programs/locale.c:73
+#: locale/programs/locale.c:75
msgid "System information:"
msgstr "Información do sistema:"
-#: locale/programs/locale.c:75
+#: locale/programs/locale.c:77
msgid "Write names of available locales"
msgstr "Escribi-los nomes dos `locales' dispoñibles"
-#: locale/programs/locale.c:77
+#: locale/programs/locale.c:79
msgid "Write names of available charmaps"
msgstr "Escribi-los nomes dos mapas de caracteres dispoñibles"
-#: locale/programs/locale.c:78
+#: locale/programs/locale.c:80
msgid "Modify output format:"
msgstr "Modifica-lo formato de saída:"
-#: locale/programs/locale.c:79
+#: locale/programs/locale.c:81
msgid "Write names of selected categories"
msgstr "Escribi-los nomes das categorías seleccionadas"
-#: locale/programs/locale.c:80
+#: locale/programs/locale.c:82
msgid "Write names of selected keywords"
msgstr "Escribi-los nomes das claves seleccionadas"
-#: locale/programs/locale.c:81
+#: locale/programs/locale.c:83
msgid "Print more information"
msgstr "Amosar máis información"
-#: locale/programs/locale.c:86
+#: locale/programs/locale.c:88
msgid "Get locale-specific information."
msgstr "Obter información específica do `locale'."
-#: locale/programs/locale.c:89
+#: locale/programs/locale.c:91
msgid ""
"NAME\n"
"[-a|-m]"
@@ -1347,7 +1347,7 @@ msgstr ""
"NOME\n"
"[-a|-m]"
-#: locale/programs/locale.c:488
+#: locale/programs/locale.c:512
msgid "while preparing output"
msgstr "ao prepara-la saída"
@@ -1478,16 +1478,16 @@ msgstr "non se pode engadi-lo locale xa lido `%s' outra vez"
msgid "cannot create temporary file"
msgstr "non se pode crea-lo ficheiro temporal"
-#: locale/programs/locarchive.c:118 locale/programs/locarchive.c:302
+#: locale/programs/locarchive.c:118 locale/programs/locarchive.c:305
msgid "cannot initialize archive file"
msgstr "non se pode inicializa-lo ficheiro de arquivo"
-#: locale/programs/locarchive.c:125 locale/programs/locarchive.c:309
+#: locale/programs/locarchive.c:125 locale/programs/locarchive.c:312
msgid "cannot resize archive file"
msgstr "non se pode cambia-lo tamaño do ficheiro de arquivo"
-#: locale/programs/locarchive.c:134 locale/programs/locarchive.c:318
-#: locale/programs/locarchive.c:508
+#: locale/programs/locarchive.c:134 locale/programs/locarchive.c:321
+#: locale/programs/locarchive.c:511
msgid "cannot map archive header"
msgstr "non se pode mapea-la cabeceira do arquivo"
@@ -1503,88 +1503,88 @@ msgstr "non se pode cambia-lo modo do novo arquivo de locales"
msgid "cannot map locale archive file"
msgstr "non se pode mapea-lo ficheiro de arquivo de locales"
-#: locale/programs/locarchive.c:326
+#: locale/programs/locarchive.c:329
msgid "cannot lock new archive"
msgstr "non se pode bloquea-lo novo arquivo"
-#: locale/programs/locarchive.c:377
+#: locale/programs/locarchive.c:380
msgid "cannot extend locale archive file"
msgstr "non se pode extende-lo ficheiro de arquivo de locales"
-#: locale/programs/locarchive.c:386
+#: locale/programs/locarchive.c:389
msgid "cannot change mode of resized locale archive"
msgstr "non se pode cambia-lo modo do arquivo de locales co novo tamaño"
-#: locale/programs/locarchive.c:394
+#: locale/programs/locarchive.c:397
msgid "cannot rename new archive"
msgstr "non se pode renomea-lo novo arquivo"
-#: locale/programs/locarchive.c:447
+#: locale/programs/locarchive.c:450
#, c-format
msgid "cannot open locale archive \"%s\""
msgstr "non se pode abri-lo arquivo de locales \"%s\""
-#: locale/programs/locarchive.c:452
+#: locale/programs/locarchive.c:455
#, c-format
msgid "cannot stat locale archive \"%s\""
msgstr "non se pode facer stat do arquivo de locales \"%s\""
-#: locale/programs/locarchive.c:471
+#: locale/programs/locarchive.c:474
#, c-format
msgid "cannot lock locale archive \"%s\""
msgstr "non se pode bloquea-lo arquivo de locales \"%s\""
-#: locale/programs/locarchive.c:494
+#: locale/programs/locarchive.c:497
msgid "cannot read archive header"
msgstr "non se pode le-la cabeceira do arquivo"
-#: locale/programs/locarchive.c:554
+#: locale/programs/locarchive.c:557
#, c-format
msgid "locale '%s' already exists"
msgstr "o locale '%s' xa existe"
-#: locale/programs/locarchive.c:784 locale/programs/locarchive.c:799
-#: locale/programs/locarchive.c:811 locale/programs/locarchive.c:823
+#: locale/programs/locarchive.c:788 locale/programs/locarchive.c:803
+#: locale/programs/locarchive.c:815 locale/programs/locarchive.c:827
#: locale/programs/locfile.c:343
msgid "cannot add to locale archive"
msgstr "non se pode engadir no arquivo de locales"
-#: locale/programs/locarchive.c:976
+#: locale/programs/locarchive.c:982
#, c-format
msgid "locale alias file `%s' not found"
msgstr "non se atopou o ficheiro de alias de locales `%s'"
-#: locale/programs/locarchive.c:1118
+#: locale/programs/locarchive.c:1126
#, c-format
msgid "Adding %s\n"
msgstr "Engadindo %s\n"
-#: locale/programs/locarchive.c:1124
+#: locale/programs/locarchive.c:1132
#, c-format
msgid "stat of \"%s\" failed: %s: ignored"
msgstr "a chamada a stat de \"%s\" fallou: %s: ignórase"
-#: locale/programs/locarchive.c:1130
+#: locale/programs/locarchive.c:1138
#, c-format
msgid "\"%s\" is no directory; ignored"
msgstr "\"%s\" non é un directorio; ignórase"
-#: locale/programs/locarchive.c:1137
+#: locale/programs/locarchive.c:1145
#, c-format
msgid "cannot open directory \"%s\": %s: ignored"
msgstr "non se pode abr-lo directorio \"%s\": %s: ignorado"
-#: locale/programs/locarchive.c:1209
+#: locale/programs/locarchive.c:1217
#, c-format
msgid "incomplete set of locale files in \"%s\""
msgstr "conxunto de ficheiros de locale incompleto en \"%s\""
-#: locale/programs/locarchive.c:1273
+#: locale/programs/locarchive.c:1281
#, c-format
msgid "cannot read all files in \"%s\": ignored"
msgstr "non se poden ler tódolos ficheiros de \"%s\": ignorado"
-#: locale/programs/locarchive.c:1343
+#: locale/programs/locarchive.c:1351
#, c-format
msgid "locale \"%s\" not in archive"
msgstr "o locale \"%s\" non está no arquivo"
@@ -1653,8 +1653,8 @@ msgstr "<%s> e <%s> son nomes non válidos para o rango"
msgid "upper limit in range is not smaller then lower limit"
msgstr "o límite superior do rango non é menor có límite inferior"
-#: locale/programs/xmalloc.c:70 malloc/obstack.c:500 malloc/obstack.c:503
-#: posix/getconf.c:996
+#: locale/programs/xmalloc.c:70 malloc/obstack.c:505 malloc/obstack.c:508
+#: posix/getconf.c:1002
msgid "memory exhausted"
msgstr "memoria esgotada"
@@ -1680,7 +1680,7 @@ msgstr "Primeira cadea para facer probas."
msgid "Another string for testing."
msgstr "Outra cadea para facer probas."
-#: catgets/gencat.c:111 catgets/gencat.c:115 nscd/nscd.c:79
+#: catgets/gencat.c:111 catgets/gencat.c:115 nscd/nscd.c:84
msgid "NAME"
msgstr "NOME"
@@ -1725,7 +1725,7 @@ msgstr "número de conxunto ilegal"
msgid "duplicate set definition"
msgstr "definición de conxunto duplicada"
-#: catgets/gencat.c:446 catgets/gencat.c:619 catgets/gencat.c:648
+#: catgets/gencat.c:446 catgets/gencat.c:623 catgets/gencat.c:677
msgid "this is the first definition"
msgstr "esta é a primeira definición"
@@ -1743,44 +1743,44 @@ msgstr "carácter de cita non válido"
msgid "unknown directive `%s': line ignored"
msgstr "directiva `%s' descoñecida: liña ignorada"
-#: catgets/gencat.c:617
+#: catgets/gencat.c:621
msgid "duplicated message number"
msgstr "número de mensaxe duplicado"
-#: catgets/gencat.c:645
+#: catgets/gencat.c:674
msgid "duplicated message identifier"
msgstr "identificador de mensaxes duplicado"
-#: catgets/gencat.c:702
+#: catgets/gencat.c:731
msgid "invalid character: message ignored"
msgstr "carácter non válido: mensaxe ignorada"
-#: catgets/gencat.c:745
+#: catgets/gencat.c:774
msgid "invalid line"
msgstr "liña non válida"
-#: catgets/gencat.c:799
+#: catgets/gencat.c:828
msgid "malformed line ignored"
msgstr "ignórase unha liña mal formada"
-#: catgets/gencat.c:963 catgets/gencat.c:1004
+#: catgets/gencat.c:992 catgets/gencat.c:1033
#, c-format
msgid "cannot open output file `%s'"
msgstr "non se pode abri-lo ficheiro de saída `%s'"
-#: catgets/gencat.c:1188
+#: catgets/gencat.c:1217
msgid "unterminated message"
msgstr "mensaxe non rematada"
-#: catgets/gencat.c:1212
+#: catgets/gencat.c:1241
msgid "while opening old catalog file"
msgstr "ao abrir un antigo ficheiro de catálogo"
-#: catgets/gencat.c:1303
+#: catgets/gencat.c:1332
msgid "conversion modules not available"
msgstr "os módulos de conversión non están dispoñibles"
-#: catgets/gencat.c:1329
+#: catgets/gencat.c:1358
msgid "cannot determine escape character"
msgstr "non se pode determina-lo carácter de escape"
@@ -1788,7 +1788,7 @@ msgstr "non se pode determina-lo carácter de escape"
msgid "makecontext: does not know how to handle more than 8 arguments\n"
msgstr "makecontext: non se sabe como manexar máis de 8 argumentos\n"
-#: stdio-common/../sysdeps/gnu/errlist.c:12 posix/regcomp.c:178
+#: stdio-common/../sysdeps/gnu/errlist.c:12 posix/regcomp.c:133
#: nis/nis_error.c:29 nis/ypclnt.c:787 nis/ypclnt.c:861
msgid "Success"
msgstr "Éxito"
@@ -2977,23 +2977,23 @@ msgstr "Non se pode enviar despois de desconecta-lo socket"
msgid "%s%sUnknown signal %d\n"
msgstr "%s%sSinal descoñecido %d\n"
-#: malloc/mcheck.c:296
+#: malloc/mcheck.c:346
msgid "memory is consistent, library is buggy\n"
msgstr "a memoria é consistente, a biblioteca ten erros\n"
-#: malloc/mcheck.c:299
+#: malloc/mcheck.c:349
msgid "memory clobbered before allocated block\n"
msgstr "memoria alterada antes do bloque reservado\n"
-#: malloc/mcheck.c:302
+#: malloc/mcheck.c:352
msgid "memory clobbered past end of allocated block\n"
msgstr "memoria alterada despois do bloque reservado\n"
-#: malloc/mcheck.c:305
+#: malloc/mcheck.c:355
msgid "block freed twice\n"
msgstr "bloque liberado dúas veces\n"
-#: malloc/mcheck.c:308
+#: malloc/mcheck.c:358
msgid "bogus mcheck_status, library is buggy\n"
msgstr "mcheck_status falso, a biblioteca ten erros\n"
@@ -3029,6 +3029,10 @@ msgstr "Xerar un gráfico dos datos de perfilado da memoria"
msgid "DATAFILE [OUTFILE]"
msgstr "FICHEIRO_DATOS [FICHEIRO_SAÍDA]"
+#: string/strerror.c:43 posix/../sysdeps/posix/gai_strerror.c:57
+msgid "Unknown error"
+msgstr "Erro descoñecido"
+
#: string/strsignal.c:69
#, c-format
msgid "Real-time signal %d"
@@ -3053,7 +3057,7 @@ msgstr "Erro ao escribir na saída estándar"
msgid "%s: Memory exhausted: %s\n"
msgstr "%s: Memoria esgotada: %s\n"
-#: timezone/zic.c:390 misc/error.c:120
+#: timezone/zic.c:390 misc/error.c:127 misc/error.c:155
msgid "Unknown system error"
msgstr "Erro de sistema descoñecido"
@@ -3446,25 +3450,21 @@ msgstr "Tódalas peticións completadas"
msgid "Interrupted by a signal"
msgstr "Interrompido por un sinal"
-#: posix/../sysdeps/posix/gai_strerror.c:57
-msgid "Unknown error"
-msgstr "Erro descoñecido"
-
-#: posix/getconf.c:883
+#: posix/getconf.c:889
#, c-format
msgid "Usage: %s [-v specification] variable_name [pathname]\n"
msgstr "Uso: %s [-v especificación] nome_variable [nome]\n"
-#: posix/getconf.c:941
+#: posix/getconf.c:947
#, c-format
msgid "unknown specification \"%s\""
msgstr "especificación `%s' descoñecida"
-#: posix/getconf.c:968 posix/getconf.c:984
+#: posix/getconf.c:974 posix/getconf.c:990
msgid "undefined"
msgstr "non definido"
-#: posix/getconf.c:1006
+#: posix/getconf.c:1012
#, c-format
msgid "Unrecognized variable `%s'"
msgstr "Variable `%s' non recoñecida"
@@ -3526,71 +3526,71 @@ msgstr "%s: a opción `-W %s' é ambigua\n"
msgid "%s: option `-W %s' doesn't allow an argument\n"
msgstr "%s: a opción `-W %s' non acepta parámetros\n"
-#: posix/regcomp.c:181
+#: posix/regcomp.c:136
msgid "No match"
msgstr "Nada coincide"
-#: posix/regcomp.c:184
+#: posix/regcomp.c:139
msgid "Invalid regular expression"
msgstr "Expresión regular incorrecta"
-#: posix/regcomp.c:187
+#: posix/regcomp.c:142
msgid "Invalid collation character"
msgstr "Carácter de ordenación incorrecto"
-#: posix/regcomp.c:190
+#: posix/regcomp.c:145
msgid "Invalid character class name"
msgstr "Nome da clase de caracteres incorrecto"
-#: posix/regcomp.c:193
+#: posix/regcomp.c:148
msgid "Trailing backslash"
msgstr "Barra invertida extra ó final"
-#: posix/regcomp.c:196
+#: posix/regcomp.c:151
msgid "Invalid back reference"
msgstr "Referencia cara a atrás incorrecta"
-#: posix/regcomp.c:199
+#: posix/regcomp.c:154
msgid "Unmatched [ or [^"
msgstr "[ ou [^ sen parella"
-#: posix/regcomp.c:202
+#: posix/regcomp.c:157
msgid "Unmatched ( or \\("
msgstr "( ou \\( sen parella"
-#: posix/regcomp.c:205
+#: posix/regcomp.c:160
msgid "Unmatched \\{"
msgstr "\\{ sen parella"
-#: posix/regcomp.c:208
+#: posix/regcomp.c:163
msgid "Invalid content of \\{\\}"
msgstr "Contido de \\{\\} incorrecto"
-#: posix/regcomp.c:211
+#: posix/regcomp.c:166
msgid "Invalid range end"
msgstr "Final do rango incorrecto"
-#: posix/regcomp.c:214
+#: posix/regcomp.c:169
msgid "Memory exhausted"
msgstr "Memoria esgotada"
-#: posix/regcomp.c:217
+#: posix/regcomp.c:172
msgid "Invalid preceding regular expression"
msgstr "Expresión regular precedente incorrecta"
-#: posix/regcomp.c:220
+#: posix/regcomp.c:175
msgid "Premature end of regular expression"
msgstr "Final prematura da expresión regular"
-#: posix/regcomp.c:223
+#: posix/regcomp.c:178
msgid "Regular expression too big"
msgstr "Expresión regular demasiado grande"
-#: posix/regcomp.c:226
+#: posix/regcomp.c:181
msgid "Unmatched ) or \\)"
msgstr ") ou \\) sen parella"
-#: posix/regcomp.c:673
+#: posix/regcomp.c:615
msgid "No previous regular expression"
msgstr "Non hai unha expresión regular precedente"
@@ -3744,24 +3744,24 @@ msgstr "base-de-datos [clave ...]"
msgid "Service configuration to be used"
msgstr "Configuración do servicio a empregar"
-#: nss/getent.c:136 nss/getent.c:305
+#: nss/getent.c:136 nss/getent.c:308
#, c-format
msgid "Enumeration not supported on %s\n"
msgstr "A enumeración non está soportada en %s\n"
-#: nss/getent.c:729
+#: nss/getent.c:732
msgid "getent - get entries from administrative database."
msgstr "getent - obte-las entradas da base de datos administrativa."
-#: nss/getent.c:730
+#: nss/getent.c:733
msgid "Supported databases:"
msgstr "Bases de datos soportadas:"
-#: nss/getent.c:787 nscd/nscd.c:119 nscd/nscd_nischeck.c:64
+#: nss/getent.c:790 nscd/nscd.c:124 nscd/nscd_nischeck.c:64
msgid "wrong number of arguments"
msgstr "número de parámetros incorrecto"
-#: nss/getent.c:797
+#: nss/getent.c:800
#, c-format
msgid "Unknown database: %s\n"
msgstr "Base de datos descoñecida: %s\n"
@@ -3790,68 +3790,72 @@ msgstr "non se pode le-la cabeceira"
msgid "invalid pointer size"
msgstr "tamaño de punteiro non válido"
-#: inet/rcmd.c:174 inet/rcmd.c:177
+#: inet/rcmd.c:163 inet/rcmd.c:166
+msgid "rcmd: Cannot allocate memory\n"
+msgstr "rcmd: Non se pode reservar memoria\n"
+
+#: inet/rcmd.c:185 inet/rcmd.c:188
msgid "rcmd: socket: All ports in use\n"
msgstr "rcmp: socket: Tódolos portos están sendo utilizados\n"
-#: inet/rcmd.c:211
+#: inet/rcmd.c:222
#, c-format
msgid "connect to address %s: "
msgstr "conectarse ao enderezo %s: "
-#: inet/rcmd.c:229
+#: inet/rcmd.c:240
#, c-format
msgid "Trying %s...\n"
msgstr "Probando %s...\n"
-#: inet/rcmd.c:278
+#: inet/rcmd.c:289
#, c-format
msgid "rcmd: write (setting up stderr): %m\n"
msgstr "rcmd: write (configurando stderr): %m\n"
-#: inet/rcmd.c:299
+#: inet/rcmd.c:310
#, c-format
msgid "rcmd: poll (setting up stderr): %m\n"
msgstr "rcmd: poll (configurando stderr): %m\n"
-#: inet/rcmd.c:302
+#: inet/rcmd.c:313
msgid "poll: protocol failure in circuit setup\n"
msgstr "poll: fallo de protocolo no establecemento do circuito\n"
-#: inet/rcmd.c:346
+#: inet/rcmd.c:358
msgid "socket: protocol failure in circuit setup\n"
msgstr "socket: fallo do protocolo no establecemento do circuito\n"
-#: inet/rcmd.c:368
+#: inet/rcmd.c:387
#, c-format
msgid "rcmd: %s: short read"
msgstr "rcmd: %s: lectura curta"
-#: inet/rcmd.c:524
+#: inet/rcmd.c:549
msgid "lstat failed"
msgstr "fallou a chamada a lstat"
-#: inet/rcmd.c:526
+#: inet/rcmd.c:551
msgid "not regular file"
msgstr "non é un ficheiro normal"
-#: inet/rcmd.c:531
+#: inet/rcmd.c:556
msgid "cannot open"
msgstr "non se pode abrir"
-#: inet/rcmd.c:533
+#: inet/rcmd.c:558
msgid "fstat failed"
msgstr "fallou a chamada a fstat"
-#: inet/rcmd.c:535
+#: inet/rcmd.c:560
msgid "bad owner"
msgstr "propietario incorrecto"
-#: inet/rcmd.c:537
+#: inet/rcmd.c:562
msgid "writeable by other than owner"
msgstr "escribible por alguén distinto do propietario"
-#: inet/rcmd.c:539
+#: inet/rcmd.c:564
msgid "hard linked somewhere"
msgstr "ten un enlace duro nalgún sitio"
@@ -4062,109 +4066,109 @@ msgstr "Problema cunha chamada multidifusión"
msgid "Cannot receive reply to broadcast"
msgstr "Non se pode recibi-la resposta á multidifusión"
-#: sunrpc/rpc_main.c:289
+#: sunrpc/rpc_main.c:288
#, c-format
msgid "%s: output would overwrite %s\n"
msgstr "%s: a saída sobreescribiría %s\n"
-#: sunrpc/rpc_main.c:296
+#: sunrpc/rpc_main.c:295
#, c-format
msgid "%s: unable to open %s: %m\n"
msgstr "%s: non se pode abrir %s: %m\n"
-#: sunrpc/rpc_main.c:308
+#: sunrpc/rpc_main.c:307
#, c-format
msgid "%s: while writing output %s: %m"
msgstr "%s: ao escribir á saída %s: %m"
-#: sunrpc/rpc_main.c:343
+#: sunrpc/rpc_main.c:342
#, c-format
msgid "cannot find C preprocessor: %s \n"
msgstr "non podo atopa-lo preprocesador de C: %s \n"
-#: sunrpc/rpc_main.c:351
+#: sunrpc/rpc_main.c:350
msgid "cannot find any C preprocessor (cpp)\n"
msgstr "non podo atopar un preprocesador de C (cpp)\n"
-#: sunrpc/rpc_main.c:420
+#: sunrpc/rpc_main.c:419
#, c-format
msgid "%s: C preprocessor failed with signal %d\n"
msgstr "%s: O preprocesador de C fallou co sinal %d\n"
-#: sunrpc/rpc_main.c:423
+#: sunrpc/rpc_main.c:422
#, c-format
msgid "%s: C preprocessor failed with exit code %d\n"
msgstr "%s: O preprocesador de C fallou co código de saída %d\n"
-#: sunrpc/rpc_main.c:463
+#: sunrpc/rpc_main.c:462
#, c-format
msgid "illegal nettype :`%s'\n"
msgstr "tipo de rede ilegal :`%s'\n"
-#: sunrpc/rpc_main.c:1105
+#: sunrpc/rpc_main.c:1104
msgid "rpcgen: too many defines\n"
msgstr "rpcgen: demasiadas definicións\n"
-#: sunrpc/rpc_main.c:1117
+#: sunrpc/rpc_main.c:1116
msgid "rpcgen: arglist coding error\n"
msgstr "rpcgen: erro de codificación da lista de parámetros\n"
#. TRANS: the file will not be removed; this is an
#. TRANS: informative message.
-#: sunrpc/rpc_main.c:1150
+#: sunrpc/rpc_main.c:1149
#, c-format
msgid "file `%s' already exists and may be overwritten\n"
msgstr "o ficheiro `%s' xa existe e pode ser sobreescrito\n"
-#: sunrpc/rpc_main.c:1195
+#: sunrpc/rpc_main.c:1194
msgid "Cannot specify more than one input file!\n"
msgstr "¡Non se pode indicar máis dun ficheiro de entrada!\n"
-#: sunrpc/rpc_main.c:1365
+#: sunrpc/rpc_main.c:1364
msgid "This implementation doesn't support newstyle or MT-safe code!\n"
msgstr "¡Esta implementación non soporta código de novo estilo ou seguro para MT!\n"
-#: sunrpc/rpc_main.c:1374
+#: sunrpc/rpc_main.c:1373
msgid "Cannot use netid flag with inetd flag!\n"
msgstr "¡Non se pode utiliza-la opción netid coa opción inetd!\n"
-#: sunrpc/rpc_main.c:1386
+#: sunrpc/rpc_main.c:1385
msgid "Cannot use netid flag without TIRPC!\n"
msgstr "¡Non se pode utiliza-la opción netid sen TIRPC!\n"
-#: sunrpc/rpc_main.c:1393
+#: sunrpc/rpc_main.c:1392
msgid "Cannot use table flags with newstyle!\n"
msgstr "¡Non se poden utiliza-las opcións de táboa con newstyle!\n"
-#: sunrpc/rpc_main.c:1412
+#: sunrpc/rpc_main.c:1411
msgid "\"infile\" is required for template generation flags.\n"
msgstr "Precísase dun ficheiro de \"entrada\" para as opcións de xeración de patróns.\n"
-#: sunrpc/rpc_main.c:1417
+#: sunrpc/rpc_main.c:1416
msgid "Cannot have more than one file generation flag!\n"
msgstr "Non se pode ter máis dunha opción de xeración de ficheiros\n"
-#: sunrpc/rpc_main.c:1426
+#: sunrpc/rpc_main.c:1425
#, c-format
msgid "usage: %s infile\n"
msgstr "uso: %s ficheiro-de-entrada\n"
-#: sunrpc/rpc_main.c:1427
+#: sunrpc/rpc_main.c:1426
#, c-format
msgid "\t%s [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile\n"
msgstr "\t%s [-abkCLNTM][-Dnome[=valor]] [-i tamaño] [-I [-K segundos]] [-Y rota] entrada\n"
-#: sunrpc/rpc_main.c:1429
+#: sunrpc/rpc_main.c:1428
#, c-format
msgid "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]\n"
msgstr "\t%s [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o saída] [entrada]\n"
-#: sunrpc/rpc_main.c:1431
+#: sunrpc/rpc_main.c:1430
#, c-format
msgid "\t%s [-s nettype]* [-o outfile] [infile]\n"
msgstr "\t%s [-s tiporede]* [-o saída] [entrada]\n"
-#: sunrpc/rpc_main.c:1432
+#: sunrpc/rpc_main.c:1431
#, c-format
msgid "\t%s [-n netid]* [-o outfile] [infile]\n"
msgstr "\t%s [-n idrede]* [-o saída] [entrada]\n"
@@ -5021,7 +5025,7 @@ msgstr "yp_update: non se pode obte-lo enderezo do servidor\n"
msgid "while allocating hash table entry"
msgstr "ao reservar espacio para a entrada da táboa hash"
-#: nscd/cache.c:150 nscd/connections.c:185
+#: nscd/cache.c:150 nscd/connections.c:187
#, c-format
msgid "cannot stat() file `%s': %s"
msgstr "non se pode facer stat() sobre o ficheiro `%s': %s"
@@ -5034,153 +5038,158 @@ msgstr "non se pode le-lo ficheiro de configuración; isto é fatal"
msgid "Cannot run nscd in secure mode as unprivileged user"
msgstr "Non se pode executar nscd en modo seguro coma usuario non privilexiado"
-#: nscd/connections.c:199
+#: nscd/connections.c:175
+#, c-format
+msgid "while allocating cache: %s"
+msgstr "ao reservar espacio para a caché: %s"
+
+#: nscd/connections.c:200
#, c-format
msgid "cannot open socket: %s"
msgstr "non se pode abrir un socket: %s"
-#: nscd/connections.c:217
+#: nscd/connections.c:218
#, c-format
msgid "cannot enable socket to accept connections: %s"
msgstr "non se pode facer que o socket acepte conexións: %s"
-#: nscd/connections.c:259
+#: nscd/connections.c:260
#, c-format
msgid "handle_request: request received (Version = %d)"
msgstr "handle_request: petición recibida (Version = %d)"
-#: nscd/connections.c:265
+#: nscd/connections.c:266
#, c-format
msgid "cannot handle old request version %d; current version is %d"
msgstr "non se pode manexa-la antiga petición versión %d; a versión actual é %d"
-#: nscd/connections.c:303 nscd/connections.c:325
+#: nscd/connections.c:304 nscd/connections.c:326
#, c-format
msgid "cannot write result: %s"
msgstr "non se pode escribi-lo resultado: %s"
-#: nscd/connections.c:404 nscd/connections.c:498
+#: nscd/connections.c:405 nscd/connections.c:499
#, c-format
msgid "error getting callers id: %s"
msgstr "erro ao obte-lo identificador do chamante: %s"
-#: nscd/connections.c:470
+#: nscd/connections.c:471
#, c-format
msgid "while accepting connection: %s"
msgstr "ao aceptar unha conexión: %s"
-#: nscd/connections.c:481
+#: nscd/connections.c:482
#, c-format
msgid "short read while reading request: %s"
msgstr "lectura demasiado curta ao le-la petición: %s"
-#: nscd/connections.c:517
+#: nscd/connections.c:518
#, c-format
msgid "key length in request too long: %d"
msgstr "lonxitude da clave da petición demasiado grande: %d"
-#: nscd/connections.c:531
+#: nscd/connections.c:532
#, c-format
msgid "short read while reading request key: %s"
msgstr "lectura demasiado curta ao le-la clave de petición: %s"
-#: nscd/connections.c:590 nscd/connections.c:591 nscd/connections.c:610
-#: nscd/connections.c:623 nscd/connections.c:629 nscd/connections.c:636
+#: nscd/connections.c:591 nscd/connections.c:592 nscd/connections.c:611
+#: nscd/connections.c:624 nscd/connections.c:630 nscd/connections.c:637
#, c-format
msgid "Failed to run nscd as user '%s'"
msgstr "Non se puido executar nscd coma o usuario '%s'"
-#: nscd/connections.c:611
+#: nscd/connections.c:612
msgid "getgrouplist failed"
msgstr "fallou a chamada a getgrouplist"
-#: nscd/connections.c:624
+#: nscd/connections.c:625
msgid "setgroups failed"
msgstr "fallou a chamada a setgroups"
-#: nscd/grpcache.c:102 nscd/hstcache.c:110 nscd/pwdcache.c:108
+#: nscd/grpcache.c:103 nscd/hstcache.c:111 nscd/pwdcache.c:109
msgid "while allocating key copy"
msgstr "ao reservar espacio para a copia da clave"
-#: nscd/grpcache.c:152 nscd/hstcache.c:167 nscd/pwdcache.c:145
+#: nscd/grpcache.c:153 nscd/hstcache.c:168 nscd/pwdcache.c:146
msgid "while allocating cache entry"
msgstr "ao reservar espacio para a entrada de caché"
-#: nscd/grpcache.c:195 nscd/hstcache.c:281 nscd/pwdcache.c:191
+#: nscd/grpcache.c:196 nscd/hstcache.c:282 nscd/pwdcache.c:192
#, c-format
msgid "short write in %s: %s"
msgstr "escritura demasiado curta en %s: %s"
-#: nscd/grpcache.c:217
+#: nscd/grpcache.c:218
#, c-format
msgid "Haven't found \"%s\" in group cache!"
msgstr "¡Non atopei \"%s\" na caché de grupos!"
-#: nscd/grpcache.c:292
+#: nscd/grpcache.c:284
#, c-format
msgid "Invalid numeric gid \"%s\"!"
msgstr "¡Identificación numérica de grupo \"%s\" non válida!"
-#: nscd/grpcache.c:299
+#: nscd/grpcache.c:291
#, c-format
msgid "Haven't found \"%d\" in group cache!"
msgstr "¡Non atopei \"%d\" na caché de grupos!"
-#: nscd/hstcache.c:303 nscd/hstcache.c:378 nscd/hstcache.c:456
-#: nscd/hstcache.c:533
+#: nscd/hstcache.c:304 nscd/hstcache.c:370 nscd/hstcache.c:435
+#: nscd/hstcache.c:500
#, c-format
msgid "Haven't found \"%s\" in hosts cache!"
msgstr "¡Non atopei \"%s\" na caché de servidores!"
-#: nscd/nscd.c:80
+#: nscd/nscd.c:85
msgid "Read configuration data from NAME"
msgstr "Le-los datos de configuración de NOME"
-#: nscd/nscd.c:82
+#: nscd/nscd.c:87
msgid "Do not fork and display messages on the current tty"
msgstr "Non bifurcar e visualiza-las mensaxes no terminal actual"
-#: nscd/nscd.c:83
+#: nscd/nscd.c:88
msgid "NUMBER"
msgstr "NÚMERO"
-#: nscd/nscd.c:83
+#: nscd/nscd.c:88
msgid "Start NUMBER threads"
msgstr "Comezar NÚMERO fíos"
-#: nscd/nscd.c:84
+#: nscd/nscd.c:89
msgid "Shut the server down"
msgstr "Apaga-lo servidor"
-#: nscd/nscd.c:85
+#: nscd/nscd.c:90
msgid "Print current configuration statistic"
msgstr "Visualiza-la estatística da configuración actual"
-#: nscd/nscd.c:86
+#: nscd/nscd.c:91
msgid "TABLE"
msgstr "TÁBOA"
-#: nscd/nscd.c:87
+#: nscd/nscd.c:92
msgid "Invalidate the specified cache"
msgstr "Invalida-la caché especificada"
-#: nscd/nscd.c:88
+#: nscd/nscd.c:93
msgid "TABLE,yes"
msgstr "TÁBOA,si"
-#: nscd/nscd.c:88
+#: nscd/nscd.c:93
msgid "Use separate cache for each user"
msgstr "Usar unha caché separada para cada usuario"
-#: nscd/nscd.c:93
+#: nscd/nscd.c:98
msgid "Name Service Cache Daemon."
msgstr "Demo de Cache de Servicio de Nomes."
-#: nscd/nscd.c:126
+#: nscd/nscd.c:131
msgid "already running"
msgstr "xa en execución"
-#: nscd/nscd.c:192 nscd/nscd.c:212 nscd/nscd.c:218
+#: nscd/nscd.c:243 nscd/nscd.c:263 nscd/nscd.c:269
msgid "Only root is allowed to use this option!"
msgstr "¡Só root pode usar esa opción!"
@@ -5270,22 +5279,22 @@ msgstr ""
"%15ld%% tasa de acertos de caché\n"
"%15s comprobe /etc/%s para ve-los cambios\n"
-#: nscd/pwdcache.c:213
+#: nscd/pwdcache.c:214
#, c-format
msgid "Haven't found \"%s\" in password cache!"
msgstr "¡Non atopei \"%s\" na caché de contrasinais!"
-#: nscd/pwdcache.c:288
+#: nscd/pwdcache.c:280
#, c-format
msgid "Invalid numeric uid \"%s\"!"
msgstr "¡Identificación numérica de usuario \"%s\" non válida!"
-#: nscd/pwdcache.c:295
+#: nscd/pwdcache.c:287
#, c-format
msgid "Haven't found \"%d\" in password cache!"
msgstr "¡Non atopei \"%d\" na caché de contrasinais!"
-#: elf/../sysdeps/generic/dl-sysdep.c:297
+#: elf/../sysdeps/generic/dl-sysdep.c:357
msgid "cannot create capability list"
msgstr "non se pode crea-la lista de capacidades"
@@ -5336,7 +5345,7 @@ msgstr "Sistema operativo descoñecido"
msgid ", OS ABI: %s %d.%d.%d"
msgstr ", OS ABI: %s %d.%d.%d"
-#: elf/cache.c:136 elf/ldconfig.c:1033
+#: elf/cache.c:136 elf/ldconfig.c:1045
#, c-format
msgid "Can't open cache file %s\n"
msgstr "Non se puido abri-lo ficheiro de caché %s\n"
@@ -5382,15 +5391,15 @@ msgstr "O cambio dos dereitos de acceso de %s a %#o fallou"
msgid "Renaming of %s to %s failed"
msgstr "Fallou o renomeado de %s a %s"
-#: elf/dl-close.c:113
+#: elf/dl-close.c:128
msgid "shared object not open"
msgstr "o obxecto compartido non está aberto"
-#: elf/dl-close.c:357 elf/dl-open.c:436
+#: elf/dl-close.c:486 elf/dl-open.c:444
msgid "TLS generation counter wrapped! Please send report with the 'glibcbug' script."
msgstr "O xerador de TLS deu unha volta completa. Informe co script 'glibcbug'."
-#: elf/dl-deps.c:111 elf/dl-open.c:177
+#: elf/dl-deps.c:111 elf/dl-open.c:183
msgid "DST not allowed in SUID/SGID programs"
msgstr "Non se admite DST en programas SUID/SGID"
@@ -5407,181 +5416,193 @@ msgstr "non se pode carga-lo `%s' auxiliar debido a unha substitución de element
msgid "cannot allocate dependency list"
msgstr "non se pode localiza-la lista de dependencias"
-#: elf/dl-deps.c:492 elf/dl-deps.c:547
+#: elf/dl-deps.c:494 elf/dl-deps.c:549
msgid "cannot allocate symbol search list"
msgstr "non se pode localiza-la lista de busca de símbolos"
-#: elf/dl-deps.c:532
+#: elf/dl-deps.c:534
msgid "Filters not supported with LD_TRACE_PRELINKING"
msgstr "Non se soportan os filtros con LD_TRACE_PRELINKING"
-#: elf/dl-error.c:73
+#: elf/dl-error.c:75
msgid "DYNAMIC LINKER BUG!!!"
msgstr "¡¡¡ERRO NO LIGADOR DINÁMICO!!!"
-#: elf/dl-error.c:106
+#: elf/dl-error.c:108
msgid "error while loading shared libraries"
msgstr "erro ao carga-las bibliotecas compartidas"
-#: elf/dl-load.c:338
+#: elf/dl-load.c:339
msgid "cannot allocate name record"
msgstr "non se pode localiza-lo rexistro de nome"
-#: elf/dl-load.c:440 elf/dl-load.c:520 elf/dl-load.c:614 elf/dl-load.c:709
+#: elf/dl-load.c:441 elf/dl-load.c:520 elf/dl-load.c:612 elf/dl-load.c:707
msgid "cannot create cache for search path"
msgstr "non se pode crea-la caché para a ruta de busca"
-#: elf/dl-load.c:545
+#: elf/dl-load.c:543
msgid "cannot create RUNPATH/RPATH copy"
msgstr "non se pode crear unha copia de RUNPATH/RPATH"
-#: elf/dl-load.c:600
+#: elf/dl-load.c:598
msgid "cannot create search path array"
msgstr "non se pode crea-lo vector de rutas de busca"
-#: elf/dl-load.c:796
+#: elf/dl-load.c:794
msgid "cannot stat shared object"
msgstr "non se puido facer stat sobre o obxecto compartido"
-#: elf/dl-load.c:840
+#: elf/dl-load.c:838
msgid "cannot open zero fill device"
msgstr "non se pode abrir un dispositivo de recheo de ceros"
-#: elf/dl-load.c:849 elf/dl-load.c:1855
+#: elf/dl-load.c:847 elf/dl-load.c:1902
msgid "cannot create shared object descriptor"
msgstr "non se pode crear un descriptor de obxecto compartido"
-#: elf/dl-load.c:868 elf/dl-load.c:1351 elf/dl-load.c:1434
+#: elf/dl-load.c:866 elf/dl-load.c:1398 elf/dl-load.c:1481
msgid "cannot read file data"
msgstr "non se pode le-los datos do ficheiro"
-#: elf/dl-load.c:908
+#: elf/dl-load.c:906
msgid "ELF load command alignment not page-aligned"
msgstr "O comando de carga ELF non está aliñado coa páxina"
-#: elf/dl-load.c:915
+#: elf/dl-load.c:913
msgid "ELF load command address/offset not properly aligned"
msgstr "O enderezo/desprazamento do comando de carga ELF non está ben aliñado"
-#: elf/dl-load.c:996
+#: elf/dl-load.c:988
+msgid "cannot allocate TLS data structures for initial thread"
+msgstr "non se poden crea-las estructuras de datos TLS para o fío inicial"
+
+#: elf/dl-load.c:1012
+msgid "cannot handle TLS data"
+msgstr "non se poden manexa-los datos TLS"
+
+#: elf/dl-load.c:1047
msgid "failed to map segment from shared object"
msgstr "non se puido mapear un segmento dun obxecto compartido"
-#: elf/dl-load.c:1020
+#: elf/dl-load.c:1071
msgid "cannot dynamically load executable"
msgstr "non se pode cargar dinamicamente o executable"
-#: elf/dl-load.c:1081
+#: elf/dl-load.c:1132
msgid "cannot change memory protections"
msgstr "non se poden cambia-las proteccións de memoria"
-#: elf/dl-load.c:1100
+#: elf/dl-load.c:1151
msgid "cannot map zero-fill pages"
msgstr "non se poden mapear páxinas de recheo de ceros"
-#: elf/dl-load.c:1118
+#: elf/dl-load.c:1169
msgid "cannot allocate memory for program header"
msgstr "Non se pode reservar memoria para a cabeceira do programa"
-#: elf/dl-load.c:1149
+#: elf/dl-load.c:1200
msgid "object file has no dynamic section"
msgstr "o ficheiro obxecto non ten unha sección dinámica"
-#: elf/dl-load.c:1193
+#: elf/dl-load.c:1240
msgid "shared object cannot be dlopen()ed"
msgstr "non se pode facer dlopen() sobre o obxecto compartido"
-#: elf/dl-load.c:1216
+#: elf/dl-load.c:1263
msgid "cannot create searchlist"
msgstr "non se pode crea-la lista de busca"
-#: elf/dl-load.c:1351
+#: elf/dl-load.c:1398
msgid "file too short"
msgstr "ficheiro pequeno de máis"
-#: elf/dl-load.c:1374
+#: elf/dl-load.c:1421
msgid "invalid ELF header"
msgstr "cabeceira ELF non válida"
-#: elf/dl-load.c:1383
+#: elf/dl-load.c:1430
msgid "ELF file data encoding not big-endian"
msgstr "A codificación dos datos do ficheiro ELF non é \"big-endian\""
-#: elf/dl-load.c:1385
+#: elf/dl-load.c:1432
msgid "ELF file data encoding not little-endian"
msgstr "A codificación dos datos do ficheiro ELF non é \"little-endian\""
-#: elf/dl-load.c:1389
+#: elf/dl-load.c:1436
msgid "ELF file version ident does not match current one"
msgstr "O identificador da versión do ficheiro ELF non coincide co actual"
-#: elf/dl-load.c:1393
+#: elf/dl-load.c:1440
msgid "ELF file OS ABI invalid"
msgstr "ABI do SO do ficheiro ELF non válida"
-#: elf/dl-load.c:1395
+#: elf/dl-load.c:1442
msgid "ELF file ABI version invalid"
msgstr "Versión do ABI do ficheiro ELF non válida"
-#: elf/dl-load.c:1398
+#: elf/dl-load.c:1445
msgid "internal error"
msgstr "erro interno"
-#: elf/dl-load.c:1405
+#: elf/dl-load.c:1452
msgid "ELF file version does not match current one"
msgstr "A versión do ficheiro ELF non coincide coa actual"
-#: elf/dl-load.c:1413
+#: elf/dl-load.c:1460
msgid "ELF file's phentsize not the expected size"
msgstr "O phentsize do ficheiro ELF non é o tamaño esperado"
-#: elf/dl-load.c:1419
+#: elf/dl-load.c:1466
msgid "only ET_DYN and ET_EXEC can be loaded"
msgstr "só se pode cargar ET_DYN e ET_EXEC"
-#: elf/dl-load.c:1870
+#: elf/dl-load.c:1917
msgid "cannot open shared object file"
msgstr "non se pode abrir un ficheiro de obxecto compartido"
-#: elf/dl-lookup.c:248 elf/dl-lookup.c:413
+#: elf/dl-lookup.c:265 elf/dl-lookup.c:430
msgid "relocation error"
msgstr "erro de cambio de reserva"
-#: elf/dl-open.c:105
+#: elf/dl-open.c:111
msgid "cannot extend global scope"
msgstr "non se pode extende-lo alcance global"
-#: elf/dl-open.c:208
+#: elf/dl-open.c:214
msgid "empty dynamic string token substitution"
msgstr "substitución de elementos da cadea dinámica baleira"
-#: elf/dl-open.c:345 elf/dl-open.c:356
+#: elf/dl-open.c:351 elf/dl-open.c:362
msgid "cannot create scope list"
msgstr "non se pode crea-la lista de alcance"
-#: elf/dl-open.c:416
+#: elf/dl-open.c:424
msgid "cannot create TLS data structures"
msgstr "non se poden crea-las estructuras de datos TLS"
-#: elf/dl-open.c:478
+#: elf/dl-open.c:486
msgid "invalid mode for dlopen()"
msgstr "modo incorrecto para dlopen()"
-#: elf/dl-reloc.c:88
+#: elf/dl-reloc.c:58
+msgid "shared object cannot be dlopen()ed: static TLS memory too small"
+msgstr "non se pode facer dlopen() sobre o obxecto compartido: a memoria TLS estática é pequena de máis"
+
+#: elf/dl-reloc.c:118
msgid "cannot make segment writable for relocation"
msgstr "non se pode face-lo segmento gravable para o movemento"
-#: elf/dl-reloc.c:174
+#: elf/dl-reloc.c:219
#, c-format
msgid "%s: profiler found no PLTREL in object %s\n"
msgstr "%s: o perfilador non atopou PLTREL no obxecto %s\n"
-#: elf/dl-reloc.c:186
+#: elf/dl-reloc.c:231
#, c-format
msgid "%s: profiler out of memory shadowing PLTREL of %s\n"
msgstr "%s: o perfilador esgotou a memoria sombreando o PLTREL de %s\n"
-#: elf/dl-reloc.c:201
+#: elf/dl-reloc.c:246
msgid "cannot restore segment prot after reloc"
msgstr "non se pode restaura-la protección do segmento despois de movelo"
@@ -5637,119 +5658,119 @@ msgstr "Formato para empregar: new (novo), old (vello) ou compat (por defecto)"
msgid "Configure Dynamic Linker Run Time Bindings."
msgstr "Configura-las Asignacións de Tempo de Execución do Ligador Dinámico"
-#: elf/ldconfig.c:282
+#: elf/ldconfig.c:294
#, c-format
msgid "Path `%s' given more than once"
msgstr "Proporcionouse a ruta `%s' máis dunha vez"
-#: elf/ldconfig.c:326
+#: elf/ldconfig.c:338
#, c-format
msgid "%s is not a known library type"
msgstr "%s non é un tipo de biblioteca coñecido"
-#: elf/ldconfig.c:344
+#: elf/ldconfig.c:356
#, c-format
msgid "Can't stat %s"
msgstr "Non se puido executar `stat' sobre %s"
-#: elf/ldconfig.c:414
+#: elf/ldconfig.c:426
#, c-format
msgid "Can't stat %s\n"
msgstr "Non se puido executar `stat' sobre %s\n"
-#: elf/ldconfig.c:424
+#: elf/ldconfig.c:436
#, c-format
msgid "%s is not a symbolic link\n"
msgstr "%s non é unha ligazón simbólica\n"
-#: elf/ldconfig.c:443
+#: elf/ldconfig.c:455
#, c-format
msgid "Can't unlink %s"
msgstr "Non se puido borrar %s"
-#: elf/ldconfig.c:449
+#: elf/ldconfig.c:461
#, c-format
msgid "Can't link %s to %s"
msgstr "Non se puido ligar %s a %s"
-#: elf/ldconfig.c:455
+#: elf/ldconfig.c:467
msgid " (changed)\n"
msgstr " (cambiou)\n"
-#: elf/ldconfig.c:457
+#: elf/ldconfig.c:469
msgid " (SKIPPED)\n"
msgstr " (OMITIDO)\n"
-#: elf/ldconfig.c:512
+#: elf/ldconfig.c:524
#, c-format
msgid "Can't find %s"
msgstr "Non se pode atopar %s"
-#: elf/ldconfig.c:528
+#: elf/ldconfig.c:540
#, c-format
msgid "Can't lstat %s"
msgstr "Non se pode facer lstat sobre %s"
-#: elf/ldconfig.c:535
+#: elf/ldconfig.c:547
#, c-format
msgid "Ignored file %s since it is not a regular file."
msgstr "Ignorouse o ficheiro %s porque non é un ficheiro normal"
-#: elf/ldconfig.c:543
+#: elf/ldconfig.c:555
#, c-format
msgid "No link created since soname could not be found for %s"
msgstr "Non se creou unha ligazón porque non se atopou o soname para %s"
-#: elf/ldconfig.c:634
+#: elf/ldconfig.c:646
#, c-format
msgid "Can't open directory %s"
msgstr "Non se puido abri-lo directorio %s"
-#: elf/ldconfig.c:689 elf/ldconfig.c:736
+#: elf/ldconfig.c:701 elf/ldconfig.c:748
#, c-format
msgid "Cannot lstat %s"
msgstr "Non se pode facer lstat sobre %s"
-#: elf/ldconfig.c:701
+#: elf/ldconfig.c:713
#, c-format
msgid "Cannot stat %s"
msgstr "Non se pode executar `stat' sobre %s"
-#: elf/ldconfig.c:758 elf/readlib.c:93
+#: elf/ldconfig.c:770 elf/readlib.c:93
#, c-format
msgid "Input file %s not found.\n"
msgstr "Non se atopou o ficheiro de entrada %s.\n"
-#: elf/ldconfig.c:792
+#: elf/ldconfig.c:804
#, c-format
msgid "libc5 library %s in wrong directory"
msgstr "biblioteca libc5 %s nun directorio incorrecto"
-#: elf/ldconfig.c:795
+#: elf/ldconfig.c:807
#, c-format
msgid "libc6 library %s in wrong directory"
msgstr "biblioteca libc6 %s nun directorio incorrecto"
-#: elf/ldconfig.c:798
+#: elf/ldconfig.c:810
#, c-format
msgid "libc4 library %s in wrong directory"
msgstr "biblioteca libc4 %s nun directorio incorrecto"
-#: elf/ldconfig.c:825
+#: elf/ldconfig.c:837
#, c-format
msgid "libraries %s and %s in directory %s have same soname but different type."
msgstr "as bibliotecas %s e %s do directorio %s teñen o mesmo soname pero diferente tipo."
-#: elf/ldconfig.c:928
+#: elf/ldconfig.c:940
#, c-format
msgid "Can't open configuration file %s"
msgstr "Non se puido abri-lo ficheiro de configuración %s"
-#: elf/ldconfig.c:1012
+#: elf/ldconfig.c:1024
msgid "Can't chdir to /"
msgstr "Non se pode cambiar ao directorio /"
-#: elf/ldconfig.c:1054
+#: elf/ldconfig.c:1066
#, c-format
msgid "Can't open cache file directory %s\n"
msgstr "Non se puido abri-lo directorio de ficheiros caché %s\n"
diff --git a/po/sv.po b/po/sv.po
index debfff5197..3f4151f1ad 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,13 +1,13 @@
# GNU libc message catalog for swedish
# Copyright © 1996, 1998, 2001, 2002, 2003 Free Software Foundation, Inc.
# Jan Djärv <jan.h.d@swipnet.se>, 1996, 1998, 2001, 2002, 2003.
-# Revision: 1.44
+# Revision: 1.45
#
msgid ""
msgstr ""
"Project-Id-Version: libc 2.3.2\n"
"POT-Creation-Date: 2003-02-22 15:34-0800\n"
-"PO-Revision-Date: 2003-03-03 19:14+0100\n"
+"PO-Revision-Date: 2003-03-03 21:11+0100\n"
"Last-Translator: Jan Djärv <jan.h.d@swipnet.se>\n"
"Language-Team: Swedish <sv@li.org>\n"
"MIME-Version: 1.0\n"
@@ -4714,7 +4714,7 @@ msgid ""
"Group Members :\n"
msgstr ""
"\n"
-"Guppmedlemmar:\n"
+"Gruppmedlemmar:\n"
#: nis/nis_print.c:266
#, c-format