Submitted By: Robert Connolly (ashes) Dan Nicholson Date: 2007-02-12 Initial Package Version: 2.5 Upstream Status: From Upstream Origin: cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc \ co -r glibc-2_5-branch -d glibc-2.5-branch libc diff -pNur -x CVS -x libidn glibc-2.5 glibc-2.5-branch Description: This is a branch update for Glibc-2.5, and should be rechecked periodically. See the "Changelog" and "localedata/ChangeLog" files for specific details. diff -pNur -x CVS -x libidn glibc-2.5/ChangeLog glibc-2.5-branch/ChangeLog --- glibc-2.5/ChangeLog 2006-09-29 11:45:39.000000000 -0700 +++ glibc-2.5-branch/ChangeLog 2007-01-12 10:24:52.000000000 -0800 @@ -1,5 +1,416 @@ +2007-01-05 Steven Munroe + + * stdlib/tst-makecontext.c: Include errno.h. Change main() + to do_test(). Define TEST_FUNCTION. Include test-skeleton.c. + (do_test): Check errno and exit(0) if ENOSYS. + +2007-01-11 Jakub Jelinek + + * stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix handling of multi-byte + thousands separators. + * stdlib/Makefile: Add rules to build and run tst-strtod4. + * stdlib/tst-strtod4.c: New test. + + [BZ #3855] + * stdlib/strtod_l.c (____STRTOF_INTERNAL): 0x. not followed by + hexadecimal digit should accept just the initial 0. + * stdlib/tst-strtod2.c (tests): New variable. + (do_test): Run several tests rather than just one. + +2007-01-03 Ulrich Drepper + + * stdlib/Makefile (tst-strtod3-ENV): Define. + +2006-12-11 Ulrich Drepper + + * stdlib/strtod_l.c (____STRTOF_INTERNAL): Parse thousand + separators also if no non-zero digits found. + * stdlib/Makefile (tests): Add tst-strtod3. + +2006-12-09 Ulrich Drepper + + [BZ #3664] + * stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix test to recognize + empty parsed strings. + * stdlib/Makefile (tests): Add tst-strtod2. + * stdlib/tst-strtod2.c: New file. + + [BZ #3673] + * stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix exp_limit + computation. + * stdlib/Makefile (tests): Add tst-atof2. + * stdlib/tst-atof2.c: New file. + + [BZ #3674] + * stdlib/strtod_l.c (____STRTOF_INTERNAL): Adjust exponent value + correctly if removing trailing zero of hex-float. + * stdlib/Makefile (tests): Add tst-atof1. + * stdlib/tst-atof1.c: New file. + +2007-01-03 Ulrich Drepper + + * string/Makefile (tst-strxfrm2-ENV): Define. + +2006-11-10 Jakub Jelinek + + * string/strxfrm_l.c (STRXFRM): Fix trailing \1 optimization + if N is one bigger than return value. + * string/tst-strxfrm2.c (do_test): Also test strxfrm with l1 + 1 + and l1 last arguments, if buf is defined, verify the return value + equals to strlen (buf) and verify no byte beyond passed length + is modified. + +2006-11-09 Ulrich Drepper + + * string/Makefile (tests): Add tst-strxfrm2. + * string/tst-strxfrm2.c: New file. + +2006-11-08 Jakub Jelinek + + * string/strxfrm_l.c (STRXFRM): Do the trailing \1 removal + optimization even if needed > n. + +2006-12-22 Gavin Romig-Koch + + * nis/nss_compat/compat-grp.c (internal_getgrgid_r): Don't + blacklist the group till after we look it up. + +2006-12-21 Ulrich Drepper + + * include/atomic.h (atomic_forced_read): New macro. + +2006-12-19 Jakub Jelinek + + * nss/getXXbyYY_r.c: Include atomic.h. + (INTERNAL (REENTRANT_NAME)): Write startp after start_fct, + add atomic_write_barrier () in between. + +2006-12-18 Jakub Jelinek + + [BZ #3747] + * stdlib/jrand48_r.c (__jrand48_r): Make sure result is in the + [-231 .. 231) range. + * stdlib/tst-rand48.c (main): Fix expected values for 64-bit + targets. + * stdlib/tst-rand48-2.c: New test. + * stdlib/Makefile (tests): Add tst-rand48-2. + +2006-12-14 Jakub Jelinek + + * misc/tst-pselect.c (do_test): Fix sigblock argument. + +2006-12-14 Ulrich Drepper + + * misc/tst-pselect.c (do_test): Make sure the helper process is + terminating when the test is aborted. + +2006-12-13 Ulrich Drepper + + [BZ #2337] + * libio/Makefile (tests): Add tst-setvbuf1. + * libio/tst-setvbuf1.c: New file. + +2006-12-08 Jakub Jelinek + + [BZ #2337] + * libio/genops.c (__uflow): Fix a typo. + * libio/wfiledoalloc.c (_IO_wfile_doallocate): Don't stat + nor set _IO_LINE_BUF bit here. Size the wide buffer based on + the narrow buffer size. + +2006-11-24 Jakub Jelinek + + [BZ #2337] + * libio/libio.h (_IO_FLAGS2_USER_WBUF): Define. + * libio/wgenops.c (_IO_wsetb, _IO_wdefault_finish): Test and set + _IO_FLAGS2_USER_WBUF bit in _flags2 instead of _IO_USER_BUF bit + in _flags. + * libio/wstrops.c (_IO_wstr_overflow, enlarge_userbuf, + _IO_wstr_finish): Likewise. + * libio/wmemstream.c (open_wmemstream): Likewise. + * libio/fileops.c (_IO_new_file_close_it): Call _IO_set[bgp] + even for wide streams. + +2006-12-09 Jakub Jelinek + + * misc/mntent_r.c (__hasmntopt): Check p[optlen] even when p == rest. + Start searching for next comma at p rather than rest. + * misc/Makefile (tests): Add tst-mntent2. + * misc/tst-mntent2.c: New test. + +2006-12-09 Ulrich Drepper + + [BZ #3632] + * include/features.h: Fix comment about default value for + _POSIX_C_SOURCE. + +2006-12-09 Jakub Jelinek + + * misc/getusershell.c (initshells): Check for integer overflows. + Make strings buffer one bigger as fgets always succeeds when second + argument is 1. Don't use calloc for shells array. Disallow + / as shell. + +2006-12-05 Jakub Jelinek + + * nis/nis_subr.c (nis_getnames): Revert last change. + +2006-10-11 Jakub Jelinek + + * nis/nis_defaults.c (__nis_default_access): Don't call getenv twice. + + * nis/nis_subr.c (nis_getnames): Use __secure_getenv instead of getenv. + * sysdeps/generic/unsecvars.h: Add NIS_PATH. + +2006-12-04 Jakub Jelinek + + * sysdeps/unix/sysv/linux/ttyname.c: Include termios.h. + (ttyname): Use tcgetattr instead of isatty, don't set errno to ENOTTY. + * sysdeps/unix/sysv/linux/ttyname_r.c: Include termios.h. + (__ttyname_r): Use tcgetattr instead of isatty, don't set errno to + ENOTTY. + * io/Makefile: Add rules to build and run tst-ttyname_r test. + * io/tst-ttyname_r.c: New test. + +2006-11-28 Jakub Jelinek + + * elf/dl-support.c: Include dl-procinfo.h. + * sysdeps/powerpc/dl-procinfo.h (PPC_PLATFORM_POWER4, + PPC_PLATFORM_PPC970, PPC_PLATFORM_POWER5, PPC_PLATFORM_POWER5_PLUS, + PPC_PLATFORM_POWER6, PPC_PLATFORM_CELL_BE, PPC_PLATFORM_POWER6X): + Define. + (_dl_string_platform): Use PPC_PLATFORM_* macros instead of + hardcoded constants. + * sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platform): Use + PPC_PLATFORM_* macros for array designators. + +2006-11-11 Steven Munroe + + * sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add 3 new cap + names to the beginning. + (_dl_powerpc_platforms): Add "power6x". + * sysdeps/powerpc/dl-procinfo.h (_DL_HWCAP_FIRST): Decrease. + (HWCAP_IMPORTANT): Add PPC_FEATURE_HAS_DFP. + (_DL_PLATFORMS_COUNT): Increase. + (_dl_string_platform): Handle power6x case. + * sysdeps/powerpc/sysdep.h (PPC_FEATURE_PA6T, PPC_FEATURE_HAS_DFP, + PPC_FEATURE_POWER6_EXT): Define. + (PPC_FEATURE_POWER5, PPC_FEATURE_POWER5_PLUS): Correct Comment. + +2006-11-27 Jakub Jelinek + + [BZ #3559] + * sunrpc/svc_run.c (svc_run): Fail instead of segfaulting if + malloc crashed. + +2006-11-14 Jakub Jelinek + + * nss/nss_files/files-alias.c (get_next_alias): Set line back + to first_unused after parsing :include: file. + +2006-11-14 Ulrich Drepper + + * po/nl.po: Update from translation team. + +2006-11-10 Ulrich Drepper + + * po/sv.po: Update from translation team. + +2006-11-01 Ulrich Drepper + + * po/sv.po: Update from translation team. + +2006-10-29 Ulrich Drepper + + * po/sv.po: Update from translation team. + +2006-10-09 Ulrich Drepper + + * po/sv.po: Update from translation team. + +2006-10-07 Ulrich Drepper + + * po/tr.po: Update from translation team. + +2006-10-06 Ulrich Drepper + + * po/pl.po: Update from translation team. + +2006-11-10 Ulrich Drepper + + [BZ #3451] + * sysdeps/i386/fpu/bits/mathinline.h (floor): Make rounding mode + change atomic. + (ceil): Likewise. + +2006-11-09 Ulrich Drepper + + * sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word): Add + noinline attribute. + +2006-11-10 Jakub Jelinek + + * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Add + noinline attribute. + +2006-11-05 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): + Update handling of cache descriptor 0x49 for new models. + * sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word): + Likewise. + +2006-11-08 Jakub Jelinek + + * elf/dl-load.c (decompose_rpath): Return bool rather than void. + If l->l_name is on inhibit_rpath list, set sps->dirs to -1 and + return false, otherwise return true. + (cache_rpath): Return decompose_rpath return value. + +2006-11-02 Jakub Jelinek + + * malloc/memusage.c (dest): Reset not_me back to false after + printing statistics. + +2006-10-27 Ulrich Drepper + + * elf/dl-close.c (_dl_close_worker): Renamed from _dl_close and + split out locking and parameter checking. + (_dl_close): Call _dl_close_worker after locking and checking. + * elf/dl-open.c (_dl_open): Call _dl_close_worker instead of + _dl_close. + * elf/Makefile: Add rules to build and run tst-thrlock. + * elf/tst-thrlock.c: New file. + + [BZ #3429] + * elf/dl-open.c (dl_open_worker): Keep holding dl_load_lock until + we are sure we do not need it anymore for _dl_close. Also move + the asserts inside the lock region. + Patch mostly by Suzuki . + +2006-10-17 Jakub Jelinek + + * sunrpc/xdr_mem.c (xdrmem_setpos): Don't compare addresses + as signed longs, check for x_base + pos overflow. + * sunrpc/Makefile (tests): Add tst-xdrmem2. + * sunrpc/tst-xdrmem2.c: New test. + +2006-10-16 Ulrich Drepper + + [BZ #3369] + * sysdeps/posix/getaddrinfo.c (rfc3484_sort): Fix typos in rules 4 + and 7. + +2006-10-13 Ulrich Drepper + + * elf/dl-minimal.c (realloc): Optimize last patch. + +2006-10-12 Richard Sandiford + + [BZ #3352] + * elf/dl-minimal.c (realloc): Let malloc() return a new pointer, + and use memcpy() if it does. + +2006-10-11 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/sysdep.h (DOARGS_6): Fix offset. + +2006-10-10 Ulrich Drepper + + * nis/nis_subr.c (nis_getnames): Add trailing dot to NIS_PATH + components which lack them. + + * nis/nis_subr.c (nis_getnames): Make sure that we always return + at least one entry consisting of the parameter concatenated with + the domain. + +2006-10-09 Jakub Jelinek + + * elf/dl-debug.c (_dl_debug_initialize): Check r->r_map for 0 + rather than r->r_brk. + +2006-10-06 Ulrich Drepper + + * nis/nis_table.c (nis_list): If __follow_path fails in the new + code, make sure the nis_freeresult call doesn't crash and that the + result is reported correctly. + +2006-09-27 Jakub Jelinek + + * nis/nis_table.c (nis_list): Handle FOLLOW_PATH | ALL_RESULTS + when callback is NULL. + + * nis/Versions (libnss_nisplus): Add + _nss_nisplus_initgroups_dyn@@GLIBC_PRIVATE. + * nis/Makefile (libnss_nisplus-routines): Add nisplus-initgroups. + * nis/nss_nisplus/nisplus-grp.c (tablename_val, tablename_len, + _nss_create_tablename): Rename to... + (grp_tablename_val, grp_tablename_len, _nss_grp_create_tablename): + ... these. No longer static. + (internal_setgrent): Adjust users. + (_nss_nisplus_getgrnam_r, _nss_nisplus_getgrgid_r): Likewise. + Don't use locking around _nss_grp_create_tablename call. + * nis/nss_nisplus/nisplus-initgroups.c: New file. + +2006-10-06 Andreas Jaeger + + * include/features.h (__GLIBC_MINOR__): It's glibc 2.5 now. + +2006-10-06 Ulrich Drepper + + * po/pl.po: Update from translation team. + + * nscd/nscd.c (main): Fix typo in message. + Patch by Jakub Bogsz . + +2006-10-02 Jakub Jelinek + + [BZ #3291] + * sysdeps/unix/sysv/linux/sparc/sparc64/pause.c: Include + errno.h, signal.h, unistd.h and sysdep-cancel.h. + (__sigprocmask): Define. + +2006-10-02 Ulrich Drepper + + * elf/rtld.c (dl_main): Don't use prelinking if LD_DYNAMIC_WEAK is + used. + +2006-10-02 Jakub Jelinek + + * nscd/mem.c (mempool_alloc): Round array size to 16 bytes + in oldtotal and newtotal calculation. + * nscd/nscd-client.h (struct mapped_database): Add datasize + field. + * nscd/nscd_helper.c (get_mapping): Initialize datasize field. + (__nscd_get_map_ref): Get a new mapping even if mapping's data_size + increased. + (__nscd_cache_search): Add checks to make sure we never reference + data beyond the current mapping. + +2006-10-02 Dmitry V. Levin + + * sysdeps/posix/getaddrinfo.c (match_prefix): Make mask and val + variables const to avoid compiler warnings. + + * io/fts.c (fts_close): Remove redundant checks. + (fts_build): Likewise. + (fts_palloc): Likewise. + + * manual/message.texi (Advanced gettext functions, + Using gettextized software): Fix typos. + +2006-09-30 Ulrich Drepper + + * posix/glob.c (glob_in_dir): Add some comments and asserts to + explain why there are no leaks. + 2006-09-29 Ulrich Drepper + * libio/wmemstream.c: Include . + * libio/bug-wmemstream1.c: Likewise. + * libio/tst-wmemstream1.c: Likewise. + * libio/tst-wmemstream2.c: Likewise. + * version.h (RELEASE): Bump to 2.5. * README: Regenerated. diff -pNur -x CVS -x libidn glibc-2.5/elf/dl-close.c glibc-2.5-branch/elf/dl-close.c --- glibc-2.5/elf/dl-close.c 2006-09-19 07:39:42.000000000 -0700 +++ glibc-2.5-branch/elf/dl-close.c 2007-01-12 07:21:33.000000000 -0800 @@ -101,22 +101,9 @@ remove_slotinfo (size_t idx, struct dtv_ void -_dl_close (void *_map) +_dl_close_worker (struct link_map *map) { - struct link_map *map = _map; Lmid_t ns = map->l_ns; - unsigned int i; - /* First see whether we can remove the object at all. */ - if (__builtin_expect (map->l_flags_1 & DF_1_NODELETE, 0) - && map->l_init_called) - /* Nope. Do nothing. */ - return; - - if (__builtin_expect (map->l_direct_opencount, 1) == 0) - GLRO(dl_signal_error) (0, map->l_name, NULL, N_("shared object not open")); - - /* Acquire the lock. */ - __rtld_lock_lock_recursive (GL(dl_load_lock)); /* One less direct use. */ --map->l_direct_opencount; @@ -137,7 +124,6 @@ _dl_close (void *_map) _dl_debug_printf ("\nclosing file=%s; direct_opencount=%u\n", map->l_name, map->l_direct_opencount); - __rtld_lock_unlock_recursive (GL(dl_load_lock)); return; } @@ -240,7 +226,7 @@ _dl_close (void *_map) #endif bool unload_any = false; unsigned int first_loaded = ~0; - for (i = 0; i < nloaded; ++i) + for (unsigned int i = 0; i < nloaded; ++i) { struct link_map *imap = maps[i]; @@ -411,7 +397,7 @@ _dl_close (void *_map) /* Check each element of the search list to see if all references to it are gone. */ - for (i = first_loaded; i < nloaded; ++i) + for (unsigned int i = first_loaded; i < nloaded; ++i) { struct link_map *imap = maps[i]; if (!used[i]) @@ -627,6 +613,30 @@ _dl_close (void *_map) goto retry; dl_close_state = not_pending; +} + + +void +_dl_close (void *_map) +{ + struct link_map *map = _map; + + /* First see whether we can remove the object at all. */ + if (__builtin_expect (map->l_flags_1 & DF_1_NODELETE, 0)) + { + assert (map->l_init_called); + /* Nope. Do nothing. */ + return; + } + + if (__builtin_expect (map->l_direct_opencount, 1) == 0) + GLRO(dl_signal_error) (0, map->l_name, NULL, N_("shared object not open")); + + /* Acquire the lock. */ + __rtld_lock_lock_recursive (GL(dl_load_lock)); + + _dl_close_worker (map); + __rtld_lock_unlock_recursive (GL(dl_load_lock)); } diff -pNur -x CVS -x libidn glibc-2.5/elf/dl-debug.c glibc-2.5-branch/elf/dl-debug.c --- glibc-2.5/elf/dl-debug.c 2006-02-28 22:18:30.000000000 -0800 +++ glibc-2.5-branch/elf/dl-debug.c 2007-01-12 06:54:57.000000000 -0800 @@ -54,7 +54,7 @@ _dl_debug_initialize (ElfW(Addr) ldbase, else r = &GL(dl_ns)[ns]._ns_debug; - if (r->r_brk == 0 || ldbase != 0) + if (r->r_map == NULL || ldbase != 0) { /* Tell the debugger where to find the map of loaded objects. */ r->r_version = 1 /* R_DEBUG_VERSION XXX */; diff -pNur -x CVS -x libidn glibc-2.5/elf/dl-load.c glibc-2.5-branch/elf/dl-load.c --- glibc-2.5/elf/dl-load.c 2006-08-28 18:43:42.000000000 -0700 +++ glibc-2.5-branch/elf/dl-load.c 2007-01-12 07:28:03.000000000 -0800 @@ -511,7 +511,7 @@ fillin_rpath (char *rpath, struct r_sear } -static void +static bool internal_function decompose_rpath (struct r_search_path_struct *sps, const char *rpath, struct link_map *l, const char *what) @@ -546,19 +546,8 @@ decompose_rpath (struct r_search_path_st { /* This object is on the list of objects for which the RUNPATH and RPATH must not be used. */ - result = calloc (1, sizeof *result); - if (result == NULL) - { - signal_error_cache: - errstring = N_("cannot create cache for search path"); - signal_error: - _dl_signal_error (ENOMEM, NULL, NULL, errstring); - } - - sps->dirs = result; - sps->malloced = 1; - - return; + sps->dirs = (void *) -1; + return false; } while (*inhp != '\0') @@ -588,7 +577,11 @@ decompose_rpath (struct r_search_path_st result = (struct r_search_path_elem **) malloc ((nelems + 1 + 1) * sizeof (*result)); if (result == NULL) - goto signal_error_cache; + { + errstring = N_("cannot create cache for search path"); + signal_error: + _dl_signal_error (ENOMEM, NULL, NULL, errstring); + } fillin_rpath (copy, result, ":", 0, what, where); @@ -599,6 +592,7 @@ decompose_rpath (struct r_search_path_st sps->dirs = result; /* The caller will change this value if we haven't used a real malloc. */ sps->malloced = 1; + return true; } /* Make sure cached path information is stored in *SP @@ -623,10 +617,9 @@ cache_rpath (struct link_map *l, } /* Make sure the cache information is available. */ - decompose_rpath (sp, (const char *) (D_PTR (l, l_info[DT_STRTAB]) - + l->l_info[tag]->d_un.d_val), - l, what); - return true; + return decompose_rpath (sp, (const char *) (D_PTR (l, l_info[DT_STRTAB]) + + l->l_info[tag]->d_un.d_val), + l, what); } diff -pNur -x CVS -x libidn glibc-2.5/elf/dl-minimal.c glibc-2.5-branch/elf/dl-minimal.c --- glibc-2.5/elf/dl-minimal.c 2005-12-17 15:08:29.000000000 -0800 +++ glibc-2.5-branch/elf/dl-minimal.c 2007-01-12 07:02:01.000000000 -0800 @@ -1,5 +1,6 @@ /* Minimal replacements for basic facilities used in the dynamic linker. - Copyright (C) 1995-1998,2000-2002,2004,2005 Free Software Foundation, Inc. + Copyright (C) 1995-1998,2000-2002,2004,2005,2006 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -128,14 +129,13 @@ free (void *ptr) void * weak_function realloc (void *ptr, size_t n) { - void *new; if (ptr == NULL) return malloc (n); assert (ptr == alloc_last_block); + size_t old_size = alloc_ptr - alloc_last_block; alloc_ptr = alloc_last_block; - new = malloc (n); - assert (new == ptr); - return new; + void *new = malloc (n); + return new != ptr ? memcpy (new, ptr, old_size) : new; } /* Avoid signal frobnication in setjmp/longjmp. Keeps things smaller. */ diff -pNur -x CVS -x libidn glibc-2.5/elf/dl-open.c glibc-2.5-branch/elf/dl-open.c --- glibc-2.5/elf/dl-open.c 2006-08-28 15:56:50.000000000 -0700 +++ glibc-2.5-branch/elf/dl-open.c 2007-01-12 07:21:33.000000000 -0800 @@ -547,15 +547,9 @@ no more namespaces available for dlmopen _dl_unload_cache (); #endif - /* Release the lock. */ - __rtld_lock_unlock_recursive (GL(dl_load_lock)); - + /* See if an error occurred during loading. */ if (__builtin_expect (errstring != NULL, 0)) { - /* Some error occurred during loading. */ - char *local_errstring; - size_t len_errstring; - /* Remove the object from memory. It may be in an inconsistent state if relocation failed, for example. */ if (args.map) @@ -572,12 +566,18 @@ no more namespaces available for dlmopen GL(dl_tls_dtv_gaps) = true; #endif - _dl_close (args.map); + _dl_close_worker (args.map); } + assert (_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT); + + /* Release the lock. */ + __rtld_lock_unlock_recursive (GL(dl_load_lock)); + /* Make a local copy of the error string so that we can release the memory allocated for it. */ - len_errstring = strlen (errstring) + 1; + size_t len_errstring = strlen (errstring) + 1; + char *local_errstring; if (objname == errstring + len_errstring) { size_t total_len = len_errstring + strlen (objname) + 1; @@ -594,14 +594,15 @@ no more namespaces available for dlmopen if (malloced) free ((char *) errstring); - assert (_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT); - /* Reraise the error. */ _dl_signal_error (errcode, objname, NULL, local_errstring); } assert (_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT); + /* Release the lock. */ + __rtld_lock_unlock_recursive (GL(dl_load_lock)); + #ifndef SHARED DL_STATIC_INIT (args.map); #endif diff -pNur -x CVS -x libidn glibc-2.5/elf/dl-support.c glibc-2.5-branch/elf/dl-support.c --- glibc-2.5/elf/dl-support.c 2005-05-11 10:27:22.000000000 -0700 +++ glibc-2.5-branch/elf/dl-support.c 2007-01-12 09:02:00.000000000 -0800 @@ -1,5 +1,5 @@ /* Support for dynamic linking code in static libc. - Copyright (C) 1996-2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1996-2005, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -29,6 +29,7 @@ #include #include #include +#include #include #include diff -pNur -x CVS -x libidn glibc-2.5/elf/Makefile glibc-2.5-branch/elf/Makefile --- glibc-2.5/elf/Makefile 2006-09-19 07:41:41.000000000 -0700 +++ glibc-2.5-branch/elf/Makefile 2007-01-12 07:21:33.000000000 -0800 @@ -171,7 +171,7 @@ tests += loadtest restest1 preloadtest l tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \ unload3 unload4 unload5 unload6 unload7 tst-global1 order2 \ tst-audit1 tst-audit2 \ - tst-stackguard1 tst-addr1 + tst-stackguard1 tst-addr1 tst-thrlock # reldep9 test-srcs = tst-pathopt tests-vis-yes = vismain @@ -916,3 +916,5 @@ $(objpfx)tst-leaks1-mem: $(objpfx)tst-le tst-leaks1-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1.mtrace $(objpfx)tst-addr1: $(libdl) + +$(objpfx)tst-thrlock: $(libdl) $(shared-thread-library) diff -pNur -x CVS -x libidn glibc-2.5/elf/rtld.c glibc-2.5-branch/elf/rtld.c --- glibc-2.5/elf/rtld.c 2006-09-29 09:56:15.000000000 -0700 +++ glibc-2.5-branch/elf/rtld.c 2006-10-02 11:24:37.000000000 -0700 @@ -2087,7 +2087,8 @@ ERROR: ld.so: object '%s' cannot be load } if (main_map->l_info[ADDRIDX (DT_GNU_LIBLIST)] - && ! __builtin_expect (GLRO(dl_profile) != NULL, 0)) + && ! __builtin_expect (GLRO(dl_profile) != NULL, 0) + && ! __builtin_expect (GLRO(dl_dynamic_weak), 0)) { ElfW(Lib) *liblist, *liblistend; struct link_map **r_list, **r_listend, *l; diff -pNur -x CVS -x libidn glibc-2.5/elf/tst-thrlock.c glibc-2.5-branch/elf/tst-thrlock.c --- glibc-2.5/elf/tst-thrlock.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.5-branch/elf/tst-thrlock.c 2007-01-12 07:21:33.000000000 -0800 @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include +#include + +static void * +tf (void *arg) +{ + void *h = dlopen (LIBM_SO, RTLD_LAZY); + if (h == NULL) + { + printf ("dlopen failed: %s\n", dlerror ()); + exit (1); + } + if (dlsym (h, "sin") == NULL) + { + printf ("dlsym failed: %s\n", dlerror ()); + exit (1); + } + if (dlclose (h) != 0) + { + printf ("dlclose failed: %s\n", dlerror ()); + exit (1); + } + return NULL; +} + +int +main (void) +{ +#define N 10 + pthread_t th[N]; + for (int i = 0; i < N; ++i) + { + int e = pthread_create (&th[i], NULL, tf, NULL); + if (e != 0) + { + printf ("pthread_create failed with %d (%s)\n", e, strerror (e)); + return 1; + } + } + for (int i = 0; i < N; ++i) + { + void *res; + int e = pthread_join (th[i], &res); + if (e != 0 || res != NULL) + { + puts ("thread failed"); + return 1; + } + } + return 0; +} diff -pNur -x CVS -x libidn glibc-2.5/include/atomic.h glibc-2.5-branch/include/atomic.h --- glibc-2.5/include/atomic.h 2006-02-17 10:50:09.000000000 -0800 +++ glibc-2.5-branch/include/atomic.h 2007-01-12 09:58:08.000000000 -0800 @@ -324,6 +324,12 @@ #endif +#ifndef atomic_forced_read +# define atomic_forced_read(x) \ + ({ __typeof (x) __x; __asm ("" : "=r" (__x) : "0" (x)); __x; }) +#endif + + #ifndef atomic_delay # define atomic_delay() do { /* nothing */ } while (0) #endif diff -pNur -x CVS -x libidn glibc-2.5/include/features.h glibc-2.5-branch/include/features.h --- glibc-2.5/include/features.h 2006-04-25 13:34:32.000000000 -0700 +++ glibc-2.5-branch/include/features.h 2007-01-12 09:16:43.000000000 -0800 @@ -49,7 +49,7 @@ The `-ansi' switch to the GNU C compiler defines __STRICT_ANSI__. If none of these are defined, the default is to have _SVID_SOURCE, _BSD_SOURCE, and _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to - 199506L. If more than one of these are defined, they accumulate. + 200112L. If more than one of these are defined, they accumulate. For example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together give you ISO C, 1003.1, and 1003.2, but nothing else. @@ -304,7 +304,7 @@ /* Major and minor version number of the GNU C library package. Use these macros to test for features in specific releases. */ #define __GLIBC__ 2 -#define __GLIBC_MINOR__ 4 +#define __GLIBC_MINOR__ 5 #define __GLIBC_PREREQ(maj, min) \ ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) diff -pNur -x CVS -x libidn glibc-2.5/io/fts.c glibc-2.5-branch/io/fts.c --- glibc-2.5/io/fts.c 2006-04-08 12:33:17.000000000 -0700 +++ glibc-2.5-branch/io/fts.c 2006-10-02 09:06:49.000000000 -0700 @@ -251,8 +251,7 @@ fts_close(sp) /* Free up child linked list, sort array, path buffer. */ if (sp->fts_child) fts_lfree(sp->fts_child); - if (sp->fts_array) - free(sp->fts_array); + free(sp->fts_array); free(sp->fts_path); /* Return to original directory, save errno if necessary. */ @@ -705,8 +704,7 @@ fts_build(sp, type) * structures already allocated. */ mem1: saved_errno = errno; - if (p) - free(p); + free(p); fts_lfree(head); (void)__closedir(dirp); cur->fts_info = FTS_ERR; @@ -1043,10 +1041,7 @@ fts_palloc(sp, more) * We limit fts_pathlen to USHRT_MAX to be safe in both cases. */ if (sp->fts_pathlen < 0 || sp->fts_pathlen >= USHRT_MAX) { - if (sp->fts_path) { - free(sp->fts_path); - sp->fts_path = NULL; - } + free(sp->fts_path); sp->fts_path = NULL; __set_errno (ENAMETOOLONG); return (1); diff -pNur -x CVS -x libidn glibc-2.5/io/Makefile glibc-2.5-branch/io/Makefile --- glibc-2.5/io/Makefile 2006-09-17 00:25:55.000000000 -0700 +++ glibc-2.5-branch/io/Makefile 2007-01-12 09:04:39.000000000 -0800 @@ -66,7 +66,7 @@ tests := test-utime test-stat test-stat tst-openat tst-unlinkat tst-fstatat tst-futimesat \ tst-renameat tst-fchownat tst-fchmodat tst-faccessat \ tst-symlinkat tst-linkat tst-readlinkat tst-mkdirat \ - tst-mknodat tst-mkfifoat + tst-mknodat tst-mkfifoat tst-ttyname_r distribute := ftwtest-sh diff -pNur -x CVS -x libidn glibc-2.5/io/tst-ttyname_r.c glibc-2.5-branch/io/tst-ttyname_r.c --- glibc-2.5/io/tst-ttyname_r.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.5-branch/io/tst-ttyname_r.c 2007-01-12 09:27:52.000000000 -0800 @@ -0,0 +1,42 @@ +#include +#include +#include +#include +#include + +static void do_prepare (void); +#define PREPARE(argc, argv) do_prepare () +static int do_test (void); +#define TEST_FUNCTION do_test () +#include + +static int temp_fd; + +static void +do_prepare (void) +{ + char *temp_file; + temp_fd = create_temp_file ("tst-ttyname_r.", &temp_file); + if (temp_fd == -1) + error (1, errno, "cannot create temporary file"); +} + +static int +do_test (void) +{ + int ret = 0; + char buf[sysconf (_SC_TTY_NAME_MAX) + 1]; + int res = ttyname_r (-1, buf, sizeof (buf)); + if (res != EBADF) + { + printf ("1st ttyname_r returned with res %d\n", res); + ret++; + } + res = ttyname_r (temp_fd, buf, sizeof (buf)); + if (res != ENOTTY) + { + printf ("2nd ttyname_r returned with res %d\n", res); + ret++; + } + return ret; +} diff -pNur -x CVS -x libidn glibc-2.5/libio/bug-wmemstream1.c glibc-2.5-branch/libio/bug-wmemstream1.c --- glibc-2.5/libio/bug-wmemstream1.c 2006-08-14 15:11:34.000000000 -0700 +++ glibc-2.5-branch/libio/bug-wmemstream1.c 2006-09-29 17:06:33.000000000 -0700 @@ -1,5 +1,6 @@ #include #include +#include static int diff -pNur -x CVS -x libidn glibc-2.5/libio/fileops.c glibc-2.5-branch/libio/fileops.c --- glibc-2.5/libio/fileops.c 2006-01-18 16:38:35.000000000 -0800 +++ glibc-2.5-branch/libio/fileops.c 2007-01-12 09:25:38.000000000 -0800 @@ -174,14 +174,8 @@ _IO_new_file_close_it (fp) close_status = _IO_SYSCLOSE (fp); /* Free buffer. */ - if (fp->_mode <= 0) - { - INTUSE(_IO_setb) (fp, NULL, NULL, 0); - _IO_setg (fp, NULL, NULL, NULL); - _IO_setp (fp, NULL, NULL); - } #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T - else + if (fp->_mode > 0) { if (_IO_have_wbackup (fp)) INTUSE(_IO_free_wbackup_area) (fp); @@ -190,6 +184,9 @@ _IO_new_file_close_it (fp) _IO_wsetp (fp, NULL, NULL); } #endif + INTUSE(_IO_setb) (fp, NULL, NULL, 0); + _IO_setg (fp, NULL, NULL, NULL); + _IO_setp (fp, NULL, NULL); INTUSE(_IO_un_link) ((struct _IO_FILE_plus *) fp); fp->_flags = _IO_MAGIC|CLOSED_FILEBUF_FLAGS; diff -pNur -x CVS -x libidn glibc-2.5/libio/genops.c glibc-2.5-branch/libio/genops.c --- glibc-2.5/libio/genops.c 2006-02-28 21:32:48.000000000 -0800 +++ glibc-2.5-branch/libio/genops.c 2007-01-12 09:25:38.000000000 -0800 @@ -367,7 +367,7 @@ __uflow (fp) #endif if (fp->_mode == 0) - _IO_fwide (fp, -11); + _IO_fwide (fp, -1); if (_IO_in_put_mode (fp)) if (INTUSE(_IO_switch_to_get_mode) (fp) == EOF) return EOF; diff -pNur -x CVS -x libidn glibc-2.5/libio/libio.h glibc-2.5-branch/libio/libio.h --- glibc-2.5/libio/libio.h 2006-01-14 04:09:46.000000000 -0800 +++ glibc-2.5-branch/libio/libio.h 2007-01-12 09:25:38.000000000 -0800 @@ -142,6 +142,7 @@ #ifdef _LIBC # define _IO_FLAGS2_FORTIFY 4 #endif +#define _IO_FLAGS2_USER_WBUF 8 /* These are "formatting flags" matching the iostream fmtflags enum values. */ #define _IO_SKIPWS 01 diff -pNur -x CVS -x libidn glibc-2.5/libio/Makefile glibc-2.5-branch/libio/Makefile --- glibc-2.5/libio/Makefile 2006-08-14 15:12:27.000000000 -0700 +++ glibc-2.5-branch/libio/Makefile 2007-01-12 09:25:38.000000000 -0800 @@ -57,7 +57,8 @@ tests = tst_swprintf tst_wprintf tst_sws bug-ungetc2 bug-ftell bug-ungetc3 bug-ungetc4 tst-fopenloc2 \ tst-memstream1 tst-memstream2 \ tst-wmemstream1 tst-wmemstream2 \ - bug-memstream1 bug-wmemstream1 + bug-memstream1 bug-wmemstream1 \ + tst-setvbuf1 test-srcs = test-freopen all: # Make this the default target; it will be defined in Rules. diff -pNur -x CVS -x libidn glibc-2.5/libio/tst-setvbuf1.c glibc-2.5-branch/libio/tst-setvbuf1.c --- glibc-2.5/libio/tst-setvbuf1.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.5-branch/libio/tst-setvbuf1.c 2007-01-12 09:25:38.000000000 -0800 @@ -0,0 +1,39 @@ +/* Dereived from the test case in BZ #2337. */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +static char buf[512] __attribute__ ((aligned (4096))); + + +static int +do_test (void) +{ + setlocale (LC_ALL, "de_DE.UTF-8"); + + FILE *fp = fdopen (dup (STDOUT_FILENO), "a"); + if (fp == NULL) + error (EXIT_FAILURE, errno, "fdopen(,\"a\")"); + + setvbuf (fp, buf, _IOFBF, sizeof (buf)); + + /* fwprintf to unbuffered stream. */ + fwprintf (fp, L"hello.\n"); + + fclose (fp); + + /* touch my buffer */ + buf[45] = 'a'; + + return 0; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" diff -pNur -x CVS -x libidn glibc-2.5/libio/tst-wmemstream1.c glibc-2.5-branch/libio/tst-wmemstream1.c --- glibc-2.5/libio/tst-wmemstream1.c 2006-01-11 18:02:27.000000000 -0800 +++ glibc-2.5-branch/libio/tst-wmemstream1.c 2006-09-29 17:06:33.000000000 -0700 @@ -1,3 +1,5 @@ +#include + #define CHAR_T wchar_t #define W(o) L##o #define OPEN_MEMSTREAM open_wmemstream diff -pNur -x CVS -x libidn glibc-2.5/libio/tst-wmemstream2.c glibc-2.5-branch/libio/tst-wmemstream2.c --- glibc-2.5/libio/tst-wmemstream2.c 2006-01-11 18:02:27.000000000 -0800 +++ glibc-2.5-branch/libio/tst-wmemstream2.c 2006-09-29 17:06:33.000000000 -0700 @@ -1,3 +1,5 @@ +#include + #define CHAR_T wchar_t #define W(o) L##o #define OPEN_MEMSTREAM open_wmemstream diff -pNur -x CVS -x libidn glibc-2.5/libio/wfiledoalloc.c glibc-2.5-branch/libio/wfiledoalloc.c --- glibc-2.5/libio/wfiledoalloc.c 2002-07-05 23:35:54.000000000 -0700 +++ glibc-2.5-branch/libio/wfiledoalloc.c 2007-01-12 09:25:38.000000000 -0800 @@ -1,4 +1,5 @@ -/* Copyright (C) 1993, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1997, 1999, 2000, 2002, 2006 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -85,35 +86,20 @@ _IO_wfile_doallocate (fp) _IO_FILE *fp; { _IO_size_t size; - int couldbetty; wchar_t *p; - struct _G_stat64 st; /* Allocate room for the external buffer. */ if (fp->_IO_buf_base == NULL) INTUSE(_IO_file_doallocate) (fp); - if (fp->_fileno < 0 || _IO_SYSSTAT (fp, &st) < 0) - { - couldbetty = 0; - size = _IO_BUFSIZ; -#if 0 - /* do not try to optimise fseek() */ - fp->_flags |= __SNPT; -#endif - } - else - { - couldbetty = S_ISCHR (st.st_mode); -#if _IO_HAVE_ST_BLKSIZE - size = st.st_blksize <= 0 ? _IO_BUFSIZ : st.st_blksize; -#else - size = _IO_BUFSIZ; -#endif - } + /* If narrow buffer is user allocated (set by setvbuf etc.), + use that size as the size of the wide buffer, when it is + allocated by _IO_file_doallocate, multiply that by size + of the wide character. */ + size = fp->_IO_buf_end - fp->_IO_buf_base; + if ((fp->_flags & _IO_USER_BUF)) + size = (size + sizeof (wchar_t) - 1) / sizeof (wchar_t); ALLOC_WBUF (p, size * sizeof (wchar_t), EOF); INTUSE(_IO_wsetb) (fp, p, p + size, 1); - if (couldbetty && isatty (fp->_fileno)) - fp->_flags |= _IO_LINE_BUF; return 1; } diff -pNur -x CVS -x libidn glibc-2.5/libio/wgenops.c glibc-2.5-branch/libio/wgenops.c --- glibc-2.5/libio/wgenops.c 2006-02-12 13:20:57.000000000 -0800 +++ glibc-2.5-branch/libio/wgenops.c 2007-01-12 09:25:38.000000000 -0800 @@ -115,14 +115,14 @@ _IO_wsetb (f, b, eb, a) wchar_t *eb; int a; { - if (f->_wide_data->_IO_buf_base && !(f->_flags & _IO_USER_BUF)) + if (f->_wide_data->_IO_buf_base && !(f->_flags2 & _IO_FLAGS2_USER_WBUF)) FREE_BUF (f->_wide_data->_IO_buf_base, _IO_wblen (f) * sizeof (wchar_t)); f->_wide_data->_IO_buf_base = b; f->_wide_data->_IO_buf_end = eb; if (a) - f->_flags &= ~_IO_USER_BUF; + f->_flags2 &= ~_IO_FLAGS2_USER_WBUF; else - f->_flags |= _IO_USER_BUF; + f->_flags2 |= _IO_FLAGS2_USER_WBUF; } INTDEF(_IO_wsetb) @@ -198,7 +198,7 @@ _IO_wdefault_finish (fp, dummy) int dummy; { struct _IO_marker *mark; - if (fp->_wide_data->_IO_buf_base && !(fp->_flags & _IO_USER_BUF)) + if (fp->_wide_data->_IO_buf_base && !(fp->_flags2 & _IO_FLAGS2_USER_WBUF)) { FREE_BUF (fp->_wide_data->_IO_buf_base, _IO_wblen (fp) * sizeof (wchar_t)); diff -pNur -x CVS -x libidn glibc-2.5/libio/wmemstream.c glibc-2.5-branch/libio/wmemstream.c --- glibc-2.5/libio/wmemstream.c 2006-08-14 15:13:48.000000000 -0700 +++ glibc-2.5-branch/libio/wmemstream.c 2007-01-12 09:25:38.000000000 -0800 @@ -20,6 +20,7 @@ #include "strfile.h" #include #include +#include struct _IO_FILE_wmemstream @@ -91,7 +92,7 @@ open_wmemstream (bufloc, sizeloc) _IO_fwide (&new_f->fp._sf._sbf._f, 1); _IO_wstr_init_static (&new_f->fp._sf._sbf._f, buf, _IO_BUFSIZ / sizeof (wchar_t), buf); - new_f->fp._sf._sbf._f._flags &= ~_IO_USER_BUF; + new_f->fp._sf._sbf._f._flags2 &= ~_IO_FLAGS2_USER_WBUF; new_f->fp._sf._s._allocate_buffer = (_IO_alloc_type) malloc; new_f->fp._sf._s._free_buffer = (_IO_free_type) free; diff -pNur -x CVS -x libidn glibc-2.5/libio/wstrops.c glibc-2.5-branch/libio/wstrops.c --- glibc-2.5/libio/wstrops.c 2006-08-14 15:14:53.000000000 -0700 +++ glibc-2.5-branch/libio/wstrops.c 2007-01-12 09:25:38.000000000 -0800 @@ -88,7 +88,7 @@ _IO_wstr_overflow (fp, c) pos = fp->_wide_data->_IO_write_ptr - fp->_wide_data->_IO_write_base; if (pos >= (_IO_size_t) (_IO_wblen (fp) + flush_only)) { - if (fp->_flags & _IO_USER_BUF) /* not allowed to enlarge */ + if (fp->_flags2 & _IO_FLAGS2_USER_WBUF) /* not allowed to enlarge */ return WEOF; else { @@ -182,7 +182,7 @@ enlarge_userbuf (_IO_FILE *fp, _IO_off64 _IO_ssize_t oldend = wd->_IO_write_end - wd->_IO_write_base; /* Try to enlarge the buffer. */ - if (fp->_flags & _IO_USER_BUF) + if (fp->_flags2 & _IO_FLAGS2_USER_WBUF) /* User-provided buffer. */ return 1; @@ -335,7 +335,7 @@ _IO_wstr_finish (fp, dummy) _IO_FILE *fp; int dummy; { - if (fp->_wide_data->_IO_buf_base && !(fp->_flags & _IO_USER_BUF)) + if (fp->_wide_data->_IO_buf_base && !(fp->_flags2 & _IO_FLAGS2_USER_WBUF)) (((_IO_strfile *) fp)->_s._free_buffer) (fp->_wide_data->_IO_buf_base); fp->_wide_data->_IO_buf_base = NULL; diff -pNur -x CVS -x libidn glibc-2.5/localedata/ChangeLog glibc-2.5-branch/localedata/ChangeLog --- glibc-2.5/localedata/ChangeLog 2006-09-29 11:30:52.000000000 -0700 +++ glibc-2.5-branch/localedata/ChangeLog 2007-01-12 07:26:50.000000000 -0800 @@ -1,3 +1,28 @@ +2006-11-02 Ulrich Drepper + + * locales/mai_IN: New file. + Provided by Rajesh Ranjan . + + * SUPPORTED: Add mai_IN/UTF-8. + +2006-10-12 Ulrich Drepper + + [BZ #3320] + * locales/es_ES (LC_TIME): Add week, first_weekday, and first_workday. + +2006-10-05 Dmitry V. Levin + + * locales/tt_RU: Fix territory, title and descriptive comment. + +2006-10-05 Ulrich Drepper + + * locales/pa_IN (abday): Fix spelling of Sunday. + Patch by Mayank Jain . + +2006-10-01 Ulrich Drepper + + * locales/en_GB: Use more complete en_US data in LC_NAME. + 2006-09-29 Ulrich Drepper [BZ #39] diff -pNur -x CVS -x libidn glibc-2.5/localedata/locales/en_GB glibc-2.5-branch/localedata/locales/en_GB --- glibc-2.5/localedata/locales/en_GB 2006-07-30 15:19:44.000000000 -0700 +++ glibc-2.5-branch/localedata/locales/en_GB 2006-10-01 09:18:33.000000000 -0700 @@ -146,8 +146,7 @@ measurement 1 END LC_MEASUREMENT LC_NAME -name_fmt "/ -" +copy "en_US" END LC_NAME LC_ADDRESS diff -pNur -x CVS -x libidn glibc-2.5/localedata/locales/es_ES glibc-2.5-branch/localedata/locales/es_ES --- glibc-2.5/localedata/locales/es_ES 2006-07-30 15:19:44.000000000 -0700 +++ glibc-2.5-branch/localedata/locales/es_ES 2007-01-12 06:59:44.000000000 -0800 @@ -2187,12 +2187,13 @@ t_fmt_ampm "" date_fmt "/ / " +week 7;19971130;5 +first_weekday 2 +first_workday 2 END LC_TIME LC_PAPER -% FIXME height 297 -% FIXME width 210 END LC_PAPER diff -pNur -x CVS -x libidn glibc-2.5/localedata/locales/mai_IN glibc-2.5-branch/localedata/locales/mai_IN --- glibc-2.5/localedata/locales/mai_IN 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.5-branch/localedata/locales/mai_IN 2007-01-12 07:26:50.000000000 -0800 @@ -0,0 +1,84 @@ +comment_char % +escape_char / +% Maithili language locale for India. +% Contributed by Rajesh Ranjan and +% Sangeeta Kumari . + +LC_IDENTIFICATION +title "Maithili language locale for India" +source "Maithili Computing Research Center, Pune, India" +address "B-3/302, Lunkad Daffodills, Viman Nagar, Pune, India" +contact "" +email "rajeshkajha@yahoo.com" +tel "" +fax "" +language "Maithili" +territory "India" +revision "1.0" +date "2006-11-01" +% +category "mai_IN:2006";LC_IDENTIFICATION +category "mai_IN:2006";LC_CTYPE +category "mai_IN:2006";LC_COLLATE +category "mai_IN:2006";LC_TIME +category "mai_IN:2006";LC_NUMERIC +category "mai_IN:2006";LC_MONETARY +category "mai_IN:2006";LC_MESSAGES +category "mai_IN:2006";LC_PAPER +category "mai_IN:2006";LC_NAME +category "mai_IN:2006";LC_ADDRESS +category "mai_IN:2006";LC_TELEPHONE + +END LC_IDENTIFICATION + +LC_CTYPE +copy "hi_IN" +END LC_CTYPE + +LC_COLLATE +copy "hi_IN" +END LC_COLLATE + +LC_MONETARY +copy "hi_IN" +END LC_MONETARY + + +LC_NUMERIC +copy "hi_IN" +END LC_NUMERIC + + +LC_TIME +copy "hi_IN" +END LC_TIME + + +LC_MESSAGES +copy "hi_IN" +END LC_MESSAGES + + +LC_PAPER +copy "hi_IN" +END LC_PAPER + + +LC_NAME +copy "hi_IN" +END LC_NAME + + +LC_ADDRESS +copy "hi_IN" +END LC_ADDRESS + + +LC_TELEPHONE +copy "hi_IN" +END LC_TELEPHONE + + +LC_MEASUREMENT +copy "hi_IN" +END LC_MEASUREMENT diff -pNur -x CVS -x libidn glibc-2.5/localedata/locales/pa_IN glibc-2.5-branch/localedata/locales/pa_IN --- glibc-2.5/localedata/locales/pa_IN 2006-08-12 22:47:24.000000000 -0700 +++ glibc-2.5-branch/localedata/locales/pa_IN 2006-10-05 09:54:26.000000000 -0700 @@ -80,7 +80,7 @@ abday "";/ "";/ "";/ "";/ - "" + "" % % Full weekday names (%A) day "";/ diff -pNur -x CVS -x libidn glibc-2.5/localedata/locales/tt_RU glibc-2.5-branch/localedata/locales/tt_RU --- glibc-2.5/localedata/locales/tt_RU 2006-07-30 15:19:43.000000000 -0700 +++ glibc-2.5-branch/localedata/locales/tt_RU 2006-10-06 08:34:42.000000000 -0700 @@ -1,7 +1,7 @@ comment_char % escape_char / % -% Tatar Language Locale for Tatarstan +% Tatar Language Locale for Russia % Source: % Contact: Pablo Saratxaga, Rinat Norkin % Email: , @@ -24,7 +24,7 @@ escape_char / % replace cyrillic alphabet LC_IDENTIFICATION -title "Tatar language locale for Tatarstan" +title "Tatar language locale for Russia" source "Rinat Norkin" address "" contact "Pablo Saratxaga, Rinat Norkin" @@ -32,7 +32,7 @@ email "pablo@mandrakesoft.com, rinat@tai tel "" fax "" language "Tatar" -territory "Tatarstan" +territory "Russia" revision "0.4" date "2001-01-28" diff -pNur -x CVS -x libidn glibc-2.5/localedata/SUPPORTED glibc-2.5-branch/localedata/SUPPORTED --- glibc-2.5/localedata/SUPPORTED 2006-09-29 11:29:11.000000000 -0700 +++ glibc-2.5-branch/localedata/SUPPORTED 2007-01-12 07:26:50.000000000 -0800 @@ -252,6 +252,7 @@ lt_LT.UTF-8/UTF-8 \ lt_LT/ISO-8859-13 \ lv_LV.UTF-8/UTF-8 \ lv_LV/ISO-8859-13 \ +mai_IN/UTF-8 \ mg_MG.UTF-8/UTF-8 \ mg_MG/ISO-8859-15 \ mi_NZ.UTF-8/UTF-8 \ diff -pNur -x CVS -x libidn glibc-2.5/malloc/memusage.c glibc-2.5-branch/malloc/memusage.c --- glibc-2.5/malloc/memusage.c 2005-10-14 14:09:34.000000000 -0700 +++ glibc-2.5-branch/malloc/memusage.c 2007-01-12 07:25:43.000000000 -0800 @@ -1,5 +1,5 @@ /* Profile heap and stack memory usage of running program. - Copyright (C) 1998-2002, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1998-2002, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -887,4 +887,10 @@ dest (void) fputc ('=', stderr); fputs ("\e[0;0m\n", stderr); } + + /* Any following malloc/free etc. calls should generate statistics again, + because otherwise freeing something that has been malloced before + this destructor (including struct header in front of it) wouldn't + be properly freed. */ + not_me = false; } diff -pNur -x CVS -x libidn glibc-2.5/manual/message.texi glibc-2.5-branch/manual/message.texi --- glibc-2.5/manual/message.texi 2003-08-29 00:15:18.000000000 -0700 +++ glibc-2.5-branch/manual/message.texi 2006-10-02 09:02:53.000000000 -0700 @@ -1189,7 +1189,7 @@ the rules of how to select the plural fo with every language this is the only viable solution except for hardcoding the information in the code (which still would require the possibility of extensions to not prevent the use of new languages). The -details are explained in the GNU @code{gettext} manual. Here only a a +details are explained in the GNU @code{gettext} manual. Here only a bit of information is provided. The information about the plural form selection has to be stored in the @@ -1590,7 +1590,7 @@ the user to select the message s/he want them. The POSIX locale model uses the environment variables @code{LC_COLLATE}, -@code{LC_CTYPE}, @code{LC_MESSAGES}, @code{LC_MONETARY}, @code{NUMERIC}, +@code{LC_CTYPE}, @code{LC_MESSAGES}, @code{LC_MONETARY}, @code{LC_NUMERIC}, and @code{LC_TIME} to select the locale which is to be used. This way the user can influence lots of functions. As we mentioned above the @code{gettext} functions also take advantage of this. diff -pNur -x CVS -x libidn glibc-2.5/manual/stdio.texi glibc-2.5-branch/manual/stdio.texi --- glibc-2.5/manual/stdio.texi 2006-02-03 23:12:54.000000000 -0800 +++ glibc-2.5-branch/manual/stdio.texi 2006-10-06 08:33:02.000000000 -0700 @@ -2393,8 +2393,9 @@ This function is similar to @code{sprint allocates a string (as with @code{malloc}; @pxref{Unconstrained Allocation}) to hold the output, instead of putting the output in a buffer you allocate in advance. The @var{ptr} argument should be the -address of a @code{char *} object, and @code{asprintf} stores a pointer -to the newly allocated string at that location. +address of a @code{char *} object, and a successful call to +@code{asprintf} stores a pointer to the newly allocated string at that +location. The return value is the number of characters allocated for the buffer, or less than zero if an error occurred. Usually this means that the buffer diff -pNur -x CVS -x libidn glibc-2.5/misc/getusershell.c glibc-2.5-branch/misc/getusershell.c --- glibc-2.5/misc/getusershell.c 2006-05-15 11:56:36.000000000 -0700 +++ glibc-2.5-branch/misc/getusershell.c 2007-01-12 09:11:28.000000000 -0800 @@ -98,7 +98,7 @@ initshells() register char **sp, *cp; register FILE *fp; struct stat64 statb; - int flen; + size_t flen; free(shells); shells = NULL; @@ -114,9 +114,11 @@ initshells() okshells[1] = _PATH_CSHELL; return (char **) okshells; } - if ((strings = malloc((u_int)statb.st_size + 1)) == NULL) + if (statb.st_size > ~(size_t)0 / sizeof (char *) * 3) goto init_okshells; - shells = calloc((unsigned)statb.st_size / 3, sizeof (char *)); + if ((strings = malloc(statb.st_size + 2)) == NULL) + goto init_okshells; + shells = malloc(statb.st_size / 3 * sizeof (char *)); if (shells == NULL) { free(strings); strings = NULL; @@ -124,11 +126,11 @@ initshells() } sp = shells; cp = strings; - flen = statb.st_size; + flen = statb.st_size + 2; while (fgets_unlocked(cp, flen - (cp - strings), fp) != NULL) { while (*cp != '#' && *cp != '/' && *cp != '\0') cp++; - if (*cp == '#' || *cp == '\0') + if (*cp == '#' || *cp == '\0' || cp[1] == '\0') continue; *sp++ = cp; while (!isspace(*cp) && *cp != '#' && *cp != '\0') diff -pNur -x CVS -x libidn glibc-2.5/misc/Makefile glibc-2.5-branch/misc/Makefile --- glibc-2.5/misc/Makefile 2006-06-17 10:00:58.000000000 -0700 +++ glibc-2.5-branch/misc/Makefile 2007-01-12 09:20:09.000000000 -0800 @@ -78,7 +78,7 @@ endif gpl2lgpl := error.c error.h tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \ - tst-error1 tst-pselect tst-insremque + tst-error1 tst-pselect tst-insremque tst-mntent2 ifeq (no,$(cross-compiling)) tests: $(objpfx)tst-error1-mem endif diff -pNur -x CVS -x libidn glibc-2.5/misc/mntent_r.c glibc-2.5-branch/misc/mntent_r.c --- glibc-2.5/misc/mntent_r.c 2003-12-17 15:29:02.000000000 -0800 +++ glibc-2.5-branch/misc/mntent_r.c 2007-01-12 09:20:09.000000000 -0800 @@ -1,5 +1,6 @@ /* Utilities for reading/writing fstab, mtab, etc. - Copyright (C) 1995-2000, 2001, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1995-2000, 2001, 2002, 2003, 2006 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -278,14 +279,11 @@ __hasmntopt (const struct mntent *mnt, c while ((p = strstr (rest, opt)) != NULL) { - if (p == rest - || (p[-1] == ',' - && (p[optlen] == '\0' || - p[optlen] == '=' || - p[optlen] == ','))) + if ((p == rest || p[-1] == ',') + && (p[optlen] == '\0' || p[optlen] == '=' || p[optlen] == ',')) return p; - rest = strchr (rest, ','); + rest = strchr (p, ','); if (rest == NULL) break; ++rest; diff -pNur -x CVS -x libidn glibc-2.5/misc/tst-mntent2.c glibc-2.5-branch/misc/tst-mntent2.c --- glibc-2.5/misc/tst-mntent2.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.5-branch/misc/tst-mntent2.c 2007-01-12 09:20:09.000000000 -0800 @@ -0,0 +1,41 @@ +#include +#include +#include + + +int +main (void) +{ + int result = 0; + struct mntent mef; + + mef.mnt_fsname = strdupa ("/dev/sdf6"); + mef.mnt_dir = strdupa ("/some dir"); + mef.mnt_type = strdupa ("ext3"); + mef.mnt_opts = strdupa ("opt1,opt2,noopt=6,rw,norw,brw"); + mef.mnt_freq = 1; + mef.mnt_passno = 2; + +#define TEST(opt, found) \ + if (!!hasmntopt (&mef, (opt)) != (found)) \ + { \ + printf ("Option %s was %sfound\n", (opt), (found) ? "not " : ""); \ + result = 1; \ + } + + TEST ("opt1", 1) + TEST ("opt2", 1) + TEST ("noopt", 1) + TEST ("rw", 1) + TEST ("norw", 1) + TEST ("brw", 1) + TEST ("opt", 0) + TEST ("oopt", 0) + TEST ("w", 0) + TEST ("r", 0) + TEST ("br", 0) + TEST ("nor", 0) + TEST ("or", 0) + + return result; +} diff -pNur -x CVS -x libidn glibc-2.5/misc/tst-pselect.c glibc-2.5-branch/misc/tst-pselect.c --- glibc-2.5/misc/tst-pselect.c 2006-01-21 11:58:31.000000000 -0800 +++ glibc-2.5-branch/misc/tst-pselect.c 2007-01-12 09:49:04.000000000 -0800 @@ -29,7 +29,16 @@ do_test (void) return 1; } - if (sigblock (SIGUSR1) != 0) + sa.sa_handler = SIG_IGN; + sa.sa_flags = SA_NOCLDWAIT; + + if (sigaction (SIGCHLD, &sa, NULL) != 0) + { + puts ("2nd sigaction failed"); + return 1; + } + + if (sigblock (sigmask (SIGUSR1)) != 0) { puts ("sigblock failed"); return 1; @@ -52,6 +61,7 @@ do_test (void) struct timespec to = { .tv_sec = 0, .tv_nsec = 500000000 }; + pid_t parent = getpid (); pid_t p = fork (); if (p == 0) { @@ -63,6 +73,9 @@ do_test (void) int e; do { + if (getppid () != parent) + exit (2); + errno = 0; e = pselect (fds[0][0] + 1, &rfds, NULL, NULL, &to, &ss); } @@ -108,12 +121,6 @@ do_test (void) return 1; } - if (TEMP_FAILURE_RETRY (waitpid (p, NULL, 0)) != p) - { - puts ("waitpid failed"); - return 1; - } - return 0; } diff -pNur -x CVS -x libidn glibc-2.5/nis/Makefile glibc-2.5-branch/nis/Makefile --- glibc-2.5/nis/Makefile 2006-04-13 22:45:49.000000000 -0700 +++ glibc-2.5-branch/nis/Makefile 2007-01-12 06:37:24.000000000 -0800 @@ -64,7 +64,7 @@ libnss_nis-routines := $(addprefix nis-, libnss_nis-inhibit-o = $(filter-out .os,$(object-suffixes)) libnss_nisplus-routines := $(addprefix nisplus-,$(databases)) nisplus-parser \ - nss-nisplus + nss-nisplus nisplus-initgroups libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes)) include ../Rules diff -pNur -x CVS -x libidn glibc-2.5/nis/nis_defaults.c glibc-2.5-branch/nis/nis_defaults.c --- glibc-2.5/nis/nis_defaults.c 2006-05-09 19:54:46.000000000 -0700 +++ glibc-2.5-branch/nis/nis_defaults.c 2007-01-12 09:05:59.000000000 -0800 @@ -447,7 +447,7 @@ __nis_default_access (char *param, unsig { cptr = getenv ("NIS_DEFAULTS"); if (cptr != NULL && strstr (cptr, "access=") != NULL) - result = searchaccess (getenv ("NIS_DEFAULTS"), result); + result = searchaccess (cptr, result); } return result; diff -pNur -x CVS -x libidn glibc-2.5/nis/nis_subr.c glibc-2.5-branch/nis/nis_subr.c --- glibc-2.5/nis/nis_subr.c 2006-06-16 15:30:02.000000000 -0700 +++ glibc-2.5-branch/nis/nis_subr.c 2007-01-12 06:57:15.000000000 -0800 @@ -251,13 +251,16 @@ nis_getnames (const_nis_name name) { char *p; - tmp = malloc (cplen + name_len + 2); + tmp = malloc (cplen + name_len + 3); if (__builtin_expect (tmp == NULL, 0)) goto free_null; - p = __stpcpy (tmp, name); + p = __mempcpy (tmp, name, name_len); *p++ = '.'; - memcpy (p, cp, cplen + 1); + p = __mempcpy (p, cp, cplen); + if (p[-1] != '.') + *p++ = '.'; + *p = '\0'; } if (pos >= count) @@ -275,6 +278,13 @@ nis_getnames (const_nis_name name) cp = __strtok_r (NULL, ":", &saveptr); } + if (pos == 0 + && __asprintf (&getnames[pos++], "%s%s%s%s", + name, name[name_len - 1] == '.' ? "" : ".", + local_domain, + local_domain[local_domain_len - 1] == '.' ? "" : ".") < 0) + goto free_null; + getnames[pos] = NULL; return getnames; diff -pNur -x CVS -x libidn glibc-2.5/nis/nis_table.c glibc-2.5-branch/nis/nis_table.c --- glibc-2.5/nis/nis_table.c 2006-08-07 09:01:44.000000000 -0700 +++ glibc-2.5-branch/nis/nis_table.c 2007-01-12 06:37:24.000000000 -0800 @@ -215,6 +215,7 @@ nis_list (const_nis_name name, unsigned char *tableptr; char *tablepath = NULL; int first_try = 0; /* Do we try the old binding at first ? */ + nis_result *allres = NULL; if (res == NULL) return NULL; @@ -223,6 +224,7 @@ nis_list (const_nis_name name, unsigned { status = NIS_BADNAME; err_out: + nis_freeresult (allres); memset (res, '\0', sizeof (nis_result)); NIS_RES_STATUS (res) = status; return res; @@ -349,6 +351,7 @@ nis_list (const_nis_name name, unsigned if (names != namebuf) nis_freenames (names); nis_free_request (ibreq); + nis_freeresult (allres); return res; } if (NIS_RES_OBJECT (res)->LI_data.li_attrs.li_attrs_len) @@ -392,6 +395,57 @@ nis_list (const_nis_name name, unsigned goto again; } } + else if ((flags & (FOLLOW_PATH | ALL_RESULTS)) + == (FOLLOW_PATH | ALL_RESULTS)) + { + if (allres == NULL) + { + allres = res; + res = malloc (sizeof (nis_result)); + if (res == NULL) + { + res = allres; + allres = NULL; + NIS_RES_STATUS (res) = NIS_NOMEMORY; + goto fail; + } + NIS_RES_STATUS (res) = NIS_RES_STATUS (allres); + } + else + { + nis_object *objects_val + = realloc (NIS_RES_OBJECT (allres), + (NIS_RES_NUMOBJ (allres) + + NIS_RES_NUMOBJ (res)) + * sizeof (nis_object)); + if (objects_val == NULL) + { + NIS_RES_STATUS (res) = NIS_NOMEMORY; + goto fail; + } + NIS_RES_OBJECT (allres) = objects_val; + memcpy (NIS_RES_OBJECT (allres) + NIS_RES_NUMOBJ (allres), + NIS_RES_OBJECT (res), + NIS_RES_NUMOBJ (res) * sizeof (nis_object)); + NIS_RES_NUMOBJ (allres) += NIS_RES_NUMOBJ (res); + NIS_RES_NUMOBJ (res) = 0; + free (NIS_RES_OBJECT (res)); + NIS_RES_OBJECT (res) = NULL; + NIS_RES_STATUS (allres) = NIS_RES_STATUS (res); + xdr_free ((xdrproc_t) _xdr_nis_result, (char *) res); + } + clnt_status = __follow_path (&tablepath, &tableptr, ibreq, + &bptr); + if (clnt_status != NIS_SUCCESS) + { + /* Prepare for the nis_freeresult call. */ + memset (res, '\0', sizeof (*res)); + + if (clnt_status == NIS_NOMEMORY) + NIS_RES_STATUS (allres) = clnt_status; + ++done; + } + } else ++done; break; @@ -485,6 +539,12 @@ nis_list (const_nis_name name, unsigned nis_free_request (ibreq); + if (allres) + { + nis_freeresult (res); + return allres; + } + return res; } libnsl_hidden_def (nis_list) diff -pNur -x CVS -x libidn glibc-2.5/nis/nss_compat/compat-grp.c glibc-2.5-branch/nis/nss_compat/compat-grp.c --- glibc-2.5/nis/nss_compat/compat-grp.c 2006-07-31 16:33:04.000000000 -0700 +++ glibc-2.5-branch/nis/nss_compat/compat-grp.c 2007-01-12 09:59:51.000000000 -0800 @@ -580,13 +580,17 @@ internal_getgrgid_r (gid_t gid, struct g /* +group */ if (result->gr_name[0] == '+' && result->gr_name[1] != '\0') { + /* Yes, no +1, see the memcpy call below. */ + size_t len = strlen (result->gr_name); + char buf[len]; enum nss_status status; /* Store the group in the blacklist for the "+" at the end of /etc/group */ - blacklist_store_name (&result->gr_name[1], ent); + memcpy (buf, &result->gr_name[1], len); status = getgrnam_plusgroup (&result->gr_name[1], result, ent, buffer, buflen, errnop); + blacklist_store_name (buf, ent); if (status == NSS_STATUS_SUCCESS && result->gr_gid == gid) break; else diff -pNur -x CVS -x libidn glibc-2.5/nis/nss_nisplus/nisplus-grp.c glibc-2.5-branch/nis/nss_nisplus/nisplus-grp.c --- glibc-2.5/nis/nss_nisplus/nisplus-grp.c 2006-05-20 12:20:19.000000000 -0700 +++ glibc-2.5-branch/nis/nss_nisplus/nisplus-grp.c 2007-01-12 06:37:24.000000000 -0800 @@ -46,13 +46,13 @@ static char *tableptr; static netobj cursor; -static nis_name tablename_val; -static size_t tablename_len; +nis_name grp_tablename_val attribute_hidden; +size_t grp_tablename_len attribute_hidden; -static enum nss_status -_nss_create_tablename (int *errnop) +enum nss_status +_nss_grp_create_tablename (int *errnop) { - if (tablename_val == NULL) + if (grp_tablename_val == NULL) { const char *local_dir = nis_local_directory (); size_t local_dir_len = strlen (local_dir); @@ -67,11 +67,16 @@ _nss_create_tablename (int *errnop) memcpy (__stpcpy (p, prefix), local_dir, local_dir_len + 1); - tablename_len = sizeof (prefix) - 1 + local_dir_len; + grp_tablename_len = sizeof (prefix) - 1 + local_dir_len; atomic_write_barrier (); - tablename_val = p; + if (atomic_compare_and_exchange_bool_acq (&grp_tablename_val, p, NULL)) + { + /* Another thread already installed the value. */ + free (p); + grp_tablename_len = strlen (grp_tablename_val); + } } return NSS_STATUS_SUCCESS; @@ -103,19 +108,19 @@ internal_setgrent (int *errnop) { enum nss_status status = NSS_STATUS_SUCCESS; - if (tablename_val == NULL) - status = _nss_create_tablename (errnop); + if (grp_tablename_val == NULL) + status = _nss_grp_create_tablename (errnop); if (status == NSS_STATUS_SUCCESS) { - ibreq = __create_ib_request (tablename_val, 0); + ibreq = __create_ib_request (grp_tablename_val, 0); if (ibreq == NULL) { *errnop = errno; return NSS_STATUS_TRYAGAIN; } - nis_error retcode = __prepare_niscall (tablename_val, &dir, &bptr, 0); + nis_error retcode = __prepare_niscall (grp_tablename_val, &dir, &bptr, 0); if (retcode != NIS_SUCCESS) { nis_free_request (ibreq); @@ -285,13 +290,9 @@ _nss_nisplus_getgrnam_r (const char *nam { int parse_res; - if (tablename_val == NULL) + if (grp_tablename_val == NULL) { - __libc_lock_lock (lock); - - enum nss_status status = _nss_create_tablename (errnop); - - __libc_lock_unlock (lock); + enum nss_status status = _nss_grp_create_tablename (errnop); if (status != NSS_STATUS_SUCCESS) return status; @@ -304,10 +305,10 @@ _nss_nisplus_getgrnam_r (const char *nam } nis_result *result; - char buf[strlen (name) + 9 + tablename_len]; + char buf[strlen (name) + 9 + grp_tablename_len]; int olderr = errno; - snprintf (buf, sizeof (buf), "[name=%s],%s", name, tablename_val); + snprintf (buf, sizeof (buf), "[name=%s],%s", name, grp_tablename_val); result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH, NULL, NULL); @@ -348,13 +349,9 @@ enum nss_status _nss_nisplus_getgrgid_r (const gid_t gid, struct group *gr, char *buffer, size_t buflen, int *errnop) { - if (tablename_val == NULL) + if (grp_tablename_val == NULL) { - __libc_lock_lock (lock); - - enum nss_status status = _nss_create_tablename (errnop); - - __libc_lock_unlock (lock); + enum nss_status status = _nss_grp_create_tablename (errnop); if (status != NSS_STATUS_SUCCESS) return status; @@ -362,11 +359,11 @@ _nss_nisplus_getgrgid_r (const gid_t gid int parse_res; nis_result *result; - char buf[8 + 3 * sizeof (unsigned long int) + tablename_len]; + char buf[8 + 3 * sizeof (unsigned long int) + grp_tablename_len]; int olderr = errno; snprintf (buf, sizeof (buf), "[gid=%lu],%s", - (unsigned long int) gid, tablename_val); + (unsigned long int) gid, grp_tablename_val); result = nis_list (buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL); diff -pNur -x CVS -x libidn glibc-2.5/nis/nss_nisplus/nisplus-initgroups.c glibc-2.5-branch/nis/nss_nisplus/nisplus-initgroups.c --- glibc-2.5/nis/nss_nisplus/nisplus-initgroups.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.5-branch/nis/nss_nisplus/nisplus-initgroups.c 2007-01-12 06:37:24.000000000 -0800 @@ -0,0 +1,150 @@ +/* Copyright (C) 1997, 2001, 2002, 2003, 2005, 2006 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "nss-nisplus.h" +#include "nisplus-parser.h" +#include +#include +#include + +#define NISOBJVAL(col, obj) \ + ((obj)->EN_data.en_cols.en_cols_val[col].ec_value.ec_value_val) + +#define NISOBJLEN(col, obj) \ + ((obj)->EN_data.en_cols.en_cols_val[col].ec_value.ec_value_len) + +extern nis_name grp_tablename_val attribute_hidden; +extern size_t grp_tablename_len attribute_hidden; +extern enum nss_status _nss_grp_create_tablename (int *errnop); + + +enum nss_status +_nss_nisplus_initgroups_dyn (const char *user, gid_t group, long int *start, + long int *size, gid_t **groupsp, long int limit, + int *errnop) +{ + if (grp_tablename_val == NULL) + { + enum nss_status status = _nss_grp_create_tablename (errnop); + + if (status != NSS_STATUS_SUCCESS) + return status; + } + + nis_result *result; + char buf[strlen (user) + 12 + grp_tablename_len]; + + snprintf (buf, sizeof (buf), "[members=%s],%s", user, grp_tablename_val); + + result = nis_list (buf, FOLLOW_LINKS | FOLLOW_PATH | ALL_RESULTS, NULL, NULL); + + if (result == NULL) + { + *errnop = ENOMEM; + return NSS_STATUS_TRYAGAIN; + } + + if (__builtin_expect (niserr2nss (result->status) != NSS_STATUS_SUCCESS, 0)) + { + enum nss_status status = niserr2nss (result->status); + + nis_freeresult (result); + return status; + } + + if (NIS_RES_NUMOBJ (result) == 0) + { + errout: + nis_freeresult (result); + return NSS_STATUS_NOTFOUND; + } + + gid_t *groups = *groupsp; + nis_object *obj = NIS_RES_OBJECT (result); + for (unsigned int cnt = 0; cnt < NIS_RES_NUMOBJ (result); ++cnt, ++obj) + { + if (__type_of (obj) != NIS_ENTRY_OBJ + || strcmp (obj->EN_data.en_type, "group_tbl") != 0 + || obj->EN_data.en_cols.en_cols_len < 4) + continue; + + char *numstr = NISOBJVAL (2, obj); + size_t len = NISOBJLEN (2, obj); + if (len == 0 || numstr[0] == '\0') + continue; + + gid_t gid; + char *endp; + if (__builtin_expect (numstr[len - 1] != '\0', 0)) + { + char numstrbuf[len + 1]; + memcpy (numstrbuf, numstr, len); + numstrbuf[len] = '\0'; + gid = strtoul (numstrbuf, &endp, 10); + if (*endp) + continue; + } + else + { + gid = strtoul (numstr, &endp, 10); + if (*endp) + continue; + } + + if (gid == group) + continue; + + /* Insert this group. */ + if (*start == *size) + { + /* Need a bigger buffer. */ + long int newsize; + + if (limit > 0 && *size == limit) + /* We reached the maximum. */ + break; + + if (limit <= 0) + newsize = 2 * *size; + else + newsize = MIN (limit, 2 * *size); + + gid_t *newgroups = realloc (groups, newsize * sizeof (*groups)); + if (newgroups == NULL) + goto errout; + *groupsp = groups = newgroups; + *size = newsize; + } + + groups[*start] = gid; + *start += 1; + } + + nis_freeresult (result); + return NSS_STATUS_SUCCESS; +} diff -pNur -x CVS -x libidn glibc-2.5/nis/Versions glibc-2.5-branch/nis/Versions --- glibc-2.5/nis/Versions 2006-05-20 12:21:52.000000000 -0700 +++ glibc-2.5-branch/nis/Versions 2007-01-12 06:37:24.000000000 -0800 @@ -125,6 +125,6 @@ libnss_nisplus { _nss_nisplus_setetherent; _nss_nisplus_setgrent; _nss_nisplus_sethostent; _nss_nisplus_setnetent; _nss_nisplus_setnetgrent; _nss_nisplus_setprotoent; _nss_nisplus_setpwent; _nss_nisplus_setrpcent; _nss_nisplus_setservent; - _nss_nisplus_setspent; + _nss_nisplus_setspent; _nss_nisplus_initgroups_dyn; } } diff -pNur -x CVS -x libidn glibc-2.5/nptl/ChangeLog glibc-2.5-branch/nptl/ChangeLog --- glibc-2.5/nptl/ChangeLog 2006-09-24 10:14:11.000000000 -0700 +++ glibc-2.5-branch/nptl/ChangeLog 2007-01-12 10:14:34.000000000 -0800 @@ -1,3 +1,12 @@ +2006-12-28 David S. Miller + + * shlib-versions: Fix sparc64 linux target specification. + +2006-12-21 Jakub Jelinek + + * sysdeps/unix/sysv/linux/pthread_kill.c (pthread_kill): Make sure + tid isn't reread from pd->tid in between ESRCH test and the syscall. + 2006-09-24 Ulrich Drepper [BZ #3251] diff -pNur -x CVS -x libidn glibc-2.5/nptl/shlib-versions glibc-2.5-branch/nptl/shlib-versions --- glibc-2.5/nptl/shlib-versions 2004-07-05 10:03:27.000000000 -0700 +++ glibc-2.5-branch/nptl/shlib-versions 2007-01-12 10:14:34.000000000 -0800 @@ -1,5 +1,5 @@ mips.*-.*-linux.* libpthread=0 GLIBC_2.0 GLIBC_2.2 -sparc64-.*-linux.* libpthread=0 GLIBC_2.2 +sparc64.*-.*-linux.* libpthread=0 GLIBC_2.2 sh.*-.*-linux.* libpthread=0 GLIBC_2.2 ia64.*-.*-linux.* libpthread=0 GLIBC_2.2 hppa.*-.*-linux.* libpthread=0 GLIBC_2.2 diff -pNur -x CVS -x libidn glibc-2.5/nptl/sysdeps/unix/sysv/linux/pthread_kill.c glibc-2.5-branch/nptl/sysdeps/unix/sysv/linux/pthread_kill.c --- glibc-2.5/nptl/sysdeps/unix/sysv/linux/pthread_kill.c 2004-09-28 15:22:37.000000000 -0700 +++ glibc-2.5-branch/nptl/sysdeps/unix/sysv/linux/pthread_kill.c 2007-01-12 09:58:08.000000000 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -33,7 +33,15 @@ __pthread_kill (threadid, signo) struct pthread *pd = (struct pthread *) threadid; /* Make sure the descriptor is valid. */ - if (INVALID_TD_P (pd)) + if (DEBUGGING_P && INVALID_TD_P (pd)) + /* Not a valid thread handle. */ + return ESRCH; + + /* Force load of pd->tid into local variable or register. Otherwise + if a thread exits between ESRCH test and tgkill, we might return + EINVAL, because pd->tid would be cleared by the kernel. */ + pid_t tid = atomic_forced_read (pd->tid); + if (__builtin_expect (tid <= 0, 0)) /* Not a valid thread handle. */ return ESRCH; @@ -53,15 +61,15 @@ __pthread_kill (threadid, signo) int val; #if __ASSUME_TGKILL val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid), - pd->tid, signo); + tid, signo); #else # ifdef __NR_tgkill val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid), - pd->tid, signo); + tid, signo); if (INTERNAL_SYSCALL_ERROR_P (val, err) && INTERNAL_SYSCALL_ERRNO (val, err) == ENOSYS) # endif - val = INTERNAL_SYSCALL (tkill, err, 2, pd->tid, signo); + val = INTERNAL_SYSCALL (tkill, err, 2, tid, signo); #endif return (INTERNAL_SYSCALL_ERROR_P (val, err) diff -pNur -x CVS -x libidn glibc-2.5/nptl_db/ChangeLog glibc-2.5-branch/nptl_db/ChangeLog --- glibc-2.5/nptl_db/ChangeLog 2006-02-03 16:48:40.000000000 -0800 +++ glibc-2.5-branch/nptl_db/ChangeLog 2007-01-12 07:18:15.000000000 -0800 @@ -1,3 +1,8 @@ +2006-10-26 Pete Eberlein + + * nptl_db/db_info.c [TLS_DTV_AT_TP]: Fixed size init for dtvp + to sizeof a pointer, instead of sizeof the union. + 2006-02-03 Roland McGrath * structs.def: Add a descriptor for pointer.val field of dtv_t. diff -pNur -x CVS -x libidn glibc-2.5/nptl_db/db_info.c glibc-2.5-branch/nptl_db/db_info.c --- glibc-2.5/nptl_db/db_info.c 2004-03-13 19:39:57.000000000 -0800 +++ glibc-2.5-branch/nptl_db/db_info.c 2007-01-12 07:18:15.000000000 -0800 @@ -59,7 +59,7 @@ typedef struct link_map link_map; i.e. at the very end of the area covered by TLS_PRE_TCB_SIZE. */ DESC (_thread_db_pthread_dtvp, TLS_PRE_TCB_SIZE + offsetof (tcbhead_t, dtv) - - (TLS_TCB_SIZE == 0 ? sizeof (tcbhead_t) : 0), union dtv) + - (TLS_TCB_SIZE == 0 ? sizeof (tcbhead_t) : 0), union dtv *) #endif diff -pNur -x CVS -x libidn glibc-2.5/nscd/mem.c glibc-2.5-branch/nscd/mem.c --- glibc-2.5/nscd/mem.c 2005-12-06 21:47:27.000000000 -0800 +++ glibc-2.5-branch/nscd/mem.c 2006-10-02 09:31:11.000000000 -0700 @@ -1,5 +1,5 @@ /* Cache memory handling. - Copyright (C) 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2004. @@ -480,12 +480,12 @@ mempool_alloc (struct database_dyn *db, { /* Try to resize the database. Grow size of 1/8th. */ size_t oldtotal = (sizeof (struct database_pers_head) - + db->head->module * sizeof (ref_t) + + roundup (db->head->module * sizeof (ref_t), ALIGN) + db->head->data_size); size_t new_data_size = (db->head->data_size + MAX (2 * len, db->head->data_size / 8)); size_t newtotal = (sizeof (struct database_pers_head) - + db->head->module * sizeof (ref_t) + + roundup (db->head->module * sizeof (ref_t), ALIGN) + new_data_size); if (newtotal > db->max_db_size) { diff -pNur -x CVS -x libidn glibc-2.5/nscd/nscd.c glibc-2.5-branch/nscd/nscd.c --- glibc-2.5/nscd/nscd.c 2006-05-30 10:29:36.000000000 -0700 +++ glibc-2.5-branch/nscd/nscd.c 2006-10-06 08:24:36.000000000 -0700 @@ -237,7 +237,7 @@ main (int argc, char **argv) if (chdir ("/") != 0) error (EXIT_FAILURE, errno, - _("cannot change current working cirectory to \"/\"")); + _("cannot change current working directory to \"/\"")); openlog ("nscd", LOG_CONS | LOG_ODELAY, LOG_DAEMON); diff -pNur -x CVS -x libidn glibc-2.5/nscd/nscd-client.h glibc-2.5-branch/nscd/nscd-client.h --- glibc-2.5/nscd/nscd-client.h 2006-04-25 16:48:55.000000000 -0700 +++ glibc-2.5-branch/nscd/nscd-client.h 2006-10-02 09:32:27.000000000 -0700 @@ -258,6 +258,7 @@ struct mapped_database const char *data; size_t mapsize; int counter; /* > 0 indicates it is usable. */ + size_t datasize; }; #define NO_MAPPING ((struct mapped_database *) -1l) diff -pNur -x CVS -x libidn glibc-2.5/nscd/nscd_helper.c glibc-2.5-branch/nscd/nscd_helper.c --- glibc-2.5/nscd/nscd_helper.c 2006-04-25 16:47:53.000000000 -0700 +++ glibc-2.5-branch/nscd/nscd_helper.c 2006-10-02 09:33:51.000000000 -0700 @@ -290,6 +290,7 @@ get_mapping (request_type type, const ch newp->data = ((char *) mapping + head.header_size + roundup (head.module * sizeof (ref_t), ALIGN)); newp->mapsize = size; + newp->datasize = head.data_size; /* Set counter to 1 to show it is usable. */ newp->counter = 1; @@ -340,7 +341,8 @@ __nscd_get_map_ref (request_type type, c /* If not mapped or timestamp not updated, request new map. */ if (cur == NULL || (cur->head->nscd_certainly_running == 0 - && cur->head->timestamp + MAPPING_TIMEOUT < time (NULL))) + && cur->head->timestamp + MAPPING_TIMEOUT < time (NULL)) + || cur->head->data_size > cur->datasize) cur = get_mapping (type, name, (struct mapped_database **) &mapptr->mapped); @@ -365,14 +367,18 @@ __nscd_cache_search (request_type type, const struct mapped_database *mapped) { unsigned long int hash = __nis_hash (key, keylen) % mapped->head->module; + size_t datasize = mapped->datasize; ref_t work = mapped->head->array[hash]; - while (work != ENDREF) + while (work != ENDREF && work + sizeof (struct hashentry) <= datasize) { struct hashentry *here = (struct hashentry *) (mapped->data + work); - if (type == here->type && keylen == here->len - && memcmp (key, mapped->data + here->key, keylen) == 0) + if (type == here->type + && keylen == here->len + && here->key + here->len <= datasize + && memcmp (key, mapped->data + here->key, keylen) == 0 + && here->packet + sizeof (struct datahead) <= datasize) { /* We found the entry. Increment the appropriate counter. */ const struct datahead *dh @@ -380,8 +386,7 @@ __nscd_cache_search (request_type type, /* See whether we must ignore the entry or whether something is wrong because garbage collection is in progress. */ - if (dh->usable && ((char *) dh + dh->allocsize - <= (char *) mapped->head + mapped->mapsize)) + if (dh->usable && here->packet + dh->allocsize <= datasize) return dh; } diff -pNur -x CVS -x libidn glibc-2.5/nss/getXXbyYY_r.c glibc-2.5-branch/nss/getXXbyYY_r.c --- glibc-2.5/nss/getXXbyYY_r.c 2004-09-16 15:24:09.000000000 -0700 +++ glibc-2.5-branch/nss/getXXbyYY_r.c 2007-01-12 09:53:27.000000000 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2002, 2003, 2004 Free Software Foundation, Inc. +/* Copyright (C) 1996-2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -18,6 +18,7 @@ 02111-1307 USA. */ #include +#include #include #include #include "nsswitch.h" @@ -173,9 +174,6 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, L startp = (service_user *) -1l; else { - startp = nip; - start_fct = fct.l; - #ifdef NEED__RES /* The resolver code will really be used so we have to initialize it. */ @@ -190,6 +188,11 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, L if (!_res_hconf.initialized) _res_hconf_init (); #endif /* need _res_hconf */ + + start_fct = fct.l; + /* Make sure start_fct is written before startp. */ + atomic_write_barrier (); + startp = nip; } } else diff -pNur -x CVS -x libidn glibc-2.5/nss/nss_files/files-alias.c glibc-2.5-branch/nss/nss_files/files-alias.c --- glibc-2.5/nss/nss_files/files-alias.c 2002-09-01 05:38:05.000000000 -0700 +++ glibc-2.5-branch/nss/nss_files/files-alias.c 2007-01-12 07:56:58.000000000 -0800 @@ -1,5 +1,5 @@ /* Mail alias file parser in nss_files module. - Copyright (C) 1996,97,98,99,2002 Free Software Foundation, Inc. + Copyright (C) 1996,97,98,99,2002,2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -298,8 +298,8 @@ get_next_alias (const char *match, struc first_unused[room_left - 1] = '\0'; strncpy (first_unused, old_line, room_left); - if (old_line != NULL) - free (old_line); + free (old_line); + line = first_unused; if (first_unused[room_left - 1] != '\0') goto no_more_room; diff -pNur -x CVS -x libidn glibc-2.5/po/nl.po glibc-2.5-branch/po/nl.po --- glibc-2.5/po/nl.po 2006-09-20 21:16:48.000000000 -0700 +++ glibc-2.5-branch/po/nl.po 2007-01-12 07:55:11.000000000 -0800 @@ -1,3725 +1,4478 @@ -# Dutch translation of libc. -# Copyright (C) 2004 Free Software Foundation, Inc. +# Translation of libc-2.5 to Dutch. +# Copyright (C) 2004, 2006 Free Software Foundation, Inc. # Elros Cyriatan , 2004. -# -# +# Benno Schulenberg , 2006. +# msgid "" msgstr "" -"Project-Id-Version: libc 2.3.3\n" +"Project-Id-Version: libc 2.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2004-08-05 09:16+0200\n" -"PO-Revision-Date: 2004-08-05 15:52+0200\n" -"Last-Translator: Elros Cyriatan \n" -"Language-Team: Dutch \n" +"POT-Creation-Date: 2006-09-29 11:38-0700\n" +"PO-Revision-Date: 2006-11-14 19:50+0100\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \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=2; plural=(n != 1);\n" -#: sysdeps/generic/siglist.h:29 stdio-common/../sysdeps/unix/siglist.c:27 -msgid "Hangup" -msgstr "Ophangen" +#: argp/argp-help.c:227 +#, c-format +msgid "%.*s: ARGP_HELP_FMT parameter requires a value" +msgstr "%.*s: Parameter van ARGP_HELP_FMT vereist een waarde" -#: sysdeps/generic/siglist.h:30 stdio-common/../sysdeps/unix/siglist.c:28 -msgid "Interrupt" -msgstr "Onderbreken" +#: argp/argp-help.c:237 +#, c-format +msgid "%.*s: Unknown ARGP_HELP_FMT parameter" +msgstr "%.*s: Onbekende parameter van ARGP_HELP_FMT" -#: sysdeps/generic/siglist.h:31 stdio-common/../sysdeps/unix/siglist.c:29 -msgid "Quit" -msgstr "Afsluiten" +#: argp/argp-help.c:250 +#, c-format +msgid "Garbage in ARGP_HELP_FMT: %s" +msgstr "Rommel in ARGP_HELP_FMT: %s" -#: sysdeps/generic/siglist.h:32 stdio-common/../sysdeps/unix/siglist.c:30 -msgid "Illegal instruction" -msgstr "Ongeldige instructie" +#: argp/argp-help.c:1214 +msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options." +msgstr "" +"Een argument dat verplicht of optioneel is voor een lange optie, is dat\n" +"ook voor de overeenkomstige korte optie." -#: sysdeps/generic/siglist.h:33 stdio-common/../sysdeps/unix/siglist.c:31 -msgid "Trace/breakpoint trap" -msgstr "Traceer/breekpunt val" +#: argp/argp-help.c:1600 +msgid "Usage:" +msgstr "Gebruik: " -#: sysdeps/generic/siglist.h:34 -msgid "Aborted" -msgstr "Geannuleerd" +#: argp/argp-help.c:1604 +msgid " or: " +msgstr " of: " -#: sysdeps/generic/siglist.h:35 stdio-common/../sysdeps/unix/siglist.c:34 -msgid "Floating point exception" -msgstr "Zwevende-punt uitzondering" +#: argp/argp-help.c:1616 +msgid " [OPTION...]" +msgstr " [OPTIE...]" -#: sysdeps/generic/siglist.h:36 stdio-common/../sysdeps/unix/siglist.c:35 -msgid "Killed" -msgstr "Gedood" +#: argp/argp-help.c:1643 +#, c-format +msgid "Try `%s --help' or `%s --usage' for more information.\n" +msgstr "Probeer '%s --help' of '%s --usage' voor meer informatie.\n" -#: sysdeps/generic/siglist.h:37 stdio-common/../sysdeps/unix/siglist.c:36 -msgid "Bus error" -msgstr "Bus fout" +#: argp/argp-help.c:1671 +#, c-format +msgid "Report bugs to %s.\n" +msgstr "" +"Rapporteer fouten in het programma aan %s,\n" +"en gebreken in de vertaling aan .\n" -#: sysdeps/generic/siglist.h:38 stdio-common/../sysdeps/unix/siglist.c:37 -msgid "Segmentation fault" -msgstr "Segmentatie fout" +#: argp/argp-parse.c:102 +msgid "Give this help list" +msgstr "deze hulptekst tonen" -#. 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 stdio-common/../sysdeps/gnu/errlist.c:351 -#: stdio-common/../sysdeps/unix/siglist.c:39 -#: stdio-common/../sysdeps/unix/sysv/sysv4/solaris2/sparc/errlist.c:62 -msgid "Broken pipe" -msgstr "Gebroken pijp" +#: argp/argp-parse.c:103 +msgid "Give a short usage message" +msgstr "een kort gebruiksbericht tonen" -#: sysdeps/generic/siglist.h:40 stdio-common/../sysdeps/unix/siglist.c:40 -msgid "Alarm clock" -msgstr "Alarmklok" +#: argp/argp-parse.c:104 +msgid "Set the program name" +msgstr "de programmanaam instellen" -#: sysdeps/generic/siglist.h:41 stdio-common/../sysdeps/unix/siglist.c:41 -msgid "Terminated" -msgstr "Afgebroken" +#: argp/argp-parse.c:106 +msgid "Hang for SECS seconds (default 3600)" +msgstr "dit aantal seconden pauzeren (standaard 3600)" -#: sysdeps/generic/siglist.h:42 stdio-common/../sysdeps/unix/siglist.c:42 -msgid "Urgent I/O condition" -msgstr "Spoedeisende I/O-omstandigheid" +#: argp/argp-parse.c:167 +msgid "Print program version" +msgstr "programmaversie tonen" -#: sysdeps/generic/siglist.h:43 stdio-common/../sysdeps/unix/siglist.c:43 -msgid "Stopped (signal)" -msgstr "Gestopt (signaal)" +#: argp/argp-parse.c:183 +msgid "(PROGRAM ERROR) No version known!?" +msgstr "**Interne programmafout**: geen versie bekend!?" -#: sysdeps/generic/siglist.h:44 stdio-common/../sysdeps/unix/siglist.c:44 -msgid "Stopped" -msgstr "Gestopt" +#: argp/argp-parse.c:623 +#, c-format +msgid "%s: Too many arguments\n" +msgstr "%s: Te veel argumenten\n" -#: sysdeps/generic/siglist.h:45 stdio-common/../sysdeps/unix/siglist.c:45 -msgid "Continued" -msgstr "Doorgegaan" +#: argp/argp-parse.c:766 +msgid "(PROGRAM ERROR) Option should have been recognized!?" +msgstr "**Interne programmafout**: optie had herkend moeten worden!?" -#: sysdeps/generic/siglist.h:46 stdio-common/../sysdeps/unix/siglist.c:46 -msgid "Child exited" -msgstr "Kind is afgesloten" +#: assert/assert-perr.c:57 +#, c-format +msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n" +msgstr "%s%s%s:%u: %s%sOnverwachte fout: %s.\n" -#: sysdeps/generic/siglist.h:47 stdio-common/../sysdeps/unix/siglist.c:47 -msgid "Stopped (tty input)" -msgstr "Gestopt (tty invoer)" +#: assert/assert.c:57 +#, c-format +msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n" +msgstr "%s%s%s:%u: %s%sControletest '%s' faalt.\n" -#: sysdeps/generic/siglist.h:48 stdio-common/../sysdeps/unix/siglist.c:48 -msgid "Stopped (tty output)" -msgstr "Gestopt (tty uitvoer)" +#: catgets/gencat.c:109 catgets/gencat.c:113 nscd/nscd.c:96 nss/makedb.c:61 +msgid "NAME" +msgstr "NAAM" -#: sysdeps/generic/siglist.h:49 stdio-common/../sysdeps/unix/siglist.c:49 -msgid "I/O possible" -msgstr "I/O mogelijk" +#: catgets/gencat.c:110 +msgid "Create C header file NAME containing symbol definitions" +msgstr "headerbestand met symbooldefinities aanmaken" -#: sysdeps/generic/siglist.h:50 stdio-common/../sysdeps/unix/siglist.c:50 -msgid "CPU time limit exceeded" -msgstr "Grens processortijd overschreden" +#: catgets/gencat.c:112 +msgid "Do not use existing catalog, force new output file" +msgstr "bestaande catalogus niet gebruiken; een nieuw uitvoerbestand afdwingen" -#: sysdeps/generic/siglist.h:51 stdio-common/../sysdeps/unix/siglist.c:51 -msgid "File size limit exceeded" -msgstr "Grens bestandsgrootte overschreden" +#: catgets/gencat.c:113 nss/makedb.c:61 +msgid "Write output to file NAME" +msgstr "uitvoer naar dit bestand schrijven" -#: sysdeps/generic/siglist.h:52 stdio-common/../sysdeps/unix/siglist.c:52 -msgid "Virtual timer expired" -msgstr "Virtuele tijdopnemer verlopen" +#: catgets/gencat.c:118 +msgid "" +"Generate message catalog. If INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n" +"is -, output is written to standard output.\n" +msgstr "" +"Een berichtencatalogus genereren.\n" +"\n" +"Als INVOERBESTAND '-' is, wordt van standaardinvoer gelezen.\n" +"Als UITVOERBESTAND '-' is, wordt naar standaarduitvoer geschreven.\n" -#: sysdeps/generic/siglist.h:53 stdio-common/../sysdeps/unix/siglist.c:53 -msgid "Profiling timer expired" -msgstr "Profilerende tijdopnemer verlopen" +#: catgets/gencat.c:123 +msgid "" +"-o OUTPUT-FILE [INPUT-FILE]...\n" +"[OUTPUT-FILE [INPUT-FILE]...]" +msgstr "" +"-o UITVOERBESTAND [INVOERBESTAND...]\n" +"[UITVOERBESTAND [INVOERBESTAND...]]" -#: sysdeps/generic/siglist.h:54 stdio-common/../sysdeps/unix/siglist.c:54 -msgid "Window changed" -msgstr "Venster veranderd" +#: catgets/gencat.c:231 debug/pcprofiledump.c:199 iconv/iconv_prog.c:410 +#: iconv/iconvconfig.c:379 locale/programs/localedef.c:370 +#: login/programs/pt_chown.c:88 malloc/memusagestat.c:525 nss/makedb.c:231 +msgid "" +"For bug reporting instructions, please see:\n" +".\n" +msgstr "" +"Voor het rapporteren van fouten, zie:\n" +" .\n" -#: sysdeps/generic/siglist.h:55 stdio-common/../sysdeps/unix/siglist.c:56 -msgid "User defined signal 1" -msgstr "Door gebruiker gedefinieerd signaal 1" +#: catgets/gencat.c:245 debug/xtrace.sh:64 elf/ldconfig.c:285 +#: elf/ldd.bash.in:39 elf/sprof.c:355 iconv/iconv_prog.c:425 +#: iconv/iconvconfig.c:394 locale/programs/locale.c:274 +#: locale/programs/localedef.c:386 login/programs/pt_chown.c:59 +#: malloc/memusage.sh:71 nscd/nscd.c:401 nss/getent.c:83 nss/makedb.c:245 +#: posix/getconf.c:1007 +#, 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 "" +"Copyright (C) %s Free Software Foundation, Inc.\n" +"Dit is vrije software; zie de brontekst voor de kopieervoorwaarden.\n" +"Er is GEEN garantie; zelfs niet van VERKOOPBAARHEID of GESCHIKTHEID\n" +"VOOR EEN BEPAALD DOEL.\n" + +#: catgets/gencat.c:250 debug/xtrace.sh:68 elf/ldconfig.c:290 elf/sprof.c:361 +#: iconv/iconv_prog.c:430 iconv/iconvconfig.c:399 locale/programs/locale.c:279 +#: locale/programs/localedef.c:391 malloc/memusage.sh:75 nscd/nscd.c:406 +#: nss/getent.c:88 nss/makedb.c:250 posix/getconf.c:1012 +#, c-format +msgid "Written by %s.\n" +msgstr "Geschreven door %s.\n" -#: sysdeps/generic/siglist.h:56 stdio-common/../sysdeps/unix/siglist.c:57 -msgid "User defined signal 2" -msgstr "Door gebruiker gedefinieerd signaal 2" +#: catgets/gencat.c:281 +msgid "*standard input*" +msgstr "*standaardinvoer*" -#: sysdeps/generic/siglist.h:60 stdio-common/../sysdeps/unix/siglist.c:33 -msgid "EMT trap" -msgstr "EMT-val" +#: catgets/gencat.c:287 iconv/iconv_charmap.c:157 iconv/iconv_prog.c:297 +#: nss/makedb.c:170 +#, c-format +msgid "cannot open input file `%s'" +msgstr "kan invoerbestand '%s' niet openen" -#: sysdeps/generic/siglist.h:63 stdio-common/../sysdeps/unix/siglist.c:38 -msgid "Bad system call" -msgstr "Slechte systeemaanroep" +#: catgets/gencat.c:416 catgets/gencat.c:493 +msgid "illegal set number" +msgstr "ongeldig verzamelingsnummer" -#: sysdeps/generic/siglist.h:66 -msgid "Stack fault" -msgstr "Stack fout" +#: catgets/gencat.c:443 +msgid "duplicate set definition" +msgstr "dubbele verzamelingsdefinitie" -#: sysdeps/generic/siglist.h:69 -msgid "Information request" -msgstr "Verzoek om informatie" +#: catgets/gencat.c:445 catgets/gencat.c:622 catgets/gencat.c:676 +msgid "this is the first definition" +msgstr "dit is de eerste definitie" -#: sysdeps/generic/siglist.h:71 -msgid "Power failure" -msgstr "Stroomstoring" +#: catgets/gencat.c:521 +#, c-format +msgid "unknown set `%s'" +msgstr "onbekende verzameling '%s'" -#: sysdeps/generic/siglist.h:74 stdio-common/../sysdeps/unix/siglist.c:55 -msgid "Resource lost" -msgstr "Bron verloren" +#: catgets/gencat.c:562 +msgid "invalid quote character" +msgstr "ongeldig aanhalingsteken" -#: sysdeps/mach/hurd/mips/dl-machine.c:68 -#: string/../sysdeps/mach/_strerror.c:57 -msgid "Error in unknown error system: " -msgstr "Fout in onbekende-fout systeem: " +#: catgets/gencat.c:575 +#, c-format +msgid "unknown directive `%s': line ignored" +msgstr "onbekende richting '%s'; regel is genegeerd" -#: sysdeps/mach/hurd/mips/dl-machine.c:83 -#: string/../sysdeps/generic/_strerror.c:44 -#: string/../sysdeps/mach/_strerror.c:87 -msgid "Unknown error " -msgstr "Onbekende fout " +#: catgets/gencat.c:620 +msgid "duplicated message number" +msgstr "dubbel berichtnummer" -#: sysdeps/unix/sysv/linux/lddlibc4.c:64 -#, c-format -msgid "cannot open `%s'" -msgstr "kan `%s' niet openen" +#: catgets/gencat.c:673 +msgid "duplicated message identifier" +msgstr "dubbele berichtnaam" -#: sysdeps/unix/sysv/linux/lddlibc4.c:68 +#: catgets/gencat.c:730 +msgid "invalid character: message ignored" +msgstr "ongeldig teken; bericht is genegeerd" + +#: catgets/gencat.c:773 +msgid "invalid line" +msgstr "ongeldige regel" + +#: catgets/gencat.c:827 +msgid "malformed line ignored" +msgstr "ongeldige regel is genegeerd" + +#: catgets/gencat.c:991 catgets/gencat.c:1032 nss/makedb.c:183 #, c-format -msgid "cannot read header from `%s'" -msgstr "kan kop van `%s' niet lezen" +msgid "cannot open output file `%s'" +msgstr "kan uitvoerbestand '%s' niet openen" + +#: catgets/gencat.c:1194 locale/programs/linereader.c:559 +msgid "invalid escape sequence" +msgstr "ongeldige stuurcode" + +#: catgets/gencat.c:1216 +msgid "unterminated message" +msgstr "onafgesloten bericht" -#: iconv/iconv_charmap.c:159 iconv/iconv_prog.c:295 catgets/gencat.c:288 +#: catgets/gencat.c:1240 #, c-format -msgid "cannot open input file `%s'" -msgstr "kan invoerbestand `%s' niet openen" +msgid "while opening old catalog file" +msgstr "bij openen van oude catalogusbestand" -#: iconv/iconv_charmap.c:177 iconv/iconv_prog.c:313 +#: catgets/gencat.c:1331 #, c-format -msgid "error while closing input `%s'" -msgstr "fout bij sluiten invoer `%s'" +msgid "conversion modules not available" +msgstr "conversiemodules zijn niet beschikbaar" -#: iconv/iconv_charmap.c:443 +#: catgets/gencat.c:1357 #, c-format -msgid "illegal input sequence at position %Zd" -msgstr "ongeldige invoerreeks op positie %Zd" +msgid "cannot determine escape character" +msgstr "kan niet bepalen wat het escapeteken is" -#: iconv/iconv_charmap.c:462 iconv/iconv_prog.c:506 -msgid "incomplete character or shift sequence at end of buffer" -msgstr "onvolledig teken en schuifreeks op einde van buffer" +#: debug/pcprofiledump.c:52 +msgid "Don't buffer output" +msgstr "uitvoer niet bufferen" -#: iconv/iconv_charmap.c:507 iconv/iconv_charmap.c:543 iconv/iconv_prog.c:549 -#: iconv/iconv_prog.c:585 -msgid "error while reading the input" -msgstr "fout bij lezen van de invoer" +#: debug/pcprofiledump.c:57 +msgid "Dump information generated by PC profiling." +msgstr "Door prestatie-analyse gegenereerde informatie weergeven." -#: iconv/iconv_charmap.c:525 iconv/iconv_prog.c:567 -msgid "unable to allocate buffer for input" -msgstr "kan geen buffer toewijzen voor invoer" +#: debug/pcprofiledump.c:60 +msgid "[FILE]" +msgstr "[BESTAND]" -#: iconv/iconv_prog.c:61 -msgid "Input/Output format specification:" -msgstr "Invoer/Uitvoer formaatopgave:" +#: debug/pcprofiledump.c:100 +#, c-format +msgid "cannot open input file" +msgstr "kan invoerbestand niet openen" -#: iconv/iconv_prog.c:62 -msgid "encoding of original text" -msgstr "codering van oorspronkelijke tekst" +#: debug/pcprofiledump.c:106 +#, c-format +msgid "cannot read header" +msgstr "kan kop van bestand niet lezen" -#: iconv/iconv_prog.c:63 -msgid "encoding for output" -msgstr "codering van uitvoer" +#: debug/pcprofiledump.c:170 +#, c-format +msgid "invalid pointer size" +msgstr "ongeldige pointergrootte" -#: iconv/iconv_prog.c:64 -msgid "Information:" -msgstr "Informatie:" +#: debug/xtrace.sh:27 debug/xtrace.sh:45 +msgid "Usage: xtrace [OPTION]... PROGRAM [PROGRAMOPTION]...\\n" +msgstr "Gebruik: xtrace [OPTIE]... PROGRAMMA [PROGRAMMA-OPTIE]...\\n" + +#: debug/xtrace.sh:33 +msgid "Try `xtrace --help' for more information.\\n" +msgstr "Probeer 'xtrace --help' voor meer informatie.\\n" + +#: debug/xtrace.sh:39 +msgid "xtrace: option `$1' requires an argument.\\n" +msgstr "xtrace: optie '$1' vereist een argument\\n" -#: iconv/iconv_prog.c:65 -msgid "list all known coded character sets" -msgstr "alle bekende, gecodeerde tekensets opsommen" +#: 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 "" +"De uitvoering van een programma volgen door steeds de naam van\n" +"de uitgevoerde functie te printen.\n" +"\n" +" --data=BESTAND geen programma uitvoeren; gegevens uit BESTAND printen\n" +"\n" +" -?,--help deze hulptekst tonen\n" +" --usage een kort gebruiksbericht tonen\n" +" -V,--version versie-informatie tonen\n" +"\n" +"Voor het rapporteren van fouten in dit programma, zie:\n" +" .\\n" -#: iconv/iconv_prog.c:66 locale/programs/localedef.c:128 -msgid "Output control:" -msgstr "Uitvoerbeheer:" +#: debug/xtrace.sh:125 +msgid "xtrace: unrecognized option `$1'\\n" +msgstr "xtrace: onbekende optie '$1'\\n" + +#: debug/xtrace.sh:138 +msgid "No program name given\\n" +msgstr "Geen programmanaam gegeven\\n" + +#: debug/xtrace.sh:146 +#, sh-format +msgid "executable `$program' not found\\n" +msgstr "Geen uitvoerbaar bestand '$program' gevonden\\n" + +#: debug/xtrace.sh:150 +#, sh-format +msgid "`$program' is no executable\\n" +msgstr "'$program' is niet uitvoerbaar\\n" -#: iconv/iconv_prog.c:67 -msgid "omit invalid characters from output" -msgstr "ongeldige tekens overslaan in uitvoer" +#: dlfcn/dlinfo.c:67 +msgid "RTLD_SELF used in code not dynamically loaded" +msgstr "RTLD_SELF is gebruikt in code die niet dynamisch geladen is" -#: iconv/iconv_prog.c:68 -msgid "output file" -msgstr "uitvoerbestand" +#: dlfcn/dlinfo.c:76 +msgid "unsupported dlinfo request" +msgstr "niet-ondersteund 'dlinfo'-verzoek" -#: iconv/iconv_prog.c:69 -msgid "suppress warnings" -msgstr "waarschuwingen onderdrukken" +#: dlfcn/dlmopen.c:64 +msgid "invalid namespace" +msgstr "ongeldige naamsruimte" -#: iconv/iconv_prog.c:70 -msgid "print progress information" -msgstr "voortgangsinformatie weergeven" +#: dlfcn/dlmopen.c:69 +msgid "invalid mode" +msgstr "ongeldige modus" -#: iconv/iconv_prog.c:75 -msgid "Convert encoding of given files from one encoding to another." -msgstr "Gegeven bestanden converteren van ene codering naar andere." +#: dlfcn/dlopen.c:64 +msgid "invalid mode parameter" +msgstr "ongeldige modusparameter" -#: iconv/iconv_prog.c:79 -msgid "[FILE...]" -msgstr "[BESTAND...]" +#: elf/cache.c:67 +msgid "unknown" +msgstr "onbekend" -#: iconv/iconv_prog.c:201 -msgid "cannot open output file" -msgstr "kan uitvoerbestand niet openen" +#: elf/cache.c:110 +msgid "Unknown OS" +msgstr "onbekend besturingssysteem" -#: iconv/iconv_prog.c:243 +#: elf/cache.c:115 #, c-format -msgid "conversions from `%s' and to `%s' are not supported" -msgstr "conversie van `%s' en naar `%s' wordt niet ondersteund" +msgid ", OS ABI: %s %d.%d.%d" +msgstr ", OS-ABI: %s %d.%d.%d" -#: iconv/iconv_prog.c:248 +#: elf/cache.c:141 elf/ldconfig.c:1231 #, c-format -msgid "conversion from `%s' is not supported" -msgstr "conversie van `%s' wordt niet ondersteund" +msgid "Can't open cache file %s\n" +msgstr "Kan cachebestand %s niet openen\n" -#: iconv/iconv_prog.c:255 +#: elf/cache.c:153 #, c-format -msgid "conversion to `%s' is not supported" -msgstr "conversie naar `%s' wordt niet ondersteund" +msgid "mmap of cache file failed.\n" +msgstr "mmap() van cachebestand is mislukt\n" -#: iconv/iconv_prog.c:259 +#: elf/cache.c:157 elf/cache.c:167 #, c-format -msgid "conversion from `%s' to `%s' is not supported" -msgstr "conversie van `%s' naar `%s' wordt niet ondersteund" - -#: iconv/iconv_prog.c:265 -msgid "failed to start conversion processing" -msgstr "beginnen conversieproces mislukt" - -#: iconv/iconv_prog.c:360 -msgid "error while closing output file" -msgstr "fout bij sluiten uitvoerbestand" +msgid "File is not a cache file.\n" +msgstr "Bestand is geen cachebestand\n" -#: iconv/iconv_prog.c:409 iconv/iconvconfig.c:357 locale/programs/locale.c:279 -#: 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 .\n" -msgstr "" -"Rapporteer fouten met het `glibcbug' script aan .\n" -"Neem voor fouten in de vertaling contact op met .\n" +#: elf/cache.c:200 elf/cache.c:210 +#, c-format +msgid "%d libs found in cache `%s'\n" +msgstr "%d bibliotheken gevonden in cache '%s'\n" -#: iconv/iconv_prog.c:423 iconv/iconvconfig.c:371 locale/programs/locale.c:292 -#: locale/programs/localedef.c:386 catgets/gencat.c:246 posix/getconf.c:913 -#: nss/getent.c:74 nscd/nscd.c:355 nscd/nscd_nischeck.c:90 elf/ldconfig.c:274 -#: elf/sprof.c:349 +#: elf/cache.c:409 #, 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 "" -"Copyright (C) %s Free Software Foundation, Inc.\n" -"Dit is vrije software; zie de broncode voor kopieervoorwaarden. Er is GEEN\n" -"garantie; zelfs niet van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD\n" -"DOEL.\n" - -#: iconv/iconv_prog.c:428 iconv/iconvconfig.c:376 locale/programs/locale.c:297 -#: locale/programs/localedef.c:391 catgets/gencat.c:251 posix/getconf.c:918 -#: nss/getent.c:79 nscd/nscd.c:360 nscd/nscd_nischeck.c:95 elf/ldconfig.c:279 -#: elf/sprof.c:355 +msgid "Can't remove old temporary cache file %s" +msgstr "Kan oud tijdelijk cachebestand %s niet verwijderen" + +#: elf/cache.c:416 #, c-format -msgid "Written by %s.\n" -msgstr "" -"Geschreven door %s.\n" -"Vertaald door Elros Cyriatan.\n" +msgid "Can't create temporary cache file %s" +msgstr "Kan tijdelijk cachebestand %s niet aanmaken" -#: iconv/iconv_prog.c:458 iconv/iconv_prog.c:484 -msgid "conversion stopped due to problem in writing the output" -msgstr "conversie gestopt vanwege probleem bij schrijven van uitvoer" +#: elf/cache.c:424 elf/cache.c:434 elf/cache.c:438 +#, c-format +msgid "Writing of cache data failed" +msgstr "Schrijven van cachegegevens is mislukt" -#: iconv/iconv_prog.c:502 +#: elf/cache.c:442 #, c-format -msgid "illegal input sequence at position %ld" -msgstr "ongeldige invoerreeks op positie %ld" +msgid "Writing of cache data failed." +msgstr "Schrijven van cachegegevens is mislukt" -#: iconv/iconv_prog.c:510 -msgid "internal error (illegal descriptor)" -msgstr "interne fout (ongeldige beschrijver)" +#: elf/cache.c:449 +#, c-format +msgid "Changing access rights of %s to %#o failed" +msgstr "Wijzigen van toegangsrechten van %s naar %#o is mislukt" -#: iconv/iconv_prog.c:513 +#: elf/cache.c:454 #, c-format -msgid "unknown iconv() error %d" -msgstr "onbekende iconv() fout %d" +msgid "Renaming of %s to %s failed" +msgstr "Naamswijziging van %s naar %s is mislukt" -#: iconv/iconv_prog.c:756 -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 "" -"De volgende lijst bevat alle bekende, gecodeerde tekensets. Dit betekent\n" -"niet noodzakelijkerwijs dat alle combinaties van deze namen kunnen worden\n" -"gebruikt als parameters voor VAN en NAAR. Eén gecodeerde tekenset kan\n" -"worden genoemd met verschillende namen (aliasen).\n" -"\n" -" " +#: elf/dl-close.c:116 +msgid "shared object not open" +msgstr "gedeeld object is niet open" -#: iconv/iconvconfig.c:110 -msgid "Create fastloading iconv module configuration file." -msgstr "Snelladende iconv-module configuratiebestand maken." +#: elf/dl-deps.c:112 +msgid "DST not allowed in SUID/SGID programs" +msgstr "DST is niet toegestaan in SUID/SGID-programma's" -#: iconv/iconvconfig.c:114 -msgid "[DIR...]" -msgstr "[MAP...]" +#: elf/dl-deps.c:125 +msgid "empty dynamics string token substitution" +msgstr "lege vervanging van DST" -#: iconv/iconvconfig.c:126 -msgid "Prefix used for all file accesses" -msgstr "Voorvoegsel gebruikt voor alle bestandstoegang" +#: elf/dl-deps.c:131 +#, c-format +msgid "cannot load auxiliary `%s' because of empty dynamic string token substitution\n" +msgstr "kan helper '%s' niet laden vanwege lege DST-vervanging\n" -#: iconv/iconvconfig.c:327 locale/programs/localedef.c:292 -msgid "no output file produced because warnings were issued" -msgstr "geen uitvoerbestand gemaakt omdat waarschuwing is gegeven" +#: elf/dl-deps.c:472 +msgid "cannot allocate dependency list" +msgstr "kan geen geheugen reserveren voor afhankelijkhedenlijst" -#: iconv/iconvconfig.c:405 -msgid "while inserting in search tree" -msgstr "bij invoegen in zoekboom" +#: elf/dl-deps.c:505 elf/dl-deps.c:560 +msgid "cannot allocate symbol search list" +msgstr "kan geen geheugen reserveren voor symbolenzoeklijst" -#: iconv/iconvconfig.c:1204 -msgid "cannot generate output file" -msgstr "kan geen uitvoerbestand genereren" +#: elf/dl-deps.c:545 +msgid "Filters not supported with LD_TRACE_PRELINKING" +msgstr "Met LD_TRACE_PRELINKING worden filters niet ondersteund" -#: locale/programs/charmap-dir.c:59 -#, c-format -msgid "cannot read character map directory `%s'" -msgstr "kan tekenafbeelding-map `%s' niet lezen" +#: elf/dl-error.c:77 +msgid "DYNAMIC LINKER BUG!!!" +msgstr "FOUT IN DYNAMISCHE LINKER!!!" -#: locale/programs/charmap.c:136 -#, c-format -msgid "character map file `%s' not found" -msgstr "tekenafbeelding-bestand `%s' niet gevonden" +#: elf/dl-error.c:124 +msgid "error while loading shared libraries" +msgstr "fout bij laden van gedeelde bibliotheken" -#: locale/programs/charmap.c:194 -#, c-format -msgid "default character map file `%s' not found" -msgstr "standaard tekenafbeelding-bestand `%s' niet gevonden" +#: elf/dl-fptr.c:88 +msgid "cannot map pages for fdesc table" +msgstr "kan pagina's voor 'fdesc'-tabel niet in het geheugen plaatsen" -#: locale/programs/charmap.c:257 -#, c-format -msgid "character map `%s' is not ASCII compatible, locale not ISO C compliant\n" -msgstr "tekenafbeelding `%s' is niet ASCII-compatible, locale voldoet niet aan ISO C\n" +#: elf/dl-fptr.c:192 +msgid "cannot map pages for fptr table" +msgstr "kan pagina's voor 'fptr'-tabel niet in het geheugen plaatsen" -#: locale/programs/charmap.c:336 -#, c-format -msgid "%s: must be greater than \n" -msgstr "%s: moet groter zijn dan \n" +#: elf/dl-fptr.c:221 +msgid "internal error: symidx out of range of fptr table" +msgstr "**interne fout**: 'symidx' buiten bereik van 'fptr'-tabel" -#: locale/programs/charmap.c:356 locale/programs/charmap.c:373 -#: locale/programs/repertoire.c:175 -#, c-format -msgid "syntax error in prolog: %s" -msgstr "syntaxisfout in proloog: %s" +#: elf/dl-load.c:372 +msgid "cannot allocate name record" +msgstr "kan geen geheugen reserveren voor naamrecord" -#: locale/programs/charmap.c:357 -msgid "invalid definition" -msgstr "ongeldige definitie" +#: elf/dl-load.c:474 elf/dl-load.c:553 elf/dl-load.c:673 elf/dl-load.c:786 +msgid "cannot create cache for search path" +msgstr "kan cache voor zoekpad niet aanmaken" -#: locale/programs/charmap.c:374 locale/programs/locfile.c:126 -#: locale/programs/locfile.c:153 locale/programs/repertoire.c:176 -msgid "bad argument" -msgstr "fout argument" +#: elf/dl-load.c:576 +msgid "cannot create RUNPATH/RPATH copy" +msgstr "kan geen kopie van RUNPATH/RPATH maken" -#: locale/programs/charmap.c:402 -#, c-format -msgid "duplicate definition of <%s>" -msgstr "dubbele definitie van <%s>" +#: elf/dl-load.c:659 +msgid "cannot create search path array" +msgstr "kan zoekpad-array niet aanmaken" -#: locale/programs/charmap.c:409 -#, c-format -msgid "value for <%s> must be 1 or greater" -msgstr "waarde voor <%s> moet 1 of groter zijn" +#: elf/dl-load.c:870 +msgid "cannot stat shared object" +msgstr "kan gedeeld object niet vinden" -#: locale/programs/charmap.c:421 -#, c-format -msgid "value of <%s> must be greater or equal than the value of <%s>" -msgstr "waarde voor <%s> moet groter dan of gelijk zijn aan de waarde van <%s>" +#: elf/dl-load.c:940 +msgid "cannot open zero fill device" +msgstr "kan nullenapparaat niet openen" -#: locale/programs/charmap.c:444 locale/programs/repertoire.c:184 -#, c-format -msgid "argument to <%s> must be a single character" -msgstr "argument voor <%s> moet een enkel teken zijn" +#: elf/dl-load.c:985 elf/dl-load.c:2215 +msgid "cannot create shared object descriptor" +msgstr "kan descriptor voor gedeeld object niet aanmaken" -#: locale/programs/charmap.c:470 -msgid "character sets with locking states are not supported" -msgstr "tekensets met blokkerende toestanden worden niet ondersteund" +#: elf/dl-load.c:1004 elf/dl-load.c:1663 elf/dl-load.c:1755 +msgid "cannot read file data" +msgstr "kan bestandsgegevens niet lezen" -#: locale/programs/charmap.c:497 locale/programs/charmap.c:551 -#: locale/programs/charmap.c:583 locale/programs/charmap.c:677 -#: locale/programs/charmap.c:732 locale/programs/charmap.c:773 -#: locale/programs/charmap.c:814 -#, c-format -msgid "syntax error in %s definition: %s" -msgstr "syntaxisfout in definitie %s: %s" +#: elf/dl-load.c:1048 +msgid "ELF load command alignment not page-aligned" +msgstr "uitlijning in ELF-laadopdracht ligt niet op een paginagrens" -#: locale/programs/charmap.c:498 locale/programs/charmap.c:678 -#: locale/programs/charmap.c:774 locale/programs/repertoire.c:231 -msgid "no symbolic name given" -msgstr "geen symbolische naam gegeven" +#: elf/dl-load.c:1055 +msgid "ELF load command address/offset not properly aligned" +msgstr "adres/positie in ELF-laadopdracht is niet correct uitgelijnd" -#: locale/programs/charmap.c:552 -msgid "invalid encoding given" -msgstr "ongeldige codering gegeven" +#: elf/dl-load.c:1139 +msgid "cannot allocate TLS data structures for initial thread" +msgstr "kan geen geheugen reserveren voor TLS-gegevensstructuren van initiële thread" -#: locale/programs/charmap.c:561 -msgid "too few bytes in character encoding" -msgstr "te weinig bytes in tekencodering" +#: elf/dl-load.c:1163 +msgid "cannot handle TLS data" +msgstr "kan TLS-gegevens niet verwerken" -#: locale/programs/charmap.c:563 -msgid "too many bytes in character encoding" -msgstr "teveel bytes in tekencodering" +#: elf/dl-load.c:1182 +msgid "object file has no loadable segments" +msgstr "objectbestand heeft geen laadbare segmenten" -#: locale/programs/charmap.c:585 locale/programs/charmap.c:733 -#: locale/programs/charmap.c:816 locale/programs/repertoire.c:297 -msgid "no symbolic name given for end of range" -msgstr "geen symbolische naam gegeven voor einde-van-bereik" +#: elf/dl-load.c:1218 +msgid "failed to map segment from shared object" +msgstr "kan segment van gedeeld object niet in het geheugen plaatsen" -#: locale/programs/charmap.c:609 locale/programs/locfile.c:818 -#: locale/programs/repertoire.c:314 -#, c-format -msgid "`%1$s' definition does not end with `END %1$s'" -msgstr "`%1$s' definitie eindigt niet met `END %1$s'" +#: elf/dl-load.c:1242 +msgid "cannot dynamically load executable" +msgstr "kan uitvoerbaar bestand niet dynamisch laden" -#: locale/programs/charmap.c:642 -msgid "only WIDTH definitions are allowed to follow the CHARMAP definition" -msgstr "slechts WIDTH (breedte) definities zijn toegestaan opvolgend op de CHARMAP (tekenafbeelding) definitie" +#: elf/dl-load.c:1303 +msgid "cannot change memory protections" +msgstr "kan geheugenbeschermingen niet veranderen" -#: locale/programs/charmap.c:650 locale/programs/charmap.c:713 -#, c-format -msgid "value for %s must be an integer" -msgstr "waarde voor %s moet een geheel getal zijn" +#: elf/dl-load.c:1322 +msgid "cannot map zero-fill pages" +msgstr "kan nul-gevulde pagina's niet in het geheugen plaatsen" -#: locale/programs/charmap.c:841 -#, c-format -msgid "%s: error in state machine" -msgstr "%s: fout in toestandenmachine" +#: elf/dl-load.c:1336 +msgid "object file has no dynamic section" +msgstr "objectbestand heeft geen dynamische sectie" -#: locale/programs/charmap.c:849 locale/programs/ld-address.c:605 -#: locale/programs/ld-collate.c:2650 locale/programs/ld-collate.c:3818 -#: locale/programs/ld-ctype.c:2225 locale/programs/ld-ctype.c:2994 -#: locale/programs/ld-identification.c:469 -#: locale/programs/ld-measurement.c:255 locale/programs/ld-messages.c:349 -#: locale/programs/ld-monetary.c:958 locale/programs/ld-name.c:324 -#: locale/programs/ld-numeric.c:392 locale/programs/ld-paper.c:258 -#: locale/programs/ld-telephone.c:330 locale/programs/ld-time.c:1219 -#: locale/programs/locfile.c:825 locale/programs/repertoire.c:325 -#, c-format -msgid "%s: premature end of file" -msgstr "%s: vroegtijdig einde-van-bestand" +#: elf/dl-load.c:1359 +msgid "shared object cannot be dlopen()ed" +msgstr "gedeeld object kan niet met dlopen() geopend worden -- heeft DF_1_NOOPEN-vlag" -#: locale/programs/charmap.c:868 locale/programs/charmap.c:879 -#, c-format -msgid "unknown character `%s'" -msgstr "onbekend teken `%s'" +#: elf/dl-load.c:1372 +msgid "cannot allocate memory for program header" +msgstr "kan geen geheugen reserveren voor programmakop" -#: locale/programs/charmap.c:887 -#, c-format -msgid "number of bytes for byte sequence of beginning and end of range not the same: %d vs %d" -msgstr "aantal bytes voor bytereeks zijn voor begin en einde van bereik niet hetzelfde: %d tegenover %d" +#: elf/dl-load.c:1389 elf/dl-open.c:174 +msgid "invalid caller" +msgstr "ongeldige aanroeper" -#: locale/programs/charmap.c:991 locale/programs/ld-collate.c:2930 -#: locale/programs/repertoire.c:420 -msgid "invalid names for character range" -msgstr "ongeldige namen voor tekenbereik" +#: elf/dl-load.c:1428 +msgid "cannot enable executable stack as shared object requires" +msgstr "kan uitvoerbare stack niet aanzetten zoals gedeeld object vereist" -#: locale/programs/charmap.c:1003 locale/programs/repertoire.c:432 -msgid "hexadecimal range format should use only capital characters" -msgstr "hexadecimaal bereikformaat moet alleen hoofdletters gebruiken" +#: elf/dl-load.c:1443 +msgid "cannot close file descriptor" +msgstr "kan bestandsdescriptor niet sluiten" -#: locale/programs/charmap.c:1021 -#, c-format -msgid "<%s> and <%s> are illegal names for range" -msgstr "<%s> en <%s> zijn ongeldige namen voor bereik" +#: elf/dl-load.c:1485 +msgid "cannot create searchlist" +msgstr "kan zoeklijst niet aanmaken" -#: locale/programs/charmap.c:1027 -msgid "upper limit in range is not higher then lower limit" -msgstr "bovengrens in bereik is niet hoger dan ondergrens" +#: elf/dl-load.c:1663 +msgid "file too short" +msgstr "bestand is te kort" -#: locale/programs/charmap.c:1085 -msgid "resulting bytes for range not representable." -msgstr "resulterende bytes voor bereik zijn niet te representeren." +#: elf/dl-load.c:1692 +msgid "invalid ELF header" +msgstr "ongeldige ELF-header" -#: locale/programs/ld-address.c:134 locale/programs/ld-collate.c:1534 -#: locale/programs/ld-ctype.c:421 locale/programs/ld-identification.c:134 -#: locale/programs/ld-measurement.c:95 locale/programs/ld-messages.c:98 -#: locale/programs/ld-monetary.c:194 locale/programs/ld-name.c:95 -#: locale/programs/ld-numeric.c:99 locale/programs/ld-paper.c:92 -#: locale/programs/ld-telephone.c:95 locale/programs/ld-time.c:160 -#, c-format -msgid "No definition for %s category found" -msgstr "Geen definitie gevonden voor categorie %s" +#: elf/dl-load.c:1704 +msgid "ELF file data encoding not big-endian" +msgstr "gegevenscodering van ELF-bestand is niet big-endian" -#: locale/programs/ld-address.c:145 locale/programs/ld-address.c:183 -#: locale/programs/ld-address.c:201 locale/programs/ld-address.c:228 -#: locale/programs/ld-address.c:290 locale/programs/ld-address.c:309 -#: locale/programs/ld-address.c:322 locale/programs/ld-identification.c:147 -#: locale/programs/ld-measurement.c:106 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:106 -#: locale/programs/ld-name.c:143 locale/programs/ld-numeric.c:113 -#: locale/programs/ld-numeric.c:127 locale/programs/ld-paper.c:103 -#: locale/programs/ld-paper.c:112 locale/programs/ld-telephone.c:106 -#: locale/programs/ld-telephone.c:163 locale/programs/ld-time.c:176 -#: locale/programs/ld-time.c:197 -#, c-format -msgid "%s: field `%s' not defined" -msgstr "%s: veld `%s' niet gedefinieerd" +#: elf/dl-load.c:1706 +msgid "ELF file data encoding not little-endian" +msgstr "gegevenscodering van ELF-bestand is niet little-endian" -#: locale/programs/ld-address.c:157 locale/programs/ld-address.c:209 -#: locale/programs/ld-address.c:235 locale/programs/ld-address.c:265 -#: locale/programs/ld-name.c:118 locale/programs/ld-telephone.c:118 -#, c-format -msgid "%s: field `%s' must not be empty" -msgstr "%s: veld `%s' mag niet leeg zijn" +#: elf/dl-load.c:1710 +msgid "ELF file version ident does not match current one" +msgstr "ELF-bestands-identversie komt niet overeen met huidige" -#: locale/programs/ld-address.c:169 -#, c-format -msgid "%s: invalid escape `%%%c' sequence in field `%s'" -msgstr "%s: ongeldige stuurcode `%%%c' in veld `%s'" +#: elf/dl-load.c:1714 +msgid "ELF file OS ABI invalid" +msgstr "OS-ABI van ELF-bestand is ongeldig" -#: locale/programs/ld-address.c:220 -#, c-format -msgid "%s: terminology language code `%s' not defined" -msgstr "%s: terminologie taalcode `%s' niet gedefinieerd" +#: elf/dl-load.c:1716 +msgid "ELF file ABI version invalid" +msgstr "ABI-versie van ELF-bestand is ongeldig" -#: locale/programs/ld-address.c:247 locale/programs/ld-address.c:276 -#, c-format -msgid "%s: language abbreviation `%s' not defined" -msgstr "%s: taal afkorting `%s' niet gedefinieerd" +#: elf/dl-load.c:1719 +msgid "internal error" +msgstr "**interne fout**" -#: locale/programs/ld-address.c:254 locale/programs/ld-address.c:282 -#: locale/programs/ld-address.c:316 locale/programs/ld-address.c:328 -#, c-format -msgid "%s: `%s' value does not match `%s' value" -msgstr "%s: `%s' waarde komt niet overeen met `%s' waarde" +#: elf/dl-load.c:1726 +msgid "ELF file version does not match current one" +msgstr "ELF-bestandsversie komt niet overeen met huidige" -#: locale/programs/ld-address.c:301 -#, c-format -msgid "%s: numeric country code `%d' not valid" -msgstr "%s: numerieke landcode `%d' niet geldig" +#: elf/dl-load.c:1734 +msgid "only ET_DYN and ET_EXEC can be loaded" +msgstr "alleen ET_DYN en ET_EXEC kunnen worden geladen" -#: locale/programs/ld-address.c:497 locale/programs/ld-address.c:534 -#: locale/programs/ld-address.c:572 locale/programs/ld-ctype.c:2601 -#: locale/programs/ld-identification.c:365 -#: locale/programs/ld-measurement.c:222 locale/programs/ld-messages.c:302 -#: locale/programs/ld-monetary.c:700 locale/programs/ld-monetary.c:735 -#: locale/programs/ld-monetary.c:776 locale/programs/ld-name.c:281 -#: locale/programs/ld-numeric.c:264 locale/programs/ld-paper.c:225 -#: locale/programs/ld-telephone.c:289 locale/programs/ld-time.c:1108 -#: locale/programs/ld-time.c:1150 -#, c-format -msgid "%s: field `%s' declared more than once" -msgstr "%s: veld `%s' meerdere keren gedeclareerd" +#: elf/dl-load.c:1740 +msgid "ELF file's phentsize not the expected size" +msgstr "'phentsize' van ELF-bestand heeft niet de verwachte grootte" -#: locale/programs/ld-address.c:501 locale/programs/ld-address.c:539 -#: locale/programs/ld-identification.c:369 locale/programs/ld-messages.c:312 -#: locale/programs/ld-monetary.c:704 locale/programs/ld-monetary.c:739 -#: locale/programs/ld-name.c:285 locale/programs/ld-numeric.c:268 -#: locale/programs/ld-telephone.c:293 locale/programs/ld-time.c:1002 -#: locale/programs/ld-time.c:1071 locale/programs/ld-time.c:1113 -#, c-format -msgid "%s: unknown character in field `%s'" -msgstr "%s: onbekend teken in veld `%s'" +#: elf/dl-load.c:2231 +msgid "wrong ELF class: ELFCLASS64" +msgstr "verkeerde ELF-klasse: ELFCLASS64" -#: locale/programs/ld-address.c:586 locale/programs/ld-collate.c:3800 -#: locale/programs/ld-ctype.c:2974 locale/programs/ld-identification.c:450 -#: locale/programs/ld-measurement.c:236 locale/programs/ld-messages.c:331 -#: locale/programs/ld-monetary.c:940 locale/programs/ld-name.c:306 -#: locale/programs/ld-numeric.c:374 locale/programs/ld-paper.c:240 -#: locale/programs/ld-telephone.c:312 locale/programs/ld-time.c:1201 -#, c-format -msgid "%s: incomplete `END' line" -msgstr "%s: onvolledige `END'-regel" +#: elf/dl-load.c:2232 +msgid "wrong ELF class: ELFCLASS32" +msgstr "verkeerde ELF-klasse: ELFCLASS32" -#: locale/programs/ld-address.c:589 locale/programs/ld-collate.c:2653 -#: locale/programs/ld-collate.c:3802 locale/programs/ld-ctype.c:2228 -#: locale/programs/ld-ctype.c:2977 locale/programs/ld-identification.c:453 -#: locale/programs/ld-measurement.c:239 locale/programs/ld-messages.c:333 -#: locale/programs/ld-monetary.c:942 locale/programs/ld-name.c:308 -#: locale/programs/ld-numeric.c:376 locale/programs/ld-paper.c:242 -#: locale/programs/ld-telephone.c:314 locale/programs/ld-time.c:1203 -#, c-format -msgid "%1$s: definition does not end with `END %1$s'" -msgstr "%1$s: definitie eindigt niet met `END %1$s'" +#: elf/dl-load.c:2235 +msgid "cannot open shared object file" +msgstr "kan gedeeld objectbestand niet openen" -#: locale/programs/ld-address.c:596 locale/programs/ld-collate.c:523 -#: locale/programs/ld-collate.c:575 locale/programs/ld-collate.c:871 -#: locale/programs/ld-collate.c:884 locale/programs/ld-collate.c:2640 -#: locale/programs/ld-collate.c:3809 locale/programs/ld-ctype.c:1956 -#: locale/programs/ld-ctype.c:2215 locale/programs/ld-ctype.c:2799 -#: locale/programs/ld-ctype.c:2985 locale/programs/ld-identification.c:460 -#: locale/programs/ld-measurement.c:246 locale/programs/ld-messages.c:340 -#: locale/programs/ld-monetary.c:949 locale/programs/ld-name.c:315 -#: locale/programs/ld-numeric.c:383 locale/programs/ld-paper.c:249 -#: locale/programs/ld-telephone.c:321 locale/programs/ld-time.c:1210 -#, c-format -msgid "%s: syntax error" -msgstr "%s: syntaxisfout" +#: elf/dl-lookup.c:261 +msgid "relocation error" +msgstr "verplaatsingsfout" -#: locale/programs/ld-collate.c:398 -#, c-format -msgid "`%.*s' already defined in charmap" -msgstr "`%.*s' reeds gedefinieerd in tekenafbeelding" +#: elf/dl-lookup.c:289 +msgid "symbol lookup error" +msgstr "opzoekfout voor symbool" -#: locale/programs/ld-collate.c:407 -#, c-format -msgid "`%.*s' already defined in repertoire" -msgstr "`%.*s' reeds gedefinieerd in repertoire" +#: elf/dl-open.c:112 +msgid "cannot extend global scope" +msgstr "kan globaal geldigheidsbereik niet uitbreiden" -#: locale/programs/ld-collate.c:414 -#, c-format -msgid "`%.*s' already defined as collating symbol" -msgstr "`%.*s' reeds gedefinieerd als sorteersymbool" +#: elf/dl-open.c:237 +msgid "empty dynamic string token substitution" +msgstr "lege vervanging van DST" -#: locale/programs/ld-collate.c:421 -#, c-format -msgid "`%.*s' already defined as collating element" -msgstr "`%.*s' reeds gedefinieerd als sorteerelement" +#: elf/dl-open.c:406 elf/dl-open.c:417 elf/dl-open.c:425 +msgid "cannot create scope list" +msgstr "kan lijst voor geldigheidsbereik niet aanmaken" -#: locale/programs/ld-collate.c:452 locale/programs/ld-collate.c:478 -#, c-format -msgid "%s: `forward' and `backward' are mutually excluding each other" -msgstr "%s: `forward' (voorwaards) en `backward' (achterwaards) sluiten elkaar uit" +#: elf/dl-open.c:470 +msgid "TLS generation counter wrapped! Please report this." +msgstr "" +"De TLS-generatieteller is opnieuw bij nul begonnen!\n" +"Rapporteer deze programmafout met het 'glibcbug' script." -#: locale/programs/ld-collate.c:462 locale/programs/ld-collate.c:488 -#: locale/programs/ld-collate.c:504 -#, c-format -msgid "%s: `%s' mentioned more than once in definition of weight %d" -msgstr "%s: `%s' meerdere keren genoemd in definitie van gewicht %d" +#: elf/dl-open.c:508 +msgid "invalid mode for dlopen()" +msgstr "ongeldige modus voor dlopen()" -#: locale/programs/ld-collate.c:560 -#, c-format -msgid "%s: too many rules; first entry only had %d" -msgstr "%s: teveel regels; eerste ingang had slechts %d" +#: elf/dl-open.c:525 +msgid "no more namespaces available for dlmopen()" +msgstr "geen naamsruimten meer beschikbaar voor dlmopen()" + +#: elf/dl-open.c:538 +msgid "invalid target namespace in dlmopen()" +msgstr "ongeldige doelnaamsruimte in dlmopen()" -#: locale/programs/ld-collate.c:596 -#, c-format -msgid "%s: not enough sorting rules" -msgstr "%s: niet genoeg sorteerregels" +#: elf/dl-reloc.c:55 +msgid "cannot allocate memory in static TLS block" +msgstr "kan geen geheugen reserveren binnen statisch TLS-blok" -#: locale/programs/ld-collate.c:761 -#, c-format -msgid "%s: empty weight string not allowed" -msgstr "%s: lege gewichtstekenreeks niet toegestaan" +#: elf/dl-reloc.c:198 +msgid "cannot make segment writable for relocation" +msgstr "kan segment niet schrijfbaar maken voor verplaatsing" -#: locale/programs/ld-collate.c:856 +#: elf/dl-reloc.c:279 #, c-format -msgid "%s: weights must use the same ellipsis symbol as the name" -msgstr "%s: gewichten moeten hetzelfde weglatingssymbool (ellipsis) gebruiken als de naam" +msgid "%s: no PLTREL found in object %s\n" +msgstr "%s: geen PLTREL in object %s gevonden\n" -#: locale/programs/ld-collate.c:912 +#: elf/dl-reloc.c:290 #, c-format -msgid "%s: too many values" -msgstr "%s: teveel waarden" +msgid "%s: out of memory to store relocation results for %s\n" +msgstr "%s: onvoldoende geheugen om verplaatsingsresultaten van %s op te slaan\n" -#: locale/programs/ld-collate.c:1031 locale/programs/ld-collate.c:1206 -#, c-format -msgid "order for `%.*s' already defined at %s:%Zu" -msgstr "volgorde voor `%.*s' reeds gedefinieerd bij %s:%Zu" +#: elf/dl-reloc.c:306 +msgid "cannot restore segment prot after reloc" +msgstr "kan segmentbescherming niet herstellen na verplaatsing" -#: locale/programs/ld-collate.c:1081 -#, c-format -msgid "%s: the start and the end symbol of a range must stand for characters" -msgstr "%s: het symbool van begin en einde van reeks moet staan voor tekens" +#: elf/dl-reloc.c:331 +msgid "cannot apply additional memory protection after relocation" +msgstr "kan extra geheugenbescherming niet toepassen na verplaatsing" -#: locale/programs/ld-collate.c:1108 -#, c-format -msgid "%s: byte sequences of first and last character must have the same length" -msgstr "%s: bytereeksen van eerste en laatste teken moeten dezelfde lengte hebben" +#: elf/dl-sym.c:98 +msgid "RTLD_NEXT used in code not dynamically loaded" +msgstr "RTLD_NEXT is gebruikt in code die niet dynamisch geladen is" -#: locale/programs/ld-collate.c:1150 -#, c-format -msgid "%s: byte sequence of first character of sequence is not lower than that of the last character" -msgstr "%s: bytereeks van eerste teken van reeks is niet lager dan bytereeks van het laatste teken" +#: elf/dl-sysdep.c:495 +msgid "cannot create capability list" +msgstr "kan privilegeslijst niet aanmaken" -#: locale/programs/ld-collate.c:1275 -#, c-format -msgid "%s: symbolic range ellipsis must not directly follow `order_start'" -msgstr "%s: weglatingsteken van symbolisch bereik mag niet direct `order_start' (volgorde begin) opvolgen" +#: elf/dl-tls.c:829 +msgid "cannot create TLS data structures" +msgstr "kan TLS-gegevensstructuren niet aanmaken" -#: locale/programs/ld-collate.c:1279 -#, c-format -msgid "%s: symbolic range ellipsis must not be directly followed by `order_end'" -msgstr "%s: weglatingsteken van symbolisch bereik mag niet direct gevolgd worden door `order_end' (volgorde einde)" +#: elf/dl-version.c:303 +msgid "cannot allocate version reference table" +msgstr "kan geen geheugen reserveren voor tabel met versieverwijzingen" -#: locale/programs/ld-collate.c:1299 locale/programs/ld-ctype.c:1476 -#, c-format -msgid "`%s' and `%.*s' are not valid names for symbolic range" -msgstr "`%s' en `%.*s' zijn geen geldige namen voor een symbolisch bereik" +#: elf/ldconfig.c:133 +msgid "Print cache" +msgstr "inhoud van de cache weergeven" -#: locale/programs/ld-collate.c:1348 locale/programs/ld-collate.c:3737 -#, c-format -msgid "%s: order for `%.*s' already defined at %s:%Zu" -msgstr "%s: volgorde voor `%.*s' reeds gedefinieerd bij %s:%Zu" +#: elf/ldconfig.c:134 +msgid "Generate verbose messages" +msgstr "breedsprakige uitvoer" -#: locale/programs/ld-collate.c:1357 -#, c-format -msgid "%s: `%s' must be a character" -msgstr "%s: `%s' moet een teken zijn" +#: elf/ldconfig.c:135 +msgid "Don't build cache" +msgstr "geen cache opbouwen" -#: locale/programs/ld-collate.c:1550 -#, c-format -msgid "%s: `position' must be used for a specific level in all sections or none" -msgstr "%s: `position' (positie) moet ofwel voor een specifiek niveau in alle secties worden gebruikt ofwel voor geen" +#: elf/ldconfig.c:136 +msgid "Don't generate links" +msgstr "geen koppelingen genereren" -#: locale/programs/ld-collate.c:1575 -#, c-format -msgid "symbol `%s' not defined" -msgstr "symbool `%s' niet gedefinieerd" +#: elf/ldconfig.c:137 +msgid "Change to and use ROOT as root directory" +msgstr "naar deze map gaan en als hoofdmap gebruiken" -#: locale/programs/ld-collate.c:1651 locale/programs/ld-collate.c:1757 -#, c-format -msgid "symbol `%s' has the same encoding as" -msgstr "symbool `%s' heeft dezelfde codering als" +#: elf/ldconfig.c:137 +msgid "ROOT" +msgstr "BASISMAP" -#: locale/programs/ld-collate.c:1655 locale/programs/ld-collate.c:1761 -#, c-format -msgid "symbol `%s'" -msgstr "symbool `%s'" +#: elf/ldconfig.c:138 +msgid "CACHE" +msgstr "CACHE-BESTAND" -#: locale/programs/ld-collate.c:1803 -msgid "no definition of `UNDEFINED'" -msgstr "geen definitie van `UNDEFINED' (ongedefinieerd)" +#: elf/ldconfig.c:138 +msgid "Use CACHE as cache file" +msgstr "dit cachebestand gebruiken" -#: locale/programs/ld-collate.c:1832 -msgid "too many errors; giving up" -msgstr "teveel fouten; ik geef het op" +#: elf/ldconfig.c:139 +msgid "CONF" +msgstr "CONFIG-BESTAND" + +#: elf/ldconfig.c:139 +msgid "Use CONF