diff -durpN glibc-2.0.5c/BUGS glibc-2.0.6/BUGS --- glibc-2.0.5c/BUGS Mon Aug 4 19:45:22 1997 +++ glibc-2.0.6/BUGS Sun Dec 28 06:54:55 1997 @@ -1,7 +1,7 @@ List of known bugs (certainly very incomplete) ---------------------------------------------- -Time-stamp: <1997-08-04T00:50:04+0200 drepper> +Time-stamp: <1997-12-28T12:54:55+0100 drepper> This following list contains those bugs which I'm aware of. Please make sure that bugs you report are not listed here. If you can fix one @@ -10,7 +10,7 @@ of these bugs/limitations I'll certainly Another source of information about bugs is the problem data base of the GNU project. There is an easy to use WWW interface available at - http://www-gnats.gnu.ai.mit.edu:8080/cgi-bin/wwwgnats.pl + http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl I would appreciate it very much if you could verify the problem was not reported before by looking through the database. To make the information @@ -25,6 +25,10 @@ Severity: [ *] to [***] [ **] There are problems with signal handling when using LinuxThreads. +[ **] The libm-ieee `log2' function seems to be very inaccurate. + +[ *] The libm-ieee `asin' function gives wrong results (at least for 0.5). + [ *] The precision of the `sinhl' and/or `asinhl' function do not seem to be the best. @@ -32,25 +36,38 @@ Severity: [ *] to [***] flag was given. [PR libc/72] -[ *] On Linux, the is not clean enough to satisfy - the C++ namespace rules. Declaring `struct fd_set' also makes - `fd_set' available in the global namespace which conflicts with - the definition of `fd_set' in glibc. - [PR libc/79] - [ *] On Linux, there should be a way to prevent defining the symbol NGROUPS_MAX in the header file. In glibc it is defined in which must not make the other symbols in available. [PR libc/140] +[ *] When assembling a locale definition, that uses the "copy" + directive, with localedef, not only the copied category is + checked for errors, but the whole file containing the same + category. + [PR libc/207] + [ *] The localedef program should not generate errors if for categories which are not used for the output there are characters referenced which are not defined in the charmap. [PR libc/229] +[ *] _IO_getline can loop forever, at least with C++ + [PR libc/332] + [ *] The rcmd() functions (more concrete: the handling of .rhosts) does not support netgroups and wildcards (+). + +[ **] When popen() was called with an illegal command the function still + returns with a value not equal to NULL. + +[ *] setlocale() leaks memory. This becomes only a problem if a program + calls this function very often which normally is not the case. The + problem is fixed for glibc 2.1. + +[ *] Using the NSS modules from statically linked programs sometimes + fails (for very large entries). The problem is fixed in glibc 2.1. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ulrich Drepper diff -durpN glibc-2.0.5c/ChangeLog glibc-2.0.6/ChangeLog --- glibc-2.0.5c/ChangeLog Sun Dec 28 20:10:46 1997 +++ glibc-2.0.6/ChangeLog Sun Dec 28 13:23:58 1997 @@ -1,3 +1,535 @@ +1997-12-28 19:22 Ulrich Drepper + + * version.h (RELEASE): Set to "production". + + * po/nl.po: Updated. + * po/es.po: Updated. + + * sysdeps/posix/mk-stdiolim.c: Correctly handle inclusion by stdio.h. + +1997-12-28 17:13 Ulrich Drepper + + * nis/ypclnt.c (__yp_bind): Make sure socket is closed. + Patch by Thorsten Kukuk . + +1997-12-24 22:04 Ulrich Drepper + + * configure.in: Fix typo. Correct check for available add-ons. + + * limits.h: Always define MB_LEN_MAX. + + * nis/nss_nis/nis-ethers.c: Correct handling of overflow. + * nis/nss_nis/nis-grp.c: Likewise. + * nis/nss_nis/nis-hosts.c: Likewise. + * nis/nss_nis/nis-network.c: Likewise. + * nis/nss_nis/nis-proto.c: Likewise. + * nis/nss_nis/nis-pwd.c: Likewise. + * nis/nss_nis/nis-rpc.c: Likewise. + * nis/nss_nis/nis-service.c: Likewise. + * nis/nss_nis/nis-spwd.c: Likewise. + + * sysdeps/posix/mk-stdiolim.c: Define FOPEN_MAX also when included + directly. + + * sysdeps/unix/sysv/linux/sys/msq_buf.h: Fix typo. + + * sysdeps/unix/sysv/linux/alpha/net/route.h: New file. + +1997-12-20 13:50 Richard Henderson + + * posix/sched.h: timespec is in . + + * sysdeps/unix/sysv/linux/sys/kd.h: Don't redefine _LINUX_TYPES_H. + +1997-12-21 22:09 Ulrich Drepper + + * xopen_lim.h: Include stdio_lim.h to get definition of FOPEN_MAX. + Define STREAM_MAX using FOPEN_MAX. + + * locale/programs/ld-ctype.c (map_collection_max, map_collection_act): + Define as size_t. + * locale/programs/locale.c: Use correct cast from pointer value. + + * misc/regexp.h (compile): Use parameter names without __. + + * nis/nss_nis/nis-ethers.c (internal_nis_getetherent_r): Use strncpy + instead of strcpy for security reasons. + * nis/nss_nis/nis-proto.c (internal_nis_getprotoent_r): Likewise. + * nis/nss_nis/nis-rpc.c (internal_nis_getrpcent_r): Likewise. + * nis/nss_nis/nis-service.c (internal_nis_getservent_r): Likewise. + * sunrpc/clnt_simp.c (callrpc): Likewise. + + * nis/nss_nis/nis-hosts.c (LINE_PARSER): Use pointer of correct type + for map_v4v6_hostent call. + + * sysdeps/posix/mk-stdio-lim.c: Generate file which recognizes + __need_FOPEN_MAX. + * sysdeps/standalone/stdio_lim.h: Rewrite to recognize + __need_FOPEN_MAX. + * sysdeps/stub/stdio_lim.h: Likewise. + + * sysdeps/unix/sysv/linux/alpha/gnu/types.h: Define __ipc_pid_t type. + * sysdeps/unix/sysv/linux/gnu/types.h: Likewise. + * sysdeps/unix/sysv/linux/sys/msq_buf.h: Use __ipc_pid_t for + msg_lspid and msg_lrpid field. + * sysdeps/unix/sysv/linux/sys/shm_buf.h: Likewise for shm_cpid and + shm_lpid field. + +1997-12-16 Andreas Jaeger + + * configure.in (libc_cv_gcc_alpha_ng_prefix): Correct quoting. + +1997-12-13 Thorsten Kukuk + + * libc-work/nis/ypclnt.c (do_ypcall): Don't free dom_binding twice. + +1997-12-11 18:19 Ulrich Drepper + + * elf/rtld.c: Don't count in multiply reference object in number + of preloaded objects. [PR libc/375]. + + * sysdeps/generic/gnu/types.h (__FDMASK): Cast constant 1 to be + shifted correctly. + * sysdeps/unix/sysv/linux/alpha/gnu/types.h: Likewise. + * sysdeps/unix/sysv/linux/gnu/types.h: Likewise. + Reported by Richard Henderson. + +1997-12-11 12:08 Thorsten Kukuk + + * nis/nss_compat/compat-grp.c: Reset the blacklist correct, fix + return code for non existent +name entries. + * nis/nss_compat/compat-pwd.c: Likewise. + * nis/nss_compat/compat-spwd.c: Likewise. + +1997-12-11 17:40 Ulrich Drepper + + * posix/glob.c: Update from glibc 2.1. + * posix/glob.h: Likewise. + +1997-11-10 07:40 H.J. Lu + + * stdlib/exit.c (exit): Handle recursive calls to exit (). + +1997-12-11 07:36 Ulrich Drepper + + * sysdeps/alpha/bsd-setjmp.S: Add empty file. + * sysdeps/alpha/bsd-_setjmp.S: Likewise. + +1997-12-04 00:06 Zack Weinberg + + * configure.in: If --enable-add-ons is given without an + argument, set the addons list to all subdirs with a configure + script. + +1997-05-23 15:26 Philip Blundell + + * resolv/res_query.c (res_querydomain): Avoid potential buffer + overrun. Reported by Dan A. Dickey . + +1997-11-24 Andreas Jaeger + + * glibcbug.in: Add more information of build environment and flags. + +1997-12-03 Andreas Jaeger + + * resolv/inet_neta.c (inet_neta): Change type of first parameter + to u_int32_t. Suggested by John Lavagnino + [PR libc/366]. + + * resolv/inet_addr.c (inet_addr): Change return type to u_int32_t. + + * inet/arpa/inet.h: Change types of inet_neta and inet_addr. + +1997-12-10 Ulrich Drepper + + * sysdeps/alpha/Dist: Remove setjmp_aux.c. + +1997-12-10 00:38 Ulrich Drepper + + * Makerules (compile.S, COMPILE.S, COMPILE.s): Use $(ASFLAGS-*) + variable as well. + + * locale/C-ctype.c: Correct data for isw* functions. + * locale/programs/ld-ctype.c: Write 32bit char classes in correct + byte order. + * wctype/test_wctype.c: Add test for isw* functions. + * wctype/wctype.c: Return value with expected byte order. + + * sysdeps/alpha/__math.h: Remove cabs definition. + * sysdeps/libm-ieee754/w_cabs.c [NO_LONG_DOUBLE]: Correct cabsl. + + * sysdeps/posix/sysv_signal.c: Define sysv_signal as weak alias. + + * sysdeps/unix/inet/syscalls.list: Define socket syscalls with + __libc_* names. + + * sysdeps/unix/sysv/linux/Dist: Add scsi/sg.h, net/if_packet.h, + net/if_slip.h, and sys/prctl.h. Remove sys/module.h. + * sysdeps/unix/sysv/linux/Makefile [$(subdir)=misc] (sysdep_headers): + Remove sys/module.h. Add sys/prctl.h and scsi/sg.h. + [$(subdir)=inet] (sysdep_headers): Add net/if_slip.h, net/if_packet.h. + + * sysdeps/unix/sysv/linux/syscalls.list: Add prctl. + + * sysdeps/unix/sysv/linux/sys/module.h: Removed. + +1997-11-14 03:06 Ulrich Drepper + + * sysdeps/unix/sysv/linux/accept.S: Add __libc_accept as alias. + * sysdeps/unix/sysv/linux/send.S: Likewise. + * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. + * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. + * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. + * sysdeps/unix/sysv/linux/recv.S: Likewise. + * sysdeps/unix/sysv/linux/sendto.S: Likewise. + * sysdeps/unix/sysv/linux/connect.S: Likewise. + +1997-12-07 15:49 Thorsten Kukuk + + * nis/nss_compat/compat-grp.c: If buffer is to small, set the file + handle for /etc/group back in some more cases. + * nis/nss_compat/compat-pwd.c: If buffer is to small, set the file + handle for /etc/passwd back in some more cases. + * nis/nss_compat/compat-spwd.c: If buffer is to small, set the file + handle for /etc/shadow back in some more cases. + +1997-12-06 17:00 H.J. Lu + + * sysdeps/posix/sigblock.c (__sigblock): Don't check int mask + beyound its size. + * sysdeps/posix/sigsetmask.c (__sigsetmask): Ditto. + * sysdeps/posix/sigvec.c (convert_mask, __sigvec): Ditto. + +1997-11-30 21:57 Richard Henderson + + Alpha changes for EGCS: + * config.h.in (ASM_ALPHA_NG_SYMBOL_PREFIX): New entry. + * configure.in (libc_cv_gcc_alpha_ng_prefix): New check. + * sysdeps/alpha/dl-machine.h (_dl_runtime_resolve): Care for prefix. + (_start): Likewise. + * sysdeps/unix/sysv/linux/alpha/init-first.h: Likewise. + + * sysdeps/alpha/Makefile: Backport setjmp/longjmp rewrite. + * sysdeps/alpha/__longjmp.S: Likewise. + * sysdeps/alpha/bsd-_setjmp.S: Likewise. + * sysdeps/alpha/bsd-setjmp.S: Likewise. + * sysdeps/alpha/jmp_buf.h: Likewise. + * sysdeps/alpha/setjmp.S: Likewise. + * sysdeps/alpha/__longjmp.c: Removed. + * sysdeps/alpha/setjmp_aux.c: Removed. + +1997-12-04 Andreas Jaeger + + * sysdeps/unix/sysv/linux/socketbits.h: Add AF_* and PF_ + constants from Linux headers. Pointed out by + csmall@scooter.o.i.net. [PR libc/369] + +1997-12-03 20:40 Thorsten Kukuk + + * grp/initgroups.c: Increase buffer if it is too small. + +1997-12-03 Andreas Jaeger + + * sysdeps/unix/sysv/linux/sys/mman.h (MAP_FAILED): Add + constant. Suggested by Petter Reinholdtsen + [PR libc/367]. + +1997-11-30 06:01 Ulrich Drepper + + * posix/sys/wait.h (__WAIT_INT): Don't use complex version with + __typeof for C++ since this fails for class members. + Reported by Neal Becker . + +1997-11-26 Andreas Jaeger + + * sysdeps/unix/sysv/linux/sys/module.h: Remove file. It's + incompatible with Linux 2.1.x. Packages using modules + (e.g. modutils) should/do provide their own version. Suggested by + Richard Henderson. + + * sysdeps/unix/sysv/linux/Dist: Remove sys/module.h + + * sysdeps/unix/sysv/linux/Makefile (sysdep_headers) + [$(subdir)=socket]: Remove sys/module.h. + +1997-11-26 Thorsten Kukuk + + * sunrpc/clnt_udp.c (clntudp_call): Rename cu_wait from timeout to + not shadow the variable in the outer scope. Carry over from glibc 2.1. + +1997-11-21 21:33 Ulrich Drepper + + * sysdeps/libm-ieee754/w_cabs.c: Add __cabs_complexl definition. + +1997-11-20 16:51 Ulrich Drepper + + * malloc/malloc.c (malloc_update_mallinfo): Initialize struct for + return value. + +1997-11-19 23:50 Ulrich Drepper + + * configure.in: Update from 2.1 version. + * glibcbug.in: Likewise. + * manual/maint.texi: Likewise. + + * math/mathcalls.c: Remove declaration of infnan and cabs. + + * libio/stdio.h: Don't use _POSIX_SOURCE in header. + + * manual/errno.texi: Define new Linux errors. + + * math/math_private.h: Correct result type of __ieee754_rem_pio2{,f,l} + and __kernel_rem_pio2{,f,l}. + + * posix/glob.h: Define GLOB_ABORTED and GLOB_ABEND only if __USE_GNU. + + * stdio-common/printf_fp.c: Define NDEBUG only if not yet defined. + + * sysdeps/i386/selectbits.h: Don't use casts, use element access. + + * sysdeps/libm-i387/s_nextafterl.c: Correct result value for x==y. + + * sysdeps/libm-ieee754/s_cbrt.c: Correct result for NAN, Inf, 0.0. + * sysdeps/libm-ieee754/s_cbrtf.c: Likewise. + * sysdeps/libm-ieee754/s_cbrtl.c: Likewise. + + * sysdeps/mach/hurd/cthreads.c: Include , not + . + + * sysdeps/unix/sysv/linux/socketbits.h: Add new values and correct + types in struct cmsghdr. + + * sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Correct + loading of return address. + + * sysdeps/unix/sysv/linux/net/if.h: Add new values. + * sysdeps/unix/sysv/linux/net/if_arp.h: Likewise. + + * sysdeps/unix/sysv/linux/sys/quota.h: Include . + +1997-09-16 04:32 Ulrich Drepper + + * sysdeps/unix/sysv/linux/sys/ptrace.h (ptrace): Change return + value type to long int. + * sysdeps/unix/sysv/linux/ptrace.c: Likewise. Adopt local variable + types. + +1997-11-06 00:06 Ulrich Drepper + + * sysdeps/posix/writev.c: Correct condition to leave the loop. + +1997-10-28 17:40 Ulrich Drepper + + * sysdeps/libm-ieee754/s_cbrt.c: Testing the returned exponent for + zero isn't enough to determine illegal arguments. + * sysdeps/libm-ieee754/s_cbrtf.c: Likewise. + * sysdeps/libm-ieee754/s_cbrtl.c: Likewise. + +1997-08-20 05:30 Ulrich Drepper + + * sysdeps/libm-i387/e_remainder.S: Pretty print. + * sysdeps/libm-i387/e_remainderf.S: Likewise. + * sysdeps/libm-i387/e_remainderl.S: Pop extra value from FPU stack. + +1997-10-22 18:47 Thorsten Kukuk + + * sunrpc/rpc/clnt.h: Add get_myaddress prototype. + +1997-10-25 18:56 Ulrich Drepper + + * stdlib/stdlib.h: Remove mblen optimization. + * stdlib/mblen.c: Rewrite to make sure global state is not changed. + Reported by anderson@metrolink.com. + +1997-10-17 Andreas Jaeger + + * po/Makefile ($(mo-installed)): Don't fail during installation if + files don't exist (might happen if msgfmt doesn't exist) (PR 328). + Suggested by Wolfram Gloger . + +1997-09-30 18:03 Ulrich Drepper + + * misc/sys/select.h: Define pselect only is __USE_POSIX since this + header is used in some others as well for historical reasons. + +1997-09-27 01:14 Ulrich Drepper + + * locale/setlocale.c (setname): Only remove old name when it + is for category LC_ALL. + +1997-11-03 00:20 Ulrich Drepper + + * intl/localealias.c (read_alias_file): Correct handling of line + reader which sometimes skipped complete lines (PR 205). + +1997-11-09 18:15 Ulrich Drepper + + * csu/Makefile (CFLAGS-initfini.s): Correctly fix moving function + definition. Patch by Zack Weinberg . + + * stdlib/strtod.c: Handle numbers like 0.0e10000 correctly which + produce ±0.0. Reported by Joe Keane . + +1997-11-09 18:15 Ulrich Drepper + + * Makerules (libc.so): Fix typo. + + * csu/Makefile (CFLAGS-initfini.s): Correctly fix moving function + definition. Patch by Zack Weinberg . + + * stdlib/strtod.c: Handle numbers like 0.0e10000 correctly which + produce ±0.0. Reported by Joe Keane . + +1997-09-19 14:11 Ulrich Drepper + + * string/argz.h (__argz_next): Cast NULL to char * to satisfy C++ + compilers. + Reported by Mirko Streckenbach . + + * catgets/catgets.c (catopen): Correctly allocate string of nlspath. + Reported by Charles C. Fu . + +1997-11-18 02:31 Ulrich Drepper + + * sysdeps/generic/_G_config.h: Define __need_NULL to get definition + for NULL. + * sysdeps/unix/sysv/linux/_G_config.h: Likewise. + Reported by H.J. Lu . + + * configure.in: Correct test for bash2. + Patch by Zack Weinberg . + + * locale/Makefile (CFLAGS-charmap.c): Add -Wno-char-subscripts. + (CFLAGS-locfile.c): Likewise. + Suggested by Zack Weinberg . + + * misc/hsearch_r.c (hsearch_r): Avoid undefinitely search for + non-existing entry if the table is full. + + * stdio-common/printf_fp.c: Don't define NDEBUG if already defined. + +1997-11-18 18:04 Ulrich Drepper + + * sysdeps/generic/pty.c: Define REVOKE to use revoke function. + Replace revoke call by use of REVOKE. + * sysdeps/unix/sysv/linux/pty.c: New file. Define REVOKE as + empty and #include generic version. + Suggested by Zack Weinberg . + +1997-11-18 06:45 Ulrich Drepper + + * sysdeps/generic/pty.c: Make thread safe. Fix bug when calling + again after successful call. + Patch by Marc Lehmann . + +1997-11-17 02:02 Ulrich Drepper + + * malloc/thread-m.h: Remove malloc_key-data definition. + Reported by Trevor Johnson . + +1997-10-21 Andreas Jaeger + + * manual/filesys.texi (Scanning Directory Content): Document error + case more. + + * dirent/scandir.c (scandir): Ignore errors from select function. + Suggested by urbanw@cs.umu.se (closes PR libc/316). + +1997-09-04 15:57 Ulrich Drepper + + * termios/cfsetspeed.c (cfsetspeed): Change return value to int. + * termios/termios.h: Change prototype accordingly. + +1997-09-28 08:27 Thorsten Kukuk + + * nis/rpcsvc/yp_prot.h: Rename struct keydat to struct keydat_t + for C++. + +1997-11-14 05:59 Ulrich Drepper + + * misc/efgcvt_r: Use version fromglibc 2.1 which corrects several + bugs. + +1997-11-13 15:00 Ulrich Drepper + + * nis/nss_compat/compat-grp.c: Carry over several patches from glibc + 2.1 development version to fix some more severe bugs. + * nis/nss_compat/compat-pwd.c: Likewise. + * nis/nss_compat/compat-spwd.c: Likewise. + * nis/ypclnt.c: Likewise. + Patch by Thorsten Kukuk . + + * version.h (VERSION): Bump to 2.0.6. + +1997-11-09 18:15 Ulrich Drepper + + * stdlib/stdtod.c: Handle numbers like 0.0e10000 correctly which + produce ±0.0. Reported by Joe Keane . + +1997-10-31 23:08 Ulrich Drepper + + * posix/glob.c (glob): If calling glob_in_dir for a list which was + generated by a glob call disable GLOB_ERR since there might be + non-directories in the list (PR203). + +1997-10-30 06:04 Ulrich Drepper + + * misc/efgcvt.c: Call correct reentrant functions. + +1997-10-28 04:26 Ulrich Drepper + + * time/tzfile.c (__tzfile_compute): Use negated value of offset for + timezone variable. + * time/tzset.c (tz_compute): Likewise. + Reported by Erik Troan . + +1997-10-29 03:54 Ulrich Drepper + + * resolv/nss_dns/dns-host.c: Change variable pointed to by h_errnop + in all error cases (PR 244). + +1997-10-28 02:51 Ulrich Drepper + + * manual/filesys.texi: Correct prototype in readdir_r description. + Reported by Jim Meyering . + +1997-10-25 04:00 Ulrich Drepper + + * sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact + matching of version function if both the general (1) and + glibc-specific (3) entry are present. + +1997-10-18 15:03 Philip Blundell + + * sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some + elements in struct msghdr and struct cmsghdr, to keep in step with + the kernel. + +1997-10-09 05:54 Ulrich Drepper + + * nss/digits_dots.c: Place `result' in resbuf and not in `buffer'. + * nss/getXXbyYY_r.c: Make sure digits_dots.c sees `resbuf' as + struct and not a pointer. Little optimizations. + +1997-10-07 Paul Eggert + + * intl/loadmsgcat.c (_nl_load_domain): + Fix &&/|| typo when checking file size. + +1997-10-07 18:11 Ulrich Drepper + + * time/africa: Update from tzdata1997i. + +1997-10-03 20:56 Jason Merrill + + * malloc/obstack.h (obstack_empty_p): New macro. + +1997-09-09 Paul Eggert + + * time/mktime.c (__mktime_internal): Declare sec_requested even if + !LEAP_SECONDS_POSSIBLE, since it's needed at the end when checking + for time_t overflow. + 1997-09-10 04:42 Ulrich Drepper * sysdeps/unix/sysv/linux/netinet/ip_fw.h (struct ip_fw): Correct diff -durpN glibc-2.0.5c/FAQ glibc-2.0.6/FAQ --- glibc-2.0.5c/FAQ Thu Aug 21 07:56:19 1997 +++ glibc-2.0.6/FAQ Tue Dec 23 22:04:57 1997 @@ -1,491 +1,435 @@ - Frequently Asked Question on GNU C Library + Frequently Asked Questions about the GNU C Library -As every FAQ this one also tries to answer questions the user might have -when using the package. Please make sure you read this before sending -questions or bug reports to the maintainers. +This document tries to answer questions a user might have when +installing and using glibc. Please make sure you read this before +sending questions or bug reports to the maintainers. -The GNU C Library is very complex. The building process exploits the -features available in tools generally available. But many things can -only be done using GNU tools. Also the code is sometimes hard to -understand because it has to be portable but on the other hand must be -fast. But you need not understand the details to use GNU C Library. -This will only be necessary if you intend to contribute or change it. +The GNU C library is very complex. The installation process has not +been completely automated; there are too many variables. You can do +substantial damage to your system by installing the library +incorrectly. Make sure you understand what you are undertaking before +you begin. If you have any questions you think should be answered in this document, please let me know. --drepper@cygnus.com -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q1] ``What systems does the GNU C Library run on?'' - -[Q2] ``What compiler do I need to build GNU libc?'' - -[Q3] ``When starting make I get only error messages. - What's wrong?'' - -[Q4] ``After I changed configure.in I get `Autoconf version X.Y. - or higher is required for this script'. What can I do?'' - -[Q5] ``Do I need a special linker or archiver?'' - -[Q6] ``Do I need some more things to compile GNU C Library?'' - -[Q7] ``When I run `nm -u libc.so' on the produced library I still - find unresolved symbols? Can this be ok?'' - -[Q8] ``Can I replace the libc on my Linux system with GNU libc?'' - -[Q9] ``I expect GNU libc to be 100% source code compatible with - the old Linux based GNU libc. Why isn't it like this?'' - -[Q10] ``Why does getlogin() always return NULL on my Linux box?'' - -[Q11] ``Where are the DST_* constants found in on many - systems?'' - -[Q12] ``The `gencat' utility cannot process the input which are - successfully used on my Linux libc based system. Why?'' - -[Q13] ``How do I configure GNU libc so that the essential libraries - like libc.so go into /lib and the other into /usr/lib?'' +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q14] ``When linking with the new libc I get unresolved symbols - `crypt' and `setkey'. Why aren't these functions in the - libc anymore?'' +1. Compiling glibc -[Q15] ``What are these `add-ons'?'' +1.1. What systems does the GNU C Library run on? +1.2. What compiler do I need to build GNU libc? +1.3. When I try to compile glibc I get only error messages. + What's wrong? +1.4. Do I need a special linker or archiver? +1.5. Do I need some more things to compile GNU C Library? +1.6. When I run `nm -u libc.so' on the produced library I still + find unresolved symbols. Can this be ok? +1.7. What are these `add-ons'? +1.8. My XXX kernel emulates a floating-point coprocessor for me. + Should I enable --with-fp? +1.9. When compiling GNU libc I get lots of errors saying functions + in glibc are duplicated in libgcc. +1.10. What's the problem with configure --enable-omitfp? -[Q16] ``When I use GNU libc on my Linux system by linking against - to libc.so which comes with glibc all I get is a core dump.'' +2. Installation and configuration issues -[Q17] ``Looking through the shared libc file I haven't found the - functions `stat', `lstat', `fstat', and `mknod' and while - linking on my Linux system I get error messages. How is - this supposed to work?'' +2.1. Can I replace the libc on my Linux system with GNU libc? +2.2. How do I configure GNU libc so that the essential libraries + like libc.so go into /lib and the other into /usr/lib? +2.3. How should I avoid damaging my system when I install GNU libc? +2.4. Do I need to use GNU CC to compile programs that will use the + GNU C Library? +2.5. When linking with the new libc I get unresolved symbols + `crypt' and `setkey'. Why aren't these functions in the + libc anymore? +2.6. When I use GNU libc on my Linux system by linking against + the libc.so which comes with glibc all I get is a core dump. +2.7. Looking through the shared libc file I haven't found the + functions `stat', `lstat', `fstat', and `mknod' and while + linking on my Linux system I get error messages. How is + this supposed to work? +2.8. How can I compile gcc 2.7.2.1 from the gcc source code using + glibc 2.x? +2.9. The `gencat' utility cannot process the catalog sources which + were used on my Linux libc5 based system. Why? +2.10. I have set up /etc/nis.conf, and the Linux libc 5 with NYS + works great. But the glibc NIS+ doesn't seem to work. +2.11. After installing glibc name resolving doesn't work properly. +2.12. I have /usr/include/net and /usr/include/scsi as symlinks + into my Linux source tree. Is that wrong? +2.13. Programs like `logname', `top', `uptime' `users', `w' and + `who', show incorrect information about the (number of) + users on my system. Why? +2.14. When I start the program XXX after upgrading the library + I get + XXX: Symbol `_sys_errlist' has different size in shared + object, consider re-linking + Why? What should I do? -[Q18] ``The prototypes for `connect', `accept', `getsockopt', - `setsockopt', `getsockname', `getpeername', `send', - `sendto', and `recvfrom' are different in GNU libc than - on any other system I saw. This is a bug, isn't it?'' +3. Source and binary incompatibilities, and what to do about them -[Q19] ``My XXX kernel emulates a floating-point coprocessor for me. - Should I enable --with-fp?'' +3.1. I expect GNU libc to be 100% source code compatible with + the old Linux based GNU libc. Why isn't it like this? +3.2. Why does getlogin() always return NULL on my Linux box? +3.3. Where are the DST_* constants found in on many + systems? +3.4. The prototypes for `connect', `accept', `getsockopt', + `setsockopt', `getsockname', `getpeername', `send', + `sendto', and `recvfrom' are different in GNU libc from + any other system I saw. This is a bug, isn't it? +3.5. On Linux I've got problems with the declarations in Linux + kernel headers. +3.6. I don't include any kernel headers myself but the compiler + still complains about redeclarations of types in the kernel + headers. +3.7. Why don't signals interrupt system calls anymore? -[Q20] ``How can I compile gcc 2.7.2.1 from the gcc source code using - glibc 2.x? +4. Miscellaneous -[Q21] ``On Linux I've got problems with the declarations in Linux - kernel headers.'' +4.1. After I changed configure.in I get `Autoconf version X.Y. + or higher is required for this script'. What can I do? +4.2. When I try to compile code which uses IPv6 headers and + definitions on my Linux 2.x.y system I am in trouble. + Nothing seems to work. -[Q22] ``When I try to compile code which uses IPv6 header and - definitions on my Linux 2.x.y system I am in trouble. - Nothing seems to work.'' + +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q23] ``When compiling GNU libc I get lots of errors saying functions - in glibc are duplicated in libgcc.'' +1. Compiling glibc -[Q24] ``I have set up /etc/nis.conf, and the Linux libc 5 with NYS - works great. But the glibc NIS+ doesn't seem to work.'' - -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q1] ``What systems does the GNU C Library run on?'' +1.1. What systems does the GNU C Library run on? -[A1] {UD} This is difficult to answer. The file `README' lists the -architectures GNU libc is known to run *at some time*. This does not -mean that it still can be compiled and run on them in the moment. +{UD} This is difficult to answer. The file `README' lists the +architectures GNU libc was known to run on *at some time*. This does +not mean that it still can be compiled and run on them now. -The systems glibc is known to work on in the moment and most probably -in the future are: +The systems glibc is known to work on as of this release, and most +probably in the future, are: *-*-gnu GNU Hurd - i[3456]86-*-linux-gnu Linux-2.0 on Intel - m68k-*-linux-gnu Linux-2.0 on Motorola 680x0 - alpha-*-linux-gnu Linux-2.0 on DEC Alpha + i[3456]86-*-linux-gnu Linux-2.x on Intel + m68k-*-linux-gnu Linux-2.x on Motorola 680x0 + alpha-*-linux-gnu Linux-2.x on DEC Alpha -Other Linux platforms are also on the way to be supported but I need -some success reports first. +Ports to other Linux platforms are in development, and may in fact +work already, but no one has sent us success reports for them. +Currently no ports to other operating systems are underway, although a +few people have expressed interest. If you have a system not listed above (or in the `README' file) and you are really interested in porting it, contact - + -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q2] ``What compiler do I need to build GNU libc?'' - -[A2] {UD} It is (almost) impossible to compile GNU C Library using a -different compiler than GNU CC. A lot of extensions of GNU CC are -used to increase the portability and speed. +1.2. What compiler do I need to build GNU libc? -But this does not mean you have to use GNU CC for using the GNU C -Library. In fact you should be able to use the native C compiler -because the success only depends on the binutils: the linker and -archiver. +{UD} You must use GNU CC to compile GNU libc. A lot of extensions of +GNU CC are used to increase portability and speed. -The GNU CC is found like all other GNU packages on +GNU CC is found, like all other GNU packages, on ftp://prep.ai.mit.edu/pub/gnu -or better one of the many mirror sites. +and the many mirror sites. prep is always overloaded, so try to find +a local mirror first. You always should try to use the latest official release. Older -versions might not have all the features GNU libc could use. +versions may not have all the features GNU libc requires. On most +supported platforms, 2.7.2.3 is the earliest version that works at all. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q3] ``When starting `make' I get only errors messages. - What's wrong?'' +1.3. When I try to compile glibc I get only error messages. + What's wrong? -[A3] {UD} You definitely need GNU make to translate GNU libc. No +{UD} You definitely need GNU make to translate GNU libc. No other make program has the needed functionality. -Versions before 3.74 have bugs which prevent correct execution so you -should upgrade to the latest version before starting the compilation. - - -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q4] ``After I changed configure.in I get `Autoconf version X.Y. - or higher is required for this script'. What can I do?'' - -[A4] {UD} You have to get the specified autoconf version (or a later) -from your favourite mirror of prep.ai.mit.edu. +We recommend version GNU make version 3.75. Versions 3.76 and 3.76.1 +have bugs which appear when building big projects like GNU libc. +Versions before 3.74 have bugs and/or are missing features. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q5] ``Do I need a special linker or archiver?'' +1.4. Do I need a special linker or archiver? -[A5] {UD} If your native versions are not too buggy you can probably -work with them. But GNU libc works best with GNU binutils. +{UD} You may be able to use your system linker, but GNU libc works +best with GNU binutils. On systems where the native linker does not support weak symbols you -will not get a really ISO C compliant C library. Generally speaking +will not get a fully ISO C compliant C library. Generally speaking you should use the GNU binutils if they provide at least the same functionality as your system's tools. -Always get the newest release of GNU binutils available. -Older releases are known to have bugs that affect building the GNU C -Library. +Always get the newest release of GNU binutils available. Older +releases are known to have bugs that prevent a successful compilation. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q6] ``Do I need some more things to compile GNU C Library?'' +1.5. Do I need some more things to compile GNU C Library? -[A6] {UD} Yes, there are some more :-). +{UD} Yes, there are some more :-). -* GNU gettext; the GNU libc is internationalized and partly localized. - For bringing the messages for the different languages in the needed - form the tools from the GNU gettext package are necessary. See - ftp://prep.ai.mit.edu/pub/gnu or better any mirror site. +* GNU gettext. This package contains the tools needed to construct + `message catalog' files containing translated versions of system + messages. See ftp://prep.ai.mit.edu/pub/gnu or better any mirror + site. (We distribute compiled message catalogs, but they may not be + updated in patches.) -* lots of diskspace (for i?86-linux this means, e.g., ~70MB). +* Some files depend on special tools. E.g., files ending in .gperf + need a `gperf' program. The GNU version (part of libg++) is known + to work while some vendor versions do not. - You should avoid compiling on a NFS mounted device. This is very - slow. + You should not need these tools unless you change the source files. -* plenty of time (approx 1h for i?86-linux on i586@133 or 2.5h on - i486@66 or 4.5h on i486@33), both for shared and static only). - For Hurd systems times are much higher. +* Some scripts need perl5 - but at the moment those scripts are not + vital for building and installing GNU libc (some data files will not + be created). - For Atari Falcon (Motorola 68030 @ 16 Mhz, 14 Mb memory) James Troup - reports for a full build (shared, static, - and profiled) a compile time of 45h34m. +* When compiling for Linux, the header files of the Linux kernel must + be available to the compiler as and . - If you have some more measurements let me know. +* lots of disk space (~170MB for i?86-linux; more for RISC platforms). -* When compiling for Linux: +* plenty of time. Compiling just the shared and static libraries for + i?86-linux takes approximately 1h on an i586@133, or 2.5h on + i486@66, or 4.5h on i486@33. Multiply this by 1.5 or 2.0 if you + build profiling and/or the highly optimized version as well. For + Hurd systems times are much higher. - + the header files of the Linux kernel must be available in the - search path of the CPP as and . + You should avoid compiling in a NFS mounted filesystem. This is + very slow. -* Some files depend on special tools. E.g., files ending in .gperf - need a `gperf' program. The GNU version (part of libg++) is known - to work while some vendor versions do not. + James Troup reports a compile time of + 45h34m for a full build (shared, static, and profiled) on Atari + Falcon (Motorola 68030 @ 16 Mhz, 14 Mb memory) and Jan Barte + reports 22h48m on Atari TT030 + (Motorola 68030 @ 32 Mhz, 34 Mb memory) - You should not need these tools unless you change the source files. + If you have some more measurements let me know. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q7] ``When I run `nm -u libc.so' on the produced library I still - find unresolved symbols? Can this be ok?'' -[A7] {UD} Yes, this is ok. There can be several kinds of unresolved +1.6. When I run `nm -u libc.so' on the produced library I still + find unresolved symbols. Can this be ok? + +{UD} Yes, this is ok. There can be several kinds of unresolved symbols: -* magic symbols automatically generated by the linker. Names are - often like __start_* and __stop_* +* magic symbols automatically generated by the linker. These have names + like __start_* and __stop_* * symbols starting with _dl_* come from the dynamic linker * symbols resolved by using libgcc.a (__udivdi3, __umoddi3, or similar) -* weak symbols, which need not be resolved at all - (currently fabs among others; this gets resolved if the program - is linked against libm, too.) +* weak symbols, which need not be resolved at all (fabs for example) Generally, you should make sure you find a real program which produces errors while linking before deciding there is a problem. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q8] ``Can I replace the libc on my Linux system with GNU libc?'' - -[A8] {UD} You cannot replace any existing libc for Linux with GNU -libc. There are different versions of C libraries and you can run -libcs with different major version independently. - -For Linux there are today two libc versions: - libc-4 old a.out libc - libc-5 current ELF libc - -GNU libc will have the major number 6 and therefore you can have this -additionally installed. For more information consult documentation for -shared library handling. The Makefiles of GNU libc will automatically -generate the needed symbolic links which the linker will use. - +1.7. What are these `add-ons'? -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q9] ``I expect GNU libc to be 100% source code compatible with - the old Linux based GNU libc. Why isn't it like this?'' +{UD} To avoid complications with export rules or external source +code some optional parts of the libc are distributed as separate +packages (e.g., the crypt package, see question 2.5). -[A9] {DMT,UD} Not every extension in Linux libc's history was well -thought-out. In fact it had a lot of problems with standards compliance -and with cleanliness. With the introduction of a new version number these -errors now can be corrected. Here is a list of the known source code -incompatibilities: +To use these packages as part of GNU libc, just unpack the tarfiles in +the libc source directory and tell the configuration script about them +using the --enable-add-ons option. If you give just --enable-add-ons +configure tries to find all the add-on packages in your source tree. +This may not work. If it doesn't, or if you want to select only a +subset of the add-ons, give a comma-separated list of the add-ons to +enable: -* _GNU_SOURCE: glibc does not automatically define _GNU_SOURCE. Thus, - if a program depends on GNU extensions or some other non-standard - functionality, it is necessary to compile it with C compiler option - -D_GNU_SOURCE, or better, to put `#define _GNU_SOURCE' at the beginning - of your source files, before any C library header files are included. - This difference normally manifests itself in the form of missing - prototypes and/or data type definitions. Thus, if you get such errors, - the first thing you should do is try defining _GNU_SOURCE and see if - that makes the problem go away. + configure --enable-add-ons=crypt,linuxthreads - For more information consult the file `NOTES' part of the GNU C - library sources. +for example. -* reboot(): GNU libc sanitizes the interface of reboot() to be more - compatible with the interface used on other OSes. In particular, - reboot() as implemented in glibc takes just one argument. This argument - corresponds to the third argument of the Linux reboot system call. - That is, a call of the form reboot(a, b, c) needs to be changed into - reboot(c). - Beside this the header defines the needed constants - for the argument. These RB_* constants should be used instead of the - cryptic magic numbers. +Add-ons can add features (including entirely new shared libraries), +override files, provide support for additional architectures, and +just about anything else. The existing makefiles do most of the work; +only some few stub rules must be written to get everything running. -* swapon(): the interface of this function didn't changed, but the - prototype is in a separate header file . For the additional - argument of swapon() you should use the SWAP_* constants from - , which get defined when is included. -* errno: If a program uses variable "errno", then it _must_ include header - file . The old libc often (erroneously) declared this variable - implicitly as a side-effect of including other libc header files. glibc - is careful to avoid such namespace pollution, which, in turn, means that - you really need to include the header files that you depend on. This - difference normally manifests itself in the form of the compiler - complaining about the references of the undeclared symbol "errno". +1.8. My XXX kernel emulates a floating-point coprocessor for me. + Should I enable --with-fp? -* Linux-specific syscalls: All Linux system calls now have appropriate - library wrappers and corresponding declarations in various header files. - This is because the syscall() macro that was traditionally used to - work around missing syscall wrappers are inherently non-portable and - error-prone. The following tables lists all the new syscall stubs, - the header-file declaring their interface and the system call name. +{ZW} An emulated FPU is just as good as a real one, as far as the C +library is concerned. You only need to say --without-fp if your +machine has no way to execute floating-point instructions. - syscall name: wrapper name: declaring header file: - ------------- ------------- ---------------------- - bdflush bdflush - create_module create_module - delete_module delete_module - get_kernel_syms get_kernel_syms - init_module init_module - syslog ksyslog_ctl +People who are interested in squeezing the last drop of performance +out of their machine may wish to avoid the trap overhead, but this is +far more trouble than it's worth: you then have to compile +*everything* this way, including the compiler's internal libraries +(libgcc.a for GNU C), because the calling conventions change. -* lpd: Older versions of lpd depend on a routine called _validuser(). - The library does not provide this function, but instead provides - __ivaliduser() which has a slightly different interfaces. Simply - upgrading to a newer lpd should fix this problem (e.g., the 4.4BSD - lpd is known to be working). -* resolver functions/BIND: like on many other systems the functions of - the resolver library are not included in the libc itself. There is - a separate library libresolv. If you find some symbols starting with - `res_*' undefined simply add -lresolv to your call of the linker. +1.9. When compiling GNU libc I get lots of errors saying functions + in glibc are duplicated in libgcc. -* the `signal' function's behaviour corresponds to the BSD semantic and - not the SysV semantic as it was in libc-5. The interface on all GNU - systems shall be the same and BSD is the semantic of choice. To use - the SysV behaviour simply use `sysv_signal'. The major difference is - that the SysV implementation sets the SA_ONESHOT flag and so the handler - gets removed after the first call. +{EY} This is *exactly* the same problem that I was having. The +problem was due to the fact that configure didn't correctly detect +that the linker flag --no-whole-archive was supported in my linker. +In my case it was because I had run ./configure with bogus CFLAGS, and +the test failed. +One thing that is particularly annoying about this problem is that +once this is misdetected, running configure again won't fix it unless +you first delete config.cache. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q10] ``Why does getlogin() always return NULL on my Linux box?'' +{UD} Starting with glibc-2.0.3 there should be a better test to avoid +some problems of this kind. The setting of CFLAGS is checked at the +very beginning and if it is not usable `configure' will bark. -[A10] {UD} The GNU C library has a format for the UTMP and WTMP file -which differs from what your system currently has. It was extended to -fulfill the needs of the next years when IPv6 is introduced. So the -record size is different, fields might have a different position and -so reading the files written by functions from the one library cannot -be read by functions from the other library. Sorry, but this is what -a major release is for. It's better to have a cut now than having no -means to support the new techniques later. +1.10. What's the problem with configure --enable-omitfp? -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q11] ``Where are the DST_* constants found in on many - systems?'' +{AJ} When --enable-omitfp is set the libraries are built without frame +pointers. Some compilers produce buggy code for this model and +therefore we don't advise using it at the moment. -[A11] {UD} These constants come from the old BSD days and are not used -today anymore (even the Linux based glibc does not implement the handling -although the constants are defined). +If you use --enable-omitfp, you're on your own. If you encounter +problems with a library that was build this way, we advise you to +rebuild the library without --enable-omitfp. If the problem vanishes +consider tracking the problem down and report it as compiler failure. -Instead GNU libc contains the zone database handling and compatibility -code for POSIX TZ environment variable handling. +Since a library build with --enable-omitfp is undebuggable on most +systems, debuggable libraries are also built - you can use it by +appending "_g" to the library names. +The compilation of these extra libraries and the compiler optimizations +slow down the build process and need more disk space. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q12] ``The `gencat' utility cannot process the input which are - successfully used on my Linux libc based system. Why?'' + +. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -[A12] {UD} Unlike the author of the `gencat' program which is distributed -with Linux libc I have read the underlying standards before writing the -code. It is completely compatible with the specification given in -X/Open Portability Guide. +2. Installation and configuration issues -To ease the transition from the Linux version some of the non-standard -features are also present in the `gencat' program of GNU libc. This -mainly includes the use of symbols for the message number and the automatic -generation of header files which contain the needed #defines to map the -symbols to integers. +2.1. Can I replace the libc on my Linux system with GNU libc? -Here is a simple SED script to convert at least some Linux specific -catalog files to the XPG4 form: +{UD} You cannot replace any existing libc for Linux with GNU +libc. It is binary incompatible and therefore has a different major +version. You can, however, install it alongside your existing libc. ------------------------------------------------------------------------ -# Change catalog source in Linux specific format to standard XPG format. -# Ulrich Drepper , 1996. -# -/^\$ #/ { - h - s/\$ #\([^ ]*\).*/\1/ - x - s/\$ #[^ ]* *\(.*\)/\$ \1/ -} +For Linux there are three major libc versions: + libc-4 a.out libc + libc-5 original ELF libc + libc-6 GNU libc -/^# / { - s/^# \(.*\)/\1/ - G - s/\(.*\)\n\(.*\)/\2 \1/ -} ------------------------------------------------------------------------ +You can have any combination of these three installed. For more +information consult documentation for shared library handling. The +Makefiles of GNU libc will automatically generate the needed symbolic +links which the linker will use. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q13] ``How do I configure GNU libc so that the essential libraries - like libc.so go into /lib and the other into /usr/lib?'' +2.2. How do I configure GNU libc so that the essential libraries + like libc.so go into /lib and the other into /usr/lib? -[A13] {UD,AJ} Like all other GNU packages GNU libc is configured to -use a base directory and install all files relative to this. If you -intend to really use GNU libc on your system this base directory is -/usr. I.e., you run - configure --prefix=/usr +{UD,AJ} Like all other GNU packages GNU libc is designed to use a base +directory and install all files relative to this. The default is +/usr/local, because this is safe (it will not damage the system if +installed there). If you wish to install GNU libc as the primary C +library on your system, set the base directory to /usr (i.e. run +configure --prefix=/usr ). Note that this can damage +your system; see question 2.3 for details. Some systems like Linux have a filesystem standard which makes a difference between essential libraries and others. Essential libraries are placed in /lib because this directory is required to be located on the same disk partition as /. The /usr subtree might be -found on another partition/disk. +found on another partition/disk. If you configure for Linux with +--prefix=/usr, then this will be done automatically. -To install the essential libraries which come with GNU libc in /lib -one must explicitly tell this (except on Linux, see below). Autoconf -has no option for this so you have to use the file where all user -supplied additional information should go in: `configparms' (see the -`INSTALL' file). Therefore the `configparms' file should contain: +To install the essential libraries which come with GNU libc in /lib on +systems other than Linux one must explicitly request it. Autoconf has +no option for this so you have to use a `configparms' file (see the +`INSTALL' file for details). It should contain: slibdir=/lib sysconfdir=/etc The first line specifies the directory for the essential libraries, -the second line the directory for file which are by tradition placed -in a directory named /etc. +the second line the directory for system configuration files. -No rule without an exception: If you configure for Linux with ---prefix=/usr, then slibdir and sysconfdir will automatically be -defined as stated above. +2.3. How should I avoid damaging my system when I install GNU libc? -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q14] ``When linking with the new libc I get unresolved symbols - `crypt' and `setkey'. Why aren't these functions in the - libc anymore?'' +{ZW} If you wish to be cautious, do not configure with --prefix=/usr. +If you don't specify a prefix, glibc will be installed in /usr/local, +where it will probably not break anything. (If you wish to be +certain, set the prefix to something like /usr/local/glibc2 which is +not used for anything.) -[A14] {UD} Remember the US restrictions of exporting cryptographic -programs and source code. Until this law gets abolished we cannot -ship the cryptographic function together with the libc. +The dangers when installing glibc in /usr are twofold: -But of course we provide the code and there is an very easy way to use -this code. First get the extra package. People in the US way get it -from the same place they got the GNU libc from. People outside the US -should get the code from ftp://ftp.ifi.uio.no/pub/gnu, or another -archive site outside the USA. The README explains how to install the -sources. +* glibc will overwrite the headers in /usr/include. Other C libraries + install a different but overlapping set of headers there, so the + effect will probably be that you can't compile anything. You need to + rename /usr/include out of the way first. (Do not throw it away; you + will then lose the ability to compile programs against your old libc.) -If you already have the crypt code on your system the reason for the -failure is probably that you failed to link with -lcrypt. The crypto -functions are in a separate library to make it possible to export GNU -libc binaries from the US. +* None of your old libraries, static or shared, can be used with a + different C library major version. For shared libraries this is not a + problem, because the filenames are different and the dynamic linker + will enforce the restriction. But static libraries have no version + information. You have to evacuate all the static libraries in + /usr/lib to a safe location. +The situation is rather similar to the move from a.out to ELF which +long-time Linux users will remember. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q15] ``What are these `add-ons'?'' -[A15] {UD} To avoid complications with export rules or external source -code some optional parts of the libc are distributed as separate -packages (e.g., the crypt package, see Q14). +2.4. Do I need to use GNU CC to compile programs that will use the + GNU C Library? -To ease the use as part of GNU libc the installer just has to unpack -the package and tell the configuration script about these additional -subdirectories using the --enable-add-ons option. When you add the -crypt add-on you just have to use +{ZW} In theory, no; the linker does not care, and the headers are +supposed to check for GNU CC before using its extensions to the C +language. - configure --enable-add-ons=crypt,XXX ... +However, there are currently no ports of glibc to systems where +another compiler is the default, so no one has tested the headers +extensively against another compiler. You may therefore encounter +difficulties. If you do, please report them as bugs. -where XXX are possible other add-ons and ... means the rest of the -normal option list. +Also, in several places GNU extensions provide large benefits in code +quality. For example, the library has hand-optimized, inline assembly +versions of some functions. These can only be used with GCC. -You can use add-ons also to overwrite some files in glibc. The add-on -system dependent subdirs are search first. It is also possible to add -banner files (use a file named `Banner') or create shared libraries. -Using add-ons has the big advantage that the makefiles of the GNU libc -can be used. Only some few stub rules must be written to get -everything running. Even handling of architecture dependent -compilation is provided. The GNU libc's sysdeps/ directory shows how -to use this feature. +2.5. When linking with the new libc I get unresolved symbols + `crypt' and `setkey'. Why aren't these functions in the + libc anymore? +{UD} The US places restrictions on exporting cryptographic programs +and source code. Until this law gets abolished we cannot ship the +cryptographic functions together with glibc. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q16] ``When I use GNU libc on my Linux system by linking against - to libc.so which comes with glibc all I get is a core dump.'' +The functions are available, as an add-on (see question 1.7). People in the +US may get it from the same place they got GNU libc from. People +outside the US should get the code from ftp://ftp.ifi.uio.no/pub/gnu, +or another archive site outside the USA. The README explains how to +install the sources. -[A16] {UD} It is not enough to simply link against the GNU libc -library itself. The GNU C library comes with its own dynamic linker -which really conforms to the ELF API standard. This dynamic linker -must be used. +If you already have the crypt code on your system the reason for the +failure is probably that you did not link with -lcrypt. The crypto +functions are in a separate library to make it possible to export GNU +libc binaries from the US. -Normally this is done by the compiler. The gcc will use - -dynamic-linker /lib/ld-linux.so.1 +2.6. When I use GNU libc on my Linux system by linking against + the libc.so which comes with glibc all I get is a core dump. -unless the user specifies her/himself a -dynamic-linker argument. But -this is not the correct name for the GNU dynamic linker. The correct -name is /lib/ld.so.1 which is the name specified in the SVr4 ABi. +{UD} On Linux, gcc sets the dynamic linker to /lib/ld-linux.so.1 +unless the user specifies a -dynamic-linker argument. This is the +name of the libc5 dynamic linker, which does not work with glibc. + +For casual use of GNU libc you can just specify + -dynamic-linker=/lib/ld-linux.so.2 + +which is the glibc dynamic linker, on Linux systems. On other systems +the name is /lib/ld.so.1. To change your environment to use GNU libc for compiling you need to change the `specs' file of your gcc. This file is normally found at @@ -494,25 +438,21 @@ change the `specs' file of your gcc. Th In this file you have to change a few things: -- change `ld-linux.so.1' to `ld.so.1' (or to ld-linux.so.2, see below) +- change `ld-linux.so.1' to `ld-linux.so.2' - remove all expression `%{...:-lgmon}'; there is no libgmon in glibc +- fix a minor bug by changing %{pipe:-} to %| -Things are getting a bit more complicated if you have GNU libc -installed in some other place than /usr, i.e., if you do not want to -use it instead of the old libc. In this case the needed startup files -and libraries are not found in the regular places. So the specs file -must tell the compiler and linker exactly what to use. Here is for -example the gcc-2.7.2 specs file when GNU libc is installed at -/usr: +Here is what the gcc-2.7.2 specs file should look like when GNU libc +is installed at /usr: ----------------------------------------------------------------------- *asm: %{V} %{v:%{!V:-V}} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} *asm_final: -%{pipe:-} +%| *cpp: %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{!m386:-D__i486__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT} @@ -536,7 +476,7 @@ example the gcc-2.7.2 specs file when GN -lgcc *startfile: -%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:%{profile:gcrt1.o%s} %{!profile:crt1.o%s}}}} crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s} +%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:%{profile:gcrt1.o%s} %{!profile:crt1.o%s}}}} crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s} *switches_need_spaces: @@ -555,27 +495,22 @@ example the gcc-2.7.2 specs file when GN ----------------------------------------------------------------------- -The above is currently correct for ix86/Linux. Because of -compatibility issues on this platform the dynamic linker must have -a different name: ld-linux.so.2. So you have to replace - - %{!dynamic-linker:-dynamic-linker=/home/gnu/lib/ld-linux.so.2} -by - %{!dynamic-linker:-dynamic-linker=/home/gnu/lib/ld.so.1} - -in the above example specs file to make it work for other systems. +Things get a bit more complicated if you have GNU libc installed in +some other place than /usr, i.e., if you do not want to use it instead +of the old libc. In this case the needed startup files and libraries +are not found in the regular places. So the specs file must tell the +compiler and linker exactly what to use. Version 2.7.2.3 does and future versions of GCC will automatically provide the correct specs. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q17] ``Looking through the shared libc file I haven't found the - functions `stat', `lstat', `fstat', and `mknod' and while - linking on my Linux system I get error messages. How is - this supposed to work?'' +2.7. Looking through the shared libc file I haven't found the + functions `stat', `lstat', `fstat', and `mknod' and while + linking on my Linux system I get error messages. How is + this supposed to work? -[A17] {RM} Believe it or not, stat and lstat (and fstat, and mknod) +{RM} Believe it or not, stat and lstat (and fstat, and mknod) are supposed to be undefined references in libc.so.6! Your problem is probably a missing or incorrect /usr/lib/libc.so file; note that this is a small text file now, not a symlink to libc.so.6. It should look @@ -588,112 +523,333 @@ or in ix86/Linux and alpha/Linux: GROUP ( libc.so.6 ld-linux.so.2 libc.a ) -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q18] ``The prototypes for `connect', `accept', `getsockopt', - `setsockopt', `getsockname', `getpeername', `send', - `sendto', and `recvfrom' are different in GNU libc from - any other system I saw. This is a bug, isn't it?'' +2.8. How can I compile gcc 2.7.2.1 from the gcc source code using + glibc 2.x? -[A18] {UD} No, this is no bug. This version of the GNU libc already -follows the Single Unix specifications (and I think the POSIX.1g -draft which adopted the solution). The type for parameter describing -a size is now `socklen_t', a new type. +{AJ} There's only correct support for glibc 2.0.x in gcc 2.7.2.3 +or later. You should get at least gcc 2.7.2.3. All previous versions +had problems with glibc support. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q19] ``My XXX kernel emulates a floating-point coprocessor for me. - Should I enable --with-fp?'' +2.9. The `gencat' utility cannot process the catalog sources which + were used on my Linux libc5 based system. Why? -[A19] {UD} As `configure --help' shows the default value is `yes' and -this should not be changed unless the FPU instructions would be -invalid. I.e., an emulated FPU is for the libc as good as a real one. +{UD} The `gencat' utility provided with glibc complies to the XPG +standard. The older Linux version did not obey the standard, so they +are not compatible. +To ease the transition from the Linux version some of the non-standard +features are also present in the `gencat' program of GNU libc. This +mainly includes the use of symbols for the message number and the automatic +generation of header files which contain the needed #defines to map the +symbols to integers. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q20] ``How can I compile gcc 2.7.2.1 from the gcc source code using - glibc 2.x? +Here is a simple SED script to convert at least some Linux specific +catalog files to the XPG4 form: -[A20] {AJ} There's only correct support for glibc 2.0.x in gcc 2.7.2.3 -or later. You should get at least gcc 2.7.2.3. All previous versions -had problems with glibc support. +----------------------------------------------------------------------- +# Change catalog source in Linux specific format to standard XPG format. +# Ulrich Drepper , 1996. +# +/^\$ #/ { + h + s/\$ #\([^ ]*\).*/\1/ + x + s/\$ #[^ ]* *\(.*\)/\$ \1/ +} +/^# / { + s/^# \(.*\)/\1/ + G + s/\(.*\)\n\(.*\)/\2 \1/ +} +----------------------------------------------------------------------- -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q21] ``On Linux I've got problems with the declarations in Linux - kernel headers.'' -[A21] {UD,AJ} On Linux, the use of kernel headers is reduced to a very -minimum. Besides giving Linus the possibility to change the headers -more freely it has another reason: user level programs now do not -always use the same types like the kernel does. +2.10. I have set up /etc/nis.conf, and the Linux libc 5 with NYS + works great. But the glibc NIS+ doesn't seem to work. + +{TK} The glibc NIS+ implementation uses a /var/nis/NIS_COLD_START +file for storing information about the NIS+ server and their public +keys, because the nis.conf file does not contain all the necessary +information. You have to copy a NIS_COLD_START file from a Solaris +client (the NIS_COLD_START file is byte order independent) or generate +it with nisinit from the nis-tools package (available at +http://www-vt.uni-paderborn.de/~kukuk/linux/nisplus.html). + + +2.11. After installing glibc name resolving doesn't work properly. + +{AJ} You probably should read the manual section describing +nsswitch.conf (just type `info libc "NSS Configuration File"'). +The NSS configuration file is usually the culprit. -I.e., the libc abstracts the use of types. E.g., the sigset_t type is -in the kernel 32 or 64 bits wide. In glibc it is 1024 bits wide, in -preparation for future development. The reasons are obvious: we don't -want to have a new major release when the Linux kernel gets these -functionality. Consult the headers for more information about the changes. + +2.12. I have /usr/include/net and /usr/include/scsi as symlinks + into my Linux source tree. Is that wrong? + +{PB} This was necessary for libc5, but is not correct when using +glibc. Including the kernel header files directly in user programs +usually does not work (see question 3.5). glibc provides its own +and header files to replace them, and you may have to remove +any symlink that you have in place before you install glibc. However, +/usr/include/asm and /usr/include/linux should remain as they were. + + +2.13. Programs like `logname', `top', `uptime' `users', `w' and + `who', show incorrect information about the (number of) + users on my system. Why? + +{MK} See question 3.2. + + +2.14. When I start the program XXX after upgrading the library + I get + XXX: Symbol `_sys_errlist' has different size in shared + object, consider re-linking + Why? What should I do? + +{UD} As the message says, relink the binary. The problem is that +a few symbols from the library can change in size and there is no way +to avoid this. _sys_errlist is a good example. Occasionally there are +new error numbers added to the kernel and this must be reflected at user +level, breaking programs that refer to them directly. + +Such symbols should normally not be used at all. There are mechanisms +to avoid using them. In the case of _sys_errlist, there is the +strerror() function which should _always_ be used instead. So the +correct fix is to rewrite that part of the application. + +In some situations (especially when testing a new library release) it +might be possible that a symbol changed size when that should not have +happened. So in case of doubt report such a warning message as a +problem. + + +. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + +3. Source and binary incompatibilities, and what to do about them + +3.1. I expect GNU libc to be 100% source code compatible with + the old Linux based GNU libc. Why isn't it like this? + +{DMT,UD} Not every extension in Linux libc's history was well +thought-out. In fact it had a lot of problems with standards compliance +and with cleanliness. With the introduction of a new version number these +errors can now be corrected. Here is a list of the known source code +incompatibilities: + +* _GNU_SOURCE: glibc does not make the GNU extensions available + automatically. If a program depends on GNU extensions or some + other non-standard functionality, it is necessary to compile it + with the C compiler option -D_GNU_SOURCE, or better, to put + `#define _GNU_SOURCE' at the beginning of your source files, before + any C library header files are included. This difference normally + manifests itself in the form of missing prototypes and/or data type + definitions. Thus, if you get such errors, the first thing you + should do is try defining _GNU_SOURCE and see if that makes the + problem go away. + + For more information consult the file `NOTES' in the GNU C library + sources. + +* reboot(): GNU libc sanitizes the interface of reboot() to be more + compatible with the interface used on other OSes. reboot() as + implemented in glibc takes just one argument. This argument + corresponds to the third argument of the Linux reboot system call. + That is, a call of the form reboot(a, b, c) needs to be changed into + reboot(c). Beside this the header defines the needed + constants for the argument. These RB_* constants should be used + instead of the cryptic magic numbers. + +* swapon(): the interface of this function didn't change, but the + prototype is in a separate header file . This header + file also provides the SWAP_* constants defined by ; + you should use them for the second argument to swapon(). + +* errno: If a program uses the variable "errno", then it _must_ + include . The old libc often (erroneously) declared this + variable implicitly as a side-effect of including other libc header + files. glibc is careful to avoid such namespace pollution, which, + in turn, means that you really need to include the header files that + you depend on. This difference normally manifests itself in the + form of the compiler complaining about references to an undeclared + symbol "errno". + +* Linux-specific syscalls: All Linux system calls now have appropriate + library wrappers and corresponding declarations in various header files. + This is because the syscall() macro that was traditionally used to + work around missing syscall wrappers are inherently non-portable and + error-prone. The following table lists all the new syscall stubs, + the header-file declaring their interface and the system call name. + + syscall name: wrapper name: declaring header file: + ------------- ------------- ---------------------- + bdflush bdflush + syslog ksyslog_ctl + +* lpd: Older versions of lpd depend on a routine called _validuser(). + The library does not provide this function, but instead provides + __ivaliduser() which has a slightly different interface. Simply + upgrading to a newer lpd should fix this problem (e.g., the 4.4BSD + lpd is known to be working). + +* resolver functions/BIND: like on many other systems the functions of + the resolver library are not included in libc itself. There is a + separate library libresolv. If you get undefined symbol errors for + symbols starting with `res_*' simply add -lresolv to your linker + command line. + +* the `signal' function's behavior corresponds to the BSD semantic and + not the SysV semantic as it was in libc-5. The interface on all GNU + systems shall be the same and BSD is the semantic of choice. To use + the SysV behavior simply use `sysv_signal', or define _XOPEN_SOURCE. + See question 3.7 for details. + + +3.2. Why does getlogin() always return NULL on my Linux box? + +{UD} The GNU C library has a format for the UTMP and WTMP file which +differs from what your system currently has. It was extended to +fulfill the needs of the next years when IPv6 is introduced. The +record size is different and some fields have different positions. +The files written by functions from the one library cannot be read by +functions from the other library. Sorry, but this is what a major +release is for. It's better to have a cut now than having no means to +support the new techniques later. + + +3.3. Where are the DST_* constants found in on many + systems? + +{UD} These constants come from the old BSD days and are not used +anymore (libc5 does not actually implement the handling although the +constants are defined). + +Instead GNU libc contains zone database support and compatibility code +for POSIX TZ environment variable handling. + + +3.4. The prototypes for `connect', `accept', `getsockopt', + `setsockopt', `getsockname', `getpeername', `send', + `sendto', and `recvfrom' are different in GNU libc from + any other system I saw. This is a bug, isn't it? + +{UD} No, this is no bug. This version of GNU libc already follows the +new Single Unix specifications (and I think the POSIX.1g draft which +adopted the solution). The type for a parameter describing a size is +now `socklen_t', a new type. + + +3.5. On Linux I've got problems with the declarations in Linux + kernel headers. + +{UD,AJ} On Linux, the use of kernel headers is reduced to the minimum. +This gives Linus the ability to change the headers more freely. Also, +user programs are now insulated from changes in the size of kernel +data structures. + +For example, the sigset_t type is 32 or 64 bits wide in the kernel. +In glibc it is 1024 bits wide. This guarantees that when the kernel +gets a bigger sigset_t (for POSIX.1e realtime support, say) user +programs will not have to be recompiled. Consult the header files for +more information about the changes. Therefore you shouldn't include Linux kernel header files directly if glibc has defined a replacement. Otherwise you might get undefined results because of type conflicts. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q22] ``When I try to compile code which uses IPv6 header and - definitions on my Linux 2.x.y system I am in trouble. - Nothing seems to work.'' +3.6. I don't include any kernel headers myself but the compiler + still complains about redeclarations of types in the kernel + headers. -[A22] {UD} The problem is that the IPv6 development still has not reached -a point where it is stable. There are still lots of incompatible changes -made and the libc headers have to follow. +{UD} The kernel headers before Linux 2.1.61 and 2.0.32 don't work +correctly with glibc. Compiling C programs is possible in most cases +but C++ programs have (due to the change of the name lookups for +`struct's) problems. One prominent example is `struct fd_set'. -Currently (as of 970401) according to Philip Blundell -the required kernel version is 2.1.30. +There might be some problems left but 2.1.61/2.0.32 fix most of the +known ones. See the BUGS file for other known problems. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q23] ``When compiling GNU libc I get lots of errors saying functions - in glibc are duplicated in libgcc.'' +3.7. Why don't signals interrupt system calls anymore? -[A23] {EY} This is *exactly* the same problem that I was having. The -problem was due to the fact that the autoconfigure didn't correctly -detect that linker flag --no-whole-archive was supported in my linker. -In my case it was because I had run ./configure with bogus CFLAGS, and -the test failed. +{ZW} By default GNU libc uses the BSD semantics for signal(), +unlike Linux libc 5 which used System V semantics. This is partially +for compatibility with other systems and partially because the BSD +semantics tend to make programming with signals easier. -One thing that is particularly annoying about this problem is that -once this is misdetected, running configure again won't fix it unless -you first delete config.cache. +There are three differences: -{UD} Starting with glibc-2.0.3 there should be a better test to avoid -some problems of this kind. The setting of CFLAGS is checked at the -very beginning and if it is not usable `configure' will bark. +* BSD-style signals that occur in the middle of a system call do not + affect the system call; System V signals cause the system call to + fail and set errno to EINTR. +* BSD signal handlers remain installed once triggered. System V signal + handlers work only once, so one must reinstall them each time. +* A BSD signal is blocked during the execution of its handler. In other + words, a handler for SIGCHLD (for example) does not need to worry about + being interrupted by another SIGCHLD. It may, however, be interrupted + by other signals. -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -[Q24] ``I have set up /etc/nis.conf, and the Linux libc 5 with NYS - works great. But the glibc NIS+ doesn't seem to work.'' +There is general consensus that for `casual' programming with signals, the +BSD semantics are preferable. You don't need to worry about system calls +returning EINTR, and you don't need to worry about the race conditions +associated with one-shot signal handlers. -[A24] The glibc NIS+ implementation uses a /var/nis/NIS_COLD_START -file for storing information about the NIS+ server and their public -keys, because the nis.conf file do not contain all necessary -information. You have to copy a NIS_COLD_START file from a Solaris -client (the NIS_COLD_START file is byte order independend) or generate -it new with nisinit from the nis-tools (look at -http://www-vt.uni-paderborn.de/~kukuk/linux/nisplus.html). +If you are porting an old program that relies on the old semantics, you can +quickly fix the problem by changing signal() to sysv_signal() throughout. +Alternatively, define _XOPEN_SOURCE before including . +For new programs, the sigaction() function allows you to specify precisely +how you want your signals to behave. All three differences listed above are +individually switchable on a per-signal basis with this function. + +If all you want is for one specific signal to cause system calls to fail +and return EINTR (for example, to implement a timeout) you can do this with +siginterrupt(). -~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ +. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + +4. Miscellaneous + +4.1. After I changed configure.in I get `Autoconf version X.Y. + or higher is required for this script'. What can I do? + +{UD} You have to get the specified autoconf version (or a later one) +from your favorite mirror of prep.ai.mit.edu. + + +4.2. When I try to compile code which uses IPv6 headers and + definitions on my Linux 2.x.y system I am in trouble. + Nothing seems to work. + +{UD} The problem is that IPv6 development still has not reached a +point where the headers are stable. There are still lots of +incompatible changes made and the libc headers have to follow. + +Also, make sure you have a suitably recent kernel. As of the 970401 +snapshot, according to Philip Blundell , the +required kernel version is at least 2.1.30. + + +~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ + Answers were given by: {UD} Ulrich Drepper, {DMT} David Mosberger-Tang, -{RM} Roland McGrath, -{HJL} H.J. Lu, +{RM} Roland McGrath, {AJ} Andreas Jaeger, {EY} Eric Youngdale, +{PB} Phil Blundell, +{MK} Mark Kettenis, +{ZW} Zack Weinberg, +{TK} Thorsten Kukuk, Local Variables: - mode:text + mode:outline + outline-regexp:"\\?" End: diff -durpN glibc-2.0.5c/Makefile glibc-2.0.6/Makefile --- glibc-2.0.5c/Makefile Wed Aug 6 08:14:16 1997 +++ glibc-2.0.6/Makefile Sun Dec 28 16:52:35 1997 @@ -54,7 +54,7 @@ endif subdirs = csu assert ctype db locale intl catgets math setjmp signal stdlib \ stdio-common $(stdio) malloc string wcsmbs time dirent grp pwd \ posix io termios resource misc login socket sysvipc gmon gnulib \ - wctype manual shadow md5-crypt nss $(sysdep-subdirs) po \ + wctype manual shadow md5-crypt nss $(sysdep-subdirs) po debian \ $(add-ons) elf export subdirs := $(subdirs) # Benign, useless in GNU make before 3.63. diff -durpN glibc-2.0.5c/Makerules glibc-2.0.6/Makerules --- glibc-2.0.5c/Makerules Wed Aug 6 08:13:02 1997 +++ glibc-2.0.6/Makerules Thu Dec 4 23:15:18 1997 @@ -278,9 +278,9 @@ endif # GCC can grok options after the file name, and it looks nicer that way. compile.c = $(CC) $< -c $(CFLAGS) $(CPPFLAGS) -compile.S = $(CC) $< -c $(CPPFLAGS) -DASSEMBLER $(asm-CPPFLAGS) -COMPILE.S = $(CC) -c $(CPPFLAGS) -DASSEMBLER $(asm-CPPFLAGS) -COMPILE.s = $(filter-out -pipe,$(CC)) -c $(ASFLAGS) +compile.S = $(CC) $< -c $(CPPFLAGS) -DASSEMBLER $(asm-CPPFLAGS) $(ASFLAGS-$(suffix $@)) +COMPILE.S = $(CC) -c $(CPPFLAGS) -DASSEMBLER $(asm-CPPFLAGS) $(ASFLAGS-$(suffix $@)) +COMPILE.s = $(filter-out -pipe,$(CC)) -c $(ASFLAGS) $(ASFLAGS-$(suffix $@)) # We need this for the output to go in the right place. It will default to # empty if make was configured to work with a cc that can't grok -c and -o diff -durpN glibc-2.0.5c/NEWS glibc-2.0.6/NEWS --- glibc-2.0.5c/NEWS Thu Aug 7 20:34:15 1997 +++ glibc-2.0.6/NEWS Fri Nov 14 20:20:50 1997 @@ -1,11 +1,15 @@ -GNU C Library NEWS -- history of user-visible changes. 1997-03-18 +GNU C Library NEWS -- history of user-visible changes. 1997-11-15 Copyright (C) 1992, 93, 94, 95, 96, 97 Free Software Foundation, Inc. See the end for copying conditions. Please send GNU C library bug reports using the `glibcbug' script to -. Questions and suggestions should be send to +. Questions and suggestions should be send to . + +Version 2.0.6 + +* more bug fixes Version 2.0.5 diff -durpN glibc-2.0.5c/README glibc-2.0.6/README --- glibc-2.0.5c/README Tue Aug 5 18:08:04 1997 +++ glibc-2.0.6/README Sun Dec 28 15:23:28 1997 @@ -1,4 +1,4 @@ -This directory contains the version 2.0.5 test release of the GNU C Library. +This directory contains the version 2.0.6 test release of the GNU C Library. Many bugs have been fixed since the last release. Some bugs surely remain. @@ -40,14 +40,14 @@ Since no one has volunteered to test and these are not supported at the moment. It's expected that these don't work anymore. Porting the library is not hard. If you are interested in doing a port, please contact the glibc maintainers by sending -electronic mail to . +electronic mail to . The GNU C library now includes Michael Glad's Ultra Fast Crypt, which provides the Unix `crypt' function, plus some other entry points. Because of the United States export restriction on DES implementations, we are distributing this code separately from the rest of the C library. There is an extra distribution tar file just for crypt; it is -called `glibc-crypt-2.0.5.tar.gz'. You can just unpack the crypt +called `glibc-crypt-2.0.6.tar.gz'. You can just unpack the crypt distribution along with the rest of the C library and build; you can also build the library without getting crypt. Users outside the USA can get the crypt distribution via anonymous FTP from ftp.ifi.uio.no @@ -80,9 +80,9 @@ in the GNU C library, explaining how you facilities you want it to make available. We prefer to get bug reports sent using the `glibcbug' shell script which -is install together with the rest of the GNU libc to . +is install together with the rest of the GNU libc to . Simply run this shell script and fill in the information. Nevertheless -you can still send bug reports to as normal +you can still send bug reports to as normal electronic mails. The GNU C Library is free software. See the file COPYING.LIB for copying diff -durpN glibc-2.0.5c/catgets/catgets.c glibc-2.0.6/catgets/catgets.c --- glibc-2.0.5c/catgets/catgets.c Sun Dec 28 20:10:46 1997 +++ glibc-2.0.6/catgets/catgets.c Sat Sep 20 10:42:18 1997 @@ -94,8 +94,9 @@ catopen (const char *cat_name, int flag) nlspath = tmp; } else - result->nlspath = __strdup (NLSPATH); + nlspath = NLSPATH; + result->nlspath = __strdup (nlspath); if (result->nlspath == NULL) { free ((void *) result->cat_name); diff -durpN glibc-2.0.5c/config.h.in glibc-2.0.6/config.h.in --- glibc-2.0.5c/config.h.in Tue Jan 21 01:08:34 1997 +++ glibc-2.0.6/config.h.in Thu Dec 4 23:15:45 1997 @@ -43,6 +43,9 @@ directive. */ #undef HAVE_ASM_POPSECTION_DIRECTIVE +/* Define to the prefix Alpha/ELF GCC emits before ..ng symbols. */ +#undef ASM_ALPHA_NG_SYMBOL_PREFIX + /* */ diff -durpN glibc-2.0.5c/config.sub glibc-2.0.6/config.sub --- glibc-2.0.5c/config.sub Tue Dec 31 15:54:33 1996 +++ glibc-2.0.6/config.sub Fri Nov 21 21:57:33 1997 @@ -1,6 +1,6 @@ #! /bin/sh # Configuration validation subroutine script, version 1.1. -# Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. +# Copyright (C) 1991, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc. # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. @@ -149,13 +149,14 @@ esac case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. - tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \ - | arme[lb] | pyramid \ + tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ + | arme[lb] | pyramid | mn10200 | mn10300 \ | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ - | alpha | we32k | ns16k | clipper | i370 | sh \ - | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \ - | pdp11 | mips64el | mips64orion | mips64orionel \ - | sparc | sparclet | sparclite | sparc64) + | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \ + | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \ + | mips64 | mipsel | mips64el | mips64orion | mips64orionel \ + | mipstx39 | mipstx39el \ + | sparc | sparclet | sparclite | sparc64 | v850) basic_machine=$basic_machine-unknown ;; # We use `pc' rather than `unknown' @@ -170,14 +171,18 @@ case $basic_machine in exit 1 ;; # Recognize the basic CPU types with company name. - vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \ - | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ - | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ - | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ - | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ - | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ - | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \ - | mips64el-* | mips64orion-* | mips64orionel-* | f301-*) + vax-* | tahoe-* | i[3456]86-* | i860-* | m32r-* | m68k-* | m68000-* \ + | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ + | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \ + | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \ + | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \ + | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \ + | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ + | sparc64-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* \ + | mipstx39-* | mipstx39el-* \ + | f301-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. @@ -204,9 +209,9 @@ case $basic_machine in amiga | amiga-*) basic_machine=m68k-cbm ;; - amigados) + amigaos | amigados) basic_machine=m68k-cbm - os=-amigados + os=-amigaos ;; amigaunix | amix) basic_machine=m68k-cbm @@ -391,11 +396,11 @@ case $basic_machine in ;; mipsel*-linux*) basic_machine=mipsel-unknown - os=-linux + os=-linux-gnu ;; mips*-linux*) basic_machine=mips-unknown - os=-linux + os=-linux-gnu ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` @@ -566,6 +571,12 @@ case $basic_machine in basic_machine=i386-sequent os=-dynix ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; tower | tower-32) basic_machine=m68k-ncr ;; @@ -585,7 +596,7 @@ case $basic_machine in basic_machine=vax-dec os=-vms ;; - vpp*|vx|vx-*) + vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) @@ -615,7 +626,7 @@ case $basic_machine in # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. mips) - if [ x$os = x-linux ]; then + if [ x$os = x-linux-gnu ]; then basic_machine=mips-unknown else basic_machine=mips-mips @@ -680,9 +691,12 @@ case $os in -solaris) os=-solaris2 ;; - -unixware* | svr4*) + -svr4*) os=-sysv4 ;; + -unixware*) + os=-sysv4.2uw + ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; @@ -693,7 +707,8 @@ case $os in -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ @@ -701,7 +716,7 @@ case $os in | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -linux-gnu* | -uxpv*) + | -mingw32* | -linux-gnu* | -uxpv*) # Remember, each alternative MUST END IN *, to match a version number. ;; -linux*) @@ -827,7 +842,7 @@ case $basic_machine in os=-sysv ;; *-cbm) - os=-amigados + os=-amigaos ;; *-dg) os=-dgux diff -durpN glibc-2.0.5c/configure glibc-2.0.6/configure --- glibc-2.0.5c/configure Mon Aug 4 21:08:42 1997 +++ glibc-2.0.6/configure Sun Dec 28 11:31:08 1997 @@ -42,7 +42,8 @@ ac_help="$ac_help ac_help="$ac_help --enable-omitfp build undebuggable optimized library [default=no]" ac_help="$ac_help - --enable-add-ons=DIR... configure and build named extra directories" + --enable-add-ons[=DIR1,DIR2]... configure and build add-ons in DIR1,DIR2,... + search for add-ons if no parameter given" # Initialize some variables set by options. # The variables have the same names as the options, with @@ -549,14 +550,6 @@ else ac_n= ac_c='\c' ac_t= fi - if test -r /vmunix; then - kernel_id=`strings /vmunix | grep UNIX` - elif test -r /dynix; then - kernel_id=`strings /dynix | grep DYNIX` - else - kernel_id= - fi - @@ -681,10 +674,24 @@ else fi +if test $omitfp = yes; then + echo "*** Not all versions of GCC compile code correctly when the" + echo "*** -fomit-frame-pointer option is used. You are on your own" + echo "*** if you use it." +fi + # Check whether --enable-add-ons or --disable-add-ons was given. if test "${enable_add_ons+set}" = set; then enableval="$enable_add_ons" - add_ons=`echo "$enableval" | sed 's/,/ /g'` + case "$enableval" in + yes) if test "$srcdir" = "."; then + add_ons=`echo */configure | sed -e 's!/configure!!g'` + else + add_ons=`echo $srcdir/*/configure | \ + sed -e "s!^$srcdir/!!g" -e 's!/configure!!g'` + fi;; + *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;; + esac else add_ons= fi @@ -713,7 +720,12 @@ subdirs="$add_ons" add_ons_pfx= if test x"$add_ons" != x; then for f in $add_ons; do - add_ons_pfx="$add_ons_pfx $f/" + # Test whether such a subdir really exists. + if test -d $srcdir/$f; then + add_ons_pfx="$add_ons_pfx $f/" + else + { echo "configure: error: add-on directory \"$f\" does not exist" 1>&2; exit 1; } + fi done fi @@ -724,7 +736,7 @@ else { echo "configure: error: can not r fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:728: checking host system type" >&5 +echo "configure:740: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -757,6 +769,30 @@ gnu*) host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'` ;; esac +### +### I put this here to prevent those annoying emails from people who cannot +### read and try to compile glibc on unsupported platforms. --drepper +### +### By using the undocumented --enable-hacker-mode option for configure +### one can skip this test to make the configuration not fail for unsupported +### platforms. +### +if test -z "$enable_hacker_mode"; then + case "$host_os" in + linux* | gnu*) + ;; + *) + echo "*** The GNU C library is currently not available for this platform." + echo "*** So far nobody cared to port it and if there is no volunteer it" + echo "*** might never happen. So, if you have interest to see glibc on" + echo "*** this platform visit" + echo "*** http://www.gnu.org/software/libc/porting.html" + echo "*** and join the group of porters" + exit 1 + ;; + esac +fi + # We keep the original values in `$config_*' and never modify them, so we # can write them unchanged into config.make. Everything else uses @@ -770,7 +806,8 @@ gnu* | linux* | bsd4.4* | netbsd* | free gnu_ld=yes gnu_as=yes ;; esac case "$host_os" in -linux*ecoff*) +# i586-linuxaout is mangled into i586-pc-linux-gnuaout +linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*) ;; gnu* | linux* | sysv4* | solaris2*) # These systems (almost) always use the ELF format. @@ -795,8 +832,11 @@ m88???) base_machine=m88k machine=m88k/ m88k) base_machine=m88k machine=m88k/m88100 ;; mips*) base_machine=mips machine=mips/$machine ;; mips64*) base_machine=mips64 machine=mips/mips64/$machine ;; -sparc[6789]) base_machine=sparc machine=sparc/$machine ;; -supersparc) base_machine=sparc machine=sparc/sparc8 ;; +sparc | sparcv[67]) + base_machine=sparc machine=sparc/sparc32 ;; +sparcv8 | supersparc | hypersparc) + base_machine=sparc machine=sparc/sparc32/sparcv8 ;; +sparc64) base_machine=sparc machine=sparc/sparc64 ;; esac @@ -804,7 +844,7 @@ esac # This can take a while to compute. sysdep_dir=$srcdir/sysdeps echo $ac_n "checking sysdep dirs""... $ac_c" 1>&6 -echo "configure:808: checking sysdep dirs" >&5 +echo "configure:848: checking sysdep dirs" >&5 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1. os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`" @@ -851,7 +891,7 @@ while b=`echo $tail | sed 's@^\(.*\)/\([ tail="$2" done -# For sparc/sparc9, try sparc/sparc9 and then sparc. +# For sparc/sparcv9, try sparc/sparcv9 and then sparc. mach= tail=$machine while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do @@ -1005,7 +1045,7 @@ echo "$ac_t""sysdeps/generic sysdeps/stu # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1009: checking for a BSD compatible install" >&5 +echo "configure:1049: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1056,10 +1096,10 @@ test -z "$INSTALL_DATA" && INSTALL_DATA= if test "$INSTALL" = "${srcdir}/install-sh -c"; then # The makefiles need to use a different form to find it in $srcdir. - INSTALL='$(..)./install-sh -c' + INSTALL='\$(..)./install-sh -c' fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1063: checking whether ln -s works" >&5 +echo "configure:1103: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1084,7 +1124,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1088: checking for $ac_word" >&5 +echo "configure:1128: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1117,7 +1157,7 @@ test -n "$MSGFMT" || MSGFMT=":" # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1121: checking for $ac_word" >&5 +echo "configure:1161: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1146,7 +1186,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1150: checking for $ac_word" >&5 +echo "configure:1190: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1194,7 +1234,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1198: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1238: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -1204,11 +1244,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $C cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1231,13 +1271,13 @@ else cross_linkable=yes fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1235: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1275: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1241: checking whether we are using GNU C" >&5 +echo "configure:1281: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1246,7 +1286,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1250: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1290: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1263,7 +1303,7 @@ if test $ac_cv_prog_gcc = yes; then yes; #endif EOF - if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1267: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1307: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then if test -z "$CFLAGS"; then CFLAGS="-g -O2" fi @@ -1275,7 +1315,7 @@ else fi echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:1279: checking build system type" >&5 +echo "configure:1319: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -1298,7 +1338,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1302: checking for $ac_word" >&5 +echo "configure:1342: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BUILD_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1329,7 +1369,7 @@ done fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1333: checking how to run the C preprocessor" >&5 +echo "configure:1373: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1344,13 +1384,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1354: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1394: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1361,13 +1401,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1411: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1398,7 +1438,7 @@ fi # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1402: checking for $ac_word" >&5 +echo "configure:1442: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1429,7 +1469,7 @@ fi # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1433: checking for $ac_word" >&5 +echo "configure:1473: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1460,7 +1500,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1464: checking for $ac_word" >&5 +echo "configure:1504: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1495,7 +1535,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1499: checking for $ac_word" >&5 +echo "configure:1539: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1536,7 +1576,7 @@ if test "$BASH" = no; then # Extract the first word of "ksh", so it can be a program name with args. set dummy ksh; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1540: checking for $ac_word" >&5 +echo "configure:1580: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1578,7 +1618,7 @@ fi echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6 -echo "configure:1582: checking for signed size_t type" >&5 +echo "configure:1622: checking for signed size_t type" >&5 if eval "test \"`echo '$''{'libc_cv_signed_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1602,12 +1642,12 @@ EOF fi echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6 -echo "configure:1606: checking for libc-friendly stddef.h" >&5 +echo "configure:1646: checking for libc-friendly stddef.h" >&5 if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1666: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libc_cv_friendly_stddef=yes else @@ -1641,7 +1681,7 @@ override stddef.h = # The installed &6 -echo "configure:1645: checking whether we need to use -P to assemble .S files" >&5 +echo "configure:1685: checking whether we need to use -P to assemble .S files" >&5 if eval "test \"`echo '$''{'libc_cv_need_minus_P'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1663,8 +1703,46 @@ if test $libc_cv_need_minus_P = yes; the asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives." fi +# gcc 2.7.x has a bug where if -pipe is set, the assembler will always +# be told to read stdin. This causes the compiler to hang when fed an +# .s file. +if test $ac_cv_prog_gcc = yes; then + case `${CC-cc} -v 2>&1` in + *2.7*) + # We must check this even if -pipe is not given here, because the user + # might do `make CFLAGS=-pipe'. + echo $ac_n "checking for gcc 2.7.x -pipe bug""... $ac_c" 1>&6 +echo "configure:1716: checking for gcc 2.7.x -pipe bug" >&5 +if eval "test \"`echo '$''{'libc_cv_gcc_pipe_bug'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cp /dev/null conftest.s + cat >conftest1.s </dev/null; then + libc_cv_gcc_pipe_bug=no + else + libc_cv_gcc_pipe_bug=yes + fi + rm -f conftest* +fi + +echo "$ac_t""$libc_cv_gcc_pipe_bug" 1>&6 + if test $libc_cv_gcc_pipe_bug = yes; then + makeCC="${CC-cc} -B\$(common-objpfx)" + makeCFLAGS=$CFLAGS + CFLAGS=`echo $CFLAGS |sed 's/-pipe//'` + fi;; + *) libc_cv_gcc_pipe_bug=no;; + esac +else + libc_cv_gcc_pipe_bug=no +fi + + echo $ac_n "checking for assembler global-symbol directive""... $ac_c" 1>&6 -echo "configure:1668: checking for assembler global-symbol directive" >&5 +echo "configure:1746: checking for assembler global-symbol directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_global_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1673,7 +1751,7 @@ for ac_globl in .globl .global; do cat > conftest.s </dev/null; then libc_cv_asm_global_directive=${ac_globl} @@ -1694,7 +1772,7 @@ EOF fi echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6 -echo "configure:1698: checking for .set assembler directive" >&5 +echo "configure:1776: checking for .set assembler directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_set_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1729,7 +1807,7 @@ fi if test $elf = yes; then echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6 -echo "configure:1733: checking for .previous assembler directive" >&5 +echo "configure:1811: checking for .previous assembler directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_previous_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1737,7 +1815,7 @@ else .section foo_section .previous EOF - if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1741: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_asm_previous_directive=yes else libc_cv_asm_previous_directive=no @@ -1753,7 +1831,7 @@ EOF else echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6 -echo "configure:1757: checking for .popsection assembler directive" >&5 +echo "configure:1835: checking for .popsection assembler directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_popsection_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1761,7 +1839,7 @@ else .pushsection foo_section .popsection EOF - if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1765: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1843: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_asm_popsection_directive=yes else libc_cv_asm_popsection_directive=no @@ -1781,12 +1859,12 @@ fi if test $elf != yes; then echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6 -echo "configure:1785: checking for .init and .fini sections" >&5 +echo "configure:1863: checking for .init and .fini sections" >&5 if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1877: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libc_cv_have_initfini=yes else @@ -1816,23 +1894,26 @@ EOF fi fi + + if test $elf = yes; then libc_cv_asm_underscores=no else - echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6 -echo "configure:1824: checking for _ prefix on C symbol names" >&5 + if test $ac_cv_prog_cc_works = yes; then + echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6 +echo "configure:1905: checking for _ prefix on C symbol names" >&5 if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* libc_cv_asm_underscores=yes else @@ -1845,6 +1926,37 @@ rm -f conftest* fi echo "$ac_t""$libc_cv_asm_underscores" 1>&6 + else + echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6 +echo "configure:1932: checking for _ prefix on C symbol names" >&5 +if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + if grep _underscore_test conftest* >/dev/null; then + rm -f conftest* + libc_cv_asm_underscores=yes + else + rm -f conftest* + libc_cv_asm_underscores=no + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -f conftest* + libc_cv_asm_underscores=no +fi +rm -f conftest* +fi + +echo "$ac_t""$libc_cv_asm_underscores" 1>&6 + fi fi if test $libc_cv_asm_underscores = no; then cat >> confdefs.h <<\EOF @@ -1859,14 +1971,14 @@ if test $elf = yes; then libc_cv_asm_weakext_directive=no else echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6 -echo "configure:1863: checking for assembler .weak directive" >&5 +echo "configure:1975: checking for assembler .weak directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.s <&6 -echo "configure:1886: checking for assembler .weakext directive" >&5 +echo "configure:1998: checking for assembler .weakext directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.s <&6 -echo "configure:1923: checking for ld --no-whole-archive" >&5 +echo "configure:2035: checking for ld --no-whole-archive" >&5 if eval "test \"`echo '$''{'libc_cv_ld_no_whole_archive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1930,7 +2042,7 @@ __throw () {} EOF if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles -Wl,--no-whole-archive - -o conftest conftest.c 1>&5'; { (eval echo configure:1934: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c 1>&5'; { (eval echo configure:2046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_ld_no_whole_archive=yes else libc_cv_ld_no_whole_archive=no @@ -1941,7 +2053,7 @@ fi echo "$ac_t""$libc_cv_ld_no_whole_archive" 1>&6 echo $ac_n "checking for gcc -fno-exceptions""... $ac_c" 1>&6 -echo "configure:1945: checking for gcc -fno-exceptions" >&5 +echo "configure:2057: checking for gcc -fno-exceptions" >&5 if eval "test \"`echo '$''{'libc_cv_gcc_no_exceptions'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1952,7 +2064,7 @@ __throw () {} EOF if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles -fno-exceptions - -o conftest conftest.c 1>&5'; { (eval echo configure:1956: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c 1>&5'; { (eval echo configure:2068: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_gcc_no_exceptions=yes else libc_cv_gcc_no_exceptions=no @@ -1962,6 +2074,38 @@ fi echo "$ac_t""$libc_cv_gcc_no_exceptions" 1>&6 +if test "$base_machine" = alpha ; then +echo $ac_n "checking for function ..ng prefix""... $ac_c" 1>&6 +echo "configure:2080: checking for function ..ng prefix" >&5 +if eval "test \"`echo '$''{'libc_cv_gcc_alpha_ng_prefix'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<\EOF +foo () { } +EOF +if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2087: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; +then + libc_cv_gcc_alpha_ng_prefix=yes +else + libc_cv_gcc_alpha_ng_prefix=no +fi +rm -f conftest* +fi + +echo "$ac_t""$libc_cv_gcc_alpha_ng_prefix" 1>&6 +if test $libc_cv_gcc_alpha_ng_prefix = yes ; then + cat >> confdefs.h <<\EOF +#define ASM_ALPHA_NG_SYMBOL_PREFIX "$" +EOF + +else + cat >> confdefs.h <<\EOF +#define ASM_ALPHA_NG_SYMBOL_PREFIX "" +EOF + +fi +fi + ### End of automated tests. ### Now run sysdeps configure fragments. @@ -2004,7 +2148,7 @@ if test "$uname" = generic; then fi echo $ac_n "checking OS release for uname""... $ac_c" 1>&6 -echo "configure:2008: checking OS release for uname" >&5 +echo "configure:2152: checking OS release for uname" >&5 if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2026,7 +2170,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>& uname_release="$libc_cv_uname_release" echo $ac_n "checking OS version for uname""... $ac_c" 1>&6 -echo "configure:2030: checking OS version for uname" >&5 +echo "configure:2174: checking OS version for uname" >&5 if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2048,7 +2192,7 @@ else fi echo $ac_n "checking stdio selection""... $ac_c" 1>&6 -echo "configure:2052: checking stdio selection" >&5 +echo "configure:2196: checking stdio selection" >&5 case $stdio in libio) cat >> confdefs.h <<\EOF @@ -2109,6 +2253,21 @@ fi VERSION=`sed -e 's/^#define VERSION "\([^"]*\)"/\1/p' -e d < $srcdir/version.h` +if test $libc_cv_gcc_pipe_bug = yes; then + realCC=$CC + CC=$makeCC + CFLAGS=$makeCFLAGS +fi + if test -r /vmunix; then + kernel_id=`strings /vmunix | grep UNIX` + elif test -r /dynix; then + kernel_id=`strings /dynix | grep DYNIX` + else + kernel_id= + fi + + + trap '' 1 2 15 cat > confcache <<\EOF # This file is a shell script that caches the results of configure @@ -2541,9 +2700,15 @@ while test -n "$ac_sources"; do done EOF cat >> $CONFIG_STATUS <> config.make EOF cat >> $CONFIG_STATUS <<\EOF + +if test "$realCC"; then + sed -e 's/%{pipe:-}/%|/g' `$realCC -print-file-name=specs` >specsT + mv specsT specs +fi exit 0 EOF diff -durpN glibc-2.0.5c/configure.in glibc-2.0.6/configure.in --- glibc-2.0.5c/configure.in Mon Aug 4 18:35:21 1997 +++ glibc-2.0.6/configure.in Thu Dec 25 19:57:54 1997 @@ -76,16 +76,37 @@ AC_ARG_ENABLE(omitfp, dnl [ --enable-omitfp build undebuggable optimized library [default=no]], omitfp=$enableval, omitfp=no) +dnl Some gcc versions have problems with omit-frame-pointer. Warn about this. +if test $omitfp = yes; then + echo "*** Not all versions of GCC compile code correctly when the" + echo "*** -fomit-frame-pointer option is used. You are on your own" + echo "*** if you use it." +fi + dnl Generic infrastructure for drop-in additions to libc. AC_ARG_ENABLE(add-ons, dnl -[ --enable-add-ons=DIR... configure and build named extra directories], - [add_ons=`echo "$enableval" | sed 's/,/ /g'`], - [add_ons=]) +[ --enable-add-ons[=DIR1,DIR2]... configure and build add-ons in DIR1,DIR2,... + search for add-ons if no parameter given], + [case "$enableval" in + yes) if test "$srcdir" = "."; then + add_ons=`echo */configure | sed -e 's!/configure!!g'` + else + add_ons=`echo $srcdir/*/configure | \ + sed -e "s!^$srcdir/!!g" -e 's!/configure!!g'` + fi;; + *) add_ons=`echo "$enableval" | sed 's/,/ /g'`;; + esac], + [add_ons=]) AC_CONFIG_SUBDIRS($add_ons) add_ons_pfx= if test x"$add_ons" != x; then for f in $add_ons; do - add_ons_pfx="$add_ons_pfx $f/" + # Test whether such a subdir really exists. + if test -d $srcdir/$f; then + add_ons_pfx="$add_ons_pfx $f/" + else + AC_MSG_ERROR(add-on directory \"$f\" does not exist) + fi done fi @@ -103,6 +124,30 @@ gnu*) host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'` ;; esac +### +### I put this here to prevent those annoying emails from people who cannot +### read and try to compile glibc on unsupported platforms. --drepper +### +### By using the undocumented --enable-hacker-mode option for configure +### one can skip this test to make the configuration not fail for unsupported +### platforms. +### +if test -z "$enable_hacker_mode"; then + case "$host_os" in + linux* | gnu*) + ;; + *) + echo "*** The GNU C library is currently not available for this platform." + echo "*** So far nobody cared to port it and if there is no volunteer it" + echo "*** might never happen. So, if you have interest to see glibc on" + echo "*** this platform visit" + echo "*** http://www.gnu.org/software/libc/porting.html" + echo "*** and join the group of porters" + exit 1 + ;; + esac +fi + # We keep the original values in `$config_*' and never modify them, so we # can write them unchanged into config.make. Everything else uses @@ -116,7 +161,8 @@ gnu* | linux* | bsd4.4* | netbsd* | free gnu_ld=yes gnu_as=yes ;; esac case "$host_os" in -linux*ecoff*) +# i586-linuxaout is mangled into i586-pc-linux-gnuaout +linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*) ;; gnu* | linux* | sysv4* | solaris2*) # These systems (almost) always use the ELF format. @@ -143,8 +189,11 @@ m88???) base_machine=m88k machine=m88k/ m88k) base_machine=m88k machine=m88k/m88100 ;; mips*) base_machine=mips machine=mips/$machine ;; mips64*) base_machine=mips64 machine=mips/mips64/$machine ;; -sparc[6789]) base_machine=sparc machine=sparc/$machine ;; -supersparc) base_machine=sparc machine=sparc/sparc8 ;; +sparc | sparcv[67]) + base_machine=sparc machine=sparc/sparc32 ;; +sparcv8 | supersparc | hypersparc) + base_machine=sparc machine=sparc/sparc32/sparcv8 ;; +sparc64) base_machine=sparc machine=sparc/sparc64 ;; esac changequote([,])dnl AC_SUBST(base_machine) @@ -201,7 +250,7 @@ while b=`echo $tail | sed 's@^\(.*\)/\([ tail="$2" done -# For sparc/sparc9, try sparc/sparc9 and then sparc. +# For sparc/sparcv9, try sparc/sparcv9 and then sparc. mach= tail=$machine while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do @@ -351,7 +400,7 @@ AC_MSG_RESULT(sysdeps/generic sysdeps/st AC_PROG_INSTALL if test "$INSTALL" = "${srcdir}/install-sh -c"; then # The makefiles need to use a different form to find it in $srcdir. - INSTALL='$(..)./install-sh -c' + INSTALL='\$(..)./install-sh -c' fi AC_PROG_LN_S AC_CHECK_PROGS(MSGFMT, msgfmt gmsgfmt, :) @@ -443,6 +492,37 @@ if test $libc_cv_need_minus_P = yes; the asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives." fi +# gcc 2.7.x has a bug where if -pipe is set, the assembler will always +# be told to read stdin. This causes the compiler to hang when fed an +# .s file. +if test $ac_cv_prog_gcc = yes; then + case `${CC-cc} -v 2>&1` in + *2.7*) + # We must check this even if -pipe is not given here, because the user + # might do `make CFLAGS=-pipe'. + AC_CACHE_CHECK(for gcc 2.7.x -pipe bug, libc_cv_gcc_pipe_bug, [dnl + cp /dev/null conftest.s + cat >conftest1.s </dev/null; then + libc_cv_gcc_pipe_bug=no + else + libc_cv_gcc_pipe_bug=yes + fi + rm -f conftest*]) + if test $libc_cv_gcc_pipe_bug = yes; then + makeCC="${CC-cc} -B\$(common-objpfx)" + makeCFLAGS=$CFLAGS + CFLAGS=`echo $CFLAGS |sed 's/-pipe//'` + fi;; + *) libc_cv_gcc_pipe_bug=no;; + esac +else + libc_cv_gcc_pipe_bug=no +fi + + AC_CACHE_CHECK(for assembler global-symbol directive, libc_cv_asm_global_directive, [dnl libc_cv_asm_global_directive=UNKNOWN @@ -450,7 +530,7 @@ for ac_globl in .globl .global; do cat > conftest.s </dev/null; then libc_cv_asm_global_directive=${ac_globl} @@ -535,13 +615,45 @@ if test $elf != yes; then fi fi +dnl AC_CHECK_ASM_UNDERSCORE([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) +AC_DEFUN(AC_CHECK_ASM_UNDERSCORE, +[cat > conftest.$ac_ext </dev/null; then + ifelse([$1], , :, [rm -f conftest* + $1]) + else + ifelse([$2], , , [rm -f conftest* + $2]) + fi +else + echo "configure: failed program was:" >&AC_FD_CC + cat conftest.$ac_ext >&AC_FD_CC + ifelse([$2], , , [rm -f conftest* + $2]) +fi +rm -f conftest*]) + if test $elf = yes; then libc_cv_asm_underscores=no else - AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores, - [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();], - libc_cv_asm_underscores=yes, - libc_cv_asm_underscores=no)]) + if test $ac_cv_prog_cc_works = yes; then + AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores, + [AC_TRY_LINK([asm ("_glibc_foobar:");], [glibc_foobar ();], + libc_cv_asm_underscores=yes, + libc_cv_asm_underscores=no)]) + else + AC_CACHE_CHECK(for _ prefix on C symbol names, libc_cv_asm_underscores, + [AC_CHECK_ASM_UNDERSCORE(libc_cv_asm_underscores=yes, + libc_cv_asm_underscores=no)]) + fi fi if test $libc_cv_asm_underscores = no; then AC_DEFINE(NO_UNDERSCORES) @@ -557,7 +669,7 @@ else cat > conftest.s < conftest.s < conftest.c <<\EOF +foo () { } +EOF +dnl +if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]); +then + libc_cv_gcc_alpha_ng_prefix=yes +else + libc_cv_gcc_alpha_ng_prefix=no +fi +rm -f conftest* ]) +if test $libc_cv_gcc_alpha_ng_prefix = yes ; then + AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "$") +else + AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "") +fi +fi + ### End of automated tests. ### Now run sysdeps configure fragments. @@ -768,6 +900,17 @@ fi VERSION=`sed -e 's/^#define VERSION "\([^"]*\)"/\1/p' -e d < $srcdir/version.h` AC_SUBST(VERSION) + +if test $libc_cv_gcc_pipe_bug = yes; then + realCC=$CC + CC=$makeCC + CFLAGS=$makeCFLAGS +fi +AC_OUTPUT_COMMANDS([ +if test "$realCC"; then + sed -e 's/%{pipe:-}/%|/g' `$realCC -print-file-name=specs` >specsT + mv specsT specs +fi], [realCC=$realCC]) AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, , [echo '$config_vars' >> config.make]) diff -durpN glibc-2.0.5c/csu/Makefile glibc-2.0.6/csu/Makefile --- glibc-2.0.5c/csu/Makefile Thu May 8 10:37:37 1997 +++ glibc-2.0.6/csu/Makefile Fri Nov 14 20:34:09 1997 @@ -76,7 +76,7 @@ $(objpfx)crt%.o: $(objpfx)crt%.S $(objpf $(objpfx)initfini.s: initfini.c $(CC) $(CPPFLAGS) $(CFLAGS) -g0 -S -fPIC -finhibit-size-directive \ - $(no-exceptions) $< -o $@ + -fno-inline-functions $(no-exceptions) $< -o $@ $(objpfx)crti.S: $(objpfx)initfini.s sed -n -e '1,/@HEADER_ENDS/p' \ diff -durpN glibc-2.0.5c/debian/FAQ glibc-2.0.6/debian/FAQ --- glibc-2.0.5c/debian/FAQ Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/FAQ Sun Dec 28 16:09:08 1997 @@ -0,0 +1,16 @@ +Q1: Why does Debian's libc point the /usr/include/linux and +/usr/include/asm symlinks to a specific kernel instead of using the +standard convention of pointing them to the currently installed +kernel? + +A1: Occasionally, changes in the kernel headers cause problems with +the compilation of libc and of programs that use libc. To ensure that +users are not affected by these problems, we configure libc to use the +headers from a kernel that is known to work with libc. + +Q2: What if I want to compile a program that needs a feature from a +later kernel than is used by libc? + +A2: In practice, most programs will not have this problem. However, +when you do run across one, you can just use -I/usr/src/linux/include +when compiling that specific program. diff -durpN glibc-2.0.5c/debian/Makefile glibc-2.0.6/debian/Makefile --- glibc-2.0.5c/debian/Makefile Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/Makefile Sun Dec 28 16:57:22 1997 @@ -0,0 +1,13 @@ +# This is a dummy Makefile to satisfy GNU libc's build mechanism. It is +# only needed to name the files which have to be distributed. + +subdir := debian + +distribute := FAQ README changelog control control.in copyright do_locales \ + rules shlibs shlibs.alpha shlibs.m68k substvars tzconfig \ + libc/postinst libc/preinst \ + libc-dev/preinst \ + libc-doc/postinst libc-doc/prerm \ + timezones/conffiles timezones/postinst timezones/postrm + +include ../Rules diff -durpN glibc-2.0.5c/debian/README glibc-2.0.6/debian/README --- glibc-2.0.5c/debian/README Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/README Sun Dec 28 16:09:08 1997 @@ -0,0 +1,14 @@ +This directory contains the files needed to build glibc for the Debian +GNU/Linux distribution. Please be sure to check on Debian's ftp site, +ftp://ftp.debian.org/, to see if a newer version is available. + +Compiling the GNU C library yourself will need a lot of resources from +you. For a complete build using dpkg-buildpackage you need at least +200MB free disk space and at least 16MB of RAM and 32MB of swap space +(if you have only that much you're better off not running X at the +same time). + +A complete build runs for about 6 hours on a 486-133 and still just +about 3 hours on a Pentium 133. The cause for this is the intricate +Makefile structure of glibc which needs a lot of computing power for +make to figure out the automatically generated dependecies. diff -durpN glibc-2.0.5c/debian/changelog glibc-2.0.6/debian/changelog --- glibc-2.0.5c/debian/changelog Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/changelog Sun Dec 28 16:09:42 1997 @@ -0,0 +1,139 @@ +glibc (2.0.6-1) unstable; urgency=low + + * New upstream version (2.0.6). + + -- David Engel Sun, 28 Dec 1997 15:09:41 -0600 + +glibc (2.0.6-0.6) unstable; urgency=low + + * New upstream version (2.0.6pre6). + + -- David Engel Sat, 27 Dec 1997 23:34:43 -0600 + +glibc (2.0.6-0.5) unstable; urgency=low + + * New upstream version (2.0.6pre5). + * Updated Debian README and FAQ for inclusion in upstream source. + * Changed libc6 to conflict with old libc5 packages. + * Changed libc6 to conflict with existing libpthread0 packages. + * Fixed libc6-dev to create /usr/include symlinks correctly. + * Changed libc6-dev to depend on either kernel-headers or kernel-source. + * Fixed libc6-doc to not include erroneous dir.gz. + + -- David Engel Mon, 22 Dec 1997 01:14:22 -0600 + +glibc (2.0.6-0.4) unstable; urgency=low + + * New upstream version (2.0.6-pre4). + * Use and depend on kernel-headers-2.0.32 package for the kernel + header files. + * Remove obsolete patches from debian directory. + + -- David Engel Fri, 12 Dec 1997 00:20:57 -0600 + +glibc (2.0.6-0.3) unstable; urgency=low + + * New upstream version (2.0.6-pre3). + + -- David Engel Tue, 9 Dec 1997 21:47:20 -0600 + +glibc (2.0.6-0.2) unstable; urgency=low + + * New upstream version (2.0.6-pre2). + * New kernel headers (2.0.32). + * Fixed m68k build and dependency problems. + * Added Conflicts: libpthread0 (=0.6-1). + * Added INSTALL to /usr/doc at request of upstream maintainer. + + -- David Engel Wed, 19 Nov 1997 20:23:02 -0600 + +glibc (2.0.6-0.1) unstable; urgency=low + + * New upstream version (2.0.6-pre1). + * New kernel headers (2.0.32-pre4). + + -- David Engel Fri, 14 Nov 1997 19:43:06 -0600 + +glibc (2.0.5c-0.1) unstable; urgency=low + + * New upstream version. (10417,12304) + * Fix security hole in tzconfig. (11609) + * Patch linuxthreads for libstdc++ + + -- Guy Maor Fri, 3 Oct 1997 14:08:30 -0500 + +glibc (2.0.4-1) unstable; urgency=low + + * new Maintainer + * new upstream version + * included asm-m68k fixes (James Troup ) + + -- Helmut Geyer Fri, 23 May 1997 20:00:00 +0200 + +glibc (2.0.3-4) unstable; urgency=low + + * Changed tzconfig to allow Canadian timezones to be selected by + name. + * Changed libc6-dev to legally replace parts of the man-db, gettext + and ppp packages (Bug#9815 abd Bug#9825). + + -- David Engel Thu, 15 May 1997 12:35:43 -0500 + +glibc (2.0.3-3) unstable; urgency=low + + * Integrated Mike Dorman's patches for the alpha (Bug#9208, + Bug#9212 and Bug#9219). + + -- David Engel Mon, 5 May 1997 11:32:14 -0500 + +glibc (2.0.3-2) unstable; urgency=low + + * Fixed a problem with the .orig.tar.gz file. + * Really moved from experimental to unstable. + * Added initial, integrated support for alpha architecture. + + -- David Engel Fri, 25 Apr 1997 15:15:37 -0500 + +glibc (2.0.3-1) experimental; urgency=low + + * Updated to new upstream version. + * Moved from experimental section to unstable. + * Included man pages for linuxthreads. + + -- David Engel Tue, 22 Apr 1997 08:56:37 -0500 + +glibc (2.0.2-2) experimental; urgency=low + + * Added a shlibs entry for /lib/ld-linux.so.2. + * Added symlinks to /usr/doc/libc6 for -dev, -dbg and -doc + packages. + + -- David Engel Fri, 4 Apr 1997 21:58:44 -0600 + +glibc (2.0.2-1) experimental; urgency=low + + * Updated to new upstream version. + + -- David Engel Sat, 22 Mar 1997 11:53:16 -0600 + +glibc (2.0.1-2) experimental; urgency=low + + * Changed to work with ldso-1.9.x. + * Changed to build with local kernel headers. + * Changed is_IS locale to match that from wg15-locale. + * Added compiled versions of locales. + * Added documentation from add-on packages. + * Fixed install problems with timezones. + * Moved libdb headers from /usr/include/db to /usr/include. + + -- David Engel Thu, 27 Feb 1997 19:57:25 -0600 + +glibc (2.0.1-1) experimental; urgency=low + + * Initial packaging. + + -- David Engel Thu, 20 Feb 1997 21:15:52 -0600 + +Local variables: +mode: debian-changelog +End: diff -durpN glibc-2.0.5c/debian/control glibc-2.0.6/debian/control --- glibc-2.0.5c/debian/control Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/control Sun Dec 28 16:09:08 1997 @@ -0,0 +1,79 @@ +Source: glibc +Section: libs +Priority: required +Maintainer: David Engel +Standards-Version: 2.1.2.2 + +Package: libc6 +Architecture: any +Section: base +Priority: required +Pre-Depends: ${i386:libc6}${m68k:libc6} +Conflicts: libc5 (<<5.4.33-7), libpthread0 (<<0.7-10) +Description: The GNU C library version 2 (run-time files). + Includes shared libraries needed to run programs. + +Package: libc6-dev +Architecture: any +Section: devel +Priority: standard +Depends: libc6 (=${Source-Version}), kernel-headers-${kversion} (>=${kversion}-${krevision}) | kernel-source-${kversion} (>=${kversion}-${krevision}), gcc (>=2.7.2.3-1) +Conflicts: libc-dev, libdl1-dev, libdb1-dev, libgdbm1-dev, libpthread0-dev +Replaces: ldso (<<1.9.0-0), man-db (<=2.3.10-37), gettext (<=0.10.26-1), ppp (<=2.2.0f-24) +Provides: libc-dev +Description: The GNU C library version 2 (development files). + Includes libc headers, kernel headers and static libraries. + +Package: libc6-dbg +Architecture: any +Section: devel +Priority: optional +Depends: libc6-dev (=${Source-Version}) +Conflicts: libc-dbg +Provides: libc-dbg +Description: The GNU C library version 2 (debugging/profiling files). + Includes static libraries compiled with debugging and profiling info. + +Package: libc6-pic +Architecture: any +Section: devel +Priority: optional +Depends: libc6-dev (=${Source-Version}) +Conflicts: libc-pic +Provides: libc-pic +Description: The GNU C library version 2 (PIC library) + Contains PIC library for generating reduced glibc for installation disks. + +Package: libc6-doc +Architecture: all +Section: doc +Priority: optional +Depends: libc6 (=${Source-Version}) +Conflicts: libc-doc, glibcdoc +Replaces: glibcdoc +Provides: libc-doc +Description: The GNU C library version 2 (documentation files) + Contains info file and other Documentation. + +Package: locales +Architecture: any +Section: admin +Priority: standard +Depends: libc6 +Conflicts: localebin, wg15-locale +Replaces: localebin, wg15-locale +Description: Locale data files and utilities. + Contains utilities and machine-readable files used by the C library + to internationalization. + +Package: timezones +Architecture: any +Section: base +Priority: required +Depends: libc6 +Conflicts: timezone +Replaces: timezone +Description: Time zone data files and utilities. + Contains utilities and machine-readable files used by the C library + to time zones, local time. + diff -durpN glibc-2.0.5c/debian/control.in glibc-2.0.6/debian/control.in --- glibc-2.0.5c/debian/control.in Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/control.in Sun Dec 28 16:09:08 1997 @@ -0,0 +1,79 @@ +Source: glibc +Section: libs +Priority: required +Maintainer: David Engel +Standards-Version: 2.1.2.2 + +Package: LIBC +Architecture: any +Section: base +Priority: required +Pre-Depends: ${i386:libc6}${m68k:libc6} +Conflicts: libc5 (<<5.4.33-7), libpthread0 (<<0.7-10) +Description: The GNU C library version 2 (run-time files). + Includes shared libraries needed to run programs. + +Package: LIBC-dev +Architecture: any +Section: devel +Priority: standard +Depends: LIBC (=${Source-Version}), kernel-headers-${kversion} (>=${kversion}-${krevision}) | kernel-source-${kversion} (>=${kversion}-${krevision}), gcc (>=2.7.2.3-1) +Conflicts: libc-dev, libdl1-dev, libdb1-dev, libgdbm1-dev, libpthread0-dev +Replaces: ldso (<<1.9.0-0), man-db (<=2.3.10-37), gettext (<=0.10.26-1), ppp (<=2.2.0f-24) +Provides: libc-dev +Description: The GNU C library version 2 (development files). + Includes libc headers, kernel headers and static libraries. + +Package: LIBC-dbg +Architecture: any +Section: devel +Priority: optional +Depends: LIBC-dev (=${Source-Version}) +Conflicts: libc-dbg +Provides: libc-dbg +Description: The GNU C library version 2 (debugging/profiling files). + Includes static libraries compiled with debugging and profiling info. + +Package: LIBC-pic +Architecture: any +Section: devel +Priority: optional +Depends: LIBC-dev (=${Source-Version}) +Conflicts: libc-pic +Provides: libc-pic +Description: The GNU C library version 2 (PIC library) + Contains PIC library for generating reduced glibc for installation disks. + +Package: LIBC-doc +Architecture: all +Section: doc +Priority: optional +Depends: LIBC (=${Source-Version}) +Conflicts: libc-doc, glibcdoc +Replaces: glibcdoc +Provides: libc-doc +Description: The GNU C library version 2 (documentation files) + Contains info file and other Documentation. + +Package: locales +Architecture: any +Section: admin +Priority: standard +Depends: LIBC +Conflicts: localebin, wg15-locale +Replaces: localebin, wg15-locale +Description: Locale data files and utilities. + Contains utilities and machine-readable files used by the C library + to internationalization. + +Package: timezones +Architecture: any +Section: base +Priority: required +Depends: LIBC +Conflicts: timezone +Replaces: timezone +Description: Time zone data files and utilities. + Contains utilities and machine-readable files used by the C library + to time zones, local time. + diff -durpN glibc-2.0.5c/debian/copyright glibc-2.0.6/debian/copyright --- glibc-2.0.5c/debian/copyright Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/copyright Sun Dec 28 16:09:08 1997 @@ -0,0 +1,321 @@ +This package was debianized by David Engel from the +following sources: + + prep.ai.mit.edu:/pub/gnu/glibc-2.0.6.tar.gz + prep.ai.mit.edu:/pub/gnu/glibc-crypt-2.0.6.tar.gz + prep.ai.mit.edu:/pub/gnu/glibc-linuxthreads-2.0.6.tar.gz + prep.ai.mit.edu:/pub/gnu/glibc-localedata-2.0.6.tar.gz + +Copyright: + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + +Copies of these licenses can be found in + /usr/doc/copyright/GPL. +and + /usr/doc/copyright/LGPL + +Additional Details: + +Contributors to the GNU C Library +================================= + + The GNU C library was written originally by Roland McGrath. Some +parts of the library were contributed or worked on by other people. + + * The `getopt' function and related code were written by Richard + Stallman, David J. MacKenzie, and Roland McGrath. + + * The merge sort function `qsort' was written by Michael J. Haertel. + + * The quick sort function used as a fallback by `qsort' was written + by Douglas C. Schmidt. + + * The memory allocation functions `malloc', `realloc' and `free' and + related code were written by Michael J. Haertel. + + * Fast implementations of many of the string functions (`memcpy', + `strlen', etc.) were written by Torbjorn Granlund. + + * The `tar.h' header file was written by David J. MacKenzie. + + * The port to the MIPS DECStation running Ultrix 4 + (`mips-dec-ultrix4') was contributed by Brendan Kehoe and Ian + Lance Taylor. + + * The DES encryption function `crypt' and related functions were + contributed by Michael Glad. + + * The `ftw' function was contributed by Ian Lance Taylor. + + * The startup code to support SunOS shared libraries was contributed + by Tom Quinn. + + * The `mktime' function was contributed by Paul Eggert. + + * The port to the Sequent Symmetry running Dynix version 3 + (`i386-sequent-bsd') was contributed by Jason Merrill. + + * The timezone support code is derived from the public-domain + timezone package by Arthur David Olson and his many contributors. + + * The port to the DEC Alpha running OSF/1 (`alpha-dec-osf1') was + contributed by Brendan Kehoe, using some code written by Roland + McGrath. + + * The port to SGI machines running Irix 4 (`mips-sgi-irix4') was + contributed by Tom Quinn. + + * The port of the Mach and Hurd code to the MIPS architecture + (`mips-ANYTHING-gnu') was contributed by Kazumoto Kojima. + + * The floating-point printing function used by `printf' and friends + and the floating-point reading function used by `scanf', `strtod' + and friends were written by Ulrich Drepper. The multi-precision + integer functions used in those functions are taken from GNU MP, + which was contributed by Torbjorn Granlund. + + * The internationalization support in the library, and the support + programs `locale' and `localedef', were written by Ulrich Drepper. + Ulrich Drepper adapted the support code for message catalogs + (`libintl.h', etc.) from the GNU `gettext' package, which he also + wrote. He also contributed the `catgets' support and the entire + suite of multi-byte and wide-character support functions + (`wctype.h', `wchar.h', etc.). + + * The implementations of the `nsswitch.conf' mechanism and the files + and DNS backends for it were designed and written by Ulrich + Drepper and Roland McGrath, based on a backend interface defined + by Peter Eriksson. + + * The port to Linux i386/ELF (`i386-ANYTHING-linux') was contributed + by Ulrich Drepper, based in large part on work done in Hongjiu + Lu's Linux version of the GNU C Library. + + * The port to Linux/m68k (`m68k-ANYTHING-linux') was contributed by + Andreas Schwab. + + * Richard Henderson contributed the ELF dynamic linking code and + other support for the Alpha processor. + + * David Mosberger-Tang contributed the port to Linux/Alpha + (`alpha-ANYTHING-linux'). + + * Stephen R. van den Berg contributed a highly-optimized `strstr' + function. + + * Ulrich Drepper contributed the `hsearch' and `drand48' families of + functions; reentrant `...`_r'' versions of the `random' family; + System V shared memory and IPC support code; and several + highly-optimized string functions for iX86 processors. + + * The math functions are taken from `fdlibm-5.1' by Sun + Microsystems, as modified by J.T. Conklin, Ian Lance Taylor, + Ulrich Drepper, Andreas Schwab, and Roland McGrath. + + * The `libio' library used to implement `stdio' functions on some + platforms was written by Per Bothner and modified by Ulrich + Drepper. + + * Some of the Internet-related code (most of the `inet' + subdirectory) and several other miscellaneous functions and + header files have been included from 4.4 BSD with little or no + modification. + + All code incorporated from 4.4 BSD is under the following + copyright: + + Copyright (C) 1991 Regents of the University of California. + All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the + following conditions are met: + + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + + 3. All advertising materials mentioning features or use of + this software must display the following acknowledgement: + This product includes software developed by the + University of California, Berkeley and its + contributors. + + 4. Neither the name of the University nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + OF SUCH DAMAGE. + + * The random number generation functions `random', `srandom', + `setstate' and `initstate', which are also the basis for the + `rand' and `srand' functions, were written by Earl T. Cohen for + the University of California at Berkeley and are copyrighted by the + Regents of the University of California. They have undergone minor + changes to fit into the GNU C library and to fit the ANSI C + standard, but the functional code is Berkeley's. + + * The Internet resolver code is taken directly from BIND 4.9.5, + which is under both the Berkeley copyright above and also: + + Portions Copyright (C) 1993 by Digital Equipment Corporation. + + Permission to use, copy, modify, and distribute this software + for any purpose with or without fee is hereby granted, + provided that the above copyright notice and this permission + notice appear in all copies, and that the name of Digital + Equipment Corporation not be used in advertising or publicity + pertaining to distribution of the document or software + without specific, written prior permission. + + THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. + DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE + LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION + WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + * The code to support Sun RPC is taken verbatim from Sun's + RPCSRC-4.0 distribution, and is covered by this copyright: + + Copyright (C) 1984, Sun Microsystems, Inc. + + Sun RPC is a product of Sun Microsystems, Inc. and is + provided for unrestricted use provided that this legend is + included on all tape media and as a part of the software + program in whole or part. Users may copy or modify Sun RPC + without charge, but are not authorized to license or + distribute it to anyone else except as part of a product or + program developed by the user. + + SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND + INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND + FITNESS FOR A PARTICULAR PURPOSE, OR ARISING FROM A COURSE OF + DEALING, USAGE OR TRADE PRACTICE. + + Sun RPC is provided with no support and without any + obligation on the part of Sun Microsystems, Inc. to assist in + its use, correction, modification or enhancement. + + SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT + TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY + PATENTS BY SUN RPC OR ANY PART THEREOF. + + In no event will Sun Microsystems, Inc. be liable for any + lost revenue or profits or other special, indirect and + consequential damages, even if Sun has been advised of the + possibility of such damages. + + Sun Microsystems, Inc. + 2550 Garcia Avenue + Mountain View, California 94043 + + * Some of the support code for Mach is taken from Mach 3.0 by CMU, + and is under the following copyright terms: + + Mach Operating System + Copyright (C) 1991,1990,1989 Carnegie Mellon University + All Rights Reserved. + + Permission to use, copy, modify and distribute this software + and its documentation is hereby granted, provided that both + the copyright notice and this permission notice appear in all + copies of the software, derivative works or modified + versions, and any portions thereof, and that both notices + appear in supporting documentation. + + CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS + IS" CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF + ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF + THIS SOFTWARE. + + Carnegie Mellon requests users of this software to return to + + Software Distribution Coordinator + School of Computer Science + Carnegie Mellon University + Pittsburgh PA 15213-3890 + + or `Software.Distribution@CS.CMU.EDU' any improvements or + extensions that they make and grant Carnegie Mellon the + rights to redistribute these changes. + + * The `getaddrinfo' function is written by Craig Metz and it has the + following copyright: + + The Inner Net License, Version 2.00 + =================================== + + The author(s) grant permission for redistribution and use in source and + binary forms, with or without modification, of the software + and documentation provided that the following conditions are met: + + 0. If you receive a version of the software that is + specifically labelled as not being for redistribution + (check the version message and/or README), you are not + permitted to redistribute that version of the software in + any way or form. + 1. All terms of the all other applicable copyrights and + licenses must be followed. + 2. Redistributions of source code must retain the authors' + copyright notice(s), this list of conditions, and the + following disclaimer. + 3. Redistributions in binary form must reproduce the authors' + copyright notice(s), this list of conditions, and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + 4. All advertising materials mentioning features or use of + this software must display the following acknowledgement + with the name(s) of the authors as specified in the + copyright notice(s) substituted where indicated: + + This product includes software developed by , The Inner + Net, and other contributors. + + 5. Neither the name(s) of the author(s) nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY ITS AUTHORS AND CONTRIBUTORS ``AS + IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + OF SUCH DAMAGE. + + If these license terms cause you a real problem, contact the author. diff -durpN glibc-2.0.5c/debian/do_locales glibc-2.0.6/debian/do_locales --- glibc-2.0.5c/debian/do_locales Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/do_locales Sun Dec 28 16:09:08 1997 @@ -0,0 +1,52 @@ +#!/bin/bash + +LOADER=$1 +export LD_LIBRARY_PATH=`pwd`/debian/hold/lib +export I18NPATH=debian/tmp/usr/share/i18n/locales + +function do_locale { + debian/hold/lib/$LOADER debian/hold/usr/bin/localedef \ + -c -i debian/hold/usr/share/i18n/locales/$1 \ + -f debian/hold/usr/share/i18n/charmaps/$2 \ + debian/tmp/usr/share/locale/$1 ; +} + +do_locale da_DK ISO-8859-1 +do_locale de_AT ISO-8859-1 +do_locale de_BE ISO-8859-1 +do_locale de_CH ISO-8859-1 +do_locale de_DE ISO-8859-1 +do_locale de_LU ISO-8859-1 +do_locale en_CA ISO-8859-1 +do_locale en_DK ISO-8859-1 +do_locale en_GB ISO-8859-1 +do_locale en_IE ISO-8859-1 +do_locale en_US ISO-8859-1 +do_locale es_ES ISO-8859-1 +do_locale et_EE ISO-8859-1 +do_locale fi_FI ISO-8859-1 +do_locale fo_FO ISO-8859-1 +do_locale fr_BE ISO-8859-1 +do_locale fr_CA ISO-8859-1 +do_locale fr_CH ISO-8859-1 +do_locale fr_FR ISO-8859-1 +do_locale fr_LU ISO-8859-1 +do_locale gr_GR ISO-8859-7 +do_locale hr_HR ISO-8859-4 +do_locale hu_HU ISO-8859-2 +do_locale is_IS ISO-8859-1 +do_locale it_IT ISO-8859-1 +do_locale iw_IL ISO-8859-8 +do_locale kl_GL ISO-8859-1 +do_locale lt_LT BALTIC +do_locale lv_LV BALTIC +do_locale nl_BE ISO-8859-1 +do_locale nl_NL ISO-8859-1 +do_locale no_NO ISO-8859-1 +do_locale pl_PL ISO-8859-2 +do_locale pt_PT ISO-8859-1 +do_locale ro_RO ISO-8859-1 +do_locale ru_RU ISO-8859-5 +do_locale sl_SI ISO-8859-2 +do_locale sv_FI ISO-8859-1 +do_locale sv_SE ISO-8859-1 diff -durpN glibc-2.0.5c/debian/libc/postinst glibc-2.0.6/debian/libc/postinst --- glibc-2.0.5c/debian/libc/postinst Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/libc/postinst Sun Dec 28 16:09:08 1997 @@ -0,0 +1,6 @@ +#!/bin/sh + +set -e + +ldconfig + diff -durpN glibc-2.0.5c/debian/libc/preinst glibc-2.0.6/debian/libc/preinst --- glibc-2.0.5c/debian/libc/preinst Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/libc/preinst Sun Dec 28 16:09:08 1997 @@ -0,0 +1,6 @@ +#!/bin/sh + +set -e + +dpkg --assert-support-predepends + diff -durpN glibc-2.0.5c/debian/libc-dev/preinst glibc-2.0.6/debian/libc-dev/preinst --- glibc-2.0.5c/debian/libc-dev/preinst Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/libc-dev/preinst Sun Dec 28 16:09:08 1997 @@ -0,0 +1,8 @@ +#!/bin/sh + +set -e + +# Remove old directories and symlinks, if they exist +rm -rf /usr/include/asm +rm -rf /usr/include/linux +rm -rf /usr/include/scsi diff -durpN glibc-2.0.5c/debian/libc-doc/postinst glibc-2.0.6/debian/libc-doc/postinst --- glibc-2.0.5c/debian/libc-doc/postinst Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/libc-doc/postinst Sun Dec 28 16:09:08 1997 @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +install-info --quiet --section "Development" "Development" \ + /usr/info/libc.info.gz + diff -durpN glibc-2.0.5c/debian/libc-doc/prerm glibc-2.0.6/debian/libc-doc/prerm --- glibc-2.0.5c/debian/libc-doc/prerm Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/libc-doc/prerm Sun Dec 28 16:09:08 1997 @@ -0,0 +1,6 @@ +#!/bin/sh + +set -e + +install-info --quiet --remove libc + diff -durpN glibc-2.0.5c/debian/rules glibc-2.0.6/debian/rules --- glibc-2.0.5c/debian/rules Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/rules Sun Dec 28 16:09:08 1997 @@ -0,0 +1,250 @@ +#!/usr/bin/make -f +# Sample debian/rules file - for GNU Hello (1.3). +# Copyright 1994,1995 by Ian Jackson. +# I hereby give you perpetual unlimited permission to copy, +# modify and relicense this file, provided that you do not remove +# my name from the file itself. (I assert my moral right of +# paternity under the Copyright, Designs and Patents Act 1988.) +# This file may have to be extensively modified +# +# Modified for glibc by David Engel + +arch = $(shell dpkg --print-architecture) + +ifeq ($(arch),alpha) +p = libc6.1 +LOADER = ld-linux.so.2 +KVERSION = 2.0.32 +KREVISION = 2 +else +ifeq ($(arch),m68k) +p = libc6 +LOADER = ld.so.1 +KVERSION = 2.0.32 +KREVISION = 2 +else +p = libc6 +LOADER = ld-linux.so.2 +KVERSION = 2.0.32 +KREVISION = 2 +endif +endif + +build: +ifeq ($(MAKE_VERSION), 3.76) + echo "Make 3.76 is broken! Use make 3.76.1" + false +endif + -mkdir builddir + ln -sf /usr/src/linux-${KVERSION}/include/linux linux + ln -sf /usr/src/linux-${KVERSION}/include/asm asm + cd builddir && ../configure --prefix=/usr \ + --sysconfdir=/etc --localstatedir=/var \ + --enable-add-ons=crypt,linuxthreads,localedata + cd builddir && $(MAKE) + cd linuxthreads/man && make all + touch build + +clean: + -find . -name '*~' | xargs rm -f + -rm -rf build builddir linux asm pre-binary + -cd linuxthreads/man && make clean + -rm -rf debian/hold debian/tmp debian/files* + +binary: build binary-indep binary-arch + +binary-indep: binary-doc + +binary-arch: binary-run binary-dev binary-dbg binary-pic \ + binary-locales binary-timezones + +pre-binary: build + # copy most everything into debian/hold + -rm -rf debian/hold + install -d debian/hold + cd builddir && make install_root=`pwd`/../debian/hold \ + INSTALL_INFO=true install + install -d debian/hold/usr/man/man3 + cd linuxthreads/man && \ + make MANDIR='../../debian/hold/usr/man/man3' install + rm -f debian/hold/usr/lib/libg.a + sed -e 's/LIBC/$(p)/g' < debian/control.in > debian/control + echo "$(arch):libc6=ldso (>= 1.8.10-1)" > debian/substvars + echo "kversion=$(KVERSION)" >> debian/substvars + echo "krevision=$(KREVISION)" >> debian/substvars + touch pre-binary + +binary-run: checkroot pre-binary + # build the libc6 binary + -rm -rf debian/tmp + install -d debian/tmp/usr/bin \ + debian/tmp/lib \ + debian/tmp/usr/doc/$(p) \ + debian/tmp/DEBIAN +ifeq ($(arch),alpha) + cp -a debian/hold/usr/bin/ldd debian/tmp/usr/bin +endif + cp -a debian/hold/lib/{ld,lib}*-2*.so debian/tmp/lib + cp -a debian/hold/lib/lib*-0*.so debian/tmp/lib + #strip -g -K _dl_debug_state debian/tmp/lib/ld*.so + strip debian/tmp/lib/lib*.so + cp -a debian/hold/lib/{ld,lib}*.so.* debian/tmp/lib + for f in ChangeLog BUGS FAQ INSTALL NEWS NOTES PROJECTS README ; do \ + cp -a $$f debian/tmp/usr/doc/$(p)/$$f ; \ + done + cd crypt && for f in README ; do \ + cp -a $$f ../debian/tmp/usr/doc/$(p)/$$f.crypt ; \ + done + cd linuxthreads && for f in README* Changes ChangeLog ; do \ + cp -a $$f ../debian/tmp/usr/doc/$(p)/$$f.linuxthreads ; \ + done + cd localedata && for f in README ChangeLog ; do \ + cp -a $$f ../debian/tmp/usr/doc/$(p)/$$f.localedata ; \ + done + cp debian/changelog debian/tmp/usr/doc/$(p)/changelog.Debian + cp debian/FAQ debian/tmp/usr/doc/$(p)/FAQ.Debian + gzip -f9 debian/tmp/usr/doc/$(p)/* + cp debian/copyright debian/tmp/usr/doc/$(p) + cp debian/libc/* debian/tmp/DEBIAN + if [ -f debian/shlibs.$(arch) ] ; then \ + cp debian/shlibs.$(arch) debian/tmp/DEBIAN/shlibs ; \ + else \ + cp debian/shlibs debian/tmp/DEBIAN ; \ + fi + chmod +x debian/tmp/DEBIAN/p* + dpkg-gencontrol -p$(p) + chmod -R g-w debian/tmp + chown -R root.root debian/tmp + dpkg --build debian/tmp .. + +binary-dev: checkroot pre-binary + # build the $(p)-dev binary + -rm -rf debian/tmp + install -d debian/tmp/usr/bin \ + debian/tmp/usr/lib \ + debian/tmp/usr/include \ + debian/tmp/usr/doc \ + debian/tmp/DEBIAN + cp -a debian/hold/usr/bin/{gencat,getconf,makedb} debian/tmp/usr/bin + strip debian/tmp/usr/bin/* + cp -a debian/hold/usr/bin/glibcbug debian/tmp/usr/bin + cp -a debian/hold/usr/lib/*.{o,a} debian/tmp/usr/lib + rm -f debian/tmp/usr/lib/lib*_p.a + strip -g debian/tmp/usr/lib/*.{o,a} + cp -a debian/hold/usr/lib/lib*.so debian/tmp/usr/lib + cp -a debian/hold/usr/include/* debian/tmp/usr/include + ln -sf /usr/src/linux-${KVERSION}/include/linux \ + debian/tmp/usr/include/linux + ln -sf /usr/src/linux-${KVERSION}/include/asm \ + debian/tmp/usr/include/asm + ln -sf $(p) debian/tmp/usr/doc/$(p)-dev + cp debian/libc-dev/* debian/tmp/DEBIAN + chmod +x debian/tmp/DEBIAN/p* + dpkg-gencontrol -p$(p)-dev + chmod -R g-w debian/tmp + chown -R root.root debian/tmp + dpkg --build debian/tmp .. + +binary-dbg: checkroot pre-binary + # build the $(p)-dbg binary + -rm -rf debian/tmp + install -d debian/tmp/usr/lib \ + debian/tmp/usr/doc \ + debian/tmp/DEBIAN + for f in `find debian/hold/usr/lib -name '*.a' ! -name '*_p.a'` ; do \ + cp $$f debian/tmp/usr/lib/`basename $$f .a`_g.a ; \ + done + cp -a debian/hold/usr/lib/*_p.a debian/tmp/usr/lib + ln -sf $(p) debian/tmp/usr/doc/$(p)-dbg + #cp debian/libc-dbg/* debian/tmp/DEBIAN + #chmod +x debian/tmp/DEBIAN/p* + dpkg-gencontrol -p$(p)-dbg + chmod -R g-w debian/tmp + chown -R root.root debian/tmp + dpkg --build debian/tmp .. + +binary-pic: checkroot pre-binary + # build the $(p)-pic binary + -rm -rf debian/tmp + install -d debian/tmp/usr/lib \ + debian/tmp/usr/doc \ + debian/tmp/DEBIAN + cp builddir/libc_pic.a debian/tmp/usr/lib + ln -sf $(p) debian/tmp/usr/doc/$(p)-pic + dpkg-gencontrol -p$(p)-pic + chmod -R g-w debian/tmp + chown -R root.root debian/tmp + dpkg --build debian/tmp .. + +binary-doc: checkroot pre-binary + # build the $(p)-doc binary + -rm -rf debian/tmp + install -d debian/tmp/usr/info \ + debian/tmp/usr/man \ + debian/tmp/usr/doc \ + debian/tmp/DEBIAN + cp -a debian/hold/usr/info/* debian/tmp/usr/info + rm -f debian/tmp/usr/info/dir + gzip -f9 debian/tmp/usr/info/* + cp -a debian/hold/usr/man/* debian/tmp/usr/man + gzip -f9 debian/tmp/usr/man/*/* + ln -sf $(p) debian/tmp/usr/doc/$(p)-doc + cp debian/libc-doc/* debian/tmp/DEBIAN + chmod +x debian/tmp/DEBIAN/p* + dpkg-gencontrol -p$(p)-doc + chmod -R g-w debian/tmp + chown -R root.root debian/tmp + dpkg --build debian/tmp .. + +binary-locales: checkroot pre-binary + # build the locales binary + -rm -rf debian/tmp + install -d debian/tmp/usr/bin \ + debian/tmp/usr/share \ + debian/tmp/usr/doc \ + debian/tmp/DEBIAN + cp -a debian/hold/usr/bin/{locale,localedef} debian/tmp/usr/bin + strip debian/tmp/usr/bin/* + cp -a debian/hold/usr/share/{i18n,locale} debian/tmp/usr/share + bash debian/do_locales $(LOADER) + ln -s $(p) debian/tmp/usr/doc/locales + #cp debian/locales/* debian/tmp/DEBIAN + #chmod +x debian/tmp/DEBIAN/p* + dpkg-gencontrol -plocales + chmod -R g-w debian/tmp + chown -R root.root debian/tmp + dpkg --build debian/tmp .. + +binary-timezones: checkroot pre-binary + # build the timezones binary + -rm -rf debian/tmp + install -d debian/tmp/etc \ + debian/tmp/usr/bin \ + debian/tmp/usr/sbin \ + debian/tmp/usr/share \ + debian/tmp/usr/doc \ + debian/tmp/DEBIAN + echo Factory > debian/tmp/etc/timezone + cp -a debian/hold/usr/bin/tzselect debian/tmp/usr/bin + cp -a debian/hold/usr/sbin/{zdump,zic} debian/tmp/usr/sbin + strip debian/tmp/usr/sbin/* + cp -a debian/tzconfig debian/tmp/usr/sbin + chmod +x debian/tmp/usr/sbin/tzconfig + cp -a debian/hold/usr/share/zoneinfo debian/tmp/usr/share + cp debian/timezones/* debian/tmp/DEBIAN + chmod +x debian/tmp/DEBIAN/p* + ln -s $(p) debian/tmp/usr/doc/timezones + dpkg-gencontrol -ptimezones + chmod -R g-w debian/tmp + chown -R root.root debian/tmp + dpkg --build debian/tmp .. + +checkroot: + $(checkdir) + test root = "`whoami`" + +.PHONY: binary binary-arch binary-indep clean checkroot + +# Local Variables: +# mode: makefile +# end: diff -durpN glibc-2.0.5c/debian/shlibs glibc-2.0.6/debian/shlibs --- glibc-2.0.5c/debian/shlibs Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/shlibs Sun Dec 28 16:09:08 1997 @@ -0,0 +1,17 @@ +/lib/ld-linux 2 libc6 +ld-linux 2 libc6 +libBrokenLocale 1 libc6 +libc 6 libc6 +libcrypt 1 libc6 +libdb 2 libc6 +libdl 2 libc6 +libm 6 libc6 +libnsl 1 libc6 +libnss_compat 1 libc6 +libnss_db 1 libc6 +libnss_dns 1 libc6 +libnss_files 1 libc6 +libnss_nis 1 libc6 +libpthread 0 libc6 +libresolv 2 libc6 +libutil 1 libc6 diff -durpN glibc-2.0.5c/debian/shlibs.alpha glibc-2.0.6/debian/shlibs.alpha --- glibc-2.0.5c/debian/shlibs.alpha Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/shlibs.alpha Sun Dec 28 16:09:08 1997 @@ -0,0 +1,17 @@ +/lib/ld-linux 2 libc6.1 +ld-linux 2 libc6.1 +libBrokenLocale 1.1 libc6.1 +libc 6.1 libc6.1 +libcrypt 1.1 libc6.1 +libdb 2.1 libc6.1 +libdl 2.1 libc6.1 +libm 6.1 libc6.1 +libnsl 1.1 libc6.1 +libnss_compat 1.1 libc6.1 +libnss_db 1.1 libc6.1 +libnss_dns 1.1 libc6.1 +libnss_files 1.1 libc6.1 +libnss_nis 1.1 libc6.1 +libpthread 0 libc6.1 +libresolv 2.1 libc6.1 +libutil 1.1 libc6.1 diff -durpN glibc-2.0.5c/debian/shlibs.m68k glibc-2.0.6/debian/shlibs.m68k --- glibc-2.0.5c/debian/shlibs.m68k Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/shlibs.m68k Sun Dec 28 16:09:08 1997 @@ -0,0 +1,17 @@ +/lib/ld 1 libc6 +ld 1 libc6 +libBrokenLocale 1 libc6 +libc 6 libc6 +libcrypt 1 libc6 +libdb 2 libc6 +libdl 2 libc6 +libm 6 libc6 +libnsl 1 libc6 +libnss_compat 1 libc6 +libnss_db 1 libc6 +libnss_dns 1 libc6 +libnss_files 1 libc6 +libnss_nis 1 libc6 +libpthread 0 libc6 +libresolv 2 libc6 +libutil 1 libc6 diff -durpN glibc-2.0.5c/debian/substvars glibc-2.0.6/debian/substvars --- glibc-2.0.5c/debian/substvars Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/substvars Sun Dec 28 16:09:08 1997 @@ -0,0 +1,3 @@ +i386:libc6=ldso (>= 1.8.10-1) +kversion=2.0.32 +krevision=2 diff -durpN glibc-2.0.5c/debian/timezones/conffiles glibc-2.0.6/debian/timezones/conffiles --- glibc-2.0.5c/debian/timezones/conffiles Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/timezones/conffiles Sun Dec 28 16:09:08 1997 @@ -0,0 +1 @@ +/etc/timezone diff -durpN glibc-2.0.5c/debian/timezones/postinst glibc-2.0.6/debian/timezones/postinst --- glibc-2.0.5c/debian/timezones/postinst Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/timezones/postinst Sun Dec 28 16:09:08 1997 @@ -0,0 +1,32 @@ +#!/bin/sh + +set -e + +trap "echo ; \ + echo Received signal... exiting. ; \ + echo ; \ + echo To set your time zone at a later date, use dpkg --configure. ; \ + exit 1" 1 2 3 15 + +if [ -f /etc/timezone ]; then + timezone=`cat /etc/timezone` + if [ "$timezone" = "Factory" ]; then + rm /etc/timezone + fi +fi + +if [ ! -f /etc/timezone ] ; then + echo "You don't have a default time zone" + echo "Running /usr/sbin/tzconfig..." + /usr/sbin/tzconfig -auto +fi + +timezone=`cat /etc/timezone` +echo "Your default time zone is $timezone." +echo "Run /usr/sbin/tzconfig to change it" +rm -f /etc/localtime +cp /usr/share/zoneinfo/$timezone /etc/localtime +rm -f /usr/share/zoneinfo/localtime +ln -s /etc/localtime /usr/share/zoneinfo/localtime + +exit 0 diff -durpN glibc-2.0.5c/debian/timezones/postrm glibc-2.0.6/debian/timezones/postrm --- glibc-2.0.5c/debian/timezones/postrm Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/timezones/postrm Sun Dec 28 16:09:08 1997 @@ -0,0 +1,6 @@ +#!/bin/sh + +if [ "x$1" = "xpurge" -o -L /etc/localtime ]; then + rm -f /etc/localtime /usr/share/zoneinfo/localtime +fi + diff -durpN glibc-2.0.5c/debian/tzconfig glibc-2.0.6/debian/tzconfig --- glibc-2.0.5c/debian/tzconfig Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/debian/tzconfig Sun Dec 28 16:09:08 1997 @@ -0,0 +1,91 @@ +#!/bin/sh + +show_continents() { + +cat < $TIMEZONES ) +valid=no +while [ $valid = no ]; do + show_continents + echo -n "Number: " ; read area + case $area in + 1) continent=Africa ; valid=yes ;; + 2) continent=America ; valid=yes ;; + 3) continent=US ; valid=yes ;; + 4) continent=Canada ; valid=yes ;; + 5) continent=Asia ; valid=yes ;; + 6) continent=Atlantic ; valid=yes ;; + 7) continent=Australia ; valid=yes ;; + 8) continent=Europe ; valid=yes ;; + 9) continent=Indian ; valid=yes ;; + 10) continent=Pacific ; valid=yes ;; + 11) continent=SystemV ; valid=yes ;; + 12) continent=Etc ; valid=yes ;; + esac +done + +if [ -x /usr/bin/fmt ]; then fmt_bin=/usr/bin/fmt +else fmt_bin=/bin/more ; fi + +valid=no +name="" + +while [ $valid = no ]; do + if [ -n "$name" ]; then + number=`grep -i -c "^$continent/$name" $TIMEZONES` + if [ $number -eq 1 ]; then + name=`grep -i "^$continent/$name" $TIMEZONES` + echo "Your default time zone is set to $name" + valid=yes + break + fi + fi + echo + grep -i "^$continent/$name" $TIMEZONES | cut -d/ -f2- | $fmt_bin + echo + echo "Please enter the name of one of these cities or zones" + echo "You just need to type enough letters to resolve ambiguities" + echo "Press Enter to view all of them again" + echo -n "Name: [$name] " ; read name +done + +echo $name > /etc/timezone +rm -f /etc/localtime ; ln -s /usr/share/zoneinfo/$name /etc/localtime +rm -f $TIMEZONES diff -durpN glibc-2.0.5c/dirent/scandir.c glibc-2.0.6/dirent/scandir.c --- glibc-2.0.5c/dirent/scandir.c Tue Dec 17 22:22:36 1996 +++ glibc-2.0.6/dirent/scandir.c Fri Nov 14 20:28:12 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1992, 93, 94, 95, 96, 97 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 @@ -45,6 +45,9 @@ scandir (dir, namelist, select, cmp) if (select == NULL || (*select) (d)) { size_t dsize; + + /* Ignore errors from select or readdir */ + __set_errno (0); if (i == vsize) { diff -durpN glibc-2.0.5c/elf/rtld.c glibc-2.0.6/elf/rtld.c --- glibc-2.0.5c/elf/rtld.c Tue Jan 21 01:08:56 1997 +++ glibc-2.0.6/elf/rtld.c Thu Dec 11 15:40:04 1997 @@ -358,8 +358,10 @@ of this helper program; chances are you while ((p = strsep (&list, " ")) != NULL) if (! __libc_enable_secure || strchr (p, '/') == NULL) { - (void) _dl_map_object (NULL, p, lt_library, 0); - ++npreloads; + struct link_map *new_map = _dl_map_object (NULL, p, lt_library, 0); + if (new_map->l_opencount == 1) + /* It is no duplicate. */ + ++npreloads; } } @@ -413,15 +415,21 @@ of this helper program; chances are you runp = file; while ((p = strsep (&runp, ": \t\n")) != NULL) { - (void) _dl_map_object (NULL, p, lt_library, 0); - ++npreloads; + struct link_map *new_map = _dl_map_object (NULL, p, + lt_library, 0); + if (new_map->l_opencount == 1) + /* It is no duplicate. */ + ++npreloads; } } if (problem != NULL) { char *p = strndupa (problem, file_size - (problem - file)); - (void) _dl_map_object (NULL, p, lt_library, 0); + struct link_map *new_map = _dl_map_object (NULL, p, lt_library, 0); + if (new_map->l_opencount == 1) + /* It is no duplicate. */ + ++npreloads; } /* We don't need the file anymore. */ diff -durpN glibc-2.0.5c/glibcbug.in glibc-2.0.6/glibcbug.in --- glibc-2.0.5c/glibcbug.in Tue Feb 25 20:04:44 1997 +++ glibc-2.0.6/glibcbug.in Thu Dec 11 01:34:18 1997 @@ -6,8 +6,15 @@ # these variables are filled in by configure # VERSION="@VERSION@" -BUGGLIBC="bugs@gnu.ai.mit.edu" +BUGGLIBC="bugs@gnu.org" ADDONS="@subdirs@" +HOST="@host@" +CC='@CC@' +CFLAGS="@CFLAGS@" +BUILD_SHARED="@shared@" +BUILD_PROFILE="@profile@" +BUILD_OMITFP="@omitfp@" +STDIO="@stdio@" PATH=/bin:/usr/bin:/usr/local/bin:$PATH export PATH @@ -119,10 +126,17 @@ ${ORGANIZATION- $ORGANIZATION_C} >Release: libc-${VERSION} >Environment: $ENVIRONMENT_C +`[ -n "$HOST" ] && echo Host type: $HOST` `[ -n "$SYSTEM" ] && echo System: $SYSTEM` `[ -n "$ARCH" ] && echo Architecture: $ARCH` `[ -n "$MACHINE" ] && echo Machine: $MACHINE` `[ -n "$ADDONS" ] && echo Addons: $ADDONS` +`[ -n "$CFLAGS" ] && echo Build CFLAGS: $CFLAGS` +`[ -n "$CC" ] && echo Build CC: $CC` +`[ -n "$BUILD_SHARED" ] && echo Build shared: $BUILD_SHARED` +`[ -n "$BUILD_PROFILE" ] && echo Build profile: $BUILD_PROFILE` +`[ -n "$BUILD_OMITFP" ] && echo Build omitfp: $BUILD_OMITFP` +`[ -n "$STDIO" ] && echo Stdio: $STDIO` >Description: $DESCRIPTION_C diff -durpN glibc-2.0.5c/grp/initgroups.c glibc-2.0.6/grp/initgroups.c --- glibc-2.0.5c/grp/initgroups.c Sun Dec 1 22:59:04 1996 +++ glibc-2.0.6/grp/initgroups.c Wed Dec 3 17:11:31 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1989, 1991, 1993, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1989, 1991, 1993, 1996, 1997 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 @@ -17,10 +17,11 @@ Boston, MA 02111-1307, USA. */ #include -#include -#include +#include #include #include +#include +#include #include @@ -32,7 +33,7 @@ initgroups (user, group) const char *user; gid_t group; { -#if defined (NGROUPS_MAX) && NGROUPS_MAX == 0 +#if defined NGROUPS_MAX && NGROUPS_MAX == 0 /* No extra groups allowed. */ return 0; @@ -42,9 +43,10 @@ initgroups (user, group) struct group grpbuf, *g; size_t buflen = sysconf (_SC_GETPW_R_SIZE_MAX); char *tmpbuf; - register size_t n; + size_t n; size_t ngroups; gid_t *groups; + int status; #ifdef NGROUPS_MAX # define limit NGROUPS_MAX @@ -67,32 +69,44 @@ initgroups (user, group) n = 0; groups[n++] = group; - while (__getgrent_r (&grpbuf, tmpbuf, buflen, &g) >= 0) - if (g->gr_gid != group) - { - register char **m; + do + { + while ((status = __getgrent_r (&grpbuf, tmpbuf, buflen, &g)) != 0 + && errno == ERANGE) + { + buflen *= 2; + tmpbuf = __alloca (buflen); + } - for (m = g->gr_mem; *m != NULL; ++m) - if (strcmp (*m, user) == 0) - { - /* Matches user. Insert this group. */ - if (n == ngroups && limit <= 0) - { - /* Need a bigger buffer. */ - groups = memcpy (__alloca (ngroups * 2 * sizeof *groups), - groups, ngroups * sizeof *groups); - ngroups *= 2; - } + if (status == 0 && g->gr_gid != group) + { + char **m; - groups[n++] = g->gr_gid; + for (m = g->gr_mem; *m != NULL; ++m) + if (strcmp (*m, user) == 0) + { + /* Matches user. Insert this group. */ + if (n == ngroups && limit <= 0) + { + /* Need a bigger buffer. */ + gid_t *newgrp; + newgrp = __alloca (ngroups * 2 * sizeof *groups); + groups = memcpy (newgrp, groups, ngroups * sizeof *groups); + ngroups *= 2; + } - if (n == limit) - /* Can't take any more groups; stop searching. */ - goto done; + groups[n++] = g->gr_gid; + + if (n == limit) + /* Can't take any more groups; stop searching. */ + goto done; + + break; + } + } + } + while (status == 0); - break; - } - } done: endgrent (); diff -durpN glibc-2.0.5c/inet/arpa/inet.h glibc-2.0.6/inet/arpa/inet.h --- glibc-2.0.5c/inet/arpa/inet.h Thu Apr 17 16:12:26 1997 +++ glibc-2.0.6/inet/arpa/inet.h Thu Dec 11 01:35:21 1997 @@ -28,7 +28,7 @@ __BEGIN_DECLS /* Convert Internet host address from numbers-and-dots notation in CP into binary data in network byte order. */ -extern unsigned long int inet_addr __P ((__const char *__cp)); +extern u_int32_t inet_addr __P ((__const char *__cp)); /* Convert Internet host address from numbers-and-dots notation in CP into binary data and store the result in the structure INP. */ @@ -43,7 +43,7 @@ extern struct in_addr inet_makeaddr __P /* Format a network number NET into presentation format and place result in buffer starting at BUF with length of LEN bytes. */ -extern char *inet_neta __P ((u_long __net, char *__buf, size_t __len)); +extern char *inet_neta __P ((u_int32_t __net, char *__buf, size_t __len)); /* Return network number part of the Internet address IN. */ extern u_int32_t inet_netof __P ((struct in_addr __in)); diff -durpN glibc-2.0.5c/intl/loadmsgcat.c glibc-2.0.6/intl/loadmsgcat.c --- glibc-2.0.5c/intl/loadmsgcat.c Sat Nov 16 22:14:56 1996 +++ glibc-2.0.6/intl/loadmsgcat.c Thu Nov 13 09:29:55 1997 @@ -1,5 +1,5 @@ /* loadmsgcat.c -- load needed message catalogs - Copyright (C) 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Its master source is NOT part of the C library, however. The master source lives in /gd/gnu/lib. @@ -94,7 +94,7 @@ _nl_load_domain (domain_file) /* We must know about the size of the file. */ if (fstat (fd, &st) != 0 - && st.st_size < (off_t) sizeof (struct mo_file_header)) + || st.st_size < (off_t) sizeof (struct mo_file_header)) { /* Something went wrong. */ close (fd); diff -durpN glibc-2.0.5c/intl/localealias.c glibc-2.0.6/intl/localealias.c --- glibc-2.0.5c/intl/localealias.c Thu Dec 19 20:32:10 1996 +++ glibc-2.0.6/intl/localealias.c Sun Nov 2 18:23:06 1997 @@ -1,5 +1,5 @@ /* localealias.c -- handle aliases for locale names - Copyright (C) 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Its master source is NOT part of the C library, however. The master source lives in /gd/gnu/lib. @@ -229,6 +229,19 @@ read_alias_file (fname, fname_len) /* EOF reached. */ break; + /* Possibly not the whole line fits into the buffer. Ignore + the rest of the line. */ + if (strchr (buf, '\n') == NULL) + { + char altbuf[BUFSIZ]; + do + if (fgets (altbuf, sizeof altbuf, fp) == NULL) + /* Make sure the inner loop will be left. The outer loop + will exit at the `feof' test. */ + break; + while (strchr (altbuf, '\n') == NULL); + } + cp = buf; /* Ignore leading white space. */ while (isspace (cp[0])) @@ -295,17 +308,6 @@ read_alias_file (fname, fname_len) ++nmap; ++added; } - } - - /* Possibly not the whole line fits into the buffer. Ignore - the rest of the line. */ - while (strchr (cp, '\n') == NULL) - { - cp = buf; - if (fgets (buf, BUFSIZ, fp) == NULL) - /* Make sure the inner loop will be left. The outer loop - will exit at the `feof' test. */ - *cp = '\n'; } } diff -durpN glibc-2.0.5c/libio/stdio.h glibc-2.0.6/libio/stdio.h --- glibc-2.0.5c/libio/stdio.h Wed Aug 20 21:56:37 1997 +++ glibc-2.0.6/libio/stdio.h Fri Nov 14 20:30:23 1997 @@ -176,7 +176,7 @@ extern int obstack_printf __P ((struct o ...)); #endif -#if !defined(__STRICT_ANSI__) || defined(_POSIX_SOURCE) +#if !defined(__STRICT_ANSI__) || defined(__USE_POSIX) extern FILE *fdopen __P ((int, __const char *)); extern int fileno __P ((FILE*)); extern FILE* popen __P ((__const char*, __const char*)); diff -durpN glibc-2.0.5c/limits.h glibc-2.0.6/limits.h --- glibc-2.0.5c/limits.h Tue Nov 5 23:21:51 1996 +++ glibc-2.0.6/limits.h Tue Dec 23 20:43:00 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1996, 1997 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 @@ -43,6 +43,12 @@ #define _LIBC_LIMITS_H_ /* This tells it not to look for another. */ #endif #ifndef _GCC_LIMITS_H_ /* This is what GCC's file defines. */ + + /* Maximum length of any multibyte character in any locale. We + define this here to prevent the value from the gcc value (which is + one) to take effect. */ + #define MB_LEN_MAX 6 + #include_next #endif diff -durpN glibc-2.0.5c/locale/C-ctype.c glibc-2.0.6/locale/C-ctype.c --- glibc-2.0.5c/locale/C-ctype.c Thu Dec 19 20:32:21 1996 +++ glibc-2.0.6/locale/C-ctype.c Tue Dec 9 17:15:18 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -95,92 +95,92 @@ const char _nl_C_LC_CTYPE_class[768] = /* 0xfa */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" ; const char _nl_C_LC_CTYPE_class32[1024] = - /* 0x00 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x03 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x06 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x09 */ "\000\000\003\040" "\000\000\002\040" "\000\000\002\040" - /* 0x0c */ "\000\000\002\040" "\000\000\002\040" "\000\000\002\000" - /* 0x0f */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x12 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x15 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x18 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x1b */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x1e */ "\000\000\002\000" "\000\000\002\000" "\000\000\001\140" - /* 0x21 */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" - /* 0x24 */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" - /* 0x27 */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" - /* 0x2a */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" - /* 0x2d */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" - /* 0x30 */ "\000\000\010\330" "\000\000\010\330" "\000\000\010\330" - /* 0x33 */ "\000\000\010\330" "\000\000\010\330" "\000\000\010\330" - /* 0x36 */ "\000\000\010\330" "\000\000\010\330" "\000\000\010\330" - /* 0x39 */ "\000\000\010\330" "\000\000\004\300" "\000\000\004\300" - /* 0x3c */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" - /* 0x3f */ "\000\000\004\300" "\000\000\004\300" "\000\000\010\325" - /* 0x42 */ "\000\000\010\325" "\000\000\010\325" "\000\000\010\325" - /* 0x45 */ "\000\000\010\325" "\000\000\010\325" "\000\000\010\305" - /* 0x48 */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305" - /* 0x4b */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305" - /* 0x4e */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305" - /* 0x51 */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305" - /* 0x54 */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305" - /* 0x57 */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305" - /* 0x5a */ "\000\000\010\305" "\000\000\004\300" "\000\000\004\300" - /* 0x5d */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" - /* 0x60 */ "\000\000\004\300" "\000\000\010\326" "\000\000\010\326" - /* 0x63 */ "\000\000\010\326" "\000\000\010\326" "\000\000\010\326" - /* 0x66 */ "\000\000\010\326" "\000\000\010\306" "\000\000\010\306" - /* 0x69 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306" - /* 0x6c */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306" - /* 0x6f */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306" - /* 0x72 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306" - /* 0x75 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306" - /* 0x78 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306" - /* 0x7b */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" - /* 0x7e */ "\000\000\004\300" "\000\000\002\000" "\000\000\002\000" - /* 0x81 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x84 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x87 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x8a */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x8d */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x90 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x93 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x96 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x99 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x9c */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0x9f */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xa2 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xa5 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xa8 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xab */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xae */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xb1 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xb4 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xb7 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xba */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xbd */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xc0 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xc3 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xc6 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xc9 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xcc */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xcf */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xd2 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xd5 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xd8 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xdb */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xde */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xe1 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xe4 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xe7 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xea */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xed */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xf0 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xf3 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xf6 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xf9 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xfc */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" - /* 0xff */ "\000\000\002\000" + /* 0x00 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x03 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x06 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x09 */ "\003\040\000\000" "\002\040\000\000" "\002\040\000\000" + /* 0x0c */ "\002\040\000\000" "\002\040\000\000" "\002\000\000\000" + /* 0x0f */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x12 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x15 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x18 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x1b */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x1e */ "\002\000\000\000" "\002\000\000\000" "\001\140\000\000" + /* 0x21 */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000" + /* 0x24 */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000" + /* 0x27 */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000" + /* 0x2a */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000" + /* 0x2d */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000" + /* 0x30 */ "\010\330\000\000" "\010\330\000\000" "\010\330\000\000" + /* 0x33 */ "\010\330\000\000" "\010\330\000\000" "\010\330\000\000" + /* 0x36 */ "\010\330\000\000" "\010\330\000\000" "\010\330\000\000" + /* 0x39 */ "\010\330\000\000" "\004\300\000\000" "\004\300\000\000" + /* 0x3c */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000" + /* 0x3f */ "\004\300\000\000" "\004\300\000\000" "\010\325\000\000" + /* 0x42 */ "\010\325\000\000" "\010\325\000\000" "\010\325\000\000" + /* 0x45 */ "\010\325\000\000" "\010\325\000\000" "\010\305\000\000" + /* 0x48 */ "\010\305\000\000" "\010\305\000\000" "\010\305\000\000" + /* 0x4b */ "\010\305\000\000" "\010\305\000\000" "\010\305\000\000" + /* 0x4e */ "\010\305\000\000" "\010\305\000\000" "\010\305\000\000" + /* 0x51 */ "\010\305\000\000" "\010\305\000\000" "\010\305\000\000" + /* 0x54 */ "\010\305\000\000" "\010\305\000\000" "\010\305\000\000" + /* 0x57 */ "\010\305\000\000" "\010\305\000\000" "\010\305\000\000" + /* 0x5a */ "\010\305\000\000" "\004\300\000\000" "\004\300\000\000" + /* 0x5d */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000" + /* 0x60 */ "\004\300\000\000" "\010\326\000\000" "\010\326\000\000" + /* 0x63 */ "\010\326\000\000" "\010\326\000\000" "\010\326\000\000" + /* 0x66 */ "\010\326\000\000" "\010\306\000\000" "\010\306\000\000" + /* 0x69 */ "\010\306\000\000" "\010\306\000\000" "\010\306\000\000" + /* 0x6c */ "\010\306\000\000" "\010\306\000\000" "\010\306\000\000" + /* 0x6f */ "\010\306\000\000" "\010\306\000\000" "\010\306\000\000" + /* 0x72 */ "\010\306\000\000" "\010\306\000\000" "\010\306\000\000" + /* 0x75 */ "\010\306\000\000" "\010\306\000\000" "\010\306\000\000" + /* 0x78 */ "\010\306\000\000" "\010\306\000\000" "\010\306\000\000" + /* 0x7b */ "\004\300\000\000" "\004\300\000\000" "\004\300\000\000" + /* 0x7e */ "\004\300\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x81 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x84 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x87 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x8a */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x8d */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x90 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x93 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x96 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x99 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x9c */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0x9f */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xa2 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xa5 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xa8 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xab */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xae */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xb1 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xb4 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xb7 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xba */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xbd */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xc0 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xc3 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xc6 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xc9 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xcc */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xcf */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xd2 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xd5 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xd8 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xdb */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xde */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xe1 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xe4 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xe7 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xea */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xed */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xf0 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xf3 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xf6 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xf9 */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xfc */ "\002\000\000\000" "\002\000\000\000" "\002\000\000\000" + /* 0xff */ "\002\000\000\000" ; const u_int32_t _nl_C_LC_CTYPE_toupper[384] = { diff -durpN glibc-2.0.5c/locale/Makefile glibc-2.0.6/locale/Makefile --- glibc-2.0.5c/locale/Makefile Mon Apr 28 13:52:32 1997 +++ glibc-2.0.6/locale/Makefile Wed Nov 19 19:04:33 1997 @@ -78,8 +78,8 @@ CPPFLAGS := -DLOCALE_PATH='$(localepath) -DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \ -Iprograms $(CPPFLAGS) -CFLAGS-charmap.c = -Wno-write-strings -CFLAGS-locfile.c = -Wno-write-strings +CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts +CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts # Depend on libc.so so a DT_NEEDED is generated in the shared objects. # This ensures they will load libc.so for needed symbols if loaded by diff -durpN glibc-2.0.5c/locale/programs/ld-ctype.c glibc-2.0.6/locale/programs/ld-ctype.c --- glibc-2.0.5c/locale/programs/ld-ctype.c Wed Mar 5 11:48:33 1997 +++ glibc-2.0.6/locale/programs/ld-ctype.c Tue Dec 16 15:58:25 1997 @@ -56,6 +56,9 @@ void *xrealloc (void *__ptr, size_t __n) #define SWAPU16(w) \ ((((w) >> 8) & 0xff) | (((w) & 0xff) << 8)) +#define XSWAPU32(w) \ + ((((w) & 0xff00ff00) >> 8) | (((w) & 0xff00ff) << 8)) + /* To be compatible with former implementations we for now restrict the number of bits for character classes to 16. When compatibility @@ -63,7 +66,7 @@ void *xrealloc (void *__ptr, size_t __n) #define char_class_t u_int16_t #define CHAR_CLASS_TRANS SWAPU16 #define char_class32_t u_int32_t -#define CHAR_CLASS32_TRANS SWAPU32 +#define CHAR_CLASS32_TRANS XSWAPU32 /* The real definition of the struct for the LC_CTYPE locale. */ @@ -89,8 +92,8 @@ struct locale_ctype_t #define MAX_NR_CHARMAP 16 const char *mapnames[MAX_NR_CHARMAP]; u_int32_t *map_collection[MAX_NR_CHARMAP]; - u_int32_t map_collection_max[MAX_NR_CHARMAP]; - u_int32_t map_collection_act[MAX_NR_CHARMAP]; + size_t map_collection_max[MAX_NR_CHARMAP]; + size_t map_collection_act[MAX_NR_CHARMAP]; size_t map_collection_nr; size_t last_map_idx; unsigned int from_map_char; diff -durpN glibc-2.0.5c/locale/programs/locale.c glibc-2.0.6/locale/programs/locale.c --- glibc-2.0.5c/locale/programs/locale.c Mon Aug 4 19:03:38 1997 +++ glibc-2.0.6/locale/programs/locale.c Tue Dec 16 15:59:33 1997 @@ -597,7 +597,8 @@ show_info (const char *name) break; case word: { - unsigned int val = (unsigned int) nl_langinfo (item->item_id); + unsigned int val = + (unsigned int) (unsigned long int) nl_langinfo (item->item_id); printf ("%d", val); } break; diff -durpN glibc-2.0.5c/locale/setlocale.c glibc-2.0.6/locale/setlocale.c --- glibc-2.0.5c/locale/setlocale.c Mon Aug 4 18:07:32 1997 +++ glibc-2.0.6/locale/setlocale.c Fri Nov 7 10:10:18 1997 @@ -207,7 +207,7 @@ setname (int category, const char *name) if (_nl_current_names[category] == name) return; - if (_nl_current_names[category] != _nl_C_name) + if (category == LC_ALL && _nl_current_names[category] != _nl_C_name) free ((void *) _nl_current_names[category]); _nl_current_names[category] = name; diff -durpN glibc-2.0.5c/malloc/malloc.c glibc-2.0.6/malloc/malloc.c --- glibc-2.0.5c/malloc/malloc.c Mon Apr 14 10:31:49 1997 +++ glibc-2.0.6/malloc/malloc.c Thu Nov 20 10:51:03 1997 @@ -3637,6 +3637,9 @@ malloc_update_mallinfo(ar_ptr, mi) arena #endif INTERNAL_SIZE_T avail; + /* Initialize the memory. */ + memset (mi, '\0', sizeof (struct mallinfo)); + (void)mutex_lock(&ar_ptr->mutex); avail = chunksize(top(ar_ptr)); navail = ((long)(avail) >= (long)MINSIZE)? 1 : 0; diff -durpN glibc-2.0.5c/malloc/obstack.h glibc-2.0.6/malloc/obstack.h --- glibc-2.0.5c/malloc/obstack.h Tue May 20 15:50:10 1997 +++ glibc-2.0.6/malloc/obstack.h Thu Nov 13 09:31:42 1997 @@ -104,8 +104,8 @@ Summary: /* Don't do the contents of this file more than once. */ -#ifndef __OBSTACK_H__ -#define __OBSTACK_H__ +#ifndef _OBSTACK_H +#define _OBSTACK_H 1 #ifdef __cplusplus extern "C" { @@ -379,6 +379,11 @@ __extension__ \ _obstack_newchunk (__o, __len); \ (void) 0; }) +#define obstack_empty_p(OBSTACK) \ + __extension__ \ + ({ struct obstack *__o = (OBSTACK); \ + (__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); }) + #define obstack_grow(OBSTACK,where,length) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ @@ -492,6 +497,9 @@ __extension__ \ #define obstack_room(h) \ (unsigned) ((h)->chunk_limit - (h)->next_free) +#define obstack_empty_p(h) \ + ((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0) + /* Note that the call to _obstack_newchunk is enclosed in (..., 0) so that we can avoid having void expressions in the arms of the conditional expression. @@ -587,4 +595,4 @@ __extension__ \ } /* C++ */ #endif -#endif /* not __OBSTACK_H__ */ +#endif /* obstack.h */ diff -durpN glibc-2.0.5c/malloc/thread-m.h glibc-2.0.6/malloc/thread-m.h --- glibc-2.0.5c/malloc/thread-m.h Tue Mar 18 20:04:40 1997 +++ glibc-2.0.6/malloc/thread-m.h Sun Nov 16 20:02:01 1997 @@ -38,23 +38,18 @@ typedef pthread_t thread_id; typedef pthread_mutex_t mutex_t; /* thread specific data */ -typedef pthread_key_t tsd_key_t; +typedef void * tsd_key_t; #define MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER -static Void_t *malloc_key_data; - -#define tsd_key_create(key, destr) \ - if (__pthread_key_create != NULL) { \ - __pthread_key_create(key, destr); \ - } else { *(key) = (tsd_key_t) 0; } +#define tsd_key_create(key, destr) ( *(key) = NULL ) #define tsd_setspecific(key, data) \ - if (__pthread_setspecific != NULL) { \ - __pthread_setspecific(key, data); \ - } else { malloc_key_data = (Void_t *) data; } + if (__libc_internal_tsd_set != NULL) { \ + __libc_internal_tsd_set(_LIBC_TSD_KEY_MALLOC, data); \ + } else { (key) = (Void_t *) data; } #define tsd_getspecific(key, vptr) \ - (vptr = (__pthread_getspecific != NULL \ - ? __pthread_getspecific(key) : malloc_key_data)) + (vptr = (__libc_internal_tsd_get != NULL \ + ? __libc_internal_tsd_get(_LIBC_TSD_KEY_MALLOC) : (key))) #define mutex_init(m) \ (__pthread_mutex_init != NULL ? __pthread_mutex_init (m, NULL) : 0) diff -durpN glibc-2.0.5c/manual/errno.texi glibc-2.0.6/manual/errno.texi --- glibc-2.0.5c/manual/errno.texi Sat May 10 20:47:43 1997 +++ glibc-2.0.6/manual/errno.texi Fri Nov 14 20:12:43 1997 @@ -430,7 +430,7 @@ until some external condition makes it p connect (whatever the operation). You can use @code{select} to find out when the operation will be possible; @pxref{Waiting for I/O}. -@strong{Portability Note:} In older Unix many systems, this condition +@strong{Portability Note:} In many older Unix systems, this condition was indicated by @code{EWOULDBLOCK}, which was a distinct error code different from @code{EAGAIN}. To make your program portable, you should check for both codes and treat them the same. @@ -1184,6 +1184,18 @@ They are not yet documented.} @comment Linux???: Remote I/O error @deftypevr Macro int EREMOTEIO @comment errno ???/121 +@end deftypevr + +@comment errno.h +@comment Linux???: No medium found +@deftypevr Macro int ENOMEDIUM +@comment errno ???/??? +@end deftypevr + +@comment errno.h +@comment Linux???: Wrong medium type +@deftypevr Macro int EMEDIUMTYPE +@comment errno ???/??? @end deftypevr @node Error Messages, , Error Codes, Error Reporting diff -durpN glibc-2.0.5c/manual/filesys.texi glibc-2.0.6/manual/filesys.texi --- glibc-2.0.5c/manual/filesys.texi Sun Mar 16 19:57:48 1997 +++ glibc-2.0.6/manual/filesys.texi Mon Oct 27 20:51:08 1997 @@ -338,7 +338,7 @@ value. Use @code{readdir_r} when this i @comment dirent.h @comment GNU -@deftypefun int readdir_r (DIR *@var{dirstream}, struct *@var{entry}, struct **@var{result}) +@deftypefun int readdir_r (DIR *@var{dirstream}, struct dirent *@var{entry}, struct dirent **@var{result}) This function is the reentrant version of @code{readdir}. Like @code{readdir} it returns the next entry from the directory. But to prevent conflicts for simultaneously running threads the result is not diff -durpN glibc-2.0.5c/manual/maint.texi glibc-2.0.6/manual/maint.texi --- glibc-2.0.5c/manual/maint.texi Mon Aug 4 17:56:07 1997 +++ glibc-2.0.6/manual/maint.texi Fri Nov 14 20:41:48 1997 @@ -175,11 +175,15 @@ facilities, type @code{make check}. Thi with names like @file{@var{program}.out}. To format the @cite{GNU C Library Reference Manual} for printing, type -@w{@code{make dvi}}. +@w{@code{make dvi}}. You need a working TeX installation to do this. To install the library and its header files, and the Info files of the manual, type @code{make install}. This will build things if necessary, -before installing them.@refill +before installing them. If you want to install the files in a different +place than the one specified at configuration time you can specify a +value for the Makefile variable @code{install_root} on the command line. +This is useful to create chroot'ed environment or to prepare binary +releases.@refill @node Tools for Installation @appendixsubsec Recommended Tools to Install the GNU C Library @@ -196,7 +200,9 @@ build the GNU C library: You need the latest version of GNU @code{make}. Modifying the GNU C Library to work with other @code{make} programs would be so hard that we recommend you port GNU @code{make} instead. @strong{Really.} -We recommend version GNU @code{make} version 3.75 or later. +We recommend version GNU @code{make} version 3.75. Versions 3.76 and +3.76.1 are known to have bugs which only show up in big projects like +GNU @code{libc}. @item GCC 2.7.2 @@ -206,12 +212,27 @@ compiler. We recommend GCC version 2.7. have problems. @item -@code{binutils} 2.8 +@code{binutils} 2.8.1 Using the GNU @code{binutils} (assembler, linker, and related tools) is preferable when possible, and they are required to build an ELF shared C library. We recommend @code{binutils} version 2.8 or later; earlier versions are known to have problems or to not support all architectures. + +@item +@code{texinfo} 3.11 + +To correctly translate and install the Texinfo documentation you need +this version of the @code{texinfo} package. Former versions did not +understand all the tags used in the document and also the installation +mechanisms for the info files was not present or worked differently. + +On some Debian Linux based systems the used @code{install-info} program +works differently. Here you have to run make like this: + +@smallexample +make INSTALL_INFO=/path/to/GNU/install-info install +@end smallexample @end itemize @node Supported Configurations @@ -233,7 +254,6 @@ versions) used to run on the following c @smallexample alpha-dec-osf1 -alpha-@var{anything}-linuxecoff i@var{x}86-@var{anything}-bsd4.3 i@var{x}86-@var{anything}-isc2.2 i@var{x}86-@var{anything}-isc3.@var{n} diff -durpN glibc-2.0.5c/math/math_private.h glibc-2.0.6/math/math_private.h --- glibc-2.0.5c/math/math_private.h Fri Aug 30 20:11:53 1996 +++ glibc-2.0.6/math/math_private.h Wed Nov 19 18:02:10 1997 @@ -11,7 +11,7 @@ /* * from: @(#)fdlibm.h 5.1 93/09/24 - * $Id: math_private.h,v 1.4 1996/08/31 00:11:53 drepper Exp $ + * $Id: math_private.h,v 1.4.2.1 1997/11/19 23:02:10 drepper Exp $ */ #ifndef _MATH_PRIVATE_H_ @@ -269,7 +269,7 @@ extern double __ieee754_y1 __P((double)) extern double __ieee754_jn __P((int,double)); extern double __ieee754_yn __P((int,double)); extern double __ieee754_remainder __P((double,double)); -extern int __ieee754_rem_pio2 __P((double,double*)); +extern int32_t __ieee754_rem_pio2 __P((double,double*)); extern double __ieee754_scalb __P((double,double)); /* fdlibm kernel function */ @@ -277,7 +277,7 @@ extern double __kernel_standard __P((dou extern double __kernel_sin __P((double,double,int)); extern double __kernel_cos __P((double,double)); extern double __kernel_tan __P((double,double,int)); -extern int __kernel_rem_pio2 __P((double*,double*,int,int,int,const int*)); +extern int __kernel_rem_pio2 __P((double*,double*,int,int,int,const int32_t*)); /* ieee style elementary float functions */ @@ -306,14 +306,14 @@ extern float __ieee754_y1f __P((float)); extern float __ieee754_jnf __P((int,float)); extern float __ieee754_ynf __P((int,float)); extern float __ieee754_remainderf __P((float,float)); -extern int __ieee754_rem_pio2f __P((float,float*)); +extern int32_t __ieee754_rem_pio2f __P((float,float*)); extern float __ieee754_scalbf __P((float,float)); /* float versions of fdlibm kernel functions */ extern float __kernel_sinf __P((float,float,int)); extern float __kernel_cosf __P((float,float)); extern float __kernel_tanf __P((float,float,int)); -extern int __kernel_rem_pio2f __P((float*,float*,int,int,int,const int*)); +extern int __kernel_rem_pio2f __P((float*,float*,int,int,int,const int32_t*)); /* ieee style elementary long double functions */ @@ -342,14 +342,14 @@ extern long double __ieee754_y1l __P((lo extern long double __ieee754_jnl __P((int,long double)); extern long double __ieee754_ynl __P((int,long double)); extern long double __ieee754_remainderl __P((long double,long double)); -extern int __ieee754_rem_pio2l __P((long double,long double*)); +extern int32_t __ieee754_rem_pio2l __P((long double,long double*)); extern long double __ieee754_scalbl __P((long double,long double)); /* long double versions of fdlibm kernel functions */ extern long double __kernel_sinl __P((long double,long double,int)); extern long double __kernel_cosl __P((long double,long double)); extern long double __kernel_tanl __P((long double,long double,int)); -extern int __kernel_rem_pio2l __P((long double*,long double*,int,int, - int,const int*)); +extern int __kernel_rem_pio2l __P((long double*,long double*,int,int, + int,const int32_t*)); #endif /* _MATH_PRIVATE_H_ */ diff -durpN glibc-2.0.5c/math/mathcalls.h glibc-2.0.6/math/mathcalls.h --- glibc-2.0.5c/math/mathcalls.h Wed Mar 19 15:42:43 1997 +++ glibc-2.0.6/math/mathcalls.h Tue Nov 18 20:16:57 1997 @@ -152,14 +152,6 @@ __MATHDECL (int,isinf,, (_Mdouble_ __val /* Return nonzero if VALUE is finite and not NaN. */ __MATHDECL (int,finite,, (_Mdouble_ __value)); -/* Deal with an infinite or NaN result. - If ERROR is ERANGE, result is +Inf; - if ERROR is - ERANGE, result is -Inf; - otherwise result is NaN. - This will set `errno' to either ERANGE or EDOM, - and may return an infinity or NaN, or may do something else. */ -__MATHCALL (infnan,, (int __error)); - /* Return X with its signed changed to Y's. */ __MATHCALL (copysign,, (_Mdouble_ __x, _Mdouble_ __y)); @@ -168,15 +160,6 @@ __MATHCALL (scalbn,, (_Mdouble_ __x, int /* Return the remainder of X/Y. */ __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y)); - -struct __MATH_PRECNAME(__cabs_complex,) -{ - _Mdouble_ x, y; -}; - -/* Return `sqrt(X*X + Y*Y)'. */ -__MATHCALL (cabs,, (struct __MATH_PRECNAME(__cabs_complex,))); - /* Return the fractional part of X after dividing out `ilogb (X)'. */ __MATHCALL (significand,, (_Mdouble_ __x)); diff -durpN glibc-2.0.5c/misc/efgcvt.c glibc-2.0.6/misc/efgcvt.c --- glibc-2.0.5c/misc/efgcvt.c Wed Jan 29 23:08:29 1997 +++ glibc-2.0.6/misc/efgcvt.c Thu Oct 30 00:04:18 1997 @@ -39,7 +39,8 @@ APPEND (FUNC_PREFIX, fcvt) (value, ndigi { static char buf[MAXDIG]; - (void) fcvt_r (value, ndigit, decpt, sign, buf, sizeof buf); + (void) APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, + buf, sizeof buf); return buf; } @@ -51,7 +52,8 @@ APPEND (FUNC_PREFIX, ecvt) (value, ndigi { static char buf[MAXDIG]; - (void) ecvt_r (value, ndigit, decpt, sign, buf, sizeof buf); + (void) APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign, + buf, sizeof buf); return buf; } diff -durpN glibc-2.0.5c/misc/efgcvt_r.c glibc-2.0.6/misc/efgcvt_r.c --- glibc-2.0.5c/misc/efgcvt_r.c Wed Jan 29 23:08:29 1997 +++ glibc-2.0.6/misc/efgcvt_r.c Tue Nov 18 20:21:34 1997 @@ -37,6 +37,9 @@ #define FLOOR APPEND(floor, FLOAT_NAME_EXT) #define FABS APPEND(fabs, FLOAT_NAME_EXT) #define LOG10 APPEND(log10, FLOAT_NAME_EXT) +#define EXP APPEND(exp, FLOAT_NAME_EXT) +#define ISINF APPEND(isinf, FLOAT_NAME_EXT) +#define ISNAN APPEND(isnan, FLOAT_NAME_EXT) int @@ -54,9 +57,15 @@ APPEND (FUNC_PREFIX, fcvt_r) (value, ndi return -1; } - *sign = value < 0.0; - if (*sign) - value = - value; + if (!ISINF (value) && !ISNAN (value)) + { + /* OK, the following is not entirely correct. -0.0 is not handled + correctly but glibc 2.0 does not have a portable function to + implement this test. */ + *sign = value < 0.0; + if (*sign) + value = -value; + } n = snprintf (buf, len, "%.*" FLOAT_FMT_FLAG "f", ndigit, value); if (n < 0) @@ -66,16 +75,29 @@ APPEND (FUNC_PREFIX, fcvt_r) (value, ndi while (i < n && isdigit (buf[i])) ++i; *decpt = i; - do - ++i; - while (! isdigit (buf[i])); - memmove (&buf[i - *decpt], buf, n - (i - *decpt)); + + if (i == 0) + { + /* Value is Inf or NaN. */ + *sign = 0; + return 0; + } + + if (i < n) + { + do + ++i; + while (i < n && !isdigit (buf[i])); + memmove (&buf[*decpt], &buf[i], n - i); + buf[n - (i - *decpt)] = 0; + } return 0; } #define weak_extern2(name) weak_extern (name) weak_extern2 (FLOOR) weak_extern2 (LOG10) weak_extern2 (FABS) +weak_extern2 (EXP) int APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign, buf, len) @@ -84,24 +106,55 @@ APPEND (FUNC_PREFIX, ecvt_r) (value, ndi char *buf; size_t len; { - FLOAT_TYPE (*log10_function) (FLOAT_TYPE) = &LOG10; + int exponent = 0; - if (log10_function) - { - /* Use the reasonable code if -lm is included. */ - ndigit -= (int) FLOOR (LOG10 (FABS (value))); - if (ndigit < 0) - ndigit = 0; - } - else + if (!ISNAN (value) && !ISINF (value) && value != 0.0) { - /* Slow code that doesn't require -lm functions. */ - FLOAT_TYPE d; - for (d = value < 0.0 ? - value : value; - ndigit > 0 && d >= 10.0; - d *= 0.1) - --ndigit; + FLOAT_TYPE (*log10_function) (FLOAT_TYPE) = &LOG10; + + if (log10_function) + { + /* Use the reasonable code if -lm is included. */ + FLOAT_TYPE dexponent; + dexponent = FLOOR (LOG10 (FABS (value))); + value *= EXP (dexponent * -M_LN10); + exponent = (int) dexponent; + } + else + { + /* Slow code that doesn't require -lm functions. */ + FLOAT_TYPE d; + if (value < 0.0) + d = -value; + else + d = value; + if (d < 1.0) + { + do + { + d *= 10.0; + exponent--; + } + while (d < 1.0); + } + else if (d >= 10.0) + { + do + { + d *= 0.1; + exponent++; + } + while (d >= 10.0); + } + if (value < 0.0) + value = -d; + else + value = d; + } } - return APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len); + if (APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit - 1, decpt, sign, buf, len)) + return -1; + *decpt += exponent; + return 0; } diff -durpN glibc-2.0.5c/misc/hsearch_r.c glibc-2.0.6/misc/hsearch_r.c --- glibc-2.0.5c/misc/hsearch_r.c Thu Dec 19 20:33:00 1996 +++ glibc-2.0.6/misc/hsearch_r.c Thu Nov 13 10:16:47 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc. Contributed by Ulrich Drepper This file is part of the GNU C Library. @@ -195,6 +195,10 @@ hsearch_r (item, action, retval, htab) idx = htab->size + idx - hval2; else idx -= hval2; + + /* If we visited all entries leave the loop unsuccessfully. */ + if (idx == hval) + break; /* If entry is found use it. */ if (htab->table[idx].used == hval diff -durpN glibc-2.0.5c/misc/regexp.h glibc-2.0.6/misc/regexp.h --- glibc-2.0.5c/misc/regexp.h Mon Aug 4 18:13:17 1997 +++ glibc-2.0.6/misc/regexp.h Sat Dec 20 17:45:24 1997 @@ -97,7 +97,7 @@ extern char *locs; This function cannot be defined in the libc itself since it depends on the macros. */ char * -compile (char *__instring, char *__expbuf, __const char *__endbuf, int __eof) +compile (char *instring, char *expbuf, __const char *endbuf, int eof) { char *__input_buffer = NULL; size_t __input_size = 0; @@ -117,19 +117,19 @@ compile (char *__instring, char *__expbu this really proofs to be wrong. */ const size_t __req = 8; #endif - __expbuf += __req; - __expbuf -= (__expbuf - ((char *) 0)) % __req; - if (__endbuf < __expbuf + sizeof (regex_t)) + expbuf += __req; + expbuf -= (expbuf - ((char *) 0)) % __req; + if (endbuf < expbuf + sizeof (regex_t)) { ERROR (50); } - __expr_ptr = (regex_t *) __expbuf; + __expr_ptr = (regex_t *) expbuf; /* The remaining space in the buffer can be used for the compiled pattern. */ - __expr_ptr->buffer = __expbuf + sizeof (regex_t); - __expr_ptr->allocated = __endbuf - (char *) __expr_ptr->buffer; + __expr_ptr->buffer = expbuf + sizeof (regex_t); + __expr_ptr->allocated = endbuf - (char *) __expr_ptr->buffer; - while ((__ch = (GETC ())) != __eof) + while ((__ch = (GETC ())) != eof) { if (__ch == '\0' || __ch == 'n') { diff -durpN glibc-2.0.5c/misc/sys/select.h glibc-2.0.6/misc/sys/select.h --- glibc-2.0.5c/misc/sys/select.h Mon Jan 6 17:05:26 1997 +++ glibc-2.0.6/misc/sys/select.h Fri Nov 14 20:27:37 1997 @@ -77,12 +77,14 @@ extern int select __P ((int __nfds, __fd /* Same as above only that the TIMEOUT value is given with higher resolution. This version should be used. */ +#ifdef __USE_POSIX extern int __pselect __P ((int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timespec *__timeout)); extern int pselect __P ((int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timespec *__timeout)); +#endif __END_DECLS diff -durpN glibc-2.0.5c/nis/nss_compat/compat-grp.c glibc-2.0.6/nis/nss_compat/compat-grp.c --- glibc-2.0.5c/nis/nss_compat/compat-grp.c Mon Aug 4 19:37:44 1997 +++ glibc-2.0.6/nis/nss_compat/compat-grp.c Thu Dec 11 11:45:11 1997 @@ -26,6 +26,7 @@ #include #include #include +#include /* Get the declaration of the parser function. */ #define ENTNAME grent @@ -33,7 +34,7 @@ #define EXTERN_PARSER #include "../../nss/nss_files/files-parse.c" -/* Structure for remembering -@netgroup and -user members ... */ +/* Structure for remembering -group members ... */ #define BLACKLIST_INITIAL_SIZE 512 #define BLACKLIST_INCREMENT 256 struct blacklist_t @@ -51,7 +52,7 @@ struct ent_t int oldkeylen; FILE *stream; struct blacklist_t blacklist; - }; +}; typedef struct ent_t ent_t; static ent_t ext_ent = {0, 0, NULL, 0, NULL, {NULL, 0, 0}}; @@ -77,9 +78,14 @@ internal_setgrent (ent_t *ent) ent->oldkeylen = 0; } - ent->blacklist.current = 0; if (ent->blacklist.data != NULL) - ent->blacklist.data[0] = '\0'; + { + ent->blacklist.current = 1; + ent->blacklist.data[0] = '|'; + ent->blacklist.data[1] = '\0'; + } + else + ent->blacklist.current = 0; if (ent->stream == NULL) { @@ -148,9 +154,14 @@ internal_endgrent (ent_t *ent) ent->oldkeylen = 0; } - ent->blacklist.current = 0; if (ent->blacklist.data != NULL) - ent->blacklist.data[0] = '\0'; + { + ent->blacklist.current = 1; + ent->blacklist.data[0] = '|'; + ent->blacklist.data[1] = '\0'; + } + else + ent->blacklist.current = 0; return NSS_STATUS_SUCCESS; } @@ -176,7 +187,7 @@ getgrent_next_nis (struct group *result, struct parser_data *data = (void *) buffer; char *domain; char *outkey, *outval; - int outkeylen, outvallen; + int outkeylen, outvallen, parse_res; char *p; if (yp_get_default_domain (&domain) != YPERR_SUCCESS) @@ -187,6 +198,10 @@ getgrent_next_nis (struct group *result, do { + char *save_oldkey; + int save_oldlen; + bool_t save_nis_first; + if (ent->nis_first) { if (yp_first (domain, "group.byname", &outkey, &outkeylen, @@ -195,7 +210,9 @@ getgrent_next_nis (struct group *result, ent->nis = 0; return NSS_STATUS_UNAVAIL; } - + save_oldkey = ent->oldkey; + save_oldlen = ent->oldkeylen; + save_nis_first = TRUE; ent->oldkey = outkey; ent->oldkeylen = outkeylen; ent->nis_first = FALSE; @@ -210,7 +227,9 @@ getgrent_next_nis (struct group *result, return NSS_STATUS_NOTFOUND; } - free (ent->oldkey); + save_oldkey = ent->oldkey; + save_oldlen = ent->oldkeylen; + save_nis_first = FALSE; ent->oldkey = outkey; ent->oldkeylen = outkeylen; } @@ -223,16 +242,65 @@ getgrent_next_nis (struct group *result, while (isspace (*p)) ++p; + + if ((parse_res = _nss_files_parse_grent (p, result, data, buflen)) == -1) + { + free (ent->oldkey); + ent->oldkey = save_oldkey; + ent->oldkeylen = save_oldlen; + ent->nis_first = save_nis_first; + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + else + { + if (!save_nis_first) + free (save_oldkey); + } + + if (parse_res && + in_blacklist (result->gr_name, strlen (result->gr_name), ent)) + parse_res = 0; /* if result->gr_name in blacklist,search next entry */ } - while (!_nss_files_parse_grent (p, result, data, buflen)); + while (!parse_res); - if (!in_blacklist (result->gr_name, strlen (result->gr_name), ent)) + return NSS_STATUS_SUCCESS; +} + +/* This function handle the +group entrys in /etc/group */ +static enum nss_status +getgrnam_plusgroup (const char *name, struct group *result, char *buffer, + size_t buflen) +{ + struct parser_data *data = (void *) buffer; + int parse_res; + char *domain, *outval, *p; + int outvallen; + + if (yp_get_default_domain (&domain) != YPERR_SUCCESS) + return NSS_STATUS_NOTFOUND; + + if (yp_match (domain, "group.byname", name, strlen (name), + &outval, &outvallen) != YPERR_SUCCESS) + return NSS_STATUS_NOTFOUND; + p = strncpy (buffer, outval, + buflen < (size_t) outvallen ? buflen : (size_t) outvallen); + free (outval); + while (isspace (*p)) + p++; + if ((parse_res = _nss_files_parse_grent (p, result, data, buflen)) == -1) + { + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + + if (parse_res) + /* We found the entry. */ return NSS_STATUS_SUCCESS; else - return NSS_STATUS_NOTFOUND; + return NSS_STATUS_RETURN; } - static enum nss_status getgrent_next_file (struct group *result, ent_t *ent, char *buffer, size_t buflen) @@ -240,13 +308,25 @@ getgrent_next_file (struct group *result struct parser_data *data = (void *) buffer; while (1) { + fpos_t pos; + int parse_res = 0; char *p; do { + fgetpos (ent->stream, &pos); p = fgets (buffer, buflen, ent->stream); if (p == NULL) - return NSS_STATUS_NOTFOUND; + { + if (feof (ent->stream)) + return NSS_STATUS_NOTFOUND; + else + { + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + } /* Terminate the line for any case. */ buffer[buflen - 1] = '\0'; @@ -255,11 +335,18 @@ getgrent_next_file (struct group *result while (isspace (*p)) ++p; } - /* Ignore empty and comment lines. */ - while (*p == '\0' || *p == '#' || + while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ /* Parse the line. If it is invalid, loop to get the next line of the file to parse. */ - !_nss_files_parse_grent (p, result, data, buflen)); + !(parse_res = _nss_files_parse_grent (p, result, data, buflen))); + + if (parse_res == -1) + { + /* The parser ran out of space. */ + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } if (result->gr_name[0] != '+' && result->gr_name[0] != '-') /* This is a real entry. */ @@ -277,27 +364,26 @@ getgrent_next_file (struct group *result if (result->gr_name[0] == '+' && result->gr_name[1] != '\0' && result->gr_name[1] != '@') { - char *domain; - char *outval; - int outvallen; - - if (yp_get_default_domain (&domain) != YPERR_SUCCESS) - /* XXX Should we regard this as an fatal error? I don't - think so. Just continue working. --drepper@gnu */ - continue; - - if (yp_match (domain, "group.byname", &result->gr_name[1], - strlen (result->gr_name) - 1, &outval, &outvallen) - != YPERR_SUCCESS) - continue; + enum nss_status status; - p = strncpy (buffer, outval, buflen); - while (isspace (*p)) - p++; - free (outval); - if (_nss_files_parse_grent (p, result, data, buflen)) - /* We found the entry. */ - break; + /* Store the group in the blacklist for the "+" at the end of + /etc/group */ + blacklist_store_name (&result->gr_name[1], ent); + status = getgrnam_plusgroup (&result->gr_name[1], result, buffer, + buflen); + if (status == NSS_STATUS_SUCCESS) /* We found the entry. */ + break; + else + if (status == NSS_STATUS_RETURN /* We couldn't parse the entry */ + || status == NSS_STATUS_NOTFOUND) /* No group in NIS */ + continue; + else + { + if (status == NSS_STATUS_TRYAGAIN) + /* The parser ran out of space. */ + fsetpos (ent->stream, &pos); + return status; + } } /* +:... */ @@ -319,7 +405,9 @@ internal_getgrent_r (struct group *gr, e size_t buflen) { if (ent->nis) - return getgrent_next_nis (gr, ent, buffer, buflen); + { + return getgrent_next_nis (gr, ent, buffer, buflen); + } else return getgrent_next_file (gr, ent, buffer, buflen); } @@ -343,6 +431,103 @@ _nss_compat_getgrent_r (struct group *gr return status; } +/* Searches in /etc/group and the NIS/NIS+ map for a special group */ +static enum nss_status +internal_getgrnam_r (const char *name, struct group *result, ent_t *ent, + char *buffer, size_t buflen) +{ + struct parser_data *data = (void *) buffer; + while (1) + { + fpos_t pos; + int parse_res = 0; + char *p; + + do + { + fgetpos (ent->stream, &pos); + p = fgets (buffer, buflen, ent->stream); + if (p == NULL) + { + if (feof (ent->stream)) + return NSS_STATUS_NOTFOUND; + else + { + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + } + + /* Terminate the line for any case. */ + buffer[buflen - 1] = '\0'; + + /* Skip leading blanks. */ + while (isspace (*p)) + ++p; + } + while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ + /* Parse the line. If it is invalid, loop to + get the next line of the file to parse. */ + !(parse_res = _nss_files_parse_grent (p, result, data, buflen))); + + if (parse_res == -1) + { + /* The parser ran out of space. */ + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + + /* This is a real entry. */ + if (result->gr_name[0] != '+' && result->gr_name[0] != '-') + { + if (strcmp (result->gr_name, name) == 0) + return NSS_STATUS_SUCCESS; + else + continue; + } + + /* -group */ + if (result->gr_name[0] == '-' && result->gr_name[1] != '\0') + { + if (strcmp (&result->gr_name[1], name) == 0) + return NSS_STATUS_NOTFOUND; + else + continue; + } + + /* +group */ + if (result->gr_name[0] == '+' && result->gr_name[1] != '\0') + { + if (strcmp (name, &result->gr_name[1]) == 0) + { + enum nss_status status; + + status = getgrnam_plusgroup (name, result, buffer, buflen); + if (status == NSS_STATUS_RETURN) + /* We couldn't parse the entry */ + continue; + else + return status; + } + } + /* +:... */ + if (result->gr_name[0] == '+' && result->gr_name[1] == '\0') + { + enum nss_status status; + + status = getgrnam_plusgroup (name, result, buffer, buflen); + if (status == NSS_STATUS_RETURN) + /* We couldn't parse the entry */ + continue; + else + return status; + } + } + + return NSS_STATUS_SUCCESS; +} enum nss_status _nss_compat_getgrnam_r (const char *name, struct group *grp, @@ -354,20 +539,153 @@ _nss_compat_getgrnam_r (const char *name if (name[0] == '-' || name[0] == '+') return NSS_STATUS_NOTFOUND; + __libc_lock_lock (lock); status = internal_setgrent (&ent); + + __libc_lock_unlock (lock); + if (status != NSS_STATUS_SUCCESS) return status; - while ((status = internal_getgrent_r (grp, &ent, buffer, buflen)) - == NSS_STATUS_SUCCESS) - if (strcmp (grp->gr_name, name) == 0) - break; + status = internal_getgrnam_r (name, grp, &ent, buffer, buflen); internal_endgrent (&ent); + return status; } +/* This function handle the + entry in /etc/group */ +static enum nss_status +getgrgid_plusgroup (gid_t gid, struct group *result, char *buffer, + size_t buflen) +{ + struct parser_data *data = (void *) buffer; + int parse_res; + char buf[1024]; + char *domain, *outval, *p; + int outvallen; + + if (yp_get_default_domain (&domain) != YPERR_SUCCESS) + return NSS_STATUS_TRYAGAIN; + + snprintf (buf, sizeof (buf), "%d", gid); + + if (yp_match (domain, "group.bygid", buf, strlen (buf), + &outval, &outvallen) != YPERR_SUCCESS) + return NSS_STATUS_TRYAGAIN; + p = strncpy (buffer, outval, + buflen < (size_t) outvallen ? buflen : (size_t) outvallen); + free (outval); + while (isspace (*p)) + p++; + if ((parse_res = _nss_files_parse_grent (p, result, data, buflen)) == -1) + { + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + + if (parse_res) + /* We found the entry. */ + return NSS_STATUS_SUCCESS; + else + return NSS_STATUS_RETURN; +} + +/* Searches in /etc/group and the NIS/NIS+ map for a special group id */ +static enum nss_status +internal_getgrgid_r (gid_t gid, struct group *result, ent_t *ent, + char *buffer, size_t buflen) +{ + struct parser_data *data = (void *) buffer; + while (1) + { + fpos_t pos; + int parse_res = 0; + char *p; + + do + { + fgetpos (ent->stream, &pos); + p = fgets (buffer, buflen, ent->stream); + if (p == NULL) + { + if (feof (ent->stream)) + return NSS_STATUS_NOTFOUND; + else + { + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + } + + /* Terminate the line for any case. */ + buffer[buflen - 1] = '\0'; + + /* Skip leading blanks. */ + while (isspace (*p)) + ++p; + } + while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ + /* Parse the line. If it is invalid, loop to + get the next line of the file to parse. */ + !(parse_res = _nss_files_parse_grent (p, result, data, buflen))); + + if (parse_res == -1) + { + /* The parser ran out of space. */ + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + + /* This is a real entry. */ + if (result->gr_name[0] != '+' && result->gr_name[0] != '-') + { + if (result->gr_gid == gid) + return NSS_STATUS_SUCCESS; + else + continue; + } + + /* -group */ + if (result->gr_name[0] == '-' && result->gr_name[1] != '\0') + { + blacklist_store_name (&result->gr_name[1], ent); + continue; + } + + /* +group */ + if (result->gr_name[0] == '+' && result->gr_name[1] != '\0') + { + 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); + status = getgrnam_plusgroup (&result->gr_name[1], result, buffer, + buflen); + if (status == NSS_STATUS_SUCCESS && result->gr_gid == gid) + break; + else + continue; + } + /* +:... */ + if (result->gr_name[0] == '+' && result->gr_name[1] == '\0') + { + enum nss_status status; + + status = getgrgid_plusgroup (gid, result, buffer, buflen); + if (status == NSS_STATUS_RETURN) /* We couldn't parse the entry */ + return NSS_STATUS_NOTFOUND; + else + return status; + } + } + + return NSS_STATUS_SUCCESS; +} enum nss_status _nss_compat_getgrgid_r (gid_t gid, struct group *grp, @@ -376,16 +694,19 @@ _nss_compat_getgrgid_r (gid_t gid, struc ent_t ent = {0, 0, NULL, 0, NULL, {NULL, 0, 0}}; enum nss_status status; + __libc_lock_lock (lock); + status = internal_setgrent (&ent); + + __libc_lock_unlock (lock); + if (status != NSS_STATUS_SUCCESS) return status; - while ((status = internal_getgrent_r (grp, &ent, buffer, buflen)) - == NSS_STATUS_SUCCESS) - if (grp->gr_gid == gid && grp->gr_name[0] != '+' && grp->gr_name[0] != '-') - break; + status = internal_getgrgid_r (gid, grp, &ent, buffer, buflen); internal_endgrent (&ent); + return status; } @@ -441,10 +762,14 @@ static bool_t in_blacklist (const char *name, int namelen, ent_t *ent) { char buf[namelen + 3]; + char *cp; if (ent->blacklist.data == NULL) return FALSE; - stpcpy (stpcpy (stpcpy (buf, "|"), name), "|"); + buf[0] = '|'; + cp = stpcpy (&buf[1], name); + *cp++= '|'; + *cp = '\0'; return strstr (ent->blacklist.data, buf) != NULL; } diff -durpN glibc-2.0.5c/nis/nss_compat/compat-pwd.c glibc-2.0.6/nis/nss_compat/compat-pwd.c --- glibc-2.0.5c/nis/nss_compat/compat-pwd.c Mon Aug 4 19:37:35 1997 +++ glibc-2.0.6/nis/nss_compat/compat-pwd.c Thu Dec 11 11:46:52 1997 @@ -20,13 +20,14 @@ #include #include #include -#include #include +#include #include #include #include #include #include +#include #include "netgroup.h" @@ -193,9 +194,14 @@ internal_setpwent (ent_t *ent) ent->oldkeylen = 0; } - ent->blacklist.current = 0; if (ent->blacklist.data != NULL) - ent->blacklist.data[0] = '\0'; + { + ent->blacklist.current = 1; + ent->blacklist.data[0] = '|'; + ent->blacklist.data[1] = '\0'; + } + else + ent->blacklist.current = 0; if (ent->stream == NULL) { @@ -257,6 +263,9 @@ internal_endpwent (ent_t *ent) ent->stream = NULL; } + if (ent->netgroup) + __internal_endnetgrent (&ent->netgrdata); + ent->nis = ent->first = ent->netgroup = 0; if (ent->oldkey != NULL) @@ -266,9 +275,14 @@ internal_endpwent (ent_t *ent) ent->oldkeylen = 0; } - ent->blacklist.current = 0; if (ent->blacklist.data != NULL) - ent->blacklist.data[0] = '\0'; + { + ent->blacklist.current = 1; + ent->blacklist.data[0] = '|'; + ent->blacklist.data[1] = '\0'; + } + else + ent->blacklist.current = 0; give_pwd_free (&ent->pwd); @@ -282,9 +296,6 @@ _nss_compat_endpwent (void) __libc_lock_lock (lock); - if (ext_ent.netgroup) - __internal_endnetgrent (&ext_ent.netgrdata); - result = internal_endpwent (&ext_ent); __libc_lock_unlock (lock); @@ -293,8 +304,8 @@ _nss_compat_endpwent (void) } static enum nss_status -getpwent_next_netgr (struct passwd *result, ent_t *ent, char *group, - char *buffer, size_t buflen) +getpwent_next_nis_netgr (const char *name, struct passwd *result, ent_t *ent, + char *group, char *buffer, size_t buflen) { struct parser_data *data = (void *) buffer; char *ypdomain, *host, *user, *domain, *outval, *p, *p2; @@ -311,13 +322,17 @@ getpwent_next_netgr (struct passwd *resu if (ent->first == TRUE) { - bzero (&ent->netgrdata, sizeof (struct __netgrent)); + memset (&ent->netgrdata, 0, sizeof (struct __netgrent)); __internal_setnetgrent (group, &ent->netgrdata); ent->first = FALSE; } while (1) { + char *saved_cursor; + int parse_res; + + saved_cursor = ent->netgrdata.cursor; status = __internal_getnetgrent_r (&host, &user, &domain, &ent->netgrdata, buffer, buflen); if (status != 1) @@ -334,6 +349,11 @@ getpwent_next_netgr (struct passwd *resu if (domain != NULL && strcmp (ypdomain, domain) != 0) continue; + /* If name != NULL, we are called from getpwnam */ + if (name != NULL) + if (strcmp (user, name) != 0) + continue; + if (yp_match (ypdomain, "passwd.byname", user, strlen (user), &outval, &outvallen) != YPERR_SUCCESS) @@ -351,8 +371,17 @@ getpwent_next_netgr (struct passwd *resu while (isspace (*p)) p++; free (outval); - if (_nss_files_parse_pwent (p, result, data, buflen)) + if ((parse_res = _nss_files_parse_pwent (p, result, data, buflen)) == -1) + { + ent->netgrdata.cursor = saved_cursor; + return NSS_STATUS_TRYAGAIN; + } + + if (parse_res) { + /* Store the User in the blacklist for the "+" at the end of + /etc/passwd */ + blacklist_store_name (result->pw_name, ent); copy_pwd_changes (result, &ent->pwd, p2, p2len); break; } @@ -367,7 +396,7 @@ getpwent_next_nis (struct passwd *result { struct parser_data *data = (void *) buffer; char *domain, *outkey, *outval, *p, *p2; - int outkeylen, outvallen; + int outkeylen, outvallen, parse_res; size_t p2len; if (yp_get_default_domain (&domain) != YPERR_SUCCESS) @@ -387,6 +416,10 @@ getpwent_next_nis (struct passwd *result buflen -= p2len; do { + bool_t saved_first; + char *saved_oldkey; + int saved_oldlen; + if (ent->first) { if (yp_first (domain, "passwd.byname", &outkey, &outkeylen, @@ -397,6 +430,9 @@ getpwent_next_nis (struct passwd *result return NSS_STATUS_UNAVAIL; } + saved_first = TRUE; + saved_oldkey = ent->oldkey; + saved_oldlen = ent->oldkeylen; ent->oldkey = outkey; ent->oldkeylen = outkeylen; ent->first = FALSE; @@ -412,7 +448,9 @@ getpwent_next_nis (struct passwd *result return NSS_STATUS_NOTFOUND; } - free (ent->oldkey); + saved_first = FALSE; + saved_oldkey = ent->oldkey; + saved_oldlen = ent->oldkeylen; ent->oldkey = outkey; ent->oldkeylen = outkeylen; } @@ -425,18 +463,94 @@ getpwent_next_nis (struct passwd *result while (isspace (*p)) ++p; + if ((parse_res = _nss_files_parse_pwent (p, result, data, buflen)) == -1) + { + free (ent->oldkey); + ent->oldkey = saved_oldkey; + ent->oldkeylen = saved_oldlen; + ent->first = saved_first; + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + else + { + if (!saved_first) + free (saved_oldkey); + } + if (parse_res && + in_blacklist (result->pw_name, strlen (result->pw_name), ent)) + parse_res = 0; } - while (!_nss_files_parse_pwent (p, result, data, buflen)); + while (!parse_res); copy_pwd_changes (result, &ent->pwd, p2, p2len); - if (!in_blacklist (result->pw_name, strlen (result->pw_name), ent)) - return NSS_STATUS_SUCCESS; - else - return NSS_STATUS_NOTFOUND; + return NSS_STATUS_SUCCESS; } +/* This function handle the +user entrys in /etc/passwd */ +static enum nss_status +getpwnam_plususer (const char *name, struct passwd *result, char *buffer, + size_t buflen) +{ + struct parser_data *data = (void *) buffer; + struct passwd pwd; + int parse_res; + char *p; + size_t plen; + char *domain, *outval, *ptr; + int outvallen; + memset (&pwd, '\0', sizeof (struct passwd)); + + copy_pwd_changes (&pwd, result, NULL, 0); + + plen = pwd_need_buflen (&pwd); + if (plen > buflen) + { + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + p = buffer + (buflen - plen); + buflen -= plen; + + + if (yp_get_default_domain (&domain) != YPERR_SUCCESS) + return NSS_STATUS_NOTFOUND; + + if (yp_match (domain, "passwd.byname", name, strlen (name), + &outval, &outvallen) != YPERR_SUCCESS) + return NSS_STATUS_NOTFOUND; + ptr = strncpy (buffer, outval, buflen < (size_t) outvallen ? + buflen : (size_t) outvallen); + buffer[buflen < (size_t) outvallen ? buflen : (size_t) outvallen] = '\0'; + free (outval); + while (isspace (*ptr)) + ptr++; + if ((parse_res = _nss_files_parse_pwent (ptr, result, data, buflen)) + == -1) + { + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + + if (parse_res > 0) + { + copy_pwd_changes (result, &pwd, p, plen); + give_pwd_free (&pwd); + /* We found the entry. */ + return NSS_STATUS_SUCCESS; + } + else + { + /* Give buffer the old len back */ + buflen += plen; + give_pwd_free (&pwd); + } + return NSS_STATUS_RETURN; +} + +/* get the next user from NIS+ (+ entry) */ static enum nss_status getpwent_next_file (struct passwd *result, ent_t *ent, char *buffer, size_t buflen) @@ -444,14 +558,25 @@ getpwent_next_file (struct passwd *resul struct parser_data *data = (void *) buffer; while (1) { - char *p, *p2; - size_t p2len; + fpos_t pos; + char *p; + int parse_res; do { + fgetpos (ent->stream, &pos); p = fgets (buffer, buflen, ent->stream); if (p == NULL) - return NSS_STATUS_NOTFOUND; + { + if (feof (ent->stream)) + return NSS_STATUS_NOTFOUND; + else + { + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + } /* Terminate the line for any case. */ buffer[buflen - 1] = '\0'; @@ -463,7 +588,15 @@ getpwent_next_file (struct passwd *resul while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ /* Parse the line. If it is invalid, loop to get the next line of the file to parse. */ - !_nss_files_parse_pwent (p, result, data, buflen)); + !(parse_res = _nss_files_parse_pwent (p, result, data, buflen))); + + if (parse_res == -1) + { + /* The parser ran out of space. */ + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } if (result->pw_name[0] != '+' && result->pw_name[0] != '-') /* This is a real entry. */ @@ -473,15 +606,19 @@ getpwent_next_file (struct passwd *resul if (result->pw_name[0] == '-' && result->pw_name[1] == '@' && result->pw_name[2] != '\0') { + char buf2[1024]; char *user, *host, *domain; + struct __netgrent netgrdata; - setnetgrent (&result->pw_name[2]); - while (getnetgrent (&host, &user, &domain)) + bzero (&netgrdata, sizeof (struct __netgrent)); + __internal_setnetgrent (&result->pw_name[2], &netgrdata); + while (__internal_getnetgrent_r (&host, &user, &domain, + &netgrdata, buf2, sizeof (buf2))) { if (user != NULL && user[0] != '-') blacklist_store_name (user, ent); } - endnetgrent (); + __internal_endnetgrent (&netgrdata); continue; } @@ -495,8 +632,9 @@ getpwent_next_file (struct passwd *resul ent->first = TRUE; copy_pwd_changes (&ent->pwd, result, NULL, 0); - status = getpwent_next_netgr (result, ent, &result->pw_name[2], - buffer, buflen); + status = getpwent_next_nis_netgr (NULL, result, ent, + &result->pw_name[2], + buffer, buflen); if (status == NSS_STATUS_RETURN) continue; else @@ -515,50 +653,20 @@ getpwent_next_file (struct passwd *resul if (result->pw_name[0] == '+' && result->pw_name[1] != '\0' && result->pw_name[1] != '@') { - char *domain; - char *outval; - int outvallen; - struct passwd pwd; - - memset (&pwd, '\0', sizeof (struct passwd)); - - if (yp_get_default_domain (&domain) != YPERR_SUCCESS) - /* XXX Should we regard this as an fatal error? I don't - think so. Just continue working. --drepper@gnu */ - continue; - - if (yp_match (domain, "passwd.byname", &result->pw_name[1], - strlen (result->pw_name) - 1, &outval, &outvallen) - != YPERR_SUCCESS) - continue; - - copy_pwd_changes (&pwd, result, NULL, 0); + enum nss_status status; - p2len = pwd_need_buflen (&pwd); - if (p2len > buflen) - { - __set_errno (ERANGE); - return NSS_STATUS_TRYAGAIN; - } - p2 = buffer + (buflen - p2len); - buflen -= p2len; - p = strncpy (buffer, outval, buflen); - while (isspace (*p)) - p++; - free (outval); - if (_nss_files_parse_pwent (p, result, data, buflen)) - { - copy_pwd_changes (result, &pwd, p2, p2len); - give_pwd_free (&pwd); - /* We found the entry. */ - break; - } + /* Store the User in the blacklist for the "+" at the end of + /etc/passwd */ + blacklist_store_name (&result->pw_name[1], ent); + status = getpwnam_plususer (&result->pw_name[1], result, buffer, + buflen); + if (status == NSS_STATUS_SUCCESS) /* We found the entry. */ + break; else - { - /* Give buffer the old len back */ - buflen += p2len; - give_pwd_free (&pwd); - } + if (status == NSS_STATUS_RETURN) /* We couldn't parse the entry */ + continue; + else + return status; } /* +:... */ @@ -576,6 +684,7 @@ getpwent_next_file (struct passwd *resul } +/* get the next user from NIS (+ entry) */ static enum nss_status internal_getpwent_r (struct passwd *pw, ent_t *ent, char *buffer, size_t buflen) @@ -586,21 +695,23 @@ internal_getpwent_r (struct passwd *pw, /* We are searching members in a netgroup */ /* Since this is not the first call, we don't need the group name */ - status = getpwent_next_netgr (pw, ent, NULL, buffer, buflen); + status = getpwent_next_nis_netgr (NULL, pw, ent, NULL, buffer, buflen); if (status == NSS_STATUS_RETURN) return getpwent_next_file (pw, ent, buffer, buflen); else return status; } - else if (ent->nis) - return getpwent_next_nis (pw, ent, buffer, buflen); else - return getpwent_next_file (pw, ent, buffer, buflen); + if (ent->nis) + { + return getpwent_next_nis (pw, ent, buffer, buflen); + } + else + return getpwent_next_file (pw, ent, buffer, buflen); } enum nss_status -_nss_compat_getpwent_r (struct passwd *pwd, char *buffer, - size_t buflen) +_nss_compat_getpwent_r (struct passwd *pwd, char *buffer, size_t buflen) { enum nss_status status = NSS_STATUS_SUCCESS; @@ -618,6 +729,155 @@ _nss_compat_getpwent_r (struct passwd *p return status; } +/* Searches in /etc/passwd and the NIS/NIS+ map for a special user */ +static enum nss_status +internal_getpwnam_r (const char *name, struct passwd *result, ent_t *ent, + char *buffer, size_t buflen) +{ + struct parser_data *data = (void *) buffer; + + while (1) + { + fpos_t pos; + char *p; + int parse_res; + + do + { + fgetpos (ent->stream, &pos); + p = fgets (buffer, buflen, ent->stream); + if (p == NULL) + { + if (feof (ent->stream)) + return NSS_STATUS_NOTFOUND; + else + { + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + } + + /* Terminate the line for any case. */ + buffer[buflen - 1] = '\0'; + + /* Skip leading blanks. */ + while (isspace (*p)) + ++p; + } + while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ + /* Parse the line. If it is invalid, loop to + get the next line of the file to parse. */ + !(parse_res = _nss_files_parse_pwent (p, result, data, buflen))); + + if (parse_res == -1) + { + /* The parser ran out of space. */ + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + + /* This is a real entry. */ + if (result->pw_name[0] != '+' && result->pw_name[0] != '-') + { + if (strcmp (result->pw_name, name) == 0) + return NSS_STATUS_SUCCESS; + else + continue; + } + + /* -@netgroup */ + if (result->pw_name[0] == '-' && result->pw_name[1] == '@' + && result->pw_name[2] != '\0') + { + char buf2[1024]; + char *user, *host, *domain; + struct __netgrent netgrdata; + + bzero (&netgrdata, sizeof (struct __netgrent)); + __internal_setnetgrent (&result->pw_name[2], &netgrdata); + while (__internal_getnetgrent_r (&host, &user, &domain, + &netgrdata, buf2, sizeof (buf2))) + { + if (user != NULL && user[0] != '-') + if (strcmp (user, name) == 0) + return NSS_STATUS_NOTFOUND; + } + __internal_endnetgrent (&netgrdata); + continue; + } + + /* +@netgroup */ + if (result->pw_name[0] == '+' && result->pw_name[1] == '@' + && result->pw_name[2] != '\0') + { + char buf[strlen (result->pw_name)]; + int status; + + strcpy (buf, &result->pw_name[2]); + ent->netgroup = TRUE; + ent->first = TRUE; + copy_pwd_changes (&ent->pwd, result, NULL, 0); + + do + { + status = getpwent_next_nis_netgr (name, result, ent, buf, + buffer, buflen); + if (status == NSS_STATUS_RETURN) + continue; + + if (status == NSS_STATUS_SUCCESS && + strcmp (result->pw_name, name) == 0) + return NSS_STATUS_SUCCESS; + } while (status == NSS_STATUS_SUCCESS); + continue; + } + + /* -user */ + if (result->pw_name[0] == '-' && result->pw_name[1] != '\0' + && result->pw_name[1] != '@') + { + if (strcmp (&result->pw_name[1], name) == 0) + return NSS_STATUS_NOTFOUND; + else + continue; + } + + /* +user */ + if (result->pw_name[0] == '+' && result->pw_name[1] != '\0' + && result->pw_name[1] != '@') + { + if (strcmp (name, &result->pw_name[1]) == 0) + { + enum nss_status status; + + status = getpwnam_plususer (name, result, buffer, buflen); + if (status == NSS_STATUS_RETURN) + /* We couldn't parse the entry */ + return NSS_STATUS_NOTFOUND; + else + return status; + } + } + + /* +:... */ + if (result->pw_name[0] == '+' && result->pw_name[1] == '\0') + { + enum nss_status status; + + status = getpwnam_plususer (name, result, buffer, buflen); + if (status == NSS_STATUS_SUCCESS) /* We found the entry. */ + break; + else + if (status == NSS_STATUS_RETURN) /* We couldn't parse the entry */ + return NSS_STATUS_NOTFOUND; + else + return status; + } + } + return NSS_STATUS_SUCCESS; +} enum nss_status _nss_compat_getpwnam_r (const char *name, struct passwd *pwd, @@ -630,20 +890,232 @@ _nss_compat_getpwnam_r (const char *name if (name[0] == '-' || name[0] == '+') return NSS_STATUS_NOTFOUND; - status = internal_setpwent (&ent); if (status != NSS_STATUS_SUCCESS) return status; - while ((status = internal_getpwent_r (pwd, &ent, buffer, buflen)) - == NSS_STATUS_SUCCESS) - if (strcmp (pwd->pw_name, name) == 0) - break; + status = internal_getpwnam_r (name, pwd, &ent, buffer, buflen); internal_endpwent (&ent); + return status; } +/* This function handle the + entry in /etc/passwd for getpwuid */ +static enum nss_status +getpwuid_plususer (uid_t uid, struct passwd *result, char *buffer, + size_t buflen) +{ + struct parser_data *data = (void *) buffer; + struct passwd pwd; + int parse_res; + char *p; + size_t plen; + char buf[1024]; + char *domain, *outval, *ptr; + int outvallen; + + memset (&pwd, '\0', sizeof (struct passwd)); + + copy_pwd_changes (&pwd, result, NULL, 0); + + plen = pwd_need_buflen (&pwd); + if (plen > buflen) + { + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + p = buffer + (buflen - plen); + buflen -= plen; + + + if (yp_get_default_domain (&domain) != YPERR_SUCCESS) + return NSS_STATUS_TRYAGAIN; + + sprintf (buf, "%d", uid); + if (yp_match (domain, "passwd.byuid", buf, strlen (buf), + &outval, &outvallen) + != YPERR_SUCCESS) + return NSS_STATUS_TRYAGAIN; + ptr = strncpy (buffer, outval, buflen < (size_t) outvallen ? + buflen : (size_t) outvallen); + buffer[buflen < (size_t) outvallen ? buflen : (size_t) outvallen] = '\0'; + free (outval); + while (isspace (*ptr)) + ptr++; + if ((parse_res = _nss_files_parse_pwent (ptr, result, data, buflen)) + == -1) + { + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + + if (parse_res > 0) + { + copy_pwd_changes (result, &pwd, p, plen); + give_pwd_free (&pwd); + /* We found the entry. */ + return NSS_STATUS_SUCCESS; + } + else + { + /* Give buffer the old len back */ + buflen += plen; + give_pwd_free (&pwd); + } + return NSS_STATUS_RETURN; +} + +/* Searches in /etc/passwd and the NIS/NIS+ map for a special user id */ +static enum nss_status +internal_getpwuid_r (uid_t uid, struct passwd *result, ent_t *ent, + char *buffer, size_t buflen) +{ + struct parser_data *data = (void *) buffer; + + while (1) + { + fpos_t pos; + char *p; + int parse_res; + + do + { + fgetpos (ent->stream, &pos); + p = fgets (buffer, buflen, ent->stream); + if (p == NULL) + { + if (feof (ent->stream)) + return NSS_STATUS_NOTFOUND; + else + { + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + } + + /* Terminate the line for any case. */ + buffer[buflen - 1] = '\0'; + + /* Skip leading blanks. */ + while (isspace (*p)) + ++p; + } + while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ + /* Parse the line. If it is invalid, loop to + get the next line of the file to parse. */ + !(parse_res = _nss_files_parse_pwent (p, result, data, buflen))); + + if (parse_res == -1) + { + /* The parser ran out of space. */ + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + + /* This is a real entry. */ + if (result->pw_name[0] != '+' && result->pw_name[0] != '-') + { + if (result->pw_uid == uid) + return NSS_STATUS_SUCCESS; + else + continue; + } + + /* -@netgroup */ + if (result->pw_name[0] == '-' && result->pw_name[1] == '@' + && result->pw_name[2] != '\0') + { + char buf2[1024]; + char *user, *host, *domain; + struct __netgrent netgrdata; + + bzero (&netgrdata, sizeof (struct __netgrent)); + __internal_setnetgrent (&result->pw_name[2], &netgrdata); + while (__internal_getnetgrent_r (&host, &user, &domain, + &netgrdata, buf2, sizeof (buf2))) + { + if (user != NULL && user[0] != '-') + blacklist_store_name (user, ent); + } + __internal_endnetgrent (&netgrdata); + continue; + } + + /* +@netgroup */ + if (result->pw_name[0] == '+' && result->pw_name[1] == '@' + && result->pw_name[2] != '\0') + { + char buf[strlen (result->pw_name)]; + int status; + + strcpy (buf, &result->pw_name[2]); + ent->netgroup = TRUE; + ent->first = TRUE; + copy_pwd_changes (&ent->pwd, result, NULL, 0); + + do + { + status = getpwent_next_nis_netgr (NULL, result, ent, buf, + buffer, buflen); + if (status == NSS_STATUS_RETURN) + continue; + + if (status == NSS_STATUS_SUCCESS && uid == result->pw_uid) + return NSS_STATUS_SUCCESS; + } while (status == NSS_STATUS_SUCCESS); + continue; + } + + /* -user */ + if (result->pw_name[0] == '-' && result->pw_name[1] != '\0' + && result->pw_name[1] != '@') + { + blacklist_store_name (&result->pw_name[1], ent); + continue; + } + + /* +user */ + if (result->pw_name[0] == '+' && result->pw_name[1] != '\0' + && result->pw_name[1] != '@') + { + enum nss_status status; + + /* Store the User in the blacklist for the "+" at the end of + /etc/passwd */ + blacklist_store_name (&result->pw_name[1], ent); + status = getpwnam_plususer (&result->pw_name[1], result, buffer, + buflen); + if (status == NSS_STATUS_SUCCESS && result->pw_uid == uid) + break; + else + continue; + } + + /* +:... */ + if (result->pw_name[0] == '+' && result->pw_name[1] == '\0') + { + enum nss_status status; + + status = getpwuid_plususer (uid, result, buffer, buflen); + if (status == NSS_STATUS_SUCCESS) /* We found the entry. */ + break; + else + if (status == NSS_STATUS_RETURN) /* We couldn't parse the entry */ + return NSS_STATUS_NOTFOUND; + else + { + if (status == NSS_STATUS_TRYAGAIN) + /* The parser ran out of space */ + fsetpos (ent->stream, &pos); + return status; + } + } + } + return NSS_STATUS_SUCCESS; +} enum nss_status _nss_compat_getpwuid_r (uid_t uid, struct passwd *pwd, @@ -657,12 +1129,10 @@ _nss_compat_getpwuid_r (uid_t uid, struc if (status != NSS_STATUS_SUCCESS) return status; - while ((status = internal_getpwent_r (pwd, &ent, buffer, buflen)) - == NSS_STATUS_SUCCESS) - if (pwd->pw_uid == uid && pwd->pw_name[0] != '+' && pwd->pw_name[0] != '-') - break; + status = internal_getpwuid_r (uid, pwd, &ent, buffer, buflen); internal_endpwent (&ent); + return status; } @@ -718,10 +1188,14 @@ static bool_t in_blacklist (const char *name, int namelen, ent_t *ent) { char buf[namelen + 3]; + char *cp; if (ent->blacklist.data == NULL) return FALSE; - stpcpy (stpcpy (stpcpy (buf, "|"), name), "|"); + buf[0] = '|'; + cp = stpcpy (&buf[1], name); + *cp++= '|'; + *cp = '\0'; return strstr (ent->blacklist.data, buf) != NULL; } diff -durpN glibc-2.0.5c/nis/nss_compat/compat-spwd.c glibc-2.0.6/nis/nss_compat/compat-spwd.c --- glibc-2.0.5c/nis/nss_compat/compat-spwd.c Mon Aug 4 19:37:25 1997 +++ glibc-2.0.6/nis/nss_compat/compat-spwd.c Thu Dec 11 11:48:17 1997 @@ -19,14 +19,17 @@ #include #include -#include #include +#include #include #include #include #include #include #include +#include + +#include "netgroup.h" /* Get the declaration of the parser function. */ #define ENTNAME spent @@ -54,10 +57,11 @@ struct ent_t FILE *stream; struct blacklist_t blacklist; struct spwd pwd; + struct __netgrent netgrdata; }; typedef struct ent_t ent_t; -static ent_t ext_ent = {0, 0, 0, NULL, 0, NULL, {NULL, 0, 0}, +static ent_t ext_ent = {0, 0, 0, NULL, 0, NULL, {NULL, 0, 0}, {NULL, NULL, 0, 0, 0, 0, 0, 0, 0}}; /* Protect global state against multiple changers. */ @@ -131,6 +135,10 @@ internal_setspent (ent_t *ent) ent->nis = ent->first = ent->netgroup = 0; + /* If something was left over free it. */ + if (ent->netgroup) + __internal_endnetgrent (&ent->netgrdata); + if (ent->oldkey != NULL) { free (ent->oldkey); @@ -138,9 +146,14 @@ internal_setspent (ent_t *ent) ent->oldkeylen = 0; } - ent->blacklist.current = 0; if (ent->blacklist.data != NULL) - ent->blacklist.data[0] = '\0'; + { + ent->blacklist.current = 1; + ent->blacklist.data[0] = '|'; + ent->blacklist.data[1] = '\0'; + } + else + ent->blacklist.current = 0; if (ent->stream == NULL) { @@ -202,6 +215,9 @@ internal_endspent (ent_t *ent) ent->stream = NULL; } + if (ent->netgroup) + __internal_endnetgrent (&ent->netgrdata); + ent->nis = ent->first = ent->netgroup = 0; if (ent->oldkey != NULL) @@ -211,9 +227,14 @@ internal_endspent (ent_t *ent) ent->oldkeylen = 0; } - ent->blacklist.current = 0; if (ent->blacklist.data != NULL) - ent->blacklist.data[0] = '\0'; + { + ent->blacklist.current = 1; + ent->blacklist.data[0] = '|'; + ent->blacklist.data[1] = '\0'; + } + else + ent->blacklist.current = 0; give_spwd_free (&ent->pwd); @@ -236,8 +257,8 @@ _nss_compat_endspent (void) static enum nss_status -getspent_next_netgr (struct spwd *result, ent_t *ent, char *group, - char *buffer, size_t buflen) +getspent_next_nis_netgr (const char *name, struct spwd *result, ent_t *ent, + char *group, char *buffer, size_t buflen) { struct parser_data *data = (void *) buffer; char *ypdomain, *host, *user, *domain, *outval, *p, *p2; @@ -254,15 +275,22 @@ getspent_next_netgr (struct spwd *result if (ent->first == TRUE) { - setnetgrent (group); + bzero (&ent->netgrdata, sizeof (struct __netgrent)); + __internal_setnetgrent (group, &ent->netgrdata); ent->first = FALSE; } while (1) { - if ((status = getnetgrent (&host, &user, &domain)) != 1) + char *saved_cursor; + int parse_res; + + saved_cursor = ent->netgrdata.cursor; + status = __internal_getnetgrent_r (&host, &user, &domain, + &ent->netgrdata, buffer, buflen); + if (status != 1) { - endnetgrent (); + __internal_endnetgrent (&ent->netgrdata); ent->netgroup = 0; give_spwd_free (&ent->pwd); return NSS_STATUS_RETURN; @@ -274,6 +302,11 @@ getspent_next_netgr (struct spwd *result if (domain != NULL && strcmp (ypdomain, domain) != 0) continue; + /* If name != NULL, we are called from getpwnam */ + if (name != NULL) + if (strcmp (user, name) != 0) + continue; + if (yp_match (ypdomain, "shadow.byname", user, strlen (user), &outval, &outvallen) != YPERR_SUCCESS) @@ -291,8 +324,17 @@ getspent_next_netgr (struct spwd *result while (isspace (*p)) p++; free (outval); - if (_nss_files_parse_spent (p, result, data, buflen)) + if ((parse_res = _nss_files_parse_spent (p, result, data, buflen)) == -1) + { + ent->netgrdata.cursor = saved_cursor; + return NSS_STATUS_TRYAGAIN; + } + + if (parse_res) { + /* Store the User in the blacklist for the "+" at the end of + /etc/passwd */ + blacklist_store_name (result->sp_namp, ent); copy_spwd_changes (result, &ent->pwd, p2, p2len); break; } @@ -307,7 +349,7 @@ getspent_next_nis (struct spwd *result, { struct parser_data *data = (void *) buffer; char *domain, *outkey, *outval, *p, *p2; - int outkeylen, outvallen; + int outkeylen, outvallen, parse_res; size_t p2len; if (yp_get_default_domain (&domain) != YPERR_SUCCESS) @@ -327,6 +369,10 @@ getspent_next_nis (struct spwd *result, buflen -= p2len; do { + bool_t saved_first; + char *saved_oldkey; + int saved_oldlen; + if (ent->first) { if (yp_first (domain, "shadow.byname", &outkey, &outkeylen, @@ -336,7 +382,9 @@ getspent_next_nis (struct spwd *result, give_spwd_free (&ent->pwd); return NSS_STATUS_UNAVAIL; } - + saved_first = TRUE; + saved_oldkey = ent->oldkey; + saved_oldlen = ent->oldkeylen; ent->oldkey = outkey; ent->oldkeylen = outkeylen; ent->first = FALSE; @@ -352,7 +400,9 @@ getspent_next_nis (struct spwd *result, return NSS_STATUS_NOTFOUND; } - free (ent->oldkey); + saved_first = FALSE; + saved_oldkey = ent->oldkey; + saved_oldlen = ent->oldkeylen; ent->oldkey = outkey; ent->oldkeylen = outkeylen; } @@ -365,17 +415,91 @@ getspent_next_nis (struct spwd *result, while (isspace (*p)) ++p; + if ((parse_res = _nss_files_parse_spent (p, result, data, buflen)) == -1) + { + free (ent->oldkey); + ent->oldkey = saved_oldkey; + ent->oldkeylen = saved_oldlen; + ent->first = saved_first; + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + else + { + if (!saved_first) + free (saved_oldkey); + } + if (parse_res && + in_blacklist (result->sp_namp, strlen (result->sp_namp), ent)) + parse_res = 0; } - while (!_nss_files_parse_spent (p, result, data, buflen)); + while (!parse_res); copy_spwd_changes (result, &ent->pwd, p2, p2len); - if (!in_blacklist (result->sp_namp, strlen (result->sp_namp), ent)) - return NSS_STATUS_SUCCESS; - else - return NSS_STATUS_NOTFOUND; + return NSS_STATUS_SUCCESS; } +/* This function handle the +user entrys in /etc/shadow */ +static enum nss_status +getspnam_plususer (const char *name, struct spwd *result, char *buffer, + size_t buflen) +{ + struct parser_data *data = (void *) buffer; + struct spwd pwd; + int parse_res; + char *p; + size_t plen; + char *domain, *outval, *ptr; + int outvallen; + + + memset (&pwd, '\0', sizeof (struct spwd)); + + copy_spwd_changes (&pwd, result, NULL, 0); + + plen = spwd_need_buflen (&pwd); + if (plen > buflen) + { + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + p = buffer + (buflen - plen); + buflen -= plen; + + if (yp_get_default_domain (&domain) != YPERR_SUCCESS) + return NSS_STATUS_NOTFOUND; + + if (yp_match (domain, "shadow.byname", name, strlen (name), + &outval, &outvallen) != YPERR_SUCCESS) + return NSS_STATUS_NOTFOUND; + ptr = strncpy (buffer, outval, buflen < (size_t) outvallen ? + buflen : (size_t) outvallen); + buffer[buflen < (size_t) outvallen ? buflen : (size_t) outvallen] = '\0'; + free (outval); + while (isspace (*ptr)) + ptr++; + if ((parse_res = _nss_files_parse_spent (ptr, result, data, buflen)) == -1) + { + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + + if (parse_res) + { + copy_spwd_changes (result, &pwd, p, plen); + give_spwd_free (&pwd); + /* We found the entry. */ + return NSS_STATUS_SUCCESS; + } + else + { + /* Give buffer the old len back */ + buflen += plen; + give_spwd_free (&pwd); + } + return NSS_STATUS_RETURN; +} static enum nss_status getspent_next_file (struct spwd *result, ent_t *ent, @@ -384,11 +508,13 @@ getspent_next_file (struct spwd *result, struct parser_data *data = (void *) buffer; while (1) { - char *p, *p2; - size_t p2len; + fpos_t pos; + int parse_res = 0; + char *p; do { + fgetpos (ent->stream, &pos); p = fgets (buffer, buflen, ent->stream); if (p == NULL) return NSS_STATUS_NOTFOUND; @@ -400,10 +526,19 @@ getspent_next_file (struct spwd *result, while (isspace (*p)) ++p; } - while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ + while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */ /* Parse the line. If it is invalid, loop to get the next line of the file to parse. */ - !_nss_files_parse_spent (p, result, data, buflen)); + || !(parse_res = _nss_files_parse_spent (p, result, data, + buflen))); + + if (parse_res == -1) + { + /* The parser ran out of space. */ + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } if (result->sp_namp[0] != '+' && result->sp_namp[0] != '-') /* This is a real entry. */ @@ -413,15 +548,19 @@ getspent_next_file (struct spwd *result, if (result->sp_namp[0] == '-' && result->sp_namp[1] == '@' && result->sp_namp[2] != '\0') { - char *user, *host, *domain; + char buf2[1024]; + char *user, *host, *domain; + struct __netgrent netgrdata; - setnetgrent (&result->sp_namp[2]); - while (getnetgrent (&host, &user, &domain)) + bzero (&netgrdata, sizeof (struct __netgrent)); + __internal_setnetgrent (&result->sp_namp[2], &netgrdata); + while (__internal_getnetgrent_r (&host, &user, &domain, + &netgrdata, buf2, sizeof (buf2))) { if (user != NULL && user[0] != '-') blacklist_store_name (user, ent); } - endnetgrent (); + __internal_endnetgrent (&netgrdata); continue; } @@ -435,8 +574,9 @@ getspent_next_file (struct spwd *result, ent->first = TRUE; copy_spwd_changes (&ent->pwd, result, NULL, 0); - status = getspent_next_netgr (result, ent, &result->sp_namp[2], - buffer, buflen); + status = getspent_next_nis_netgr (NULL, result, ent, + &result->sp_namp[2], + buffer, buflen); if (status == NSS_STATUS_RETURN) continue; else @@ -455,50 +595,25 @@ getspent_next_file (struct spwd *result, if (result->sp_namp[0] == '+' && result->sp_namp[1] != '\0' && result->sp_namp[1] != '@') { - char *domain; - char *outval; - int outvallen; - struct spwd pwd; - - memset (&pwd, '\0', sizeof (struct spwd)); - - if (yp_get_default_domain (&domain) != YPERR_SUCCESS) - /* XXX Should we regard this as an fatal error? I don't - think so. Just continue working. --drepper@gnu */ - continue; - - if (yp_match (domain, "shadow.byname", &result->sp_namp[1], - strlen (result->sp_namp) - 1, &outval, &outvallen) - != YPERR_SUCCESS) - continue; - - copy_spwd_changes (&pwd, result, NULL, 0); + enum nss_status status; - p2len = spwd_need_buflen (&pwd); - if (p2len > buflen) - { - __set_errno (ERANGE); - return NSS_STATUS_TRYAGAIN; - } - p2 = buffer + (buflen - p2len); - buflen -= p2len; - p = strncpy (buffer, outval, buflen); - while (isspace (*p)) - p++; - free (outval); - if (_nss_files_parse_spent (p, result, data, buflen)) - { - copy_spwd_changes (result, &pwd, p2, p2len); - give_spwd_free (&pwd); - /* We found the entry. */ - break; - } - else - { - /* Give buffer the old len back */ - buflen += p2len; - give_spwd_free (&pwd); - } + /* Store the User in the blacklist for the "+" at the end of + /etc/passwd */ + blacklist_store_name (&result->sp_namp[1], ent); + status = getspnam_plususer (&result->sp_namp[1], result, buffer, + buflen); + if (status == NSS_STATUS_SUCCESS) /* We found the entry. */ + break; + else + if (status == NSS_STATUS_RETURN /* We couldn't parse the entry */ + || status == NSS_STATUS_NOTFOUND) /* entry doesn't exist */ + continue; + else + { + if (status == NSS_STATUS_TRYAGAIN) + fsetpos (ent->stream, &pos); + return status; + } } /* +:... */ @@ -526,16 +641,19 @@ internal_getspent_r (struct spwd *pw, en /* We are searching members in a netgroup */ /* Since this is not the first call, we don't need the group name */ - status = getspent_next_netgr (pw, ent, NULL, buffer, buflen); + status = getspent_next_nis_netgr (NULL, pw, ent, NULL, buffer, buflen); if (status == NSS_STATUS_RETURN) return getspent_next_file (pw, ent, buffer, buflen); else return status; } - else if (ent->nis) - return getspent_next_nis (pw, ent, buffer, buflen); else - return getspent_next_file (pw, ent, buffer, buflen); + if (ent->nis) + { + return getspent_next_nis (pw, ent, buffer, buflen); + } + else + return getspent_next_file (pw, ent, buffer, buflen); } enum nss_status @@ -545,7 +663,6 @@ _nss_compat_getspent_r (struct spwd *pwd __libc_lock_lock (lock); - /* Be prepared that the setspent function was not called before. */ if (ext_ent.stream == NULL) status = internal_setspent (&ext_ent); @@ -557,6 +674,143 @@ _nss_compat_getspent_r (struct spwd *pwd return status; } +/* Searches in /etc/passwd and the NIS/NIS+ map for a special user */ +static enum nss_status +internal_getspnam_r (const char *name, struct spwd *result, ent_t *ent, + char *buffer, size_t buflen) +{ + struct parser_data *data = (void *) buffer; + + while (1) + { + fpos_t pos; + char *p; + int parse_res; + + do + { + fgetpos (ent->stream, &pos); + p = fgets (buffer, buflen, ent->stream); + if (p == NULL) + return NSS_STATUS_NOTFOUND; + + /* Terminate the line for any case. */ + buffer[buflen - 1] = '\0'; + + /* Skip leading blanks. */ + while (isspace (*p)) + ++p; + } + while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ + /* Parse the line. If it is invalid, loop to + get the next line of the file to parse. */ + !(parse_res = _nss_files_parse_spent (p, result, data, buflen))); + + if (parse_res == -1) + { + /* The parser ran out of space. */ + fsetpos (ent->stream, &pos); + __set_errno (ERANGE); + return NSS_STATUS_TRYAGAIN; + } + + /* This is a real entry. */ + if (result->sp_namp[0] != '+' && result->sp_namp[0] != '-') + { + if (strcmp (result->sp_namp, name) == 0) + return NSS_STATUS_SUCCESS; + else + continue; + } + + /* -@netgroup */ + if (result->sp_namp[0] == '-' && result->sp_namp[1] == '@' + && result->sp_namp[2] != '\0') + { + char buf2[1024]; + char *user, *host, *domain; + struct __netgrent netgrdata; + + bzero (&netgrdata, sizeof (struct __netgrent)); + __internal_setnetgrent (&result->sp_namp[2], &netgrdata); + while (__internal_getnetgrent_r (&host, &user, &domain, + &netgrdata, buf2, sizeof (buf2))) + { + if (user != NULL && user[0] != '-') + if (strcmp (user, name) == 0) + return NSS_STATUS_NOTFOUND; + } + __internal_endnetgrent (&netgrdata); + continue; + } + + /* +@netgroup */ + if (result->sp_namp[0] == '+' && result->sp_namp[1] == '@' + && result->sp_namp[2] != '\0') + { + char buf[strlen (result->sp_namp)]; + int status; + + strcpy (buf, &result->sp_namp[2]); + ent->netgroup = TRUE; + ent->first = TRUE; + copy_spwd_changes (&ent->pwd, result, NULL, 0); + + do + { + status = getspent_next_nis_netgr (name, result, ent, buf, + buffer, buflen); + if (status == NSS_STATUS_RETURN) + continue; + + if (status == NSS_STATUS_SUCCESS && + strcmp (result->sp_namp, name) == 0) + return NSS_STATUS_SUCCESS; + } while (status == NSS_STATUS_SUCCESS); + continue; + } + + /* -user */ + if (result->sp_namp[0] == '-' && result->sp_namp[1] != '\0' + && result->sp_namp[1] != '@') + { + if (strcmp (&result->sp_namp[1], name) == 0) + return NSS_STATUS_NOTFOUND; + else + continue; + } + + /* +user */ + if (result->sp_namp[0] == '+' && result->sp_namp[1] != '\0' + && result->sp_namp[1] != '@') + { + if (strcmp (name, &result->sp_namp[1]) == 0) + { + enum nss_status status; + + status = getspnam_plususer (name, result, buffer, buflen); + if (status == NSS_STATUS_RETURN) + /* We couldn't parse the entry */ + return NSS_STATUS_NOTFOUND; + else + return status; + } + } + + /* +:... */ + if (result->sp_namp[0] == '+' && result->sp_namp[1] == '\0') + { + enum nss_status status; + + status = getspnam_plususer (name, result, buffer, buflen); + if (status == NSS_STATUS_RETURN) /* We couldn't parse the entry */ + return NSS_STATUS_NOTFOUND; + else + return status; + } + } + return NSS_STATUS_SUCCESS; +} enum nss_status _nss_compat_getspnam_r (const char *name, struct spwd *pwd, @@ -573,12 +827,10 @@ _nss_compat_getspnam_r (const char *name if (status != NSS_STATUS_SUCCESS) return status; - while ((status = internal_getspent_r (pwd, &ent, buffer, buflen)) - == NSS_STATUS_SUCCESS) - if (strcmp (pwd->sp_namp, name) == 0) - break; + status = internal_getspnam_r (name, pwd, &ent, buffer, buflen); internal_endspent (&ent); + return status; } @@ -628,15 +880,19 @@ blacklist_store_name (const char *name, return; } -/* returns TRUE if ent->blacklist contains name, else FALSE */ +/* Returns TRUE if ent->blacklist contains name, else FALSE. */ static bool_t in_blacklist (const char *name, int namelen, ent_t *ent) { char buf[namelen + 3]; + char *cp; if (ent->blacklist.data == NULL) return FALSE; - stpcpy (stpcpy (stpcpy (buf, "|"), name), "|"); + buf[0] = '|'; + cp = stpcpy (&buf[1], name); + *cp++= '|'; + *cp = '\0'; return strstr (ent->blacklist.data, buf) != NULL; } diff -durpN glibc-2.0.5c/nis/nss_nis/nis-ethers.c glibc-2.0.6/nis/nss_nis/nis-ethers.c --- glibc-2.0.5c/nis/nss_nis/nis-ethers.c Sun Mar 16 19:12:18 1997 +++ glibc-2.0.6/nis/nss_nis/nis-ethers.c Tue Dec 23 21:28:15 1997 @@ -158,14 +158,14 @@ internal_nis_getetherent_r (struct ether if (next == NULL) return NSS_STATUS_NOTFOUND; - p = strcpy (buffer, next->val); + p = strncpy (buffer, next->val, buflen); next = next->next; while (isspace (*p)) ++p; parse_res = _nss_files_parse_etherent (p, eth, data, buflen); - if (!parse_res && errno == ERANGE) + if (parse_res == -1 && errno == ERANGE) return NSS_STATUS_TRYAGAIN; } while (!parse_res); @@ -230,15 +230,12 @@ _nss_nis_gethostton_r (const char *name, parse_res = _nss_files_parse_etherent (p, eth, data, buflen); - if (!parse_res) - { - if (errno == ERANGE) - return NSS_STATUS_TRYAGAIN; - else - return NSS_STATUS_NOTFOUND; - } - else - return NSS_STATUS_SUCCESS; + if (parse_res == -1 && errno == ERANGE) + return NSS_STATUS_TRYAGAIN; + else if (parse_res == 0) + return NSS_STATUS_NOTFOUND; + + return NSS_STATUS_SUCCESS; } enum nss_status @@ -293,13 +290,10 @@ _nss_nis_getntohost_r (struct ether_addr parse_res = _nss_files_parse_etherent (p, eth, data, buflen); - if (!parse_res) - { - if (errno == ERANGE) - return NSS_STATUS_TRYAGAIN; - else - return NSS_STATUS_NOTFOUND; - } - else - return NSS_STATUS_SUCCESS; + if (parse_res == -1 && errno == ERANGE) + return NSS_STATUS_TRYAGAIN; + else if (parse_res == 0) + return NSS_STATUS_NOTFOUND; + + return NSS_STATUS_SUCCESS; } diff -durpN glibc-2.0.5c/nis/nss_nis/nis-grp.c glibc-2.0.6/nis/nss_nis/nis-grp.c --- glibc-2.0.5c/nis/nss_nis/nis-grp.c Fri Dec 20 23:13:12 1996 +++ glibc-2.0.6/nis/nss_nis/nis-grp.c Tue Dec 23 21:29:24 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1996. @@ -122,7 +122,7 @@ internal_nis_getgrent_r (struct group *g free (result); parse_res = _nss_files_parse_grent (p, grp, data, buflen); - if (!parse_res && errno == ERANGE) + if (parse_res == -1 && errno == ERANGE) return NSS_STATUS_TRYAGAIN; free (oldkey); @@ -192,15 +192,12 @@ _nss_nis_getgrnam_r (const char *name, s parse_res = _nss_files_parse_grent (p, grp, data, buflen); - if (!parse_res) - { - if (errno == ERANGE) - return NSS_STATUS_TRYAGAIN; - else - return NSS_STATUS_NOTFOUND; - } - else - return NSS_STATUS_SUCCESS; + if (parse_res == -1 && errno == ERANGE) + return NSS_STATUS_TRYAGAIN; + else if (parse_res == 0) + return NSS_STATUS_NOTFOUND; + + return NSS_STATUS_SUCCESS; } enum nss_status @@ -243,13 +240,10 @@ _nss_nis_getgrgid_r (gid_t gid, struct g parse_res = _nss_files_parse_grent (p, grp, data, buflen); - if (!parse_res) - { - if (errno == ERANGE) - return NSS_STATUS_TRYAGAIN; - else - return NSS_STATUS_NOTFOUND; - } - else - return NSS_STATUS_SUCCESS; + if (parse_res == -1 && errno == ERANGE) + return NSS_STATUS_TRYAGAIN; + else if (parse_res == 0) + return NSS_STATUS_NOTFOUND; + + return NSS_STATUS_SUCCESS; } diff -durpN glibc-2.0.5c/nis/nss_nis/nis-hosts.c glibc-2.0.6/nis/nss_nis/nis-hosts.c --- glibc-2.0.5c/nis/nss_nis/nis-hosts.c Sun Mar 16 19:52:53 1997 +++ glibc-2.0.6/nis/nss_nis/nis-hosts.c Tue Dec 23 21:31:06 1997 @@ -92,7 +92,9 @@ LINE_PARSER { char *bufptr = data->linebuffer; size_t buflen = (char *) data + datalen - bufptr; - map_v4v6_hostent (result, &bufptr, &buflen); + int ibuflen = buflen; /* Use this for machines with size_t > int. */ + map_v4v6_hostent (result, &bufptr, &ibuflen); + buflen = ibuflen; } STRING_FIELD (result->h_name, isspace, 1); @@ -210,7 +212,7 @@ internal_nis_gethostent_r (struct hosten free (result); parse_res = parse_line (p, host, data, buflen); - if (!parse_res && errno == ERANGE) + if (parse_res == -1 && errno == ERANGE) { *h_errnop = NETDB_INTERNAL;; return NSS_STATUS_TRYAGAIN; @@ -297,18 +299,16 @@ _nss_nis_gethostbyname2_r (const char *n parse_res = parse_line (p, host, data, buflen); - if (!parse_res || host->h_addrtype != af) + if (parse_res == -1 && errno == ERANGE) { - if (!parse_res && errno == ERANGE) - { - *h_errnop = NETDB_INTERNAL; - return NSS_STATUS_TRYAGAIN; - } - else - { - *h_errnop = HOST_NOT_FOUND; - return NSS_STATUS_NOTFOUND; - } + *h_errnop = NETDB_INTERNAL; + return NSS_STATUS_TRYAGAIN; + } + + if (parse_res == 0 || host->h_addrtype != af) + { + *h_errnop = HOST_NOT_FOUND; + return NSS_STATUS_NOTFOUND; } *h_errnop = NETDB_SUCCESS; @@ -388,18 +388,15 @@ _nss_nis_gethostbyaddr_r (char *addr, in parse_res = parse_line (p, host, data, buflen); - if (!parse_res) + if (parse_res == -1 && errno == ERANGE) { - if (errno == ERANGE) - { - *h_errnop = NETDB_INTERNAL; - return NSS_STATUS_TRYAGAIN; - } - else - { - *h_errnop = HOST_NOT_FOUND; - return NSS_STATUS_NOTFOUND; - } + *h_errnop = NETDB_INTERNAL; + return NSS_STATUS_TRYAGAIN; + } + else if (parse_res == 0) + { + *h_errnop = HOST_NOT_FOUND; + return NSS_STATUS_NOTFOUND; } *h_errnop = NETDB_SUCCESS; diff -durpN glibc-2.0.5c/nis/nss_nis/nis-network.c glibc-2.0.6/nis/nss_nis/nis-network.c --- glibc-2.0.5c/nis/nss_nis/nis-network.c Fri Dec 20 23:13:13 1996 +++ glibc-2.0.6/nis/nss_nis/nis-network.c Tue Dec 23 21:32:06 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1996. @@ -127,7 +127,7 @@ internal_nis_getnetent_r (struct netent free (result); parse_res = _nss_files_parse_netent (p, net, data, buflen); - if (!parse_res && errno == ERANGE) + if (parse_res == -1 && errno == ERANGE) { *herrnop = NETDB_INTERNAL; return NSS_STATUS_TRYAGAIN; @@ -206,10 +206,10 @@ _nss_nis_getnetbyname_r (const char *nam parse_res = _nss_files_parse_netent (p, net, data, buflen); - if (!parse_res) + if (parse_res <= 0) { *herrnop = NETDB_INTERNAL; - if (errno == ERANGE) + if (parse_res == -1 && errno == ERANGE) return NSS_STATUS_TRYAGAIN; else return NSS_STATUS_NOTFOUND; @@ -286,10 +286,10 @@ _nss_nis_getnetbyaddr_r (unsigned long a parse_res = _nss_files_parse_netent (p, net, data, buflen); - if (!parse_res) + if (parse_res <= 0) { *herrnop = NETDB_INTERNAL; - if (errno == ERANGE) + if (parse_res == -1 && errno == ERANGE) return NSS_STATUS_TRYAGAIN; else return NSS_STATUS_NOTFOUND; diff -durpN glibc-2.0.5c/nis/nss_nis/nis-proto.c glibc-2.0.6/nis/nss_nis/nis-proto.c --- glibc-2.0.5c/nis/nss_nis/nis-proto.c Sun Mar 16 19:12:23 1997 +++ glibc-2.0.6/nis/nss_nis/nis-proto.c Tue Dec 23 21:32:46 1997 @@ -45,7 +45,7 @@ static struct response *start = NULL; static struct response *next = NULL; static int -saveit (int instatus, char *inkey, int inkeylen, char *inval, +saveit (int instatus, char *inkey, int inkeylen, char *inval, int invallen, char *indata) { if (instatus != YP_TRUE) @@ -68,7 +68,7 @@ saveit (int instatus, char *inkey, int i strncpy (next->val, inval, invallen); next->val[invallen] = '\0'; } - + return 0; } @@ -78,9 +78,9 @@ internal_nis_setprotoent (void) char *domainname; struct ypall_callback ypcb; enum nss_status status; - + yp_get_default_domain (&domainname); - + while (start != NULL) { if (start->val != NULL) @@ -90,12 +90,12 @@ internal_nis_setprotoent (void) free (next); } start = NULL; - + ypcb.foreach = saveit; ypcb.data = NULL; status = yperr2nss (yp_all (domainname, "protocols.bynumber", &ypcb)); next = start; - + return status; } @@ -128,9 +128,9 @@ _nss_nis_endprotoent (void) } start = NULL; next = NULL; - + __libc_lock_unlock (lock); - + return NSS_STATUS_SUCCESS; } @@ -148,21 +148,21 @@ internal_nis_getprotoent_r (struct proto do { char *p; - + if (next == NULL) return NSS_STATUS_NOTFOUND; - p = strcpy (buffer, next->val); + p = strncpy (buffer, next->val, buflen); next = next->next; - + while (isspace (*p)) ++p; parse_res = _nss_files_parse_protoent (p, proto, data, buflen); - if (!parse_res && errno == ERANGE) + if (parse_res == -1 && errno == ERANGE) return NSS_STATUS_TRYAGAIN; } while (!parse_res); - + return NSS_STATUS_SUCCESS; } @@ -223,15 +223,12 @@ _nss_nis_getprotobyname_r (const char *n parse_res = _nss_files_parse_protoent (p, proto, data, buflen); - if (!parse_res) - { - if (errno == ERANGE) - return NSS_STATUS_TRYAGAIN; - else - return NSS_STATUS_NOTFOUND; - } - else - return NSS_STATUS_SUCCESS; + if (parse_res == -1 && errno == ERANGE) + return NSS_STATUS_TRYAGAIN; + else if (parse_res == 0) + return NSS_STATUS_NOTFOUND; + + return NSS_STATUS_SUCCESS; } enum nss_status @@ -274,13 +271,10 @@ _nss_nis_getprotobynumber_r (int number, parse_res = _nss_files_parse_protoent (p, proto, data, buflen); - if (!parse_res) - { - if (errno == ERANGE) - return NSS_STATUS_TRYAGAIN; - else - return NSS_STATUS_NOTFOUND; - } - else - return NSS_STATUS_SUCCESS; + if (parse_res == -1 && errno == ERANGE) + return NSS_STATUS_TRYAGAIN; + else if (parse_res == 0) + return NSS_STATUS_NOTFOUND; + + return NSS_STATUS_SUCCESS; } diff -durpN glibc-2.0.5c/nis/nss_nis/nis-pwd.c glibc-2.0.6/nis/nss_nis/nis-pwd.c --- glibc-2.0.5c/nis/nss_nis/nis-pwd.c Fri Dec 20 23:13:13 1996 +++ glibc-2.0.6/nis/nss_nis/nis-pwd.c Tue Dec 23 21:33:15 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1996. @@ -122,7 +122,7 @@ internal_nis_getpwent_r (struct passwd * free (result); parse_res = _nss_files_parse_pwent (p, pwd, data, buflen); - if (!parse_res && errno == ERANGE) + if (parse_res == -1 && errno == ERANGE) return NSS_STATUS_TRYAGAIN; free (oldkey); @@ -192,15 +192,12 @@ _nss_nis_getpwnam_r (const char *name, s parse_res = _nss_files_parse_pwent (p, pwd, data, buflen); - if (!parse_res) - { - if (errno == ERANGE) - return NSS_STATUS_TRYAGAIN; - else - return NSS_STATUS_NOTFOUND; - } - else - return NSS_STATUS_SUCCESS; + if (parse_res == -1 && errno == ERANGE) + return NSS_STATUS_TRYAGAIN; + else if (parse_res == 0) + return NSS_STATUS_NOTFOUND; + + return NSS_STATUS_SUCCESS; } enum nss_status @@ -243,13 +240,10 @@ _nss_nis_getpwuid_r (uid_t uid, struct p parse_res = _nss_files_parse_pwent (p, pwd, data, buflen); - if (!parse_res) - { - if (errno == ERANGE) - return NSS_STATUS_TRYAGAIN; - else - return NSS_STATUS_NOTFOUND; - } - else - return NSS_STATUS_SUCCESS; + if (parse_res == -1 && errno == ERANGE) + return NSS_STATUS_TRYAGAIN; + else if (parse_res == 0) + return NSS_STATUS_NOTFOUND; + + return NSS_STATUS_SUCCESS; } diff -durpN glibc-2.0.5c/nis/nss_nis/nis-rpc.c glibc-2.0.6/nis/nss_nis/nis-rpc.c --- glibc-2.0.5c/nis/nss_nis/nis-rpc.c Sun Mar 16 19:12:31 1997 +++ glibc-2.0.6/nis/nss_nis/nis-rpc.c Tue Dec 23 21:33:29 1997 @@ -51,7 +51,7 @@ typedef struct intern_t intern_t; static intern_t intern = {NULL, NULL}; static int -saveit (int instatus, char *inkey, int inkeylen, char *inval, +saveit (int instatus, char *inkey, int inkeylen, char *inval, int invallen, char *indata) { intern_t *intern = (intern_t *)indata; @@ -76,7 +76,7 @@ saveit (int instatus, char *inkey, int i strncpy (intern->next->val, inval, invallen); intern->next->val[invallen] = '\0'; } - + return 0; } @@ -86,10 +86,10 @@ internal_nis_setrpcent (intern_t *intern char *domainname; struct ypall_callback ypcb; enum nss_status status; - + if (yp_get_default_domain (&domainname)) return NSS_STATUS_UNAVAIL; - + while (intern->start != NULL) { if (intern->start->val != NULL) @@ -134,7 +134,7 @@ internal_nis_endrpcent (intern_t *intern free (intern->next); } intern->start = NULL; - + return NSS_STATUS_SUCCESS; } @@ -159,26 +159,26 @@ internal_nis_getrpcent_r (struct rpcent struct parser_data *pdata = (void *) buffer; int parse_res; char *p; - + if (data->start == NULL) internal_nis_setrpcent (data); - + /* Get the next entry until we found a correct one. */ do { if (data->next == NULL) return NSS_STATUS_NOTFOUND; - p = strcpy (buffer, data->next->val); + p = strncpy (buffer, data->next->val, buflen); data->next = data->next->next; while (isspace (*p)) ++p; - + parse_res = _nss_files_parse_rpcent (p, rpc, pdata, buflen); - if (!parse_res && errno == ERANGE) + if (parse_res == -1 && errno == ERANGE) return NSS_STATUS_TRYAGAIN; } while (!parse_res); - + return NSS_STATUS_SUCCESS; } @@ -286,13 +286,10 @@ _nss_nis_getrpcbynumber_r (int number, s parse_res = _nss_files_parse_rpcent (p, rpc, data, buflen); - if (!parse_res) - { - if (errno == ERANGE) - return NSS_STATUS_TRYAGAIN; - else - return NSS_STATUS_NOTFOUND; - } - else - return NSS_STATUS_SUCCESS; + if (parse_res == -1 && errno == ERANGE) + return NSS_STATUS_TRYAGAIN; + else if (parse_res == 0) + return NSS_STATUS_NOTFOUND; + + return NSS_STATUS_SUCCESS; } diff -durpN glibc-2.0.5c/nis/nss_nis/nis-service.c glibc-2.0.6/nis/nss_nis/nis-service.c --- glibc-2.0.5c/nis/nss_nis/nis-service.c Mon Mar 17 23:24:32 1997 +++ glibc-2.0.6/nis/nss_nis/nis-service.c Tue Dec 23 21:22:26 1997 @@ -168,13 +168,13 @@ internal_nis_getservent_r (struct serven { if (data->next == NULL) return NSS_STATUS_NOTFOUND; - p = strcpy (buffer, data->next->val); + p = strncpy (buffer, data->next->val, buflen); data->next = data->next->next; while (isspace (*p)) ++p; parse_res = _nss_files_parse_servent (p, serv, buffer, buflen); - if (!parse_res && errno == ERANGE) + if (parse_res == -1 && errno == ERANGE) return NSS_STATUS_TRYAGAIN; } while (!parse_res); diff -durpN glibc-2.0.5c/nis/nss_nis/nis-spwd.c glibc-2.0.6/nis/nss_nis/nis-spwd.c --- glibc-2.0.5c/nis/nss_nis/nis-spwd.c Fri Dec 20 23:13:15 1996 +++ glibc-2.0.6/nis/nss_nis/nis-spwd.c Tue Dec 23 21:33:52 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Thorsten Kukuk , 1996. @@ -122,7 +122,7 @@ internal_nis_getspent_r (struct spwd *sp free (result); parse_res = _nss_files_parse_spent (p, sp, data, buflen); - if (!parse_res && errno == ERANGE) + if (parse_res == -1 && errno == ERANGE) return NSS_STATUS_TRYAGAIN; free (oldkey); @@ -192,13 +192,10 @@ _nss_nis_getspnam_r (const char *name, s parse_res = _nss_files_parse_spent (p, sp, data, buflen); - if (!parse_res) - { - if (errno == ERANGE) - return NSS_STATUS_TRYAGAIN; - else - return NSS_STATUS_NOTFOUND; - } - else - return NSS_STATUS_SUCCESS; + if (parse_res == -1 && errno == ERANGE) + return NSS_STATUS_TRYAGAIN; + else if (parse_res == 0) + return NSS_STATUS_NOTFOUND; + + return NSS_STATUS_SUCCESS; } diff -durpN glibc-2.0.5c/nis/rpcsvc/yp_prot.h glibc-2.0.6/nis/rpcsvc/yp_prot.h --- glibc-2.0.5c/nis/rpcsvc/yp_prot.h Thu Feb 13 00:09:24 1997 +++ glibc-2.0.6/nis/rpcsvc/yp_prot.h Fri Nov 14 20:10:51 1997 @@ -12,6 +12,8 @@ #include #include +__BEGIN_DECLS + /* * The following procedures are supported by the protocol: * @@ -72,12 +74,12 @@ typedef struct { u_int keydat_len; char *keydat_val; -} keydat; +} keydat_t; typedef struct { u_int valdat_len; char *valdat_val; -} valdat; +} valdat_t; struct ypmap_parms { char *domain; /* Null string means not available */ @@ -93,7 +95,7 @@ struct ypmap_parms { struct ypreq_key { const char *domain; const char *map; - keydat keydat; + keydat_t keydat; }; struct ypreq_nokey { @@ -149,7 +151,7 @@ typedef enum ypstat ypstat; struct ypresp_val { ypstat status; - valdat valdat; + valdat_t valdat; }; struct ypresp_key_val { @@ -160,11 +162,11 @@ struct ypresp_key_val { implementation somehow must change the order internally. We don't want to follow this bad example since the user should be able to use rpcgen on this file. */ - keydat keydat; - valdat valdat; + keydat_ keydat; + valdat_ valdat; #else - valdat valdat; - keydat keydat; + valdat_t valdat; + keydat_t keydat; #endif }; @@ -339,8 +341,6 @@ struct ypresp_all { struct ypresp_key_val val; } ypresp_all_u; }; - -__BEGIN_DECLS extern bool_t xdr_ypreq_key __P ((XDR *__xdrs, struct ypreq_key * __objp)); extern bool_t xdr_ypreq_nokey __P ((XDR *__xdrs, struct ypreq_nokey * __objp)); diff -durpN glibc-2.0.5c/nis/ypclnt.c glibc-2.0.6/nis/ypclnt.c --- glibc-2.0.5c/nis/ypclnt.c Sun Mar 16 19:44:36 1997 +++ glibc-2.0.6/nis/ypclnt.c Sun Dec 28 11:13:29 1997 @@ -17,13 +17,18 @@ 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 +#include + +#ifndef NIS_MAXNAMELEN +#define NIS_MAXNAMELEN 1024 +#endif struct dom_binding { @@ -36,43 +41,43 @@ struct dom_binding }; typedef struct dom_binding dom_binding; -static struct timeval TIMEOUT = {25, 0}; +static struct timeval RPCTIMEOUT = {25, 0}; +static struct timeval UDPTIMEOUT = {5, 0}; static int const MAXTRIES = 5; -static char __ypdomainname[MAXHOSTNAMELEN + 1] = "\0"; +static char __ypdomainname[NIS_MAXNAMELEN + 1] = "\0"; __libc_lock_define_initialized (static, ypbindlist_lock) static dom_binding *__ypbindlist = NULL; static int -__yp_bind (const char *domain, dom_binding ** ypdb) +__yp_bind (const char *domain, dom_binding **ypdb) { struct sockaddr_in clnt_saddr; struct ypbind_resp ypbr; - dom_binding *ysd; + dom_binding *ysd = NULL; int clnt_sock; CLIENT *client; int is_new = 0; int try; - if (ypdb != NULL) - *ypdb = NULL; - if ((domain == NULL) || (strlen (domain) == 0)) return YPERR_BADARGS; - ysd = __ypbindlist; - while (ysd != NULL) + if (ypdb != NULL) { - if (strcmp (domain, ysd->dom_domain) == 0) - break; - ysd = ysd->dom_pnext; + ysd = *ypdb; + while (ysd != NULL) + { + if (strcmp (domain, ysd->dom_domain) == 0) + break; + ysd = ysd->dom_pnext; + } } if (ysd == NULL) { is_new = 1; - ysd = (dom_binding *) malloc (sizeof *ysd); - memset (ysd, '\0', sizeof *ysd); + ysd = (dom_binding *) calloc (1, sizeof *ysd); ysd->dom_socket = -1; ysd->dom_vers = -1; } @@ -123,41 +128,28 @@ __yp_bind (const char *domain, dom_bindi } if (clnt_call (client, YPBINDPROC_DOMAIN, - (xdrproc_t) xdr_domainname, &domain, + (xdrproc_t) xdr_domainname, (caddr_t) &domain, (xdrproc_t) xdr_ypbind_resp, - &ypbr, TIMEOUT) != RPC_SUCCESS) + (caddr_t) &ypbr, RPCTIMEOUT) != RPC_SUCCESS) { clnt_destroy (client); + close (clnt_sock); if (is_new) free (ysd); return YPERR_YPBIND; } clnt_destroy (client); + close (clnt_sock); + if (ypbr.ypbind_status != YPBIND_SUCC_VAL) { - switch (ypbr.ypbind_resp_u.ypbind_error) - { - case YPBIND_ERR_ERR: - fputs (_("YPBINDPROC_DOMAIN: Internal error\n"), stderr); - break; - case YPBIND_ERR_NOSERV: - fprintf (stderr, - _("YPBINDPROC_DOMAIN: No server for domain %s\n"), - domain); - break; - case YPBIND_ERR_RESC: - fputs (_("YPBINDPROC_DOMAIN: Resource allocation failure\n"), - stderr); - break; - default: - fputs (_("YPBINDPROC_DOMAIN: Unknown error\n"), stderr); - break; - } - if (is_new) - free (ysd); - return YPERR_DOMAIN; - } + fprintf (stderr, _("YPBINDPROC_DOMAIN: %s\n"), + ypbinderr_string (ypbr.ypbind_resp_u.ypbind_error)); + if (is_new) + free (ysd); + return YPERR_DOMAIN; + } memset (&ysd->dom_server_addr, '\0', sizeof ysd->dom_server_addr); ysd->dom_server_addr.sin_family = AF_INET; memcpy (&ysd->dom_server_addr.sin_port, @@ -172,10 +164,13 @@ __yp_bind (const char *domain, dom_bindi } if (ysd->dom_client) - clnt_destroy (ysd->dom_client); + { + clnt_destroy (ysd->dom_client); + close (ysd->dom_socket); + } ysd->dom_socket = RPC_ANYSOCK; ysd->dom_client = clntudp_create (&ysd->dom_server_addr, YPPROG, YPVERS, - TIMEOUT, &ysd->dom_socket); + UDPTIMEOUT, &ysd->dom_socket); if (ysd->dom_client == NULL) ysd->dom_vers = -1; @@ -186,15 +181,12 @@ __yp_bind (const char *domain, dom_bindi if (fcntl (ysd->dom_socket, F_SETFD, 1) == -1) perror (_("fcntl: F_SETFD")); - if (is_new) + if (is_new && ypdb != NULL) { - ysd->dom_pnext = __ypbindlist; - __ypbindlist = ysd; + ysd->dom_pnext = *ypdb; + *ypdb = ysd; } - if (NULL != ypdb) - *ypdb = ysd; - return YPERR_SUCCESS; } @@ -211,36 +203,68 @@ do_ypcall (const char *domain, u_long pr caddr_t req, xdrproc_t xres, caddr_t resp) { dom_binding *ydb = NULL; + bool_t use_ypbindlist = FALSE; int try, result; try = 0; result = YPERR_YPERR; - while (try < MAXTRIES && result != RPC_SUCCESS) + __libc_lock_lock (ypbindlist_lock); + if (__ypbindlist != NULL) { - __libc_lock_lock (ypbindlist_lock); + ydb = __ypbindlist; + while (ydb != NULL) + { + if (strcmp (domain, ydb->dom_domain) == 0) + break; + ydb = ydb->dom_pnext; + } + if (ydb != NULL) + use_ypbindlist = TRUE; + else + __libc_lock_unlock (ypbindlist_lock); + } + else + __libc_lock_unlock (ypbindlist_lock); + while (try < MAXTRIES && result != RPC_SUCCESS) + { if (__yp_bind (domain, &ydb) != 0) { - __libc_lock_unlock (ypbindlist_lock); + if (use_ypbindlist) + __libc_lock_unlock (ypbindlist_lock); return YPERR_DOMAIN; } result = clnt_call (ydb->dom_client, prog, - xargs, req, xres, resp, TIMEOUT); + xargs, req, xres, resp, RPCTIMEOUT); if (result != RPC_SUCCESS) { clnt_perror (ydb->dom_client, "do_ypcall: clnt_call"); ydb->dom_vers = -1; - __yp_unbind (ydb); + if (!use_ypbindlist) + { + __yp_unbind (ydb); + free (ydb); + ydb = NULL; + } result = YPERR_RPC; } - - __libc_lock_unlock (ypbindlist_lock); - try++; } + if (use_ypbindlist) + { + __libc_lock_unlock (ypbindlist_lock); + use_ypbindlist = FALSE; + } + else + if (ydb != NULL) + { + __yp_unbind (ydb); + free (ydb); + ydb = NULL; + } return result; } @@ -252,7 +276,7 @@ yp_bind (const char *indomain) __libc_lock_lock (ypbindlist_lock); - status = __yp_bind (indomain, NULL); + status = __yp_bind (indomain, &__ypbindlist); __libc_lock_unlock (ypbindlist_lock); @@ -304,7 +328,7 @@ yp_get_default_domain (char **outdomain) if (__ypdomainname[0] == '\0') { - if (getdomainname (__ypdomainname, MAXHOSTNAMELEN)) + if (getdomainname (__ypdomainname, NIS_MAXNAMELEN)) result = YPERR_NODOM; else *outdomain = __ypdomainname; @@ -526,7 +550,8 @@ yp_order (const char *indomain, const ch } static void *ypall_data; -static int (*ypall_foreach) (); +static int (*ypall_foreach) __P ((int status, char *key, int keylen, + char *val, int vallen, char *data)); static bool_t __xdr_ypresp_all (XDR * xdrs, u_long * objp) @@ -587,7 +612,7 @@ yp_all (const char *indomain, const char const struct ypall_callback *incallback) { struct ypreq_nokey req; - dom_binding *ydb; + dom_binding *ydb = NULL; int try, result; struct sockaddr_in clnt_sin; CLIENT *clnt; @@ -603,11 +628,8 @@ yp_all (const char *indomain, const char while (try < MAXTRIES && result != RPC_SUCCESS) { - __libc_lock_lock (ypbindlist_lock); - if (__yp_bind (indomain, &ydb) != 0) { - __libc_lock_unlock (ypbindlist_lock); return YPERR_DOMAIN; } @@ -618,8 +640,7 @@ yp_all (const char *indomain, const char clnt = clnttcp_create (&clnt_sin, YPPROG, YPVERS, &clnt_sock, 0, 0); if (clnt == NULL) { - puts ("yp_all: clnttcp_create failed"); - __libc_lock_unlock (ypbindlist_lock); + puts (_("yp_all: clnttcp_create failed")); return YPERR_PMAP; } req.domain = (char *) indomain; @@ -628,23 +649,21 @@ yp_all (const char *indomain, const char ypall_foreach = incallback->foreach; ypall_data = (void *) incallback->data; - result = clnt_call (clnt, YPPROC_ALL, (xdrproc_t) xdr_ypreq_nokey, &req, - (xdrproc_t) __xdr_ypresp_all, &status, TIMEOUT); + result = clnt_call (clnt, YPPROC_ALL, (xdrproc_t) xdr_ypreq_nokey, + (caddr_t) &req, (xdrproc_t) __xdr_ypresp_all, + (caddr_t) &status, RPCTIMEOUT); + clnt_destroy (clnt); + close (clnt_sock); if (result != RPC_SUCCESS) { clnt_perror (ydb->dom_client, "yp_all: clnt_call"); - clnt_destroy (clnt); __yp_unbind (ydb); + free (ydb); result = YPERR_RPC; } else - { - clnt_destroy (clnt); - result = YPERR_SUCCESS; - } - - __libc_lock_unlock (ypbindlist_lock); + result = YPERR_SUCCESS; if (status != YP_NOMORE) return ypprot_err (status); @@ -845,8 +864,8 @@ yp_update (char *domain, char *map, unsi clnt->cl_auth = authunix_create_default (); again: - r = clnt_call (clnt, ypop, xdr_argument, &args, - (xdrproc_t) xdr_u_int, &res, TIMEOUT); + r = clnt_call (clnt, ypop, xdr_argument, (caddr_t) &args, + (xdrproc_t) xdr_u_int, (caddr_t) &res, RPCTIMEOUT); if (r == RPC_AUTHERROR) { diff -durpN glibc-2.0.5c/nss/digits_dots.c glibc-2.0.6/nss/digits_dots.c --- glibc-2.0.5c/nss/digits_dots.c Mon Aug 4 17:34:59 1997 +++ glibc-2.0.6/nss/digits_dots.c Wed Dec 3 20:27:56 1997 @@ -25,7 +25,6 @@ { const char *cp; char *hostname; - struct hostent *host; typedef unsigned char host_addr_t [16]; host_addr_t *host_addr; typedef char *host_addr_list_t [2]; @@ -53,7 +52,7 @@ break; } - size_needed = (sizeof (*host) + sizeof (*host_addr) + size_needed = (sizeof (*host_addr) + sizeof (*host_aliases) + sizeof (*h_addr_ptrs) + strlen (name) + 1); @@ -86,8 +85,7 @@ memset (buffer, 0, size_needed); - host = (struct hostent *) buffer; - host_addr = (host_addr_t *) ((char *) host + sizeof (*host)); + host_addr = (host_addr_t *) buffer; host_aliases = (host_addr_list_t *) ((char *) host_addr + sizeof (*host_addr)); h_addr_ptrs = (host_addr_list_t *) @@ -115,13 +113,12 @@ goto done; } - strcpy (hostname, name); - host->h_name = hostname; - host->h_aliases = *host_aliases; + resbuf.h_name = strcpy (hostname, name); + resbuf.h_aliases = *host_aliases; (*host_aliases)[0] = NULL; (*h_addr_ptrs)[0] = (char *)host_addr; (*h_addr_ptrs)[1] = (char *)0; - host->h_addr_list = *h_addr_ptrs; + resbuf.h_addr_list = *h_addr_ptrs; if (_res.options & RES_USE_INET6 && af == AF_INET) { /* We need to change the IP v4 address into the @@ -138,19 +135,19 @@ *p++ = 0xff; /* Copy the IP v4 address. */ memcpy (p, tmp, INADDRSZ); - host->h_addrtype = AF_INET6; - host->h_length = IN6ADDRSZ; + resbuf.h_addrtype = AF_INET6; + resbuf.h_length = IN6ADDRSZ; } else { - host->h_addrtype = af; - host->h_length = addr_size; + resbuf.h_addrtype = af; + resbuf.h_length = addr_size; } __set_h_errno (NETDB_SUCCESS); #ifdef HAVE_LOOKUP_BUFFER status = NSS_STATUS_SUCCESS; #else - result = host; + result = &resbuf; #endif goto done; } @@ -164,7 +161,6 @@ { const char *cp; char *hostname; - struct hostent *host; typedef unsigned char host_addr_t [16]; host_addr_t *host_addr; typedef char *host_addr_list_t [2]; @@ -192,7 +188,7 @@ break; } - size_needed = (sizeof (*host) + sizeof (*host_addr) + size_needed = (sizeof (*host_addr) + sizeof (*host_aliases) + sizeof (*h_addr_ptrs) + strlen (name) + 1); @@ -225,8 +221,7 @@ memset (buffer, 0, size_needed); - host = (struct hostent *) buffer; - host_addr = (host_addr_t *) ((char *) host + sizeof (*host)); + host_addr = (host_addr_t *) buffer; host_aliases = (host_addr_list_t *) ((char *) host_addr + sizeof (*host_addr)); h_addr_ptrs = (host_addr_list_t *) @@ -251,20 +246,19 @@ goto done; } - strcpy (hostname, name); - host->h_name = hostname; - host->h_aliases = *host_aliases; + resbuf.h_name = strcpy (hostname, name); + resbuf.h_aliases = *host_aliases; (*host_aliases)[0] = NULL; (*h_addr_ptrs)[0] = (char *) host_addr; (*h_addr_ptrs)[1] = (char *) 0; - host->h_addr_list = *h_addr_ptrs; - host->h_addrtype = af; - host->h_length = addr_size; + resbuf.h_addr_list = *h_addr_ptrs; + resbuf.h_addrtype = af; + resbuf.h_length = addr_size; __set_h_errno (NETDB_SUCCESS); #ifdef HAVE_LOOKUP_BUFFER status = NSS_STATUS_SUCCESS; #else - result = host; + result = &resbuf; #endif goto done; } diff -durpN glibc-2.0.5c/nss/getXXbyYY_r.c glibc-2.0.6/nss/getXXbyYY_r.c --- glibc-2.0.5c/nss/getXXbyYY_r.c Mon Aug 4 18:13:54 1997 +++ glibc-2.0.6/nss/getXXbyYY_r.c Wed Dec 3 20:28:20 1997 @@ -94,7 +94,9 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, L enum nss_status status = NSS_STATUS_UNAVAIL; #ifdef HANDLE_DIGITS_DOTS +# define resbuf (*resbuf) # include "digits_dots.c" +# undef resbuf #endif if (startp == NULL) diff -durpN glibc-2.0.5c/po/Makefile glibc-2.0.6/po/Makefile --- glibc-2.0.5c/po/Makefile Wed Jan 22 23:23:09 1997 +++ glibc-2.0.6/po/Makefile Fri Nov 14 20:29:56 1997 @@ -61,11 +61,14 @@ include ../Rules $(MSGFMT) -o $@ $< # Install the message object files as libc.po in the language directory. -$(mo-installed): %.mo; $(do-install) +$(mo-installed): %.mo; $(do-install) || exit 0 .PHONY: linguas linguas.mo linguas: $(ALL_LINGUAS:=.po) linguas.mo: $(ALL_LINGUAS:=.mo) + +realclean: + rm -f $(ALL_LINGUAS:=.mo) # Copy the PO files from the translation coordinator's repository. Binary files glibc-2.0.5c/po/de.mo and glibc-2.0.6/po/de.mo differ Binary files glibc-2.0.5c/po/es.mo and glibc-2.0.6/po/es.mo differ diff -durpN glibc-2.0.5c/po/es.po glibc-2.0.6/po/es.po --- glibc-2.0.5c/po/es.po Sun Feb 2 22:17:45 1997 +++ glibc-2.0.6/po/es.po Sun Dec 14 21:08:04 1997 @@ -1,13 +1,14 @@ # Mensajes en español para GNU libc. -# Copyright (C) 1996 Free Software Foundation, Inc. -# Enrique Melero Gómez , 1996. +# Copyright (C) 1996, 1997 Free Software Foundation, Inc. +# Enrique Melero Gómez , 1996, 1997. +# Santiago Vila Doncel , 1997. # msgid "" msgstr "" -"Project-Id-Version: GNU libc 1.100\n" -"POT-Creation-Date: 1997-01-06 15:00+0100\n" -"PO-Revision-Date: 1997-01-25 21:52+0100\n" -"Last-Translator: Enrique Melero Gómez \n" +"Project-Id-Version: GNU libc 2.0.6\n" +"POT-Creation-Date: 1997-08-21 04:13+0200\n" +"PO-Revision-Date: 1997-12-11 12:32+0100\n" +"Last-Translator: Santiago Vila Doncel \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" @@ -33,31 +34,31 @@ msgstr " rpcinfo [ -n númpuerto ] msgid " program vers proto port\n" msgstr " programa vers proto puerto\n" -#: time/zic.c:425 +#: time/zic.c:421 #, c-format msgid " (rule from \"%s\", line %d)" msgstr " (regla desde \"%s\", línea %d)" -#: locale/programs/ld-collate.c:360 locale/programs/ld-ctype.c:1235 +#: locale/programs/ld-collate.c:363 locale/programs/ld-ctype.c:1242 msgid " done\n" msgstr " hecho\n" -#: time/zic.c:422 +#: time/zic.c:418 #, c-format msgid "\"%s\", line %d: %s" msgstr "\"%s\", línea %d: %s" -#: time/zic.c:949 +#: time/zic.c:947 #, c-format msgid "\"Zone %s\" line and -l option are mutually exclusive" msgstr "la línea \"Zone %s\" y la opción -l son mutuamente excluyentes" -#: time/zic.c:957 +#: time/zic.c:955 #, c-format msgid "\"Zone %s\" line and -p option are mutually exclusive" msgstr "la línea \"Zone %s\" y la opción -p son mutuamente excluyentes" -#: time/zic.c:760 +#: time/zic.c:758 #, c-format msgid "%s in ruleless zone" msgstr "%s en una zona sin reglas" @@ -82,17 +83,19 @@ msgstr "%s%s%s:%u: %s%sLa declaración `% # ¿No podrías emplear la forma in-loquesea unas veces sí y otras no, # para darle variedad a la cosa? (Por ejemplo aquí sí, pues no te debe # recordar a una opción en silla de ruedas...). sv+ +# +# Lo cambio después de leer 1984. sv #: assert/assert-perr.c:47 #, c-format msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n" -msgstr "%s%s%s:%u: %s%sError no esperado: %s.\n" +msgstr "%s%s%s:%u: %s%sError inesperado: %s.\n" #: stdio-common/psignal.c:47 #, c-format msgid "%s%sUnknown signal %d\n" msgstr "%s%sSeñal desconocida %d\n" -#: time/zic.c:2155 +#: time/zic.c:2185 #, c-format msgid "%s: %d did not sign extend correctly\n" msgstr "%s: %d no extendió el signo correctamente\n" @@ -102,48 +105,49 @@ msgstr "%s: %d no extendió el signo corr msgid "%s: must be greater than \n" msgstr "%s: debe ser más grande que \n" -#: time/zic.c:1445 +#: time/zic.c:1456 #, c-format msgid "%s: Can't create %s: %s\n" msgstr "%s: No se puede crear %s: %s\n" -#: time/zic.c:2134 +#: time/zic.c:2163 #, c-format msgid "%s: Can't create directory %s: %s\n" msgstr "%s; No se puede crear el directorio %s: %s\n" # Sugerencia: "desde %s hasta %s" o bien "de %s a %s" pero no mezclar. sv+ -#: time/zic.c:614 +# Pongo "de". sv +#: time/zic.c:610 #, c-format msgid "%s: Can't link from %s to %s: %s\n" -msgstr "%s: No se pudo crear un enlace desde %s a %s: %s\n" +msgstr "%s: No se pudo crear un enlace de %s a %s: %s\n" -#: time/zic.c:786 +#: time/zic.c:784 #, c-format msgid "%s: Can't open %s: %s\n" msgstr "%s: No se puede abrir %s: %s\n" -#: time/zic.c:1435 +#: time/zic.c:1446 #, c-format msgid "%s: Can't remove %s: %s\n" msgstr "%s: No se puede eliminar %s: %s\n" -#: time/zic.c:855 +#: time/zic.c:853 #, c-format msgid "%s: Error closing %s: %s\n" msgstr "%s: Error al cerrar %s: %s\n" -#: time/zic.c:848 +#: time/zic.c:846 #, c-format msgid "%s: Error reading %s\n" msgstr "%s: Error al leer %s\n" -#: time/zic.c:1509 +#: time/zic.c:1520 #, c-format msgid "%s: Error writing %s\n" msgstr "%s: Error al escribir %s\n" -#: time/zdump.c:258 +#: time/zdump.c:266 #, c-format msgid "%s: Error writing standard output " msgstr "%s: Error al escribir en la salida estándar " @@ -163,7 +167,7 @@ msgstr "%s: Error al escribir en la sali # intercalares. En cualquier caso me parece que queda más largo añadiendo # eso. sv # -# Otra cosa: "en un archivo que no es el de" -> "en un archivo que no es de" +# Otra cosa: "en un fichero que no es el de" -> "en un fichero que no es de" # (sin "el"). Si no, da a entender que sólo puede haber uno, # y el original no da a entender eso. sv # @@ -171,52 +175,52 @@ msgstr "%s: Error al escribir en la sali # indiferentemente 'segundos intercalares' o 'segundos bisiestos' # el ajuste en sí es un ajuste de años bisiestos ( no son exactamente # un día ) . Por lo tanto Leap ( año bisiesto ) line, son las líneas -# que caracterizan al leap seconds file, que podríamos llamarlo archivo -# de ajuste de años bisiestos, archivo intercalar o incluso bisiestifile +# que caracterizan al leap seconds file, que podríamos llamarlo fichero +# de ajuste de años bisiestos, fichero intercalar o incluso bisiestifile # De todas maneras creo que lo cambio, este mensaje, si alguna vez tengo # la mala suerte de que me aparezca, me acoxonaría, tal y como está # redactado -# Segundo, según he visto en la documentación, sólo existe un archivo +# Segundo, según he visto en la documentación, sólo existe un fichero # de leap lines, por eso pongo 'el'... em+ # -#: time/zic.c:833 +#: time/zic.c:831 #, c-format msgid "%s: Leap line in non leap seconds file %s\n" msgstr "" -"%s: Línea de segundos intercalares en un archivo que no es el de\n" +"%s: Línea de segundos intercalares en un fichero que no es el de\n" "ajuste de años bisiestos %s\n" -#: time/zic.c:363 +#: time/zic.c:359 #, c-format msgid "%s: Memory exhausted: %s\n" msgstr "%s: Memoria agotada: %s\n" -#: time/zic.c:528 +#: time/zic.c:524 #, c-format msgid "%s: More than one -L option specified\n" msgstr "%s: La opción -L se ha especificado más de una vez\n" -#: time/zic.c:488 +#: time/zic.c:484 #, c-format msgid "%s: More than one -d option specified\n" msgstr "%s: La opción -d se ha especificado más de una vez\n" -#: time/zic.c:498 +#: time/zic.c:494 #, c-format msgid "%s: More than one -l option specified\n" msgstr "%s: La opción -l se ha especificado más de una vez\n" -#: time/zic.c:508 +#: time/zic.c:504 #, c-format msgid "%s: More than one -p option specified\n" msgstr "%s: La opción -p se ha especificado más de una vez\n" -#: time/zic.c:518 +#: time/zic.c:514 #, c-format msgid "%s: More than one -y option specified\n" msgstr "%s: La opción -y se ha especificado más de una vez\n" -#: time/zic.c:1860 +#: time/zic.c:1885 #, c-format msgid "%s: command was '%s', result was %d\n" msgstr "%s: la orden fue '%s', el resultado fue %d\n" @@ -224,15 +228,17 @@ msgstr "%s: la orden fue '%s', el result # FUZZY # ¿ Se le ocurre a alguien algo ? em+ # Podría ser "error en el estado de la máquina" (?). sv+ -#: locale/programs/charmap.c:593 locale/programs/locfile.c:878 +# Me retracto. Esto tiene que ver con Turing. +# En lugar de máquina de estado, pongo *estados*. sv +#: locale/programs/charmap.c:593 locale/programs/locfile.c:900 #, c-format msgid "%s: error in state machine" -msgstr "%s: error en la máquina de estado" +msgstr "%s: error en la máquina de estados" -#: posix/getopt.c:743 +#: posix/getopt.c:783 #, c-format msgid "%s: illegal option -- %c\n" -msgstr "%s: opción no permitida -- %c\n" +msgstr "%s: opción ilegal -- %c\n" # ¿Qué tiene de malo "inválida"? sv # Jopé, ¿y qué tiene de malo no válida ? @@ -245,67 +251,71 @@ msgstr "%s: opción no permitida -- %c\n" # Se puede poner retroreferencia porque significa referencia hacia atrás. # (Bueno, en este caso esa palabra se usa poco, pero inválida no). sv+ # -#: posix/getopt.c:746 +# Después de leer "1984", lo cambio. +# Aquí y en todas partes. sv +# +#: posix/getopt.c:786 #, c-format msgid "%s: invalid option -- %c\n" -msgstr "%s: opción no válida -- %c\n" +msgstr "%s: opción inválida -- %c\n" -#: posix/getopt.c:667 +#: posix/getopt.c:707 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: la opción `%c%s' no admite ningún argumento\n" -#: posix/getopt.c:638 +#: posix/getopt.c:678 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: la opción `%s' es ambigua\n" -#: posix/getopt.c:684 posix/getopt.c:858 +#: posix/getopt.c:724 posix/getopt.c:897 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: la opción `%s' requiere un argumento\n" -#: posix/getopt.c:662 +#: posix/getopt.c:702 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: la opción `--%s' no admite ningún argumento\n" -#: posix/getopt.c:843 +#: posix/getopt.c:881 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: la opción `-W %s' no admite ningún argumento\n" -#: posix/getopt.c:824 +#: posix/getopt.c:863 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: la opción `-W %s' es ambigua\n" -#: posix/getopt.c:777 posix/getopt.c:907 +#: posix/getopt.c:816 posix/getopt.c:946 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: la opción requiere un argumento --%c\n" -#: time/zic.c:840 time/zic.c:1252 time/zic.c:1272 +# Ídem. 1984. +#: time/zic.c:838 time/zic.c:1251 time/zic.c:1275 #, c-format msgid "%s: panic: Invalid l_value %d\n" -msgstr "%s: grave: valor_l no válido %d\n" +msgstr "%s: grave: valor_l %d inválido\n" #: locale/programs/charmap.c:600 #, c-format msgid "%s: premature end of file" -msgstr "%s: fin de archivo no esperado" +msgstr "%s: fin de fichero no esperado" -#: posix/getopt.c:717 +#: posix/getopt.c:757 #, c-format msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: opción desconocida `%c%s'\n" +msgstr "%s: opción no reconocida `%c%s'\n" -#: posix/getopt.c:713 +#: posix/getopt.c:753 #, c-format msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: opción desconocida `--%s'\n" +msgstr "%s: opción no reconocida `--%s'\n" -#: time/zic.c:447 +#: time/zic.c:443 #, c-format msgid "" "%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d " @@ -314,10 +324,10 @@ msgid "" msgstr "" "%s: el modo de empleo es %s [ -s ] [ -v ] [ -l hora_local ] [ -p reglasposix " "]\n" -" [ -d directorio ] [ -L segundos_intercalares ] [ -y tipoaño ] [ archivo ... " +" [ -d directorio ] [ -L segundos_intercalares ] [ -y tipoaño ] [ fichero ... " "]\n" -#: time/zdump.c:165 +#: time/zdump.c:174 #, c-format msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n" msgstr "%s: el modo de empleo es %s [ -v ] [-c cutoff ] nombrezona ...\n" @@ -346,24 +356,25 @@ msgid ".lib section in a.out corrupted" msgstr "la sección .lib en el a.out está corrompida" # ## Sugerencia: Añadir (fstat) después de información. sv -#: inet/rcmd.c:359 +#: inet/rcmd.c:363 msgid ".rhosts fstat failed" -msgstr "No se pudo obtener información (fstat) del archivo .rhosts" +msgstr "No se pudo obtener información (fstat) del fichero .rhosts" # ## Lo mismo con lstat. sv -#: inet/rcmd.c:355 +#: inet/rcmd.c:359 msgid ".rhosts lstat failed" -msgstr "No se pudo obtener información (lstat) del archivo .rhosts" +msgstr "No se pudo obtener información (lstat) del fichero .rhosts" # lo de regular no me gusta, pero ? -#: inet/rcmd.c:357 +#: inet/rcmd.c:361 msgid ".rhosts not regular file" -msgstr ".rhosts no es un archivo regular" +msgstr ".rhosts no es un fichero regular" -#: inet/rcmd.c:363 +#: inet/rcmd.c:367 msgid ".rhosts writeable by other than owner" msgstr ".rhosts puede ser modificado por otros además del propietario" +# FIXME: ¿¿No será major y minor?? #: sunrpc/clnt_perr.c:112 sunrpc/clnt_perr.c:133 #, c-format msgid "; low version = %lu, high version = %lu" @@ -371,22 +382,18 @@ msgstr "; versión menor = %lu, versión m #: sunrpc/clnt_perr.c:119 msgid "; why = " -msgstr "; causa =" +msgstr "; causa = " -#: locale/programs/ld-ctype.c:326 +#: locale/programs/ld-ctype.c:331 #, c-format msgid " character must not be in class `%s'" -msgstr "El carácter no debe estar en la clase '%s'" +msgstr "El carácter no debe estar en la clase `%s'" -#: locale/programs/ld-ctype.c:317 +#: locale/programs/ld-ctype.c:321 #, c-format msgid " character not in class `%s'" msgstr "El carácter no está en la clase `%s'" -# ## ¿? ATENCIÓN. -# ## Informar de esto a Ulrich Drepper. Debe haber en algún lugar -# ## una cadena que permita "¿". -# ## Solucionado: Con suerte desaparecerá en la próxima versión. #. TRANS The experienced user will know what is wrong. #. TRANS @c This error code is a joke. Its perror text is part of the joke. #. TRANS @c Don't change it. @@ -415,9 +422,11 @@ msgstr "Esta familia de direcciones no e # FUZZY # Lo dejo fuzzy aposta, a ver qué se os ocurre em+ +# Pues mira, advertencia es warning, advertise es anunciar. +# De momento lo cambio. sv #: stdio-common/../sysdeps/gnu/errlist.c:730 msgid "Advertise error" -msgstr "Error de advertencia" +msgstr "Error de anuncio" #: stdio-common/../sysdeps/unix/siglist.c:43 #: sysdeps/unix/sysv/linux/siglist.h:33 @@ -456,11 +465,11 @@ msgstr "Dirección incorrecta" #. TRANS versa). #: stdio-common/../sysdeps/gnu/errlist.c:70 msgid "Bad file descriptor" -msgstr "Descriptor de archivo erróneo" +msgstr "Descriptor de fichero erróneo" #: stdio-common/../sysdeps/gnu/errlist.c:718 msgid "Bad font file format" -msgstr "Formato de archivo fuente incorrecto" +msgstr "Formato de fichero fuente incorrecto" #: stdio-common/../sysdeps/gnu/errlist.c:610 msgid "Bad message" @@ -469,19 +478,8 @@ msgstr "Mensaje erróneo" #: stdio-common/../sysdeps/unix/siglist.c:41 #: sysdeps/unix/sysv/linux/siglist.h:56 msgid "Bad system call" -msgstr "Llamada al sistema erronea" +msgstr "Llamada al sistema errónea" -# ## Ya estamos ... -# ¿ Dispositivo de bloques ?, ¿ cómo se le puede llamar a esto ? -# ## al principio puse, 'se precisa de' pero me sonó mal -# ## Pongo doble almohadilla a lo anterior, para que a nadie más se le ocurra... sv -# -# Creo que se pueden borrar los apóstrofos. -# Parece que hay dos tipos de dispositivos: -# Dispositivos de bloques y dispositivos de caracteres. -# Supongo que así se llamarán en español. sv -# yo los llamo así, desde luego em -# ## Entonces asunto concluído. sv+ #. TRANS A file that isn't a block special file was given in a situation that #. TRANS requires one. For example, trying to mount an ordinary file as a file #. TRANS system in Unix gives this error. @@ -494,15 +492,18 @@ msgstr "Se requiere un dispositivo de bl # después de ver los fuentes no consigo llegar a otra solución, sólo # mensaje ( packet ? ) broadcast, que creo que refleja bien # los errores que describen estos mensajes. -# ## Sugerencia: `broadcast'. sv # Creo que este mensaje está mal traducido ... # habrá que echar mano a las fuentes em+ -#: sunrpc/pmap_rmt.c:337 +#: sunrpc/pmap_rmt.c:338 msgid "Broadcast select problem" msgstr "Problema en la selección del `broadcast'" # Vi traducido pipe como tubo en un libro sobre pc/dos, y me horrorizó # menos mal que venía siempre la palabra `pipe' al lado entrecomillada +# +# Este mensaje sale ahora cada vez que pulsas "q" cuando haces por ejemplo +# cat loquesea | less +# Sale *muy a menudo* y estoy harto, así que lo borro que ya está bien. sv #. 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 @@ -512,7 +513,7 @@ msgstr "Problema en la selección del `br #: stdio-common/../sysdeps/unix/siglist.c:42 #: sysdeps/unix/sysv/linux/siglist.h:32 msgid "Broken pipe" -msgstr "Tubería (pipe) rota" +msgstr "Tubería rota" #: stdio-common/../sysdeps/unix/siglist.c:39 #: sysdeps/unix/sysv/linux/siglist.h:30 @@ -527,24 +528,20 @@ msgstr "Rebasado el límite de tiempo de msgid "Can not access a needed shared library" msgstr "No se puede acceder a una biblioteca compartida que se necesita" -#: nis/ypclnt.c:694 +#: nis/ypclnt.c:695 msgid "Can't bind to server which serves this domain" msgstr "" "Ha fallado la llamada a bind() con el servidor que sirve a este dominio" -# ¡Necesitamos ayuda para "mapeador"! -# -# Sugerencia: to map -> asignar, map -> correspondencia. sv+ -# -#: nis/ypclnt.c:706 +#: nis/ypclnt.c:707 msgid "Can't communicate with portmapper" -msgstr "no se puede comunicar con el mapeador de puertos (`portmapper')" +msgstr "No se puede comunicar con el asignador de puertos" -#: nis/ypclnt.c:708 +#: nis/ypclnt.c:709 msgid "Can't communicate with ypbind" msgstr "No se puede establecer comunicación con 'ypbind'" -#: nis/ypclnt.c:710 +#: nis/ypclnt.c:711 msgid "Can't communicate with ypserv" msgstr "No se puede establecer comunicación con 'ypserv'" @@ -563,9 +560,6 @@ msgstr "No se puede asignar la dirección # He intentado mejorarlo un poco ... # -# Por favor, pon `broadcast' en lugar de broadcast. -# Si vamos a usar términos ingleses a lo bestia, reconozcamos al menos que -# no son términos españoles. sv #: sunrpc/pmap_rmt.c:255 msgid "Cannot create socket for broadcast rpc" msgstr "No se puede crear `socket' para enviar un mensaje `broadcast' del rpc" @@ -574,10 +568,7 @@ msgstr "No se puede crear `socket' para msgid "Cannot exec a shared library directly" msgstr "No se puede ejecutar una biblioteca compartida directamente" -# ## ¿Qué tal "... recibir la respuesta al `broadcast'"? -# ## Mucho mejor em -# ## Gracias. sv+ -#: sunrpc/pmap_rmt.c:349 +#: sunrpc/pmap_rmt.c:350 msgid "Cannot receive reply to broadcast" msgstr "No se puede recibir la respuesta al `broadcast'" @@ -590,8 +581,6 @@ msgstr "No se pudo registrar el servicio msgid "Cannot send after transport endpoint shutdown" msgstr "No se puede enviar tras la destrucción del punto de destino" -# ## ??? -# ## En todo caso. mandar -> enviar. sv #: sunrpc/pmap_rmt.c:313 msgid "Cannot send broadcast packet" msgstr "No se pudo enviar el mensaje `broadcast'" @@ -617,7 +606,7 @@ msgstr "Las credenciales del cliente son msgid "Communication error on send" msgstr "Error de comunicación al enviar" -# ¿ qué diablos es esto ?, esperemos a tener las fuentes +# ¿qué diablos es esto?, esperemos a tener las fuentes # estupendo, este error parece mostrarse en dos ocasiones # - Macro: int EIEIO # Go home and have a glass of warm, dairy-fresh milk. @@ -625,9 +614,9 @@ msgstr "Error de comunicación al enviar" #. TRANS Go home and have a glass of warm, dairy-fresh milk. #: stdio-common/../sysdeps/gnu/errlist.c:601 msgid "Computer bought the farm" -msgstr "El ordenador ha comprado una granja" +msgstr "La computadora ha comprado la granja" -#: locale/programs/ld-ctype.c:1198 +#: locale/programs/ld-ctype.c:1204 msgid "Computing table size for character classes might take a while..." msgstr "" "El cálculo del tamaño de la tabla de clases de caracteres podría tardar un\n" @@ -637,7 +626,7 @@ msgstr "" # Collating, uff, lo he visto por lo menos 10 veces, en varios contextos # diferentes. Uno de ellos en el de comparaciones de strings en el DM de DB2. # Podría traducirse tambien como 'uniones' o 'emparejamientos' ... em+ -#: locale/programs/ld-collate.c:327 +#: locale/programs/ld-collate.c:329 msgid "Computing table size for collation information might take a while..." msgstr "" "El cálculo del tamaño de la tabla de información de secuencias podría " @@ -671,8 +660,8 @@ msgstr "Continúa" # ## ¡¡Esto ya lo traduje en recode!! sv # ## Lo pongo igual. -#: catgets/gencat.c:169 db/makedb.c:120 locale/programs/locale.c:187 -#: locale/programs/localedef.c:177 +#: catgets/gencat.c:169 db/makedb.c:120 locale/programs/locale.c:191 +#: locale/programs/localedef.c:180 #, c-format msgid "" "Copyright (C) %s Free Software Foundation, Inc.\n" @@ -688,7 +677,7 @@ msgstr "" msgid "Cputime limit exceeded" msgstr "Rebasado el límite de tiempo de CPU" -#: nis/ypclnt.c:720 +#: nis/ypclnt.c:721 msgid "Database is busy" msgstr "La base de datos está ocupada" @@ -732,7 +721,7 @@ msgid "Disc quota exceeded" msgstr "Se ha excedido la cuota de disco" # FUZZY -#: nis/ypclnt.c:766 +#: nis/ypclnt.c:767 msgid "Domain not bound" msgstr "No se pudo conectar con el dominio" @@ -752,9 +741,10 @@ msgstr "Error %d" msgid "Error in unknown error system: " msgstr "Error de sistema desconocido: " +# Supongo que se dice legible... sv #: inet/ruserpass.c:161 msgid "Error: .netrc file is readable by others." -msgstr "Error: el archivo .netrc es leible por otros usuarios." +msgstr "Error: el fichero .netrc es legible por otros usuarios." # FUZZY em+ #: stdio-common/../sysdeps/gnu/errlist.c:698 @@ -767,7 +757,7 @@ msgstr "Intercambio lleno" msgid "Exec format error" msgstr "Formato de ejecutable incorrecto" -#: locale/programs/localedef.c:213 +#: locale/programs/localedef.c:216 msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'" msgstr "Error fatal: el sistema no define `_POSIX2_LOCALEDEF'" @@ -777,38 +767,38 @@ msgstr "Falló (error no especificado)" #: stdio-common/../sysdeps/gnu/errlist.c:750 msgid "File descriptor in bad state" -msgstr "El descriptor de archivo está en mal estado" +msgstr "Descriptor de fichero en mal estado" #. TRANS File exists; an existing file was specified in a context where it only #. TRANS makes sense to specify a new file. #: stdio-common/../sysdeps/gnu/errlist.c:122 msgid "File exists" -msgstr "El archivo existe" +msgstr "El fichero existe" # FUZZY em+ #: stdio-common/../sysdeps/gnu/errlist.c:714 msgid "File locking deadlock error" -msgstr "error `deadlock' al bloquear el archivo" +msgstr "error `deadlock' al bloquear el fichero" #. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for #. TRANS Files}) or host name too long (in @code{gethostname} or #. TRANS @code{sethostname}; @pxref{Host Identification}). #: stdio-common/../sysdeps/gnu/errlist.c:452 msgid "File name too long" -msgstr "Nombre de archivo demasiado largo" +msgstr "Nombre de fichero demasiado largo" #: sysdeps/unix/sysv/linux/siglist.h:44 msgid "File size limit exceeded" -msgstr "Superado el límite de tamaño de archivo" +msgstr "Superado el límite de tamaño de fichero" #. TRANS File too big; the size of a file would be larger than allowed by the system. #: stdio-common/../sysdeps/gnu/errlist.c:190 msgid "File too large" -msgstr "Archivo demasiado grande" +msgstr "Fichero demasiado grande" #: stdio-common/../sysdeps/unix/siglist.c:54 msgid "Filesize limit exceeded" -msgstr "Superado el límite de tamaño de archivo" +msgstr "Superado el límite de tamaño de fichero" #: stdio-common/../sysdeps/unix/siglist.c:37 #: sysdeps/unix/sysv/linux/siglist.h:28 @@ -874,16 +864,16 @@ msgstr "Colgar (hangup)" #. TRANS The remote host for a requested network connection is down. #: stdio-common/../sysdeps/gnu/errlist.c:457 msgid "Host is down" -msgstr "El host no está operativo" +msgstr "El `host' no está operativo" #: resolv/herror.c:75 msgid "Host name lookup failure" -msgstr "Nombre de host no encontrado" +msgstr "Nombre de `host' no encontrado" #: stdio-common/../sysdeps/unix/siglist.c:52 #: sysdeps/unix/sysv/linux/siglist.h:42 msgid "I/O possible" -msgstr "Operación de entrada/salida permitida" +msgstr "Operación de E/S permitida" # ???, siempre lo he usado como trap, nunca encontramos la palabra # y es una señal estándar Unix, así que no creo conveniente traducirla @@ -895,6 +885,7 @@ msgstr "`trap' de IOT" msgid "Identifier removed" msgstr "El identificador se ha eliminado" +# FIXME: Instrucción no tiene por qué ir en mayúscula. # Se trata de una instrucción ilegal en el juego de instrucciones del 486 # que provoca una "excepción". #: sysdeps/unix/sysv/linux/siglist.h:25 @@ -922,7 +913,7 @@ msgstr "Búsqueda no permitida" #. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}. #: stdio-common/../sysdeps/gnu/errlist.c:544 msgid "Inappropriate file type or format" -msgstr "Formato o tipo de archivo no apropiado" +msgstr "Formato o tipo de fichero no apropiado" #. TRANS Inappropriate I/O control operation, such as trying to set terminal #. TRANS modes on an ordinary file. @@ -963,14 +954,14 @@ msgid "Input/output error" msgstr "Error de entrada/salida" # ??? lo mismo que arriba -#: nis/ypclnt.c:700 +#: nis/ypclnt.c:701 msgid "Internal NIS error" msgstr "Error interno del determinador de nombres" # FUZZY FUZZY # Esto se está poniendo imposible, estas funciones # nuevas ... -#: nis/ypclnt.c:764 +#: nis/ypclnt.c:765 msgid "Internal ypbind error" msgstr "Error en la llamada a bind para el servicio de páginas amarillas" @@ -999,15 +990,15 @@ msgstr "La llamada al sistema interrumpi #. TRANS with passing the wrong argument to a library function. #: stdio-common/../sysdeps/gnu/errlist.c:152 msgid "Invalid argument" -msgstr "Argumento no válido" +msgstr "Argumento inválido" -#: posix/regex.c:946 +#: posix/regex.c:978 msgid "Invalid back reference" -msgstr "Referencia hacia atrás no válida" +msgstr "Referencia hacia atrás inválida" -#: posix/regex.c:944 +#: posix/regex.c:976 msgid "Invalid character class name" -msgstr "Nombre de clase de carácter no válido" +msgstr "Nombre de clase de carácter inválido" #: sunrpc/clnt_perr.c:278 msgid "Invalid client credential" @@ -1015,13 +1006,13 @@ msgstr "Credenciales del cliente inválid #: sunrpc/clnt_perr.c:282 msgid "Invalid client verifier" -msgstr "Verificación del cliente no válida " +msgstr "Verificación del cliente inválida" -#: posix/regex.c:943 +#: posix/regex.c:975 msgid "Invalid collation character" -msgstr "Caracter de unión no válido" +msgstr "Caracter de unión inválido" -#: posix/regex.c:950 +#: posix/regex.c:982 msgid "Invalid content of \\{\\}" msgstr "Contenido de \\{\\} inválido" @@ -1035,7 +1026,7 @@ msgstr "Enlace cruzado entre dispositivo #: stdio-common/../sysdeps/gnu/errlist.c:690 msgid "Invalid exchange" -msgstr "Intercambio no válido" +msgstr "Intercambio inválido" #. TRANS While decoding a multibyte character the function came along an invalid #. TRANS or an incomplete sequence of bytes or the given wide character is invalid. @@ -1043,15 +1034,15 @@ msgstr "Intercambio no válido" msgid "Invalid or incomplete multibyte or wide character" msgstr "El carácter multibyte o extendido está incompleto o es inválido" -#: posix/regex.c:953 +#: posix/regex.c:985 msgid "Invalid preceding regular expression" msgstr "La expresión regular precedente es inválida" -#: posix/regex.c:951 +#: posix/regex.c:983 msgid "Invalid range end" -msgstr "Final de rango no válido" +msgstr "Final de rango inválido" -#: posix/regex.c:942 +#: posix/regex.c:974 msgid "Invalid regular expression" msgstr "La expresión regular es errónea" @@ -1061,11 +1052,11 @@ msgstr "Código de petición incorrecto" #: stdio-common/../sysdeps/gnu/errlist.c:694 msgid "Invalid request descriptor" -msgstr "El descriptor de archivo solicitado es erróneo" +msgstr "El descriptor de fichero solicitado es erróneo" #: sunrpc/clnt_perr.c:288 msgid "Invalid server verifier" -msgstr "Verificación del servidor no válido" +msgstr "Verificación del servidor inválido" # Ranura no válida ?, creo que no hay traducción para slot :) em+ #: stdio-common/../sysdeps/gnu/errlist.c:710 @@ -1083,7 +1074,7 @@ msgstr "Es un directorio" # ¿ Será esto un `named pipe' ? ¿ cómo se traduce ? #: stdio-common/../sysdeps/gnu/errlist.c:794 msgid "Is a named type file" -msgstr "Es un archivo de tipo `named'" +msgstr "Es un fichero de tipo `named'" # A quien se le ocurra `matar' un proceso, que especifique con qué señal. # En todo caso ` Terminado ( KILL ) ' sería apropiado. Ver fuentes @@ -1118,11 +1109,11 @@ msgstr "En enlace se ha cortado" msgid "Link number out of range" msgstr "Número de enlace fuera de rango" -#: nis/ypclnt.c:712 +#: nis/ypclnt.c:713 msgid "Local domain name not set" msgstr "No se ha establecido el nombre del dominio local" -#: nis/ypclnt.c:702 +#: nis/ypclnt.c:703 msgid "Local resource allocation failure" msgstr "La asignación de recursos locales ha fallado" @@ -1130,7 +1121,7 @@ msgstr "La asignación de recursos locale msgid "Machine is not on the network" msgstr "La máquina no está en red" -#: posix/regex.c:952 +#: posix/regex.c:984 msgid "Memory exhausted" msgstr "Memoria agotada" @@ -1151,18 +1142,17 @@ msgstr "Se ha intentado un multihop" # No debe explicarse la terminología dentro de su propio contexto. # Creo que deberías borrar lo que hay entre paréntesis. # De verdad. sv+ -#: nis/ypclnt.c:716 +#: nis/ypclnt.c:717 msgid "NIS client/server version mismatch - can't supply service" msgstr "" "La versión de NIS (sistema de información de la red) del servidor y del " -"ciente\n" +"cliente\n" "no coinciden - no se puede proveer el servicio" -# Aquí se podría poner "la tabla NIS". sv+ -# mapa es un palabro. -#: nis/ypclnt.c:714 +# FIXME: ¿No debería ser "database"? sv +#: nis/ypclnt.c:715 msgid "NIS map data base is bad" -msgstr "La base de datos del mapa NIS no es correcta" +msgstr "La base de datos de la tabla NIS no es correcta" #: stdio-common/../sysdeps/gnu/errlist.c:746 msgid "Name not unique on network" @@ -1190,11 +1180,14 @@ msgstr "La red no está activa" # # Mira un mensaje que he puesto más arriba a ver si estás de acuerdo con # mi definición de "indio". sv +# +# Después de que me haya salido este mensaje varias veces, lo cambio. +# Antes decía "Es imposible conectar con la red", demasiado largo. sv #. TRANS A socket operation failed because the subnet containing the remote host #. TRANS was unreachable. #: stdio-common/../sysdeps/gnu/errlist.c:372 msgid "Network is unreachable" -msgstr "Es imposible conectar con la red" +msgstr "La red es inaccesible" # FUZZY #: stdio-common/../sysdeps/gnu/errlist.c:682 @@ -1244,18 +1237,18 @@ msgstr "Ningún proceso hijo" msgid "No data available" msgstr "No hay datos disponibles" -# Ojo: ¿Solamente los archivos se pueden bloquear? +# Ojo: ¿Solamente los ficheros se pueden bloquear? # Propondría: "No quedan bloqueos disponibles" o algo así. sv # # Efectivamente puede que tengas razón, pero ... -# los dispositivos en UNIX son siempre archivos /dev :) em +# los dispositivos en UNIX son siempre ficheros /dev :) em # # Lo sé, lo sé, pero: Cuando bloqueas /dev/cua3, ¿dices que estás bloqueando un -# archivo o que estás bloqueando el módem, que es un dispositivo? sv -# Decir archivos podría traer equívocos, por más que formalmente todos +# fichero o que estás bloqueando el módem, que es un dispositivo? sv +# Decir ficheros podría traer equívocos, por más que formalmente todos # lo sean. sv # -# ¿Y qué se te ocurre?, ¿poner bloquear archivos/dispositivos? em +# ¿Y qué se te ocurre?, ¿poner bloquear ficheros/dispositivos? em # # ( Pues mira, no estaría mal. sv ) # A esto no me has contestado. sv @@ -1269,9 +1262,9 @@ msgstr "No hay datos disponibles" #. TRANS operating system. #: stdio-common/../sysdeps/gnu/errlist.c:535 msgid "No locks available" -msgstr "No se pueden bloquear más archivos" +msgstr "No se pueden bloquear más ficheros" -#: posix/regex.c:941 +#: posix/regex.c:973 msgid "No match" msgstr "Ninguna coincidencia" @@ -1279,13 +1272,11 @@ msgstr "Ninguna coincidencia" msgid "No message of desired type" msgstr "Ningún mensaje del tipo deseado" -# FUZZY -# Bueno, bueno -#: nis/ypclnt.c:704 +#: nis/ypclnt.c:705 msgid "No more records in map database" -msgstr "No hay más registros en la base de datos del mapa" +msgstr "No hay más registros en la base de datos" -#: posix/regex.c:5204 +#: posix/regex.c:5434 msgid "No previous regular expression" msgstr "No existe una expresión regular anterior" @@ -1295,9 +1286,14 @@ msgstr "No existe una expresión regular # la terminología dentro de su propio contexto". # Con lo fácil que es poner: # "No se ha registrado ningún programa remoto.\n" sv+ +# +# Demasiado complejo. +# Antes decía: +# No existe ningún procedimiento rpc registrado en la máquina remota. +# Lo cambio. sv #: sunrpc/rpcinfo.c:515 msgid "No remote programs registered.\n" -msgstr "No existe ningún procedimiento rpc registrado en la máquina remota.\n" +msgstr "No hay ningún programa remoto registrado.\n" # Sugerencia: ninguna ruta. sv # Doppel verneinung, o doble negación, también @@ -1307,10 +1303,12 @@ msgstr "No existe ningún procedimiento r # Enrique, ¡se te olvida el español! :-| # En español es absolutamente correcto, y además queda mejor. # "No existe ninguna ruta hasta el host". sv+ +# +# Lo cambio. sv #. TRANS The remote host for a requested network connection is not reachable. #: stdio-common/../sysdeps/gnu/errlist.c:462 msgid "No route to host" -msgstr "No existe ruta hasta el host" +msgstr "No existe ninguna ruta hasta el `host'" # ## "No queda más espacio" queda muy raro en español. # ## Lo cambio. sv+ @@ -1325,20 +1323,20 @@ msgstr "No queda espacio en el dispositi #. TRANS expected to already exist. #: stdio-common/../sysdeps/gnu/errlist.c:19 msgid "No such file or directory" -msgstr "No existe el archivo o el directorio" +msgstr "No existe el fichero o el directorio" -#: nis/ypclnt.c:698 +#: nis/ypclnt.c:699 msgid "No such key in map" -msgstr "No exite esta clave en el mapa" +msgstr "No exite esta clave en la tabla" -#: nis/ypclnt.c:696 +#: nis/ypclnt.c:697 msgid "No such map in server's domain" -msgstr "No existe este mapa en el dominio del servidor" +msgstr "No existe esa tabla en el dominio del servidor" # Sugerencia: No existe el proceso. sv # ¿ Porqué ? # Porque si "No such file or directory" se ha traducido por -# "no existe el archivo o el directorio", está claro que si le dices un +# "no existe el fichero o el directorio", está claro que si le dices un # proceso y te dice "no existe el proceso" se refiere al que # tú le has dicho y no a otro. sv # @@ -1349,7 +1347,7 @@ msgstr "No existe tal proceso" #: stdio-common/../sysdeps/gnu/errlist.c:786 msgid "Not a XENIX named type file" -msgstr "No es un archivo XENIX del tipo `named'" +msgstr "No es un fichero XENIX del tipo `named'" #. TRANS A file that isn't a directory was specified when a directory is required. #: stdio-common/../sysdeps/gnu/errlist.c:140 @@ -1379,7 +1377,7 @@ msgstr "Resultado numérico fuera de rang msgid "Object is remote" msgstr "El objeto es remoto" -#: time/zic.c:1954 +#: time/zic.c:1979 msgid "Odd number of quotation marks" msgstr "Número impar de comillas" @@ -1441,12 +1439,14 @@ msgstr "Alcanzado el límite de recursos # FUZZY # aquí va a haber coña em+ +# No lo creo. Si utilizaras alguna distribución de Linux estarías acostumbrado +# a instalar paquetes. sv #: stdio-common/../sysdeps/gnu/errlist.c:726 msgid "Package not installed" msgstr "El paquete no está instalado" #. TRANS Permission denied; the file permissions do not allow the attempted operation. -#: nis/ypclnt.c:718 stdio-common/../sysdeps/gnu/errlist.c:96 +#: nis/ypclnt.c:719 stdio-common/../sysdeps/gnu/errlist.c:96 msgid "Permission denied" msgstr "Permiso denegado" @@ -1454,7 +1454,7 @@ msgstr "Permiso denegado" msgid "Power failure" msgstr "Fallo de alimentación" -#: posix/regex.c:954 +#: posix/regex.c:986 msgid "Premature end of regular expression" msgstr "Fin no esperado de la expresión regular" @@ -1479,7 +1479,7 @@ msgstr "Protocolo no disponible" #: stdio-common/../sysdeps/gnu/errlist.c:646 msgid "Protocol error" -msgstr "error de protocolo" +msgstr "Error de protocolo" #. TRANS The socket communications protocol family you requested is not supported. #: stdio-common/../sysdeps/gnu/errlist.c:343 @@ -1525,7 +1525,7 @@ msgstr "error específico de RFS" msgid "RPC bad procedure for program" msgstr "RPC: procedimiento erróneo para el programa" -#: nis/ypclnt.c:692 +#: nis/ypclnt.c:693 msgid "RPC failure on NIS operation" msgstr "Fallo RPC en una operación NIS" @@ -1578,15 +1578,11 @@ msgstr "RPC: Falló (error no especificad #: sunrpc/clnt_perr.c:177 msgid "RPC: Incompatible versions of RPC" -msgstr "RPC: Versión incompatible de RPC" +msgstr "RPC: Versiones incompatibles de RPC" -# Apuesto a que existe algo mejor que "mapeador". sv -# Propón que yo dispondré em+ -# A ver: Asignador. -# (Al menos no es un palabro). sv+ #: sunrpc/clnt_perr.c:195 msgid "RPC: Port mapper failure" -msgstr "RPC: Fallo del mapeador de puertos" +msgstr "RPC: Fallo del asignador de puertos" # ??? prefiero añadir rpc otra vez, # parece que queda más claro cual es el error y son solo tres letras @@ -1641,18 +1637,19 @@ msgstr "RPC: El tiempo expiró" # recibir, pero no puede. De la otra forma (no se puede recibir) # da la impresión de que ni siquiera se intenta # A lo mejor es que ni siquiera puede intentarlo ... sv +# Me suena horrible lo de "Incapaz", lo cambio. sv #: sunrpc/clnt_perr.c:173 msgid "RPC: Unable to receive" -msgstr "RPC: Incapaz de recibir" +msgstr "RPC: No se puede recibir" # Sugerencia: No se puede enviar. (?) (no estoy muy seguro) sv #: sunrpc/clnt_perr.c:171 msgid "RPC: Unable to send" -msgstr "RPC: Incapaz de enviar" +msgstr "RPC: No se puede enviar" #: sunrpc/clnt_perr.c:191 msgid "RPC: Unknown host" -msgstr "RPC: Host desconocido" +msgstr "RPC: `Host' desconocido" #: sunrpc/clnt_perr.c:193 msgid "RPC: Unknown protocol" @@ -1666,35 +1663,34 @@ msgstr "" #. TRANS An attempt was made to modify something on a read-only file system. #: stdio-common/../sysdeps/gnu/errlist.c:206 msgid "Read-only file system" -msgstr "Sistema de archivos de sólo lectura" +msgstr "Sistema de ficheros de sólo lectura" -#: posix/regex.c:955 +#: posix/regex.c:987 msgid "Regular expression too big" msgstr "La expresión regular es demasiado grande" # Sugerencia: Error de E/S. sv+ +# Pongo eso. sv #: stdio-common/../sysdeps/gnu/errlist.c:798 msgid "Remote I/O error" -msgstr "Error de entrada/salida en la máquina remota" +msgstr "Error de E/S en la máquina remota" #: stdio-common/../sysdeps/gnu/errlist.c:754 msgid "Remote address changed" msgstr "La dirección remota ha cambiado" -# ## Reescribo la frase, creo que no habías cogido el sentido. sv+ -# ## Antes decía: -# ## "El password remoto o archivo make no es leible por los demás" #: inet/ruserpass.c:162 msgid "Remove password or make file unreadable by others." -msgstr "Elimine la contraseña o haga el archivo no legible por otros." +msgstr "Elimine la contraseña o haga el fichero no legible por otros." # ## Lo cambio. Ver fileutils. sv+ -#: catgets/gencat.c:224 db/makedb.c:227 locale/programs/locale.c:257 -#: locale/programs/localedef.c:408 +#: catgets/gencat.c:224 db/makedb.c:227 locale/programs/locale.c:262 +#: locale/programs/localedef.c:415 msgid "Report bugs using the `glibcbug' script to .\n" -msgstr "Comunicar `bugs' usando el programa `glibcbug' a .\n" +msgstr "" +"Comunicar `bugs' usando el programa `glibcbug' a .\n" -#: nis/ypclnt.c:690 +#: nis/ypclnt.c:691 msgid "Request arguments bad" msgstr "Los argumentos de la petición son incorrectos" @@ -1808,10 +1804,10 @@ msgstr "Fallo en la pila" # ?? sugerencias ? # Habrá que traducir el "handle" de alguna forma... sv # No veo porqué. em -# ¿No puede un archivo tener varios `handles' +# ¿No puede un fichero tener varios `handles' # y que unos estén bloqueados y otros no? sv # En efecto la traducción es incorrecta, el uso de file handle -# en vez de file descriptor, debe ser porque nos referimos a archivos +# en vez de file descriptor, debe ser porque nos referimos a ficheros # compartidos con NFS. Al igual que no se bloquean, sino que se stalan :) # #. TRANS Stale NFS file handle. This indicates an internal confusion in the NFS @@ -1820,7 +1816,7 @@ msgstr "Fallo en la pila" #. TRANS the NFS file system on the local host. #: stdio-common/../sysdeps/gnu/errlist.c:494 msgid "Stale NFS file handle" -msgstr "Archivo NFS bloqueado" +msgstr "Fichero NFS bloqueado" #: stdio-common/../sysdeps/unix/siglist.c:47 #: sysdeps/unix/sysv/linux/siglist.h:37 @@ -1832,14 +1828,14 @@ msgstr "Parado" msgid "Stopped (signal)" msgstr "Parado (por una señal)" -# Perdonad que sea tan largo, pero es algo que nunca esta de más +# Perdonad que sea tan largo, pero es algo que nunca está de más # Creo que mejora al original ;) #: stdio-common/../sysdeps/unix/siglist.c:50 #: sysdeps/unix/sysv/linux/siglist.h:40 msgid "Stopped (tty input)" msgstr "Parado (requiere entrada de terminal)" -# Perdonad que sea tan largo, pero es algo que nunca esta de más +# Perdonad que sea tan largo, pero es algo que nunca está de más # Creo que mejora al original ;) # #: stdio-common/../sysdeps/unix/siglist.c:51 @@ -1851,7 +1847,7 @@ msgstr "Parado (requiere salida por term # ¡ Esto no hay quien lo traduzca ! em+ #: stdio-common/../sysdeps/gnu/errlist.c:778 msgid "Streams pipe error" -msgstr "Error en de tubería de streams" +msgstr "Error de tubería de streams" # FUZZY # O me cojo otras traducciones o ando perdido em+ @@ -1863,12 +1859,12 @@ msgstr "La estructura necesita una limpi # me gustaría que hubiera otra palabra mejor. SV # Siempre me han gustado F&C ;-) # A mí también :-) sv -#: nis/ypclnt.c:688 nis/ypclnt.c:762 posix/regex.c:940 +#: nis/ypclnt.c:689 nis/ypclnt.c:763 posix/regex.c:972 #: stdio-common/../sysdeps/gnu/errlist.c:7 msgid "Success" msgstr "Conseguido" -#: nis/ypclnt.c:768 +#: nis/ypclnt.c:769 msgid "System resource allocation failure" msgstr "Fallo en la asignación de recursos del sistema" @@ -1884,7 +1880,7 @@ msgstr "Terminado" #. TRANS is not an error in the GNU system; the text is copied as necessary. #: stdio-common/../sysdeps/gnu/errlist.c:185 msgid "Text file busy" -msgstr "El archivo de texto está ocupado" +msgstr "El fichero de texto está ocupado" #: stdio-common/../sysdeps/gnu/errlist.c:650 msgid "Timer expired" @@ -1912,14 +1908,14 @@ msgstr "Demasiados enlaces (links)" #. TRANS @pxref{Limits on Resources}. #: stdio-common/../sysdeps/gnu/errlist.c:163 msgid "Too many open files" -msgstr "Demasiados archivos abiertos" +msgstr "Demasiados ficheros abiertos" #. TRANS There are too many distinct file openings in the entire system. Note #. TRANS that any number of linked channels count as just one file opening; see #. TRANS @ref{Linked Channels}. This error never occurs in the GNU system. #: stdio-common/../sysdeps/gnu/errlist.c:170 msgid "Too many open files in system" -msgstr "Demasiados archivos abiertos en el sistema" +msgstr "Demasiados ficheros abiertos en el sistema" #. TRANS This means that the per-user limit on new process would be exceeded by #. TRANS an attempted @code{fork}. @xref{Limits on Resources}, for details on @@ -1948,7 +1944,7 @@ msgstr "`trap' para seguimiento/BPT" msgid "Trace/breakpoint trap" msgstr "`trap' para punto de parada/seguimiento" -#: posix/regex.c:945 +#: posix/regex.c:977 msgid "Trailing backslash" msgstr "Barra invertida extra al final `\\'" @@ -1980,8 +1976,8 @@ msgstr "El otro extremo ya está conectad msgid "Transport endpoint is not connected" msgstr "El otro extremo de la conexión no está conectado" -#: catgets/gencat.c:208 db/makedb.c:209 locale/programs/locale.c:241 -#: locale/programs/localedef.c:389 +#: catgets/gencat.c:208 db/makedb.c:209 locale/programs/locale.c:246 +#: locale/programs/localedef.c:396 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Pruebe `%s --help' para más información.\n" @@ -1997,9 +1993,9 @@ msgstr "Intentando %s...\n" msgid "Unknown .netrc keyword %s" msgstr "palabra clave desconocida en .netrc %s" -#: nis/ypclnt.c:722 +#: nis/ypclnt.c:723 msgid "Unknown NIS error code" -msgstr "Error del NIS desconocido" +msgstr "Error de NIS desconocido" #: string/../sysdeps/generic/_strerror.c:44 #: string/../sysdeps/mach/_strerror.c:67 @@ -2009,7 +2005,7 @@ msgstr "Error desconocido " # En el libro de Infovía traducen host por "anfitrión" #: resolv/herror.c:74 msgid "Unknown host" -msgstr "Host desconocido" +msgstr "`Host' desconocido" #: resolv/herror.c:120 msgid "Unknown resolver error" @@ -2024,43 +2020,45 @@ msgstr "Error del servidor desconocido" msgid "Unknown signal %d" msgstr "Señal desconocida %d" -#: misc/error.c:95 +#: misc/error.c:100 msgid "Unknown system error" msgstr "Error del sistema desconocido" -#: nis/ypclnt.c:770 +#: nis/ypclnt.c:771 msgid "Unknown ypbind error" msgstr "Error desconocido en la llamada a 'ypbind()'" -#: posix/regex.c:948 +#: posix/regex.c:980 msgid "Unmatched ( or \\(" msgstr "( ó \\( desemparejados" -#: posix/regex.c:956 +#: posix/regex.c:988 msgid "Unmatched ) or \\)" msgstr ") ó \\) desemparejados" -#: posix/regex.c:947 +#: posix/regex.c:979 msgid "Unmatched [ or [^" msgstr "[ ó ^[ desemparejados" -#: posix/regex.c:949 +#: posix/regex.c:981 msgid "Unmatched \\{" msgstr "\\{ desemparejado" # ## FUZZY. Este te dejo que se lo quites tú. sv # ## :) em+ +# Lo cambio. sv #: posix/getconf.c:260 #, c-format msgid "Unrecognized variable `%s'" -msgstr "Variable desconocida `%s'" +msgstr "Variable no reconocida `%s'" # Sugerencia: de E/S sv+ +# Lo cambio. sv # ?? sigo pensando en una traducción para condición #: stdio-common/../sysdeps/unix/siglist.c:45 #: sysdeps/unix/sysv/linux/siglist.h:35 msgid "Urgent I/O condition" -msgstr "Condición urgente de entrada/saluda" +msgstr "Condición urgente de E/S" #: catgets/gencat.c:212 #, c-format @@ -2068,7 +2066,8 @@ msgid "" "Usage: %s [OPTION]... -o OUTPUT-FILE [INPUT-FILE]...\n" " %s [OPTION]... [OUTPUT-FILE [INPUT-FILE]...]\n" "Mandatory arguments to long options are mandatory for short options too.\n" -" -H, --header create C header file containing symbol definitions\n" +" -H, --header=NAME create C header file NAME containing symbol " +"definitions\n" " -h, --help display this help and exit\n" " --new do not use existing catalog, force new output file\n" " -o, --output=NAME write output to file NAME\n" @@ -2076,21 +2075,21 @@ msgid "" "If INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n" "is -, output is written to standard output.\n" msgstr "" -"Modo de empleo: %s [OPCIÓN]... -o ARCHIVO-SALIDA [ARCHIVO-ENTRADA]...\n" -" %s [OPCIÓN]... [ARCHIVO-SALIDA [ARCHIVO-ENTRADA]...]\n" +"Modo de empleo: %s [OPCIÓN]... -o FICHERO-SALIDA [FICHERO-ENTRADA]...\n" +" %s [OPCIÓN]... [FICHERO-SALIDA [FICHERO-ENTRADA]...]\n" "Los argumentos obligatorios para las opciones largas son también " "obligatorios\n" "para las opciones cortas.\n" -" -H, --header Crea un archivo de cabecera C con las definiciones " -"de\n" +" -H, --header=NOMBRE crea el fichero NOMBRE de cabeceras C con las " +"definiciones de\n" " los símbolos\n" -" -h, --help Muestra esta ayuda y finaliza\n" -" --new no usa el catálogo existente, crea un nuevo archivo\n" +" -h, --help muestra esta ayuda y finaliza\n" +" --new no usa el catálogo existente, crea un nuevo fichero\n" " de salida\n" -" -o, --output=ARCHIVO escribe el resultado en el archivo ARCHIVO\n" +" -o, --output=NOMBRE escribe el resultado en el fichero NOMBRE\n" " -V, --version informa de la versión y finaliza\n" -"Si ARCHIVO-ENTRADA es -, la entrada se lee de la entrada estándar.\n" -"Si ARCHIVO-SALIDA es -, el resultado se escribe en la salida estándar.\n" +"Si FICHERO-ENTRADA es -, la entrada se lee de la entrada estándar.\n" +"Si FICHERO-SALIDA es -, el resultado se escribe en la salida estándar.\n" #: db/makedb.c:213 #, c-format @@ -2107,24 +2106,24 @@ msgid "" " -V, --version output version information and exit\n" "If INPUT-FILE is -, input is read from standard input.\n" msgstr "" -"Modo de empleo: %s [OPCIÓN]... ARCHIVO-ENTRADA ARCHIVO-SALIDA\n" -" %s [OPCIÓN]... -o ARCHIVO-SALIDA ARCHIVO-ENTRADA\n" -" %s [OPCIÓN]... -u ARCHIVO-ENTRADA\n" +"Modo de empleo: %s [OPCIÓN]... FICHERO-ENTRADA FICHERO-SALIDA\n" +" %s [OPCIÓN]... -o FICHERO-SALIDA FICHERO-ENTRADA\n" +" %s [OPCIÓN]... -u FICHERO-ENTRADA\n" "Los argumentos obligatorios para las opciones largas son también " "obligatorios\n" "para las opciones cortas.\n" " -f, --fold-case convierte las claves a minúsculas\n" " -h, --help Muestra esta ayuda y finaliza\n" -" -o, --output=ARCHIVO escribe el resultado en el archivo ARCHIVO\n" +" -o, --output=FICHERO escribe el resultado en el fichero FICHERO\n" " --quiet no muestra mensajes al construir la base de datos\n" -" -u, --undo muestra el contenido del archivo de datos, una\n" +" -u, --undo muestra el contenido del fichero de datos, una\n" " entrada por línea\n" " -V, --version informa de la versión y finaliza\n" -"Si ARCHIVO-ENTRADA es -, la entrada se lee de la entrada estándar.\n" +"Si FICHERO-ENTRADA es -, la entrada se lee de la entrada estándar.\n" # ## Cambio la frase final. Ten en cuenta que a lo mejor el nombre del # ## directorio se sale si no. sv+ -#: locale/programs/localedef.c:393 +#: locale/programs/localedef.c:400 #, c-format msgid "" "Usage: %s [OPTION]... name\n" @@ -2150,21 +2149,24 @@ msgstr "" "mensajes\n" " de aviso\n" " -h, --help muestra esta ayuda y finaliza\n" -" -f, --charmap=ARCHIVO los nombres símbólicos de caracteres se " +" -f, --charmap=FICHERO los nombres símbólicos de caracteres se " "encuentran\n" -" en ARCHIVO\n" -" -i, --inputfile=ARCHIVO las definiciones fuente se encuetran en " -"ARCHIVO\n" -" -u, --code-set-name=NOMBRE especifica el conjunto de códigos para mapear\n" +" en FICHERO\n" +" -i, --inputfile=FICHERO las definiciones fuente se encuentran en " +"FICHERO\n" +" -u, --code-set-name=NOMBRE especifica el conjunto de códigos para asignar\n" " los elementos ISO 10646\n" " -v, --verbose incrementa el número de mensajes mostrados\n" " -V, --version informa de la versión y finaliza\n" " --posix atiende estrictamente las especificaciones " "POSIX\n" -"Directorio del sistema para los mapas de caracteres: %s\n" -" los archivos de locales: %s\n" +"\n" +"Directorio del sistema para las tablas de caracteres:\n" +"%s\n" +" los ficheros de locales:\n" +"%s\n" -#: locale/programs/locale.c:245 +#: locale/programs/locale.c:250 #, c-format msgid "" "Usage: %s [OPTION]... name\n" @@ -2186,7 +2188,7 @@ msgstr "" "\n" " -a, --all-locales muestra los nombres de todos los locales " "disponibles\n" -" -m, --charmaps muestra los nombres de todos los mapas de " +" -m, --charmaps muestra los nombres de todas las tablas de " "caracteres\n" " disponibles\n" "\n" @@ -2228,7 +2230,7 @@ msgid "Virtual timer expired" msgstr "El temporizador virtual llegó al final" # # Otra opción, resultado incongruente al ejecutar la orden em -#: time/zic.c:1859 +#: time/zic.c:1884 msgid "Wild result from command execution" msgstr "Resultado salvaje en la ejecución de la orden" @@ -2237,8 +2239,8 @@ msgstr "Resultado salvaje en la ejecució msgid "Window changed" msgstr "Ventana cambiada" -#: catgets/gencat.c:174 db/makedb.c:125 locale/programs/locale.c:192 -#: locale/programs/localedef.c:182 +#: catgets/gencat.c:174 db/makedb.c:125 locale/programs/locale.c:196 +#: locale/programs/localedef.c:185 #, c-format msgid "Written by %s.\n" msgstr "Escrito por %s.\n" @@ -2283,18 +2285,18 @@ msgid "You really blew it this time" msgstr "Esta vez si que lo has roto" # VER -#: time/zic.c:1054 +#: time/zic.c:1052 msgid "Zone continuation line end time is not after end time of previous line" msgstr "" -"La línea de continuación de la zona no esta después del tiempo de final\n" +"La línea de continuación de la zona no está después del tiempo de final\n" "de la línea anterior" -#: locale/programs/charmap.c:397 locale/programs/locfile.c:341 +#: locale/programs/charmap.c:397 locale/programs/locfile.c:363 #, c-format msgid "`%1$s' definition does not end with `END %1$s'" msgstr "La definición `%1$s' no termina con `END %1$s'" -#: locale/programs/ld-monetary.c:358 locale/programs/ld-numeric.c:190 +#: locale/programs/ld-monetary.c:359 locale/programs/ld-numeric.c:190 #, c-format msgid "`-1' must be last entry in `%s' field in `%s' category" msgstr "" @@ -2305,16 +2307,16 @@ msgstr "" # FUZZY # entries ? debe haber algo para eso # lo traducí antes como especificación, pero ... em+ -#: locale/programs/ld-collate.c:1652 +#: locale/programs/ld-collate.c:1655 msgid "`...' must only be used in `...' and `UNDEFINED' entries" -msgstr "`...' debe ser usado únicamente en las entradas `...' y `UNDEFINED'" +msgstr "`...' debe usarse únicamente en las entradas `...' y `UNDEFINED'" -#: locale/programs/locfile.c:538 +#: locale/programs/locfile.c:560 msgid "`from' expected after first argument to `collating-element'" msgstr "" "Se esperaba `from' después del primer argumento para `collating-element'" -#: locale/programs/ld-collate.c:1109 +#: locale/programs/ld-collate.c:1112 msgid "" "`from' string in collation element declaration contains unknown character" msgstr "" @@ -2327,38 +2329,38 @@ msgstr "" msgid "argument to <%s> must be a single character" msgstr "el argumento para <%s> debe ser un único carácter" -#: locale/programs/locfile.c:215 +#: locale/programs/locfile.c:237 #, c-format msgid "argument to `%s' must be a single character" msgstr "el argumento para `%s' debe ser un único carácter" # ??? mariscalización ? -#: sunrpc/auth_unix.c:322 +#: sunrpc/auth_unix.c:323 msgid "auth_none.c - Fatal marshalling problem" msgstr "auth_none.c - Problema muy grave con autorización marshall" -#: inet/rcmd.c:361 +#: inet/rcmd.c:365 msgid "bad .rhosts owner" -msgstr "El propietario del archivo .rhosts no es válido" +msgstr "El propietario del fichero .rhosts no es válido" -#: locale/programs/charmap.c:212 locale/programs/locfile.c:209 +#: locale/programs/charmap.c:212 locale/programs/locfile.c:231 msgid "bad argument" msgstr "Argumento no válido" -#: time/zic.c:1176 +#: time/zic.c:1174 msgid "blank FROM field on Link line" msgstr "Campo FROM vacío en la línea `Link'" -#: time/zic.c:1180 +#: time/zic.c:1178 msgid "blank TO field on Link line" msgstr "Campo TO vacío en la línea `Link'" -#: new-malloc/mcheck.c:191 +#: malloc/mcheck.c:191 msgid "block freed twice" msgstr "bloque liberado dos veces" # Revisar lo de bogus. creo que es eso. -#: new-malloc/mcheck.c:194 +#: malloc/mcheck.c:194 msgid "bogus mcheck_status, library is buggy" msgstr "Valor de mcheck_status incorrecto, la biblioteca tiene un bug" @@ -2376,7 +2378,7 @@ msgid "cache_set: victim not found" msgstr "cache_set: no se encontró el objetivo" # FUZZY -#: time/zic.c:1700 +#: time/zic.c:1711 msgid "can't determine time zone abbreviation to use just after until time" msgstr "" "No se puede determinar la abreviación de zona horaria que se usará justo\n" @@ -2387,22 +2389,22 @@ msgstr "" msgid "can't reassign procedure number %d\n" msgstr "no se puede reasignar el procedimiento número %d\n" -#: locale/programs/localedef.c:287 +#: locale/programs/localedef.c:294 #, c-format msgid "cannot `stat' locale file `%s'" -msgstr "la llamada a `stat' falló en el archivo de locales `%s'" +msgstr "la llamada a `stat' falló en el fichero de locales `%s'" -#: locale/programs/ld-collate.c:1314 +#: locale/programs/ld-collate.c:1317 #, c-format msgid "cannot insert collation element `%.*s'" msgstr "no se puede insertar el elemento de unión `%.*s' " -#: locale/programs/ld-collate.c:1493 locale/programs/ld-collate.c:1498 +#: locale/programs/ld-collate.c:1496 locale/programs/ld-collate.c:1501 msgid "cannot insert into result table" msgstr "no se puede insertar el la tabla de resultados" # FUZZY -#: locale/programs/ld-collate.c:1166 locale/programs/ld-collate.c:1208 +#: locale/programs/ld-collate.c:1169 locale/programs/ld-collate.c:1211 #, c-format msgid "cannot insert new collating symbol definition: %s" msgstr "no se puede insertar la nueva definición para el símbolo de unión: %s" @@ -2410,113 +2412,113 @@ msgstr "no se puede insertar la nueva de #: db/makedb.c:161 #, c-format msgid "cannot open database file `%s': %s" -msgstr "no se puede abrir el archivo de datos `%s': %s" +msgstr "no se puede abrir el fichero de datos `%s': %s" #: catgets/gencat.c:260 db/makedb.c:180 #, c-format msgid "cannot open input file `%s'" -msgstr "no se puede abrir el archivo de entrada `%s'" +msgstr "no se puede abrir el fichero de entrada `%s'" -#: locale/programs/localedef.c:221 +#: locale/programs/localedef.c:224 #, c-format msgid "cannot open locale definition file `%s'" -msgstr "no se puede abrir el archivo de definición de locales `%s'" +msgstr "no se puede abrir el fichero de definición de locales `%s'" #: catgets/gencat.c:765 catgets/gencat.c:806 db/makedb.c:189 #, c-format msgid "cannot open output file `%s'" -msgstr "no se puede abrir el archivo de salida `%s'" +msgstr "no se puede abrir el fichero de salida `%s'" -#: locale/programs/locfile.c:986 +#: locale/programs/locfile.c:1020 #, c-format msgid "cannot open output file `%s' for category `%s'" -msgstr "no se puede abrir el archivo de salida `%s' para la categoría `%s'" +msgstr "no se puede abrir el fichero de salida `%s' para la categoría `%s'" # FUZZY -#: locale/programs/ld-collate.c:1360 +#: locale/programs/ld-collate.c:1363 msgid "cannot process order specification" msgstr "no se pueden procesar las especificaciones de orden" -#: locale/programs/locale.c:304 +#: locale/programs/locale.c:444 #, c-format msgid "cannot read character map directory `%s'" -msgstr "no se puede leer el directorio de mapas de caracters `%s'" +msgstr "no se puede leer el directorio de tablas de caracteres `%s'" -#: locale/programs/locale.c:279 +#: locale/programs/locale.c:301 #, c-format msgid "cannot read locale directory `%s'" msgstr "No se puede leer directorio de locales %s" -#: locale/programs/localedef.c:309 +#: locale/programs/localedef.c:316 #, c-format msgid "cannot read locale file `%s'" -msgstr "no se puede leer el archivo de locales `%s'" +msgstr "no se puede leer el fichero de locales `%s'" -#: locale/programs/localedef.c:334 +#: locale/programs/localedef.c:341 #, c-format msgid "cannot write output files to `%s'" -msgstr "no se puede escribir en el archivo de salida `%s'" +msgstr "no se puede escribir en el fichero de salida `%s'" -#: locale/programs/localedef.c:377 +#: locale/programs/localedef.c:384 msgid "category data requested more than once: should not happen" msgstr "categoría de datos reclamada más de una vez, no debería de ocurrir" -#: locale/programs/ld-ctype.c:265 +#: locale/programs/ld-ctype.c:266 #, c-format msgid "character %s'%s' in class `%s' must be in class `%s'" msgstr "el carácter %s'%s' en la clase `%s' debe estar en la clase `%s'" -#: locale/programs/ld-ctype.c:289 +#: locale/programs/ld-ctype.c:291 #, c-format msgid "character %s'%s' in class `%s' must not be in class `%s'" msgstr "el carácter %s'%s' en la clase `%s' no debe estar en la clase `%s" -#: locale/programs/ld-ctype.c:310 +#: locale/programs/ld-ctype.c:313 msgid "character not defined in character map" -msgstr "el carácter no está definido en el mapa de caracteres'" +msgstr "el carácter no está definido en la tabla de caracteres" -#: locale/programs/ld-ctype.c:939 locale/programs/ld-ctype.c:1002 -#: locale/programs/ld-ctype.c:1010 locale/programs/ld-ctype.c:1018 -#: locale/programs/ld-ctype.c:1026 locale/programs/ld-ctype.c:1034 -#: locale/programs/ld-ctype.c:1042 locale/programs/ld-ctype.c:1068 -#: locale/programs/ld-ctype.c:1076 locale/programs/ld-ctype.c:1114 -#: locale/programs/ld-ctype.c:1141 locale/programs/ld-ctype.c:1152 +#: locale/programs/ld-ctype.c:944 locale/programs/ld-ctype.c:1007 +#: locale/programs/ld-ctype.c:1015 locale/programs/ld-ctype.c:1023 +#: locale/programs/ld-ctype.c:1031 locale/programs/ld-ctype.c:1039 +#: locale/programs/ld-ctype.c:1047 locale/programs/ld-ctype.c:1073 +#: locale/programs/ld-ctype.c:1081 locale/programs/ld-ctype.c:1119 +#: locale/programs/ld-ctype.c:1146 locale/programs/ld-ctype.c:1157 #, c-format msgid "character `%s' not defined while needed as default value" msgstr "" "el carácter `%s' no está definido cuando se necesitó como valor por defecto" -#: locale/programs/ld-ctype.c:801 +#: locale/programs/ld-ctype.c:806 #, c-format msgid "character class `%s' already defined" msgstr "la clase de carácter `%s' ya fue definida" -#: locale/programs/ld-ctype.c:833 +#: locale/programs/ld-ctype.c:838 #, c-format msgid "character map `%s' already defined" -msgstr "mapa de caracteres `%s' ya está definido" +msgstr "la tabla de caracteres `%s' ya está definida" #: locale/programs/charmap.c:76 #, c-format msgid "character map file `%s' not found" -msgstr "el mapa de caracteres `%s' no se encontró" +msgstr "el fichero de tabla de caracteres `%s' no se encontró" #: sunrpc/clnt_raw.c:106 msgid "clnt_raw.c - Fatal header serialization error." msgstr "clnt_raw.c - Error grave en la secuencia de cabecera" -#: locale/programs/ld-collate.c:1329 +#: locale/programs/ld-collate.c:1332 #, c-format msgid "collation element `%.*s' appears more than once: ignore line" msgstr "" "el elemento de unión `%.*s' aparece más de una vez: pasando por alto la línea" -#: locale/programs/ld-collate.c:1347 +#: locale/programs/ld-collate.c:1350 #, c-format msgid "collation symbol `%.*s' appears more than once: ignore line" msgstr "símbolo de unión `%.*s' aparece más de una vez: descartando la línea" -#: locale/programs/locfile.c:522 +#: locale/programs/locfile.c:544 #, c-format msgid "collation symbol expected after `%s'" msgstr "símbolo de unión esperado después de `%s'" @@ -2538,7 +2540,7 @@ msgstr "no se pudo registrar el programa #: locale/programs/charmap.c:86 #, c-format msgid "default character map file `%s' not found" -msgstr " no se encontró el archivo de mapa de caracteres por defecto `%s'" +msgstr "no se encontró el fichero de tabla de caracteres predeterminado `%s'" #: locale/programs/ld-time.c:154 #, c-format @@ -2547,7 +2549,7 @@ msgid "" "'-'" msgstr "" "el indicador de dirección en la cadena %d en el campo `era' de la categoría\n" -"`%s' no es '+' o '-'" +"`%s' no es '+' ni '-'" #: locale/programs/ld-time.c:164 #, c-format @@ -2563,11 +2565,11 @@ msgstr "" msgid "duplicate character name `%s'" msgstr "nombre de carácter duplicado `%s'" -#: locale/programs/ld-collate.c:1141 +#: locale/programs/ld-collate.c:1144 msgid "duplicate collating element definition" msgstr "definición duplicada del elemento de unión" -#: locale/programs/ld-collate.c:1287 +#: locale/programs/ld-collate.c:1290 #, c-format msgid "duplicate definition for character `%.*s'" msgstr "definición duplicada del carácter `%.*s" @@ -2580,10 +2582,10 @@ msgstr "tecla duplicada" msgid "duplicate set definition" msgstr "definición de conjunto duplicada" -#: time/zic.c:969 +#: time/zic.c:967 #, c-format msgid "duplicate zone name %s (file \"%s\", line %d)" -msgstr "nombre de zona %s duplicado (archivo \"%s\", línea %d)" +msgstr "nombre de zona %s duplicado (fichero \"%s\", línea %d)" #: catgets/gencat.c:542 msgid "duplicated message identifier" @@ -2593,7 +2595,7 @@ msgstr "identificador de mensaje duplica msgid "duplicated message number" msgstr "número de mensaje duplicado" -#: locale/programs/ld-collate.c:1696 +#: locale/programs/ld-collate.c:1699 msgid "empty weight name: line ignored" msgstr "nombre de peso vacío: la línea se pasa por alto" @@ -2618,37 +2620,37 @@ msgid "enablecache: could not allocate c msgstr "enablecache: no se pudo crear espacio para la pila del caché" # ## ellipsis NO era elipse... sv+ -#: locale/programs/ld-collate.c:1419 +#: locale/programs/ld-collate.c:1422 msgid "end point of ellipsis range is bigger then start" msgstr "" "el punto de final para el rango de la elipsis es mayor que el de comienzo" -#: locale/programs/ld-collate.c:1149 +#: locale/programs/ld-collate.c:1152 msgid "error while inserting collation element into hash table" msgstr "error cuando se insertaba el elemento de unión en la tabla enlazada" -#: locale/programs/ld-collate.c:1161 +#: locale/programs/ld-collate.c:1164 msgid "error while inserting to hash table" msgstr "error al insertar en la tabla enlazada" -#: locale/programs/locfile.c:465 +#: locale/programs/locfile.c:487 msgid "expect string argument for `copy'" msgstr "se espera un argumento de cadena de caracteres para `copy'" -#: time/zic.c:860 +#: time/zic.c:858 msgid "expected continuation line not found" msgstr "la línea de continuación esperada no se encuentra" -#: locale/programs/locfile.c:1010 +#: locale/programs/locfile.c:1044 #, c-format msgid "failure while writing data for category `%s'" msgstr "error al escribir los datos para la categoría `%s'" -#: nis/ypclnt.c:186 +#: nis/ypclnt.c:187 msgid "fcntl: F_SETFD" msgstr "fcntl: F_SETFD" -#: locale/programs/ld-monetary.c:154 locale/programs/ld-numeric.c:95 +#: locale/programs/ld-monetary.c:155 locale/programs/ld-numeric.c:95 #, c-format msgid "field `%s' in category `%s' not defined" msgstr "el campo `%s' en la categoría `%s' no está definido" @@ -2658,7 +2660,7 @@ msgstr "el campo `%s' en la categoría `% msgid "field `%s' in category `%s' undefined" msgstr "el campo `%s' en la categoría `%s' no se ha definido" -#: locale/programs/locfile.c:547 +#: locale/programs/locfile.c:569 msgid "from-value of `collating-element' must be a string" msgstr "" "el valor `from-value' del elemento de unión ha de ser una cadena de " @@ -2671,8 +2673,8 @@ msgstr "" "caracteres" #: locale/programs/linereader.c:214 -msgid "garbage at end of digit" -msgstr "inconsistencias al final del dígito" +msgid "garbage at end of number" +msgstr "inconsistencias al final del número" #: locale/programs/ld-time.c:183 #, c-format @@ -2690,7 +2692,7 @@ msgstr "" "incongruencias al final de la fecha de comienzo en la cadena %d en el\n" "campo `era' de la categoría `%s'" -#: locale/programs/ld-time.c:310 +#: locale/programs/ld-time.c:311 #, c-format msgid "" "garbage at end of stopping date in string %d in `era' field in category `%s'" @@ -2702,33 +2704,33 @@ msgstr "" msgid "get_myaddress: ioctl (get interface configuration)" msgstr "get_myaddress: ioctl (lee la configuración del interfaz)" -#: time/zic.c:1153 +#: time/zic.c:1151 msgid "illegal CORRECTION field on Leap line" -msgstr "El campo CORRECTION en la línea de año bisiesto no es válido" +msgstr "El campo CORRECTION en la línea de año bisiesto es ilegal" -#: time/zic.c:1157 +#: time/zic.c:1155 msgid "illegal Rolling/Stationary field on Leap line" -msgstr "Campo Rolling/Stationary no válido en la línea de año bisiesto" +msgstr "Campo Rolling/Stationary ilegal en la línea de año bisiesto" -#: locale/programs/ld-collate.c:1767 +#: locale/programs/ld-collate.c:1770 msgid "illegal character constant in string" -msgstr "carácter no válido en el archivo: " +msgstr "carácter ilegal en la cadena" -#: locale/programs/ld-collate.c:1116 +#: locale/programs/ld-collate.c:1119 msgid "illegal collation element" -msgstr "elemento de unión no válido" +msgstr "elemento de unión ilegal" #: locale/programs/charmap.c:196 msgid "illegal definition" -msgstr "definición no válida" +msgstr "definición ilegal" #: locale/programs/charmap.c:349 msgid "illegal encoding given" -msgstr "especificada una codificación no válida" +msgstr "especificada una codificación ilegal" #: locale/programs/linereader.c:546 msgid "illegal escape sequence at end of string" -msgstr "secuencia de escape no permitida al final de la cadena de caracteres" +msgstr "secuencia de escape ilegal al final de la cadena de caracteres" #: locale/programs/charset.c:101 msgid "illegal names for character range" @@ -2738,126 +2740,126 @@ msgstr "nombres no permitidos para el ra #, c-format msgid "illegal number for offset in string %d in `era' field in category `%s'" msgstr "" -"número de desplazamiento no válido en la cadena %d en el campo `era' de la\n" +"número de desplazamiento ilegal en la cadena %d en el campo `era' de la\n" "categoría `%s'" #: catgets/gencat.c:352 catgets/gencat.c:429 msgid "illegal set number" -msgstr "número de conjunto inválido" +msgstr "número de conjunto ilegal" #: locale/programs/ld-time.c:230 #, c-format msgid "illegal starting date in string %d in `era' field in category `%s'" msgstr "" -"fecha de comienzo no válida en la cadena %d en el campo `era' de la\n" +"fecha de comienzo ilegal en la cadena %d en el campo `era' de la\n" "categoría `%s'" -#: locale/programs/ld-time.c:302 +#: locale/programs/ld-time.c:303 #, c-format msgid "illegal stopping date in string %d in `era' field in category `%s'" msgstr "" -"fecha de parada no válida en la cadena %d en el campo `era' de la\n" +"fecha de parada ilegal en la cadena %d en el campo `era' de la\n" "categoría `%s'" -#: locale/programs/ld-ctype.c:807 +#: locale/programs/ld-ctype.c:812 #, c-format msgid "implementation limit: no more than %d character classes allowed" msgstr "" "límite de la implementación: no se permiten más de %d clases de caracteres " -#: locale/programs/ld-ctype.c:839 +#: locale/programs/ld-ctype.c:844 #, c-format msgid "implementation limit: no more than %d character maps allowed" msgstr "" -"límite de la implementación: no se permiten más de %d mapas de caracteres" +"límite de la implementación: no se permiten más de %d tablas de caracteres" #: db/makedb.c:163 msgid "incorrectly formatted file" -msgstr "archivo formateado incorrectamente" +msgstr "fichero formateado incorrectamente" -#: time/zic.c:817 +#: time/zic.c:815 msgid "input line of unknown type" msgstr "línea de entrada de tipo desconocido" -#: time/zic.c:1748 +#: time/zic.c:1773 msgid "internal error - addtype called with bad isdst" msgstr "error interno - se llamó a 'addtype' con 'isdst' erróneo" -#: time/zic.c:1756 +#: time/zic.c:1781 msgid "internal error - addtype called with bad ttisgmt" msgstr "error interno - se llamó a 'addtype' con 'ttisgmt' erróneo" -#: time/zic.c:1752 +#: time/zic.c:1777 msgid "internal error - addtype called with bad ttisstd" msgstr "error interno - se llamó a 'addtype' con 'ttisstd' erróneo" -#: locale/programs/ld-ctype.c:301 +#: locale/programs/ld-ctype.c:304 #, c-format msgid "internal error in %s, line %u" msgstr "error interno en %s, línea %u" -#: time/zic.c:1025 +#: time/zic.c:1023 msgid "invalid GMT offset" -msgstr "desplazamiento GMT no válido" +msgstr "desplazamiento GMT inválido" # ¿No será "abreviatura"? sv+ -#: time/zic.c:1028 +#: time/zic.c:1026 msgid "invalid abbreviation format" msgstr "formato de abreviación incorrecto" -#: time/zic.c:1118 time/zic.c:1317 time/zic.c:1331 +#: time/zic.c:1116 time/zic.c:1326 time/zic.c:1340 msgid "invalid day of month" -msgstr "día del mes no válido" +msgstr "día del mes inválido" -#: time/zic.c:1276 +#: time/zic.c:1279 msgid "invalid ending year" -msgstr "año de final no válido" +msgstr "año de final inválido" -#: time/zic.c:1090 +#: time/zic.c:1088 msgid "invalid leaping year" msgstr "año bisiesto inválido" -#: time/zic.c:1105 time/zic.c:1208 +#: time/zic.c:1103 time/zic.c:1206 msgid "invalid month name" msgstr "nombre de mes incorrecto" -#: time/zic.c:924 +#: time/zic.c:922 msgid "invalid saved time" msgstr "la hora almacenada no es válida" -#: time/zic.c:1256 +#: time/zic.c:1255 msgid "invalid starting year" -msgstr "año de comienzo no válido" +msgstr "año de comienzo inválido" -#: time/zic.c:1134 time/zic.c:1236 +#: time/zic.c:1132 time/zic.c:1235 msgid "invalid time of day" -msgstr "hora del día no válida" +msgstr "hora del día inválida" -#: time/zic.c:1322 +#: time/zic.c:1331 msgid "invalid weekday name" msgstr "nombre del día de la semana incorrecto" -#: locale/programs/ld-collate.c:1412 +#: locale/programs/ld-collate.c:1415 msgid "line after ellipsis must contain character definition" msgstr "" "la línea de después de la elipsis tiene que contener una definición de " "carácter" -#: locale/programs/ld-collate.c:1391 +#: locale/programs/ld-collate.c:1394 msgid "line before ellipsis does not contain definition for character constant" msgstr "" "la línea posterior a la elipsis no contiene una definición para una " "constante de carácter" -#: time/zic.c:797 +#: time/zic.c:795 msgid "line too long" msgstr "línea demasiado larga" -#: locale/programs/localedef.c:281 +#: locale/programs/localedef.c:288 #, c-format msgid "locale file `%s', used in `copy' statement, not found" msgstr "" -"archivo de locales `%s', que se usa en una orden `copy', no se encuentra" +"fichero de locales `%s', que se usa en una orden `copy', no se encuentra" #: catgets/gencat.c:610 msgid "malformed line ignored" @@ -2868,48 +2870,48 @@ msgstr "línea incorrecta se ignoró" # ¿estropeada? ¿alterada? <- votaría por ésta. sv # Pues después de ver la traducción de Jochen estoy perdido # le voy a consultar a él directamente. em -#: new-malloc/mcheck.c:185 +#: malloc/mcheck.c:185 msgid "memory clobbered before allocated block" msgstr "memoria alterada antes del comienzo del bloque de memoria asignado" # ??? lo mismo digo # aceptado hasta que consulte con Jochen # lo mismo sugiero. sv -#: new-malloc/mcheck.c:188 +#: malloc/mcheck.c:188 msgid "memory clobbered past end of allocated block" msgstr "memoria alterada pasado el final del bloque de memoria asignado" #: locale/programs/ld-collate.c:167 locale/programs/ld-collate.c:173 -#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1439 -#: locale/programs/ld-collate.c:1468 locale/programs/locfile.c:940 +#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1442 +#: locale/programs/ld-collate.c:1471 locale/programs/locfile.c:974 #: locale/programs/xmalloc.c:68 posix/getconf.c:250 msgid "memory exhausted" msgstr "memoria agotada" -#: new-malloc/obstack.c:462 +#: malloc/obstack.c:466 msgid "memory exhausted\n" msgstr "Memoria agotada\n" # biblioteca está recogida en la lista de pifias de Ángel Álvarez. -#: new-malloc/mcheck.c:182 +#: malloc/mcheck.c:182 msgid "memory is consistent, library is buggy" msgstr "no hay problemas con la memoria, la biblioteca tiene un bug" -#: locale/programs/ld-time.c:348 +#: locale/programs/ld-time.c:350 #, c-format msgid "missing era format in string %d in `era' field in category `%s'" msgstr "" -"nombre de era no encontrado en la cadena %d en el campo `era' de la\n" +"falta el formato de era en la cadena %d en el campo `era' de la\n" "categoría `%s'" -#: locale/programs/ld-time.c:337 +#: locale/programs/ld-time.c:339 #, c-format -msgid "missing era name in string %d in `era' fieldin category `%s'" +msgid "missing era name in string %d in `era' field in category `%s'" msgstr "" -"nomnbre de era no encontrado en la cadena %d en el campo `era' de la\n" +"falta el nombre de la era en la cadena %d en el campo `era' de la\n" "categoría `%s'" -#: time/zic.c:919 +#: time/zic.c:917 msgid "nameless rule" msgstr "regla sin nombre" @@ -2930,31 +2932,31 @@ msgstr "" # Esto debe tener algo que ver con la función menopausie() em # No se me había ocurrido... ¿Se te ocurre algo mejor, ahora que ya # sabemos lo que quiere decir? sv -#: time/zic.c:2074 +#: time/zic.c:2099 msgid "no day in month matches rule" msgstr "ningún día del mes coincide con la regla" -#: locale/programs/ld-collate.c:259 +#: locale/programs/ld-collate.c:260 msgid "no definition of `UNDEFINED'" msgstr "no hay definición para `UNDEFINED'" -#: locale/programs/locfile.c:479 +#: locale/programs/locfile.c:501 msgid "no other keyword shall be specified when `copy' is used" msgstr "ninguna otra palabra clave debe ser especificada al usar `copy'" -#: locale/programs/localedef.c:340 +#: locale/programs/localedef.c:347 msgid "no output file produced because warning were issued" -msgstr "no se produjo archivo de salida debido a la existencia de warnings" +msgstr "no se produjo fichero de salida debido a la existencia de warnings" #: locale/programs/charmap.c:315 locale/programs/charmap.c:466 #: locale/programs/charmap.c:545 msgid "no symbolic name given" -msgstr "no se proporció un nombre simbólico" +msgstr "no se ha especificado ningún nombre simbólico" #: locale/programs/charmap.c:380 locale/programs/charmap.c:512 #: locale/programs/charmap.c:578 msgid "no symbolic name given for end of range" -msgstr "no se proporció un nombre simbólico para el final del rango" +msgstr "no se ha especificado ningún nombre simbólico para el final del rango" #: locale/programs/ld-collate.c:244 #, c-format @@ -2971,7 +2973,6 @@ msgstr "" msgid "problems while reading `%s'" msgstr "problemas mientras se leía `%s'" -# ## Borro un fuzzy que había. sv #: sunrpc/rpcinfo.c:222 sunrpc/rpcinfo.c:350 #, c-format msgid "program %lu is not available\n" @@ -2996,7 +2997,7 @@ msgstr "rcmd: select (activando la salid #: inet/rcmd.c:104 msgid "rcmd: socket: All ports in use\n" -msgstr "rcmd: socket: Todos los puertos están siendo usados\n" +msgstr "rcmd: socket: Se están usando todos los puertos\n" #: inet/rcmd.c:160 #, c-format @@ -3007,14 +3008,14 @@ msgstr "rcmd: write (activando la salida msgid "registerrpc: out of memory\n" msgstr "registerrpc: memoria agotada\n" -#: time/zic.c:1809 +#: time/zic.c:1834 msgid "repeated leap second moment" msgstr "segundo intercalar repetido" #: sunrpc/rpcinfo.c:659 #, c-format msgid "rpcinfo: %s is unknown host\n" -msgstr "rpcinfo: el host %s es desconocido\n" +msgstr "rpcinfo: el `host' %s es desconocido\n" #: sunrpc/rpcinfo.c:626 #, c-format @@ -3028,26 +3029,22 @@ msgstr "rpcinfo: el servicio `%s' es des msgid "rpcinfo: Could not delete registration for prog %s version %s\n" msgstr "no se pudo borrar el registro para el programa %s versión %s\n" -# Sugerencia: broadcast -> `broadcast'. sv+ #: sunrpc/rpcinfo.c:576 #, c-format msgid "rpcinfo: broadcast failed: %s\n" -msgstr "rpcinfo: el broadcast no tuvo éxito: %s\n" +msgstr "rpcinfo: el `broadcast' no tuvo éxito: %s\n" -# ¡Necesitamos ayuda para "mapeador"! #: sunrpc/rpcinfo.c:505 msgid "rpcinfo: can't contact portmapper" -msgstr "" -"rpcinfo: no se puede comunicar con el mapeador de puertos (`portmapper')" +msgstr "rpcinfo: no se puede comunicar con el asignador de puertos" #: sunrpc/rpcinfo.c:510 msgid "rpcinfo: can't contact portmapper: " -msgstr "" -"rpcinfo: no se puede comunicar con el mapeador de puertos (`portmapper'): " +msgstr "rpcinfo: no se puede comunicar con el asignador de puertos: " -#: time/zic.c:710 time/zic.c:712 +#: time/zic.c:708 time/zic.c:710 msgid "same rule name in multiple files" -msgstr "mismo nombre de regla en varios archivos" +msgstr "mismo nombre de regla en varios ficheros" # ¿en la configuración del servicio?, ¿del circuito?, ¿o dejarlo así? # Es de locos, estuve viendo las/los fuentes, preferí dejarlo así. em @@ -3060,44 +3057,56 @@ msgstr "select: fallo de protocolo al co msgid "socket: protocol failure in circuit setup\n" msgstr "socket: fallo de protocolo al configurar el circuito\n" -#: locale/programs/locfile.c:600 +#: locale/programs/locfile.c:622 msgid "sorting order `forward' and `backward' are mutually exclusive" msgstr "los órdenes `forward' y `backward' son mutuamente excluyentes" -#: locale/programs/ld-collate.c:1568 locale/programs/ld-collate.c:1614 +#: locale/programs/ld-collate.c:1571 locale/programs/ld-collate.c:1617 msgid "" "specification of sorting weight for collation symbol does not make sense" msgstr "" "la especificación para el orden de peso del símbolo de unión no tiene " "sentido " -#: time/zic.c:781 +#: time/zic.c:779 msgid "standard input" msgstr "entrada estándar" -#: time/zdump.c:260 +#: time/zdump.c:268 msgid "standard output" msgstr "salida estándar" -#: locale/programs/ld-time.c:256 +#: locale/programs/ld-time.c:257 #, c-format msgid "starting date is illegal in string %d in `era' field in category `%s'" msgstr "" -"la fecha de comienzo no es válida en la cadena %d del campo `era' de la\n" +"la fecha de comienzo es ilegal en la cadena %d del campo `era' de la\n" "categoría `%s'" -#: time/zic.c:1280 +#: time/zic.c:1287 msgid "starting year greater than ending year" msgstr "año de comienzo mayor que año de final" +#: time/zic.c:1261 time/zic.c:1285 +msgid "starting year too high to be represented" +msgstr "el año de comienzo es demasiado alto para ser representado" + +#: time/zic.c:1259 time/zic.c:1283 +msgid "starting year too low to be represented" +msgstr "el año de comienzo es demasiado bajo para ser representado" + # ## Corregido el estropicio. sv+ -#: locale/programs/ld-time.c:328 +#: locale/programs/ld-time.c:330 #, c-format msgid "stopping date is illegal in string %d in `era' field in category `%s'" msgstr "" -"la fecha de final no es válida en la cadena %d del campo `era' de la\n" +"la fecha de final es ilegal en la cadena %d del campo `era' de la\n" "categoría `%s'" +#: sunrpc/svc_run.c:81 +msgid "svc_run: - select failed" +msgstr "svc_run: - select falló" + #: sunrpc/svc_tcp.c:201 sunrpc/svc_tcp.c:206 msgid "svc_tcp: makefd_xprt: out of memory\n" msgstr "svc_tcp: makefd_xprt: memoria agotada\n" @@ -3122,16 +3131,16 @@ msgstr "svcudp_create - fallo en la ejec msgid "svcudp_create: socket creation problem" msgstr "svcudp_create: problemas para crear el `socket'" -#: locale/programs/ld-collate.c:1191 +#: locale/programs/ld-collate.c:1194 #, c-format msgid "" "symbol for multicharacter collating element `%.*s' duplicates element " "definition" msgstr "" -"el símbolo para el elemento de unión para multi-caracter `%.*s' repite la\n" +"el símbolo para el elemento de unión para multi-carácter `%.*s' repite la\n" "definición de otro elemento" -#: locale/programs/ld-collate.c:1064 +#: locale/programs/ld-collate.c:1067 #, c-format msgid "" "symbol for multicharacter collating element `%.*s' duplicates other element " @@ -3141,7 +3150,7 @@ msgstr "" "definición\n" "de otro elemento" -#: locale/programs/ld-collate.c:1200 +#: locale/programs/ld-collate.c:1203 #, c-format msgid "" "symbol for multicharacter collating element `%.*s' duplicates other symbol " @@ -3151,7 +3160,7 @@ msgstr "" "definición\n" "de otro símbolo" -#: locale/programs/ld-collate.c:1073 +#: locale/programs/ld-collate.c:1076 #, c-format msgid "" "symbol for multicharacter collating element `%.*s' duplicates symbol " @@ -3161,7 +3170,7 @@ msgstr "" "definición\n" "repite la definición de otro símbolo" -#: locale/programs/ld-collate.c:1055 locale/programs/ld-collate.c:1182 +#: locale/programs/ld-collate.c:1058 locale/programs/ld-collate.c:1185 #, c-format msgid "" "symbol for multicharacter collating element `%.*s' duplicates symbolic name " @@ -3179,51 +3188,51 @@ msgstr "" msgid "syntax error in %s definition: %s" msgstr "error de sintaxis en ls definición de %s: %s" -#: locale/programs/locfile.c:620 +#: locale/programs/locfile.c:642 msgid "syntax error in `order_start' directive" msgstr "error de sintaxis en la directiva `order_start'" -#: locale/programs/locfile.c:362 +#: locale/programs/locfile.c:384 msgid "syntax error in character class definition" msgstr "error de sintaxis en el nombre de clase de carácter" -#: locale/programs/locfile.c:420 +#: locale/programs/locfile.c:442 msgid "syntax error in character conversion definition" msgstr "error de sintaxis en la definición de la conversión de carácter" -#: locale/programs/locfile.c:662 +#: locale/programs/locfile.c:684 msgid "syntax error in collating order definition" msgstr "error de sintaxis en la definición del orden de unión" -#: locale/programs/locfile.c:512 +#: locale/programs/locfile.c:534 msgid "syntax error in collation definition" msgstr "error de sintaxis en la definición de la unión" -#: locale/programs/locfile.c:335 +#: locale/programs/locfile.c:357 msgid "syntax error in definition of LC_CTYPE category" msgstr "error de sintaxis en una definición de categoría LC_CTYPE" -#: locale/programs/locfile.c:278 +#: locale/programs/locfile.c:300 msgid "syntax error in definition of new character class" msgstr "error de sintaxis en la definición de una nueva clase de carácter" -#: locale/programs/locfile.c:288 +#: locale/programs/locfile.c:310 msgid "syntax error in definition of new character map" -msgstr "error de sintaxis en la definición de un nuevo mapa de carácter" +msgstr "error de sintaxis en la definición de un nueva tabla de caracteres" -#: locale/programs/locfile.c:873 +#: locale/programs/locfile.c:895 msgid "syntax error in message locale definition" msgstr "error de sintaxis en la definición de local para mensajes" -#: locale/programs/locfile.c:784 +#: locale/programs/locfile.c:806 msgid "syntax error in monetary locale definition" msgstr "error de sintaxis en la definición de local para moneda" -#: locale/programs/locfile.c:811 +#: locale/programs/locfile.c:833 msgid "syntax error in numeric locale definition" msgstr "error de sintaxis en la definición de local para números" -#: locale/programs/locfile.c:722 +#: locale/programs/locfile.c:744 msgid "syntax error in order specification" msgstr "error de sintaxis en la especificación de orden" @@ -3232,11 +3241,11 @@ msgstr "error de sintaxis en la especifi msgid "syntax error in prolog: %s" msgstr "error de sintaxis en el prólogo: %s" -#: locale/programs/locfile.c:849 +#: locale/programs/locfile.c:871 msgid "syntax error in time locale definition" msgstr "error de sintaxis en la definición de local para la hora" -#: locale/programs/locfile.c:255 +#: locale/programs/locfile.c:277 msgid "syntax error: not inside a locale definition section" msgstr "" "error de sintaxis: no está dentro de una seción de definición para un local" @@ -3245,18 +3254,18 @@ msgstr "" msgid "this is the first definition" msgstr "esta es la primera vez que aparece la definición" -#: time/zic.c:1123 +#: time/zic.c:1121 msgid "time before zero" msgstr "hora antes de cero" # Sugerencia: Desbordamiento de fecha. (?) sv+ -#: time/zic.c:1131 time/zic.c:1974 time/zic.c:1993 +#: time/zic.c:1129 time/zic.c:1999 time/zic.c:2018 msgid "time overflow" msgstr "desbordamiento horario" #: locale/programs/charset.c:44 msgid "too few bytes in character encoding" -msgstr "demasiados pocos bytes en la codificación del carácter" +msgstr "insuficiente número de bytes en la codificación del carácter" #: locale/programs/charset.c:46 msgid "too many bytes in character encoding" @@ -3266,27 +3275,27 @@ msgstr "demasiados bytes en la codificac msgid "too many character classes defined" msgstr "demasiadas clases de caracteres definidas" -#: time/zic.c:1803 +#: time/zic.c:1828 msgid "too many leap seconds" msgstr "demasiados segundos intercalares" -#: time/zic.c:1775 +#: time/zic.c:1800 msgid "too many local time types" msgstr "demasiados tipos de hora local" -#: time/zic.c:1729 +#: time/zic.c:1754 msgid "too many transitions?!" msgstr "¡¿demasiadas transiciones?!" # FUZZY # ¿ Qué puede ser esto ? em+ -#: locale/programs/ld-collate.c:1623 +#: locale/programs/ld-collate.c:1626 msgid "too many weights" msgstr "¡demasiados pesos!" # ## Sugerencia: abreviaturas. sv # ## Ok em+ -#: time/zic.c:2097 +#: time/zic.c:2122 msgid "too many, or too long, time zone abbreviations" msgstr "demasiadas o demasiado largas abreviaturas de zona horaria" @@ -3304,11 +3313,11 @@ msgstr "ignorando inconsistencias al fin msgid "trouble replying to prog %d\n" msgstr "dificultades para responder al programa %d\n" -#: locale/programs/ld-collate.c:1383 +#: locale/programs/ld-collate.c:1386 msgid "two lines in a row containing `...' are not allowed" msgstr "no están permitidas dos líneas en una misma fila con `...'" -#: time/zic.c:1287 +#: time/zic.c:1294 msgid "typed single year" msgstr "tecleado un único año" @@ -3323,13 +3332,13 @@ msgstr "carácter desconocido `%s'" #: locale/programs/ld-messages.c:193 locale/programs/ld-messages.c:204 #: locale/programs/ld-messages.c:215 locale/programs/ld-messages.c:226 -#: locale/programs/ld-time.c:696 +#: locale/programs/ld-time.c:698 #, c-format msgid "unknown character in field `%s' of category `%s'" msgstr "carácter no reconocido en el campo `%s' de la categoría `%s'" # FUZZY em+ -#: locale/programs/locfile.c:585 +#: locale/programs/locfile.c:607 msgid "unknown collation directive" msgstr "la directiva de unión es desconocida" @@ -3348,13 +3357,13 @@ msgstr "conjunto `%s' desconocido" # descartada (?) sv # Me gusta más `pasada por alto' em+ -#: locale/programs/ld-collate.c:1367 locale/programs/ld-collate.c:1558 -#: locale/programs/ld-collate.c:1732 +#: locale/programs/ld-collate.c:1370 locale/programs/ld-collate.c:1561 +#: locale/programs/ld-collate.c:1735 #, c-format msgid "unknown symbol `%.*s': line ignored" msgstr "símbolo desconocido `%.*s': línea descartada" -#: time/zic.c:753 +#: time/zic.c:751 msgid "unruly zone" msgstr "zona sin reglas" @@ -3370,7 +3379,7 @@ msgstr "cadena de caracteres sin termina msgid "unterminated symbolic name" msgstr "nombre simbólico sin terminar" -#: locale/programs/ld-collate.c:1685 +#: locale/programs/ld-collate.c:1688 msgid "unterminated weight name" msgstr "nombre de peso sin terminar" @@ -3381,10 +3390,10 @@ msgstr "el límite superior del rango no # A lo mejor si pones "veintinueve de febrero" o "29 de febrero" # se entiende mejor. no sé. sv # Si, estas pensando lo mismo que yo, 29 de febrero puede confundir, porque -# en el archivo pondrá 2/29 em +# en el fichero pondrá 2/29 em # Sugerencia: "uso de 2/29 ..." (usando sería "using") sv # Tienes razón em+ -#: time/zic.c:2040 +#: time/zic.c:2065 msgid "use of 2/29 in non leap-year" msgstr "uso de 2/29 en un año no bisiesto" @@ -3399,7 +3408,7 @@ msgstr "el valor para %s tiene que ser u msgid "value for <%s> must lie between 1 and 4" msgstr "el valor para <%s> debe estar entre 1 y 4" -#: locale/programs/ld-monetary.c:148 locale/programs/ld-numeric.c:89 +#: locale/programs/ld-monetary.c:149 locale/programs/ld-numeric.c:89 #, c-format msgid "value for field `%s' in category `%s' must not be the empty string" msgstr "el valor para el campo `%s' en la categoría `%s' no debe estar vacío" @@ -3409,7 +3418,7 @@ msgid "value of must be gre msgstr "" "el valor de tiene que ser mayor que el valor de " -#: locale/programs/ld-monetary.c:138 +#: locale/programs/ld-monetary.c:139 msgid "" "value of field `int_curr_symbol' in category `LC_MONETARY' does not " "correspond to a valid name in ISO 4217" @@ -3427,31 +3436,35 @@ msgstr "" "el valor del campo `int_curr_symbol' en la categoría `LC_MONETARY' tiene\n" "una longitud errónea" -#: locale/programs/ld-monetary.c:370 locale/programs/ld-numeric.c:199 +#: locale/programs/ld-monetary.c:371 locale/programs/ld-numeric.c:199 #, c-format msgid "values for field `%s' in category `%s' must be smaller than 127" msgstr "el valor para el campo `%s' en la categoría `%s' no debe ser cero" -#: locale/programs/ld-monetary.c:366 +#: locale/programs/ld-monetary.c:367 #, c-format msgid "values for field `%s' in category `%s' must not be zero" msgstr "el valor para el campo `%s' en la categoría `%s' no debe ser cero" -#: login/utmp_file.c:84 +#: login/utmp_file.c:76 msgid "while opening UTMP file" -msgstr "al abrir el archivo UTMP" +msgstr "al abrir el fichero UTMP" #: catgets/gencat.c:989 msgid "while opening old catalog file" -msgstr "al abrir el archivo de catálogo antiguo" +msgstr "al abrir el fichero de catálogo antiguo" + +#: locale/programs/locale.c:341 +msgid "while preparing output" +msgstr "al preparar la salida" #: db/makedb.c:354 msgid "while reading database" -msgstr "al leer el archivo de datos" +msgstr "al leer el fichero de datos" #: db/makedb.c:316 msgid "while writing data base file" -msgstr "al abrir el archivo de datos" +msgstr "al abrir el fichero de datos" #: db/makedb.c:142 msgid "wrong number of arguments" @@ -3467,31 +3480,31 @@ msgstr "número incorrecto de argumentos" # Si es mejor, ponlo en todos los sitios. Y si no, en ninguno. # Yo creo que es mucho mejor poner "número incorrecto ..." # Si no, queda como "al revés". sv+ -#: time/zic.c:1081 +#: time/zic.c:1079 msgid "wrong number of fields on Leap line" -msgstr "número incorrecto de campos en la línea de bisiesto ( Leap )" +msgstr "número incorrecto de campos en la línea de bisiesto (Leap)" -#: time/zic.c:1172 +#: time/zic.c:1170 msgid "wrong number of fields on Link line" -msgstr "número incorrecto de campos en la línea de enlace ( Link )" +msgstr "número incorrecto de campos en la línea de enlace (Link)" -#: time/zic.c:915 +#: time/zic.c:913 msgid "wrong number of fields on Rule line" -msgstr "número incorrecto de argumentos en la línea de regla ( Rule )" +msgstr "número incorrecto de argumentos en la línea de regla (Rule)" -#: time/zic.c:985 +#: time/zic.c:983 msgid "wrong number of fields on Zone continuation line" msgstr "número de campos incorrecto en la línea de continuación de zona (Zone)" -#: time/zic.c:943 +#: time/zic.c:941 msgid "wrong number of fields on Zone line" -msgstr "número de campos incorrecto en la línea de zona ( Zone )" +msgstr "número de campos incorrecto en la línea de zona (Zone)" -#: nis/ypclnt.c:810 +#: nis/ypclnt.c:811 msgid "yp_update: cannot convert host to netname\n" -msgstr "yp_update: no puede convertir el nombre del host a nombre de red\n" +msgstr "yp_update: no puede convertir el nombre del `host' a nombre de red\n" -#: nis/ypclnt.c:822 +#: nis/ypclnt.c:823 msgid "yp_update: cannot get server address\n" msgstr "yp_update: no se puede encontrar la dirección del servidor\n" @@ -3526,10 +3539,10 @@ msgstr "yp_update: no se puede encontrar #~ msgid " %s [-c | -h | -l | -m] [-o outfile] [infile]\n" #~ msgstr "" -#~ " %s [-c | -h | -l | -m] [-o archivo_salida] [archivo_entrada]\n" +#~ " %s [-c | -h | -l | -m] [-o fichero_salida] [fichero_entrada]\n" #~ msgid " %s [-s udp|tcp]* [-o outfile] [infile]\n" -#~ msgstr " %s [-s udp|tcp]* [-o archivo_salida] [archivo_entrada]\n" +#~ msgstr " %s [-s udp|tcp]* [-o fichero_salida] [fichero_entrada]\n" #~ msgid "%s, line %d: " #~ msgstr "%s, línea %d: " @@ -3548,7 +3561,7 @@ msgstr "yp_update: no se puede encontrar # ¿por qué te comes la palabra "declaración"? # ¿Qué tal "esperada una declaración de `array'"? sv # Una declaración de array es> "char *a" por ejemplo. Lo que espera -# es algo así>"pepe" , escrito en un archivo de texto, con toda +# es algo así>"pepe" , escrito en un fichero de texto, con toda # seguridad ( consulté los fuentes ) em # Creí que una declaración y una constante eran cosas distintas. sv # ¿Está mal el original inglés? sv @@ -3581,7 +3594,7 @@ msgstr "yp_update: no se puede encontrar #~ msgstr "esperado especificador de tipo" #~ msgid "illegal character in file: " -#~ msgstr "carácter no válido en el archivo: " +#~ msgstr "carácter no válido en el fichero: " #~ msgid "illegal result type" #~ msgstr "tipo resultante no válido" @@ -3593,7 +3606,7 @@ msgstr "yp_update: no se puede encontrar #~ msgstr "error del preprocesador" #~ msgid "too many files!\n" -#~ msgstr "¡demasiados archivos!\n" +#~ msgstr "¡demasiados ficheros!\n" #~ msgid "unterminated string constant" #~ msgstr "cadena de caracteres sin terminar" @@ -3603,15 +3616,15 @@ msgstr "yp_update: no se puede encontrar # me suena a prospecto de crecepelo EM # #~ msgid "usage: %s infile\n" -#~ msgstr "Modo de empleo: %s archivo_de_entrada\n" +#~ msgstr "Modo de empleo: %s fichero_de_entrada\n" # "array" es "array"? -# Lo miro con cuidado, los archivos rpc_*.c de la libc son especialmente +# Lo miro con cuidado, los ficheros rpc_*.c de la libc son especialmente # complicados. Sí, creo que se refiere a los aliases de servicios rpc, y # efectivamente es un array de longitud variable. No se me ocurriría # traducirlo de otra forma, yo no lo entendería mejor que así. # otra vez está ausente la "declaración", ¿no habría que ponerla ? sv -# rpc_parse contiene las funciones para 'parsear' un archivo de config. em +# rpc_parse contiene las funciones para 'parsear' un fichero de config. em # Habrá que inventar algo para 'parsear' ... sv # Los alemanes dicen parsen, habe geparst em, quizá comprobar # sintaxis o interpretar ? ( parsear es ambas cosas juntas, no ? ) em Binary files glibc-2.0.5c/po/fr.mo and glibc-2.0.6/po/fr.mo differ diff -durpN glibc-2.0.5c/po/fr.po glibc-2.0.6/po/fr.po --- glibc-2.0.5c/po/fr.po Thu Apr 3 13:23:43 1997 +++ glibc-2.0.6/po/fr.po Tue Sep 23 10:00:00 1997 @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: GNU libc 2.0.3\n" -"POT-Creation-Date: 1997-03-30 19:08+0200\n" -"PO-Revision-Date: 1997-04-02 23:02 -0500\n" +"Project-Id-Version: GNU libc 2.0.5\n" +"POT-Creation-Date: 1997-08-21 04:13+0200\n" +"PO-Revision-Date: 1997-09-23 16:00 -0500\n" "Last-Translator: Michel Robitaille \n" "Language-Team: French \n" "MIME-Version: 1.0\n" @@ -33,7 +33,7 @@ msgstr " rpcinfo [ -n no_de_port ] msgid " program vers proto port\n" msgstr " program no_version protocole no_port\n" -#: time/zic.c:419 +#: time/zic.c:421 #, c-format msgid " (rule from \"%s\", line %d)" msgstr " (règles de \"%s\", ligne %d)" @@ -42,22 +42,22 @@ msgstr " (règles de \"%s\", ligne %d)" msgid " done\n" msgstr " complété.\n" -#: time/zic.c:416 +#: time/zic.c:418 #, c-format msgid "\"%s\", line %d: %s" msgstr "\"%s\", ligne %d: %s." -#: time/zic.c:943 +#: time/zic.c:947 #, c-format msgid "\"Zone %s\" line and -l option are mutually exclusive" msgstr "La ligne \"Zone %s\" et l'option -l sont mutuellement exclusives." -#: time/zic.c:951 +#: time/zic.c:955 #, c-format msgid "\"Zone %s\" line and -p option are mutually exclusive" msgstr "La ligne \"Zone %s\" et l'option -p sont mutuellement exclusives." -#: time/zic.c:754 +#: time/zic.c:758 #, c-format msgid "%s in ruleless zone" msgstr "%s est dans une zone sans règle." @@ -77,7 +77,7 @@ msgstr "%s%s%s:%u: %s%s erreur imprévue: msgid "%s%sUnknown signal %d\n" msgstr "%s%ssignal inconnu %d.\n" -#: time/zic.c:2172 +#: time/zic.c:2185 #, c-format msgid "%s: %d did not sign extend correctly\n" msgstr "%s: %d n'a pas fait correctement l'expansion de la valeur signée.\n" @@ -87,42 +87,42 @@ msgstr "%s: %d n'a pas fait correctement msgid "%s: must be greater than \n" msgstr "%s: doit être plus grande que .\n" -#: time/zic.c:1443 +#: time/zic.c:1456 #, c-format msgid "%s: Can't create %s: %s\n" msgstr "%s: ne peut créer %s: %s.\n" -#: time/zic.c:2150 +#: time/zic.c:2163 #, c-format msgid "%s: Can't create directory %s: %s\n" msgstr "%s: ne peut créer le répertoire %s: %s.\n" -#: time/zic.c:608 +#: time/zic.c:610 #, c-format msgid "%s: Can't link from %s to %s: %s\n" msgstr "%s: ne peut établir un lien entre %s et %s: %s.\n" -#: time/zic.c:780 +#: time/zic.c:784 #, c-format msgid "%s: Can't open %s: %s\n" msgstr "%s: ne peut ouvrir %s: %s.\n" -#: time/zic.c:1433 +#: time/zic.c:1446 #, c-format msgid "%s: Can't remove %s: %s\n" msgstr "%s: ne peut enlever %s: %s.\n" -#: time/zic.c:849 +#: time/zic.c:853 #, c-format msgid "%s: Error closing %s: %s\n" msgstr "%s: erreur lors de la fermeture de %s: %s.\n" -#: time/zic.c:842 +#: time/zic.c:846 #, c-format msgid "%s: Error reading %s\n" msgstr "%s: erreur de lecture de %s.\n" -#: time/zic.c:1507 +#: time/zic.c:1520 #, c-format msgid "%s: Error writing %s\n" msgstr "%s: erreur d'écriture de %s.\n" @@ -132,44 +132,44 @@ msgstr "%s: erreur d'écriture de %s.\n" msgid "%s: Error writing standard output " msgstr "%s: erreur d'écriture sur la sortie standard." -#: time/zic.c:827 +#: time/zic.c:831 #, c-format msgid "%s: Leap line in non leap seconds file %s\n" msgstr "" "%s: ligne de type `Leap' dans un fichier qui n'a pas\n" "de délai en secondes %s.\n" -#: time/zic.c:357 +#: time/zic.c:359 #, c-format msgid "%s: Memory exhausted: %s\n" msgstr "%s: mémoire épuisée: %s.\n" -#: time/zic.c:522 +#: time/zic.c:524 #, c-format msgid "%s: More than one -L option specified\n" msgstr "%s: option -L spécifiée plus d'une fois.\n" -#: time/zic.c:482 +#: time/zic.c:484 #, c-format msgid "%s: More than one -d option specified\n" msgstr "%s: option -d spécifiée plus d'une fois.\n" -#: time/zic.c:492 +#: time/zic.c:494 #, c-format msgid "%s: More than one -l option specified\n" msgstr "%s: option -l spécifiée plus d'une fois.\n" -#: time/zic.c:502 +#: time/zic.c:504 #, c-format msgid "%s: More than one -p option specified\n" msgstr "%s: option -p spécifiée plus d'une fois.\n" -#: time/zic.c:512 +#: time/zic.c:514 #, c-format msgid "%s: More than one -y option specified\n" msgstr "%s: option -y spécifiée plus d'une fois.\n" -#: time/zic.c:1872 +#: time/zic.c:1885 #, c-format msgid "%s: command was '%s', result was %d\n" msgstr "%s: la commande était '%s', le résultat était %d.\n" @@ -224,7 +224,7 @@ msgstr "%s: l'option `-W %s' est ambiguë msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'option requiert un paramètre -- %c.\n" -#: time/zic.c:834 time/zic.c:1246 time/zic.c:1266 +#: time/zic.c:838 time/zic.c:1251 time/zic.c:1275 #, c-format msgid "%s: panic: Invalid l_value %d\n" msgstr "%s: panique: valeur %d de type `l_value' invalide.\n" @@ -244,7 +244,7 @@ msgstr "%s: option non reconnue `%c%s'.\ msgid "%s: unrecognized option `--%s'\n" msgstr "%s: option non reconnue `--%s'.\n" -#: time/zic.c:441 +#: time/zic.c:443 #, c-format msgid "" "%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d " @@ -545,7 +545,7 @@ msgstr "Connexion terminée par expiratio msgid "Continued" msgstr "Poursuite." -#: catgets/gencat.c:169 db/makedb.c:120 locale/programs/locale.c:187 +#: catgets/gencat.c:169 db/makedb.c:120 locale/programs/locale.c:191 #: locale/programs/localedef.c:180 #, c-format msgid "" @@ -803,11 +803,11 @@ msgstr "Appel système interrompu, il aur msgid "Invalid argument" msgstr "Paramètre invalide." -#: posix/regex.c:960 +#: posix/regex.c:978 msgid "Invalid back reference" msgstr "Référence arrière invalide." -#: posix/regex.c:958 +#: posix/regex.c:976 msgid "Invalid character class name" msgstr "Nom de classe de caractères invalide." @@ -819,11 +819,11 @@ msgstr "Identité du client invalide." msgid "Invalid client verifier" msgstr "Vérificateur du client invalide." -#: posix/regex.c:957 +#: posix/regex.c:975 msgid "Invalid collation character" msgstr "Caractère de fusionnement invalide." -#: posix/regex.c:964 +#: posix/regex.c:982 msgid "Invalid content of \\{\\}" msgstr "Contenu invalide de \\{\\}" @@ -844,15 +844,15 @@ msgstr "Échange invalide." msgid "Invalid or incomplete multibyte or wide character" msgstr "Chaîne multi-octets ou étendue de caractères invalide ou incomplète." -#: posix/regex.c:967 +#: posix/regex.c:985 msgid "Invalid preceding regular expression" msgstr "Expression régulière précédente invalide." -#: posix/regex.c:965 +#: posix/regex.c:983 msgid "Invalid range end" msgstr "Fin d'intervalle invalide." -#: posix/regex.c:956 +#: posix/regex.c:974 msgid "Invalid regular expression" msgstr "Expression régulière invalide." @@ -923,7 +923,7 @@ msgstr "Échec d'allocation de ressources msgid "Machine is not on the network" msgstr "La machine cible n'est pas sur le réseau." -#: posix/regex.c:966 +#: posix/regex.c:984 msgid "Memory exhausted" msgstr "Mémoire épuisée." @@ -1016,7 +1016,7 @@ msgstr "Aucune donnée disponible." msgid "No locks available" msgstr "Aucun verrou disponible." -#: posix/regex.c:955 +#: posix/regex.c:973 msgid "No match" msgstr "Pas de concordance." @@ -1028,7 +1028,7 @@ msgstr "Aucun message du type désiré." msgid "No more records in map database" msgstr "Aucun autre enregistrement dans la table de la base de données." -#: posix/regex.c:5324 +#: posix/regex.c:5434 msgid "No previous regular expression" msgstr "Aucune expression régulière ne précède." @@ -1096,7 +1096,7 @@ msgstr "Le résultat numérique est en deh msgid "Object is remote" msgstr "L'objet est télé-accessible." -#: time/zic.c:1966 +#: time/zic.c:1979 msgid "Odd number of quotation marks" msgstr "Nombre impair de caractères apostrophe." @@ -1166,7 +1166,7 @@ msgstr "Permission non accordée." msgid "Power failure" msgstr "Panne d'alimentation." -#: posix/regex.c:968 +#: posix/regex.c:986 msgid "Premature end of regular expression" msgstr "Fin prématurée de l'expression régulière." @@ -1329,7 +1329,7 @@ msgstr "Le RTLD_NEXT utilisé dans le cod msgid "Read-only file system" msgstr "Système de fichiers accessible en lecture seulement." -#: posix/regex.c:969 +#: posix/regex.c:987 msgid "Regular expression too big" msgstr "Expression régulière trop grosse." @@ -1346,8 +1346,8 @@ msgid "Remove password or make file unre msgstr "" "Retirer le mot de passe ou rendre les fichiers illisibles par les autres." -#: catgets/gencat.c:224 db/makedb.c:227 locale/programs/locale.c:257 -#: locale/programs/localedef.c:412 +#: catgets/gencat.c:224 db/makedb.c:227 locale/programs/locale.c:262 +#: locale/programs/localedef.c:415 msgid "Report bugs using the `glibcbug' script to .\n" msgstr "" "Rapporter toutes anomalies via le script `glibcbug' à l'adresse:\n" @@ -1486,7 +1486,7 @@ msgstr "Erreur de relais de type streams msgid "Structure needs cleaning" msgstr "La structure a besoin d'un nettoyage." -#: nis/ypclnt.c:689 nis/ypclnt.c:763 posix/regex.c:954 +#: nis/ypclnt.c:689 nis/ypclnt.c:763 posix/regex.c:972 #: stdio-common/../sysdeps/gnu/errlist.c:7 msgid "Success" msgstr "Succès." @@ -1570,7 +1570,7 @@ msgstr "Trappe de point d'arrêt lors de msgid "Trace/breakpoint trap" msgstr "Trappe pour point d'arrêt et de trace." -#: posix/regex.c:959 +#: posix/regex.c:977 msgid "Trailing backslash" msgstr "Barre oblique en suffixe." @@ -1595,8 +1595,8 @@ msgstr "Noeud final de transport déjà co msgid "Transport endpoint is not connected" msgstr "Le noeud final de transport n'est pas connecté." -#: catgets/gencat.c:208 db/makedb.c:209 locale/programs/locale.c:241 -#: locale/programs/localedef.c:393 +#: catgets/gencat.c:208 db/makedb.c:209 locale/programs/locale.c:246 +#: locale/programs/localedef.c:396 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Pour en savoir davantage, faites: `%s --help'.\n" @@ -1645,19 +1645,19 @@ msgstr "Erreur système inconnue." msgid "Unknown ypbind error" msgstr "Erreur inconnue de ypbind." -#: posix/regex.c:962 +#: posix/regex.c:980 msgid "Unmatched ( or \\(" msgstr "Échec du pairage de ( ou de \\(" -#: posix/regex.c:970 +#: posix/regex.c:988 msgid "Unmatched ) or \\)" msgstr "Échec du pairage de ) ou de \\)" -#: posix/regex.c:961 +#: posix/regex.c:979 msgid "Unmatched [ or [^" msgstr "Échec du pairage de [ ou de [^" -#: posix/regex.c:963 +#: posix/regex.c:981 msgid "Unmatched \\{" msgstr "Échec du pairage de \\{." @@ -1677,7 +1677,8 @@ msgid "" "Usage: %s [OPTION]... -o OUTPUT-FILE [INPUT-FILE]...\n" " %s [OPTION]... [OUTPUT-FILE [INPUT-FILE]...]\n" "Mandatory arguments to long options are mandatory for short options too.\n" -" -H, --header create C header file containing symbol definitions\n" +" -H, --header=NAME create C header file NAME containing symbol " +"definitions\n" " -h, --help display this help and exit\n" " --new do not use existing catalog, force new output file\n" " -o, --output=NAME write output to file NAME\n" @@ -1729,7 +1730,7 @@ msgstr "" " -V, --version afficher le nom et la version du logiciel\n" "Si le FICHIER_D_ENTRÉE est -, la lecture se fait l'entrée standard.\n" -#: locale/programs/localedef.c:397 +#: locale/programs/localedef.c:400 #, c-format msgid "" "Usage: %s [OPTION]... name\n" @@ -1767,7 +1768,7 @@ msgstr "" "Répertoire système des tables de caractères: %s\n" " fichiers locaux: %s\n" -#: locale/programs/locale.c:245 +#: locale/programs/locale.c:250 #, c-format msgid "" "Usage: %s [OPTION]... name\n" @@ -1822,7 +1823,7 @@ msgstr "Valeur trop grande pour le type msgid "Virtual timer expired" msgstr "Expiration de la minuterie virtuelle." -#: time/zic.c:1871 +#: time/zic.c:1884 msgid "Wild result from command execution" msgstr "Résultat anarchique résultant de l'exécution de la commande." @@ -1831,7 +1832,7 @@ msgstr "Résultat anarchique résultant de msgid "Window changed" msgstr "La fenêtre a changée." -#: catgets/gencat.c:174 db/makedb.c:125 locale/programs/locale.c:192 +#: catgets/gencat.c:174 db/makedb.c:125 locale/programs/locale.c:196 #: locale/programs/localedef.c:185 #, c-format msgid "Written by %s.\n" @@ -1859,7 +1860,7 @@ msgstr "YPBINDPROC_DOMAIN: erreur inconn msgid "You really blew it this time" msgstr "Vous avez vraiment tout gâcher cette fois-ci." -#: time/zic.c:1048 +#: time/zic.c:1052 msgid "Zone continuation line end time is not after end time of previous line" msgstr "" "Temps final de la ligne de la zone de continuation est antérieur\n" @@ -1913,11 +1914,11 @@ msgstr "Mauvais propriétaire du fichier msgid "bad argument" msgstr "Mauvais paramètre." -#: time/zic.c:1170 +#: time/zic.c:1174 msgid "blank FROM field on Link line" msgstr "Champ `FROM' vide dans la ligne de type `Link'." -#: time/zic.c:1174 +#: time/zic.c:1178 msgid "blank TO field on Link line" msgstr "Champ `TO' vide dans la ligne de type `Link'." @@ -1941,7 +1942,7 @@ msgstr "Diffusion: ioctl (a obtenu la va msgid "cache_set: victim not found" msgstr "cache_set: victime non repérée." -#: time/zic.c:1698 +#: time/zic.c:1711 msgid "can't determine time zone abbreviation to use just after until time" msgstr "" "Ne peut déterminer l'abréviation du fuseau horaire à utiliser\n" @@ -1952,7 +1953,7 @@ msgstr "" msgid "can't reassign procedure number %d\n" msgstr "Ne peut réassigner le numéro de procédure %d.\n" -#: locale/programs/localedef.c:291 +#: locale/programs/localedef.c:294 #, c-format msgid "cannot `stat' locale file `%s'" msgstr "Ne peut effectuer l'évaluation `stat' du fichier local `%s'." @@ -1992,7 +1993,7 @@ msgstr "Ne peut ouvrir le fichier des lo msgid "cannot open output file `%s'" msgstr "Ne peut ouvrir le fichier de sortie `%s'." -#: locale/programs/locfile.c:1008 +#: locale/programs/locfile.c:1020 #, c-format msgid "cannot open output file `%s' for category `%s'" msgstr "Ne peut ouvrir le fichier de sortie `%s' de catégorie `%s'." @@ -2001,27 +2002,27 @@ msgstr "Ne peut ouvrir le fichier de sor msgid "cannot process order specification" msgstr "Ne peut traiter la spécification d'ordonnancement." -#: locale/programs/locale.c:304 +#: locale/programs/locale.c:444 #, c-format msgid "cannot read character map directory `%s'" msgstr "Ne peut lire via le répertoire de la table des caractères `%s'." -#: locale/programs/locale.c:279 +#: locale/programs/locale.c:301 #, c-format msgid "cannot read locale directory `%s'" msgstr "Ne peut lire via le répertoire des définitions localisées `%s'." -#: locale/programs/localedef.c:313 +#: locale/programs/localedef.c:316 #, c-format msgid "cannot read locale file `%s'" msgstr "Ne peut lire le fichier des définitions localisées `%s'." -#: locale/programs/localedef.c:338 +#: locale/programs/localedef.c:341 #, c-format msgid "cannot write output files to `%s'" msgstr "Ne peut écrire dans les fichiers de sortie vers `%s'." -#: locale/programs/localedef.c:381 +#: locale/programs/localedef.c:384 msgid "category data requested more than once: should not happen" msgstr "" "Catégorie de données requises plus d'une fois: n'aurait pas dû se produire." @@ -2146,7 +2147,7 @@ msgstr "Duplicité de clé." msgid "duplicate set definition" msgstr "Duplicité de la définition d'ensemble." -#: time/zic.c:963 +#: time/zic.c:967 #, c-format msgid "duplicate zone name %s (file \"%s\", line %d)" msgstr "Duplicité du nom de zone %s (fichier \"%s\", ligne %d)." @@ -2197,11 +2198,11 @@ msgstr "Erreur lors de l'insertion dans msgid "expect string argument for `copy'" msgstr "Chaîne attendue pour le paramètre de `copy'." -#: time/zic.c:854 +#: time/zic.c:858 msgid "expected continuation line not found" msgstr "Ligne de continuation attendue, non repérée." -#: locale/programs/locfile.c:1032 +#: locale/programs/locfile.c:1044 #, c-format msgid "failure while writing data for category `%s'" msgstr "Échec durant l'écriture des données de catégorie `%s'." @@ -2260,11 +2261,11 @@ msgstr "" msgid "get_myaddress: ioctl (get interface configuration)" msgstr "get_myaddress: ioctl (a obtenu la configuration de l'interface)." -#: time/zic.c:1147 +#: time/zic.c:1151 msgid "illegal CORRECTION field on Leap line" msgstr "CORRECTION illégale du champ dans la ligne de type `Leap'." -#: time/zic.c:1151 +#: time/zic.c:1155 msgid "illegal Rolling/Stationary field on Leap line" msgstr "Champ `Rolling/Stationary' illégal sur la ligne de type `Leap'." @@ -2333,19 +2334,19 @@ msgstr "" msgid "incorrectly formatted file" msgstr "Fichier incorrectement formaté." -#: time/zic.c:811 +#: time/zic.c:815 msgid "input line of unknown type" msgstr "Ligne d'entrée de type inconnu." -#: time/zic.c:1760 +#: time/zic.c:1773 msgid "internal error - addtype called with bad isdst" msgstr "Erreur interne - addtype appellé avec un mauvais bloc isdst." -#: time/zic.c:1768 +#: time/zic.c:1781 msgid "internal error - addtype called with bad ttisgmt" msgstr "Erreur interne - addtype appellé avec un mauvais bloc ttisgmt." -#: time/zic.c:1764 +#: time/zic.c:1777 msgid "internal error - addtype called with bad ttisstd" msgstr "Erreur interne - addtype appellé avec un mauvais bloc ttisstd." @@ -2354,43 +2355,43 @@ msgstr "Erreur interne - addtype appellé msgid "internal error in %s, line %u" msgstr "Erreur interne dans %s, ligne %u." -#: time/zic.c:1019 +#: time/zic.c:1023 msgid "invalid GMT offset" msgstr "Décalage relatif GMT invalide." -#: time/zic.c:1022 +#: time/zic.c:1026 msgid "invalid abbreviation format" msgstr "Format d'abréviation invalide." -#: time/zic.c:1112 time/zic.c:1313 time/zic.c:1327 +#: time/zic.c:1116 time/zic.c:1326 time/zic.c:1340 msgid "invalid day of month" msgstr "Jour du mois invalide." -#: time/zic.c:1270 +#: time/zic.c:1279 msgid "invalid ending year" msgstr "Année finale invalide." -#: time/zic.c:1084 +#: time/zic.c:1088 msgid "invalid leaping year" msgstr "Année bissextile invalide." -#: time/zic.c:1099 time/zic.c:1202 +#: time/zic.c:1103 time/zic.c:1206 msgid "invalid month name" msgstr "Nom de mois invalide." -#: time/zic.c:918 +#: time/zic.c:922 msgid "invalid saved time" msgstr "Temps sauvegardé invalide." -#: time/zic.c:1250 +#: time/zic.c:1255 msgid "invalid starting year" msgstr "Année initiale invalide." -#: time/zic.c:1128 time/zic.c:1230 +#: time/zic.c:1132 time/zic.c:1235 msgid "invalid time of day" msgstr "Heure du jour invalide." -#: time/zic.c:1318 +#: time/zic.c:1331 msgid "invalid weekday name" msgstr "Nom du jour de semaine invalide." @@ -2404,11 +2405,11 @@ msgstr "" "La ligne avant l'ellipse ne doit pas contenir la définition d'une constante " "de caractères." -#: time/zic.c:791 +#: time/zic.c:795 msgid "line too long" msgstr "Ligne trop longue." -#: locale/programs/localedef.c:285 +#: locale/programs/localedef.c:288 #, c-format msgid "locale file `%s', used in `copy' statement, not found" msgstr "" @@ -2428,12 +2429,12 @@ msgstr "Mémoire écrasée après la fin du #: locale/programs/ld-collate.c:167 locale/programs/ld-collate.c:173 #: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1442 -#: locale/programs/ld-collate.c:1471 locale/programs/locfile.c:962 +#: locale/programs/ld-collate.c:1471 locale/programs/locfile.c:974 #: locale/programs/xmalloc.c:68 posix/getconf.c:250 msgid "memory exhausted" msgstr "Mémoire épuisée." -#: malloc/obstack.c:462 +#: malloc/obstack.c:466 msgid "memory exhausted\n" msgstr "Mémoire épuisée.\n" @@ -2453,7 +2454,7 @@ msgstr "" msgid "missing era name in string %d in `era' field in category `%s'" msgstr "Nom manquant dans la chaîne %d du champ `era' de catégorie `%s'." -#: time/zic.c:913 +#: time/zic.c:917 msgid "nameless rule" msgstr "Règle sans nom." @@ -2467,7 +2468,7 @@ msgstr "Le programme %d n'a jamais été e msgid "no correct regular expression for field `%s' in category `%s': %s" msgstr "Expression reguliere incorrecte du champ `%s' de catégorie `%s': %s" -#: time/zic.c:2086 +#: time/zic.c:2099 msgid "no day in month matches rule" msgstr "Pas de jour dans les règles de concordance." @@ -2479,7 +2480,7 @@ msgstr "Pas de définition de type `UNDEF msgid "no other keyword shall be specified when `copy' is used" msgstr "Aucun autre mot clé ne doit être spécifié lorsque `copy' est utilisé." -#: locale/programs/localedef.c:344 +#: locale/programs/localedef.c:347 msgid "no output file produced because warning were issued" msgstr "Aucun fichier de sortie généré en raison d'un avertissement déjà émis." @@ -2543,7 +2544,7 @@ msgstr "rcmd: écriture (configuration de msgid "registerrpc: out of memory\n" msgstr "registerrpc: mémoire épuisée.\n" -#: time/zic.c:1821 +#: time/zic.c:1834 msgid "repeated leap second moment" msgstr "Répétition du délai une seconde fois." @@ -2576,7 +2577,7 @@ msgstr "rpcinfo: ne peut contacter le co msgid "rpcinfo: can't contact portmapper: " msgstr "rpcinfo: ne peut contacter le convertisseur de ports." -#: time/zic.c:704 time/zic.c:706 +#: time/zic.c:708 time/zic.c:710 msgid "same rule name in multiple files" msgstr "Même nom de règle dans plusieurs fichiers." @@ -2600,7 +2601,7 @@ msgstr "" "La spécification de tri par le poids des symboles de\n" "fusionnement n'a aucun sens." -#: time/zic.c:775 +#: time/zic.c:779 msgid "standard input" msgstr "entrée standard" @@ -2615,10 +2616,18 @@ msgstr "" "Date initiale illégale dans la chaîne %d du champ `era'\n" "de catégorie `%s'." -#: time/zic.c:1274 +#: time/zic.c:1287 msgid "starting year greater than ending year" msgstr "Année initiale plus grande que l'année finale." +#: time/zic.c:1261 time/zic.c:1285 +msgid "starting year too high to be represented" +msgstr "Année de départ trop grance pour être représentée." + +#: time/zic.c:1259 time/zic.c:1283 +msgid "starting year too low to be represented" +msgstr "Année de départ trop petite pour être représentée" + #: locale/programs/ld-time.c:330 #, c-format msgid "stopping date is illegal in string %d in `era' field in category `%s'" @@ -2626,6 +2635,10 @@ msgstr "" "Date finale illégale dans la chaîne %d du champ `era'\\n\"\n" "de catégorie `%s'." +#: sunrpc/svc_run.c:81 +msgid "svc_run: - select failed" +msgstr "svc_run: - échec de sélection" + #: sunrpc/svc_tcp.c:201 sunrpc/svc_tcp.c:206 msgid "svc_tcp: makefd_xprt: out of memory\n" msgstr "svc_tcp: makefd_xprt: mémoire épuisée.\n" @@ -2777,11 +2790,11 @@ msgstr "Ceci est la première définition. # time/zic.c:1120A # mro: à investiguer dans le code source -#: time/zic.c:1117 +#: time/zic.c:1121 msgid "time before zero" msgstr "Temps défini avant le zéro." -#: time/zic.c:1125 time/zic.c:1986 time/zic.c:2005 +#: time/zic.c:1129 time/zic.c:1999 time/zic.c:2018 msgid "time overflow" msgstr "Débordement du temps alloué." @@ -2797,15 +2810,15 @@ msgstr "Trop d'octets pour l'encodage de msgid "too many character classes defined" msgstr "Trop de définitions de classes de caractères." -#: time/zic.c:1815 +#: time/zic.c:1828 msgid "too many leap seconds" msgstr "Trop de délai en secondes." -#: time/zic.c:1787 +#: time/zic.c:1800 msgid "too many local time types" msgstr "Trop de types localisés pour la représentation du temps." -#: time/zic.c:1741 +#: time/zic.c:1754 msgid "too many transitions?!" msgstr "Trop de transitions définies?!" @@ -2813,7 +2826,7 @@ msgstr "Trop de transitions définies?!" msgid "too many weights" msgstr "Trop de poids définis." -#: time/zic.c:2109 +#: time/zic.c:2122 msgid "too many, or too long, time zone abbreviations" msgstr "Trop ou de trop longues abréviations de fuseaux horaires." @@ -2830,7 +2843,7 @@ msgstr "Problème à répondre au programme msgid "two lines in a row containing `...' are not allowed" msgstr "Deux lignes consécutives contenant `...' ne sont pas permises." -#: time/zic.c:1281 +#: time/zic.c:1294 msgid "typed single year" msgstr "Une seule année fournie." @@ -2870,7 +2883,7 @@ msgstr "Ensemble inconnu `%s'." msgid "unknown symbol `%.*s': line ignored" msgstr "Symbole inconnu `%.*s': ligne ignorée." -#: time/zic.c:747 +#: time/zic.c:751 msgid "unruly zone" msgstr "Zone sans règle." @@ -2893,10 +2906,10 @@ msgstr "Nom de poids incomplet." #: locale/programs/charset.c:119 msgid "upper limit in range is not smaller then lower limit" msgstr "" -"Limite supérieure de l'intervalle n'est pas plus petite que la limite " -"inférieure." +"Limite supérieure de l'intervalle n'est pas plus petite que\n" +"la limite inférieure." -#: time/zic.c:2052 +#: time/zic.c:2065 msgid "use of 2/29 in non leap-year" msgstr "Utiliser 2/29 pour les années non-bissextiles." @@ -2919,7 +2932,7 @@ msgstr "" #: locale/programs/charmap.c:245 msgid "value of must be greater than the value of " msgstr "" -"La valeur de doit être plus grande que la valeur de " +"La valeur de doit être plus grande que la valeur de\n" "." #: locale/programs/ld-monetary.c:139 @@ -2949,7 +2962,7 @@ msgid "values for field `%s' in category msgstr "" "Les valeurs du champ `%s' de catégorie `%s' ne doivent pas être égal à zéro." -#: login/utmp_file.c:84 +#: login/utmp_file.c:76 msgid "while opening UTMP file" msgstr "durant l'ouverture du fichier UTMP." @@ -2957,6 +2970,11 @@ msgstr "durant l'ouverture du fichier UT msgid "while opening old catalog file" msgstr "durant l'ouverture du vieux fichier du catalogue." +#: locale/programs/locale.c:341 +#, +msgid "while preparing output" +msgstr "durant la préparation de la sortie" + #: db/makedb.c:354 msgid "while reading database" msgstr "durant la lecture de la base de données." @@ -2969,23 +2987,23 @@ msgstr "durant l'écriture dans le fichie msgid "wrong number of arguments" msgstr "Mauvais nombre de paramètres." -#: time/zic.c:1075 +#: time/zic.c:1079 msgid "wrong number of fields on Leap line" msgstr "Mauvais nombre de champs sur la ligne de type `Leap'." -#: time/zic.c:1166 +#: time/zic.c:1170 msgid "wrong number of fields on Link line" msgstr "Mauvais nombre de champs sur la ligne de type `Link'." -#: time/zic.c:909 +#: time/zic.c:913 msgid "wrong number of fields on Rule line" msgstr "Mauvais nombre de champs sur la ligne de type `Rule'." -#: time/zic.c:979 +#: time/zic.c:983 msgid "wrong number of fields on Zone continuation line" msgstr "Mauvais nombre de champs sur la ligne de type continuation de `Zone'." -#: time/zic.c:937 +#: time/zic.c:941 msgid "wrong number of fields on Zone line" msgstr "Mauvais nombre de champs sur la ligne de type `Zone'." @@ -2997,27 +3015,3 @@ msgstr "" #: nis/ypclnt.c:823 msgid "yp_update: cannot get server address\n" msgstr "yp_update: ne peut obtenir l'adresse du serveur.\n" - -#~ msgid "unknown signal" -#~ msgstr "Signal inconnu." - -#~ msgid "yp_all: clnttcp_create failed" -#~ msgstr "yp_all: échec de la fonction clnttcp_create()." - -#~ msgid "character `%c' not defined while needed as default value" -#~ msgstr "Caractère `%c' non défini alors qu'attendu comme valeur par défaut." - -#~ msgid "couldn't do tcp_create\n" -#~ msgstr "Ne peut exécuter tcp_create.\n" - -#~ msgid "couldn't do udp_create\n" -#~ msgstr "Ne peut exécuter udp_create.\n" - -#~ msgid "portmap CALLIT: cannot fork.\n" -#~ msgstr "portmap CALLIT: ne peut procéder à un clonage de type fork.\n" - -#~ msgid "portmap cannot create socket" -#~ msgstr "portmap ne créer un socket" - -#~ msgid "run_svc returned unexpectedly\n" -#~ msgstr "run_svc a retourné de façon imprévue.\n" Binary files glibc-2.0.5c/po/nl.mo and glibc-2.0.6/po/nl.mo differ diff -durpN glibc-2.0.5c/po/nl.po glibc-2.0.6/po/nl.po --- glibc-2.0.5c/po/nl.po Sun Feb 2 22:17:51 1997 +++ glibc-2.0.6/po/nl.po Sat Dec 27 01:29:00 1997 @@ -1,35 +1,25 @@ -# Dutch messages for GNU libc. +# Dutch messages dor GNU libc. # Copyright (C) 1996 Free Software Foundation, Inc. # Erick Branderhorst , 1996. # msgid "" msgstr "" -"Project-Id-Version: libc 2.0\n" -"POT-Creation-Date: 1996-09-08 3:45\n" +"Project-Id-Version: libc 2.0.5\n" +"POT-Creation-Date: 1997-08-21 04:13+0200\n" "PO-Revision-Date: 1996-09-17 14:30 MET DST\n" -"Last-Translator: Erick Branderhorst \n" +"Last-Translator: Erick Branderhorst \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" -#: sunrpc/rpc_main.c:80 -#, c-format -msgid " %s [-c | -h | -l | -m] [-o outfile] [infile]\n" -msgstr " %s [-c | -h | -l | -m] [-o uitvoerbestand] [invoerbestand]\n" - -#: sunrpc/rpc_main.c:83 -#, c-format -msgid " %s [-s udp|tcp]* [-o outfile] [infile]\n" -msgstr " %s [-s udp|tcp]* [-o uitvoerbestand] [invoerbestand]\n" - #: sunrpc/rpcinfo.c:612 msgid " rpcinfo -b prognum versnum\n" -msgstr " rpcinfo -b programanummer versienummer\n" +msgstr " rpcinfo -b programma nummer versienummer\n" #: sunrpc/rpcinfo.c:613 msgid " rpcinfo -d prognum versnum\n" -msgstr " rpcinfo -d programanummer versienummer\n" +msgstr " rpcinfo -d programmanummer versienummer\n" #: sunrpc/rpcinfo.c:611 msgid " rpcinfo -p [ host ]\n" @@ -37,62 +27,58 @@ msgstr " rpcinfo -p [ host ]\n" #: sunrpc/rpcinfo.c:610 msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n" -msgstr " rpcinfo [ -n poortnummer ] -t host programanummer [ versienummer ]\n" +msgstr "" +" rpcinfo [ -n poortnummer ] -t host programmanummer [ versienummer ]\n" #: sunrpc/rpcinfo.c:517 msgid " program vers proto port\n" msgstr " program vers proto port\n" -#: time/zic.c:425 +#: time/zic.c:421 #, c-format msgid " (rule from \"%s\", line %d)" msgstr " (voorwaarde uit \"%s\", regel %d)" -#: locale/programs/ld-collate.c:360 locale/programs/ld-ctype.c:1233 +#: locale/programs/ld-collate.c:363 locale/programs/ld-ctype.c:1242 msgid " done\n" msgstr " klaar\n" -#: time/zic.c:422 +#: time/zic.c:418 #, c-format msgid "\"%s\", line %d: %s" msgstr "\"%s\", regel %d: %s" -#: time/zic.c:946 +#: time/zic.c:947 #, c-format msgid "\"Zone %s\" line and -l option are mutually exclusive" msgstr "\"Zone %s\" regel en -l optie gaan niet samen" -#: time/zic.c:954 +#: time/zic.c:955 #, c-format msgid "\"Zone %s\" line and -p option are mutually exclusive" msgstr "\"Zone %s\" regel en -p optie gaan niet samen" -#: time/zic.c:759 +#: time/zic.c:758 #, c-format msgid "%s in ruleless zone" msgstr "%s in regelloze zone" -#: assert/assert.c:48 +#: assert/assert.c:46 #, c-format msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n" msgstr "%s%s%s:%u: %s%sAssertie `%s' faalde.\n" -#: assert/assert-perr.c:46 +#: assert/assert-perr.c:47 #, c-format msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n" msgstr "%s%s%s:%u: %s%sOnverwachte fout: %s.\n" -#: stdio-common/psignal.c:48 +#: stdio-common/psignal.c:47 #, c-format msgid "%s%sUnknown signal %d\n" msgstr "%s%sOnbekend signaal %d\n" -#: sunrpc/rpc_util.c:258 -#, c-format -msgid "%s, line %d: " -msgstr "%s, regel %d: " - -#: time/zic.c:2140 +#: time/zic.c:2185 #, c-format msgid "%s: %d did not sign extend correctly\n" msgstr "%s: %d heeft `extend' niet juist gesigneerd\n" @@ -102,17 +88,17 @@ msgstr "%s: %d heeft `extend' niet juist msgid "%s: must be greater than \n" msgstr "%s: moet groter zijn dan \n" -#: time/zic.c:1431 +#: time/zic.c:1456 #, c-format msgid "%s: Can't create %s: %s\n" msgstr "%s: Kan %s niet aanmaken: %s\n" -#: time/zic.c:2119 +#: time/zic.c:2163 #, c-format msgid "%s: Can't create directory %s: %s\n" msgstr "%s: Kan directory %s niet aanmaken: %s\n" -#: time/zic.c:613 +#: time/zic.c:610 #, c-format msgid "%s: Can't link from %s to %s: %s\n" msgstr "%s: Kan niet verwijzing van %s naar %s: %s\n" @@ -122,7 +108,12 @@ msgstr "%s: Kan niet verwijzing van %s n msgid "%s: Can't open %s: %s\n" msgstr "%s: Kan %s niet openen: %s\n" -#: time/zic.c:852 +#: time/zic.c:1446 +#, fuzzy, c-format +msgid "%s: Can't remove %s: %s\n" +msgstr "%s: Kan %s niet aanmaken: %s\n" + +#: time/zic.c:853 #, c-format msgid "%s: Error closing %s: %s\n" msgstr "%s: Fout bij sluiten %s: %s\n" @@ -132,12 +123,12 @@ msgstr "%s: Fout bij sluiten %s: %s\n" msgid "%s: Error reading %s\n" msgstr "%s: Fout bij lezen %s\n" -#: time/zic.c:1495 +#: time/zic.c:1520 #, c-format msgid "%s: Error writing %s\n" msgstr "%s: Fout bij schrijven %s\n" -#: time/zdump.c:258 +#: time/zdump.c:266 #, c-format msgid "%s: Error writing standard output " msgstr "%s: Fout bij schrijven standaarduitvoer " @@ -147,87 +138,92 @@ msgstr "%s: Fout bij schrijven standaard msgid "%s: Leap line in non leap seconds file %s\n" msgstr "%s: Schrikkelregel in niet schrikkelseconde bestand %s (FIXME)\n" -#: time/zic.c:362 +#: time/zic.c:359 #, c-format msgid "%s: Memory exhausted: %s\n" msgstr "%s: Niet meer geheugen beschikbaar: %s\n" -#: time/zic.c:528 +#: time/zic.c:524 #, c-format msgid "%s: More than one -L option specified\n" msgstr "%s: Meer dan een -L optie gegeven\n" -#: time/zic.c:488 +#: time/zic.c:484 #, c-format msgid "%s: More than one -d option specified\n" msgstr "%s: Meer dan een -d optie gegeven\n" -#: time/zic.c:498 +#: time/zic.c:494 #, c-format msgid "%s: More than one -l option specified\n" msgstr "%s: Meer dan een -l optie gegeven\n" -#: time/zic.c:508 +#: time/zic.c:504 #, c-format msgid "%s: More than one -p option specified\n" msgstr "%s: Meer dan een -p optie gegeven\n" -#: time/zic.c:518 +#: time/zic.c:514 #, c-format msgid "%s: More than one -y option specified\n" msgstr "%s: Meer dan een -y optie gegeven\n" -#: time/zic.c:1846 +#: time/zic.c:1885 #, c-format msgid "%s: command was '%s', result was %d\n" msgstr "%s: commando was '%s', resultaat was %d\n" -#: locale/programs/charmap.c:593 locale/programs/locfile.c:878 +#: locale/programs/charmap.c:593 locale/programs/locfile.c:900 #, c-format msgid "%s: error in state machine" msgstr "%s: fout in state machine" -#: posix/getopt.c:686 +#: posix/getopt.c:783 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: onjuiste optie -- %c\n" -#: posix/getopt.c:689 +#: posix/getopt.c:786 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: onjuiste optie -- %c\n" -#: posix/getopt.c:610 +#: posix/getopt.c:707 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: optie `%c%s' staat geen argument toe\n" -#: posix/getopt.c:581 +#: posix/getopt.c:678 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: optie `%s' is ambiguous\n" -#: posix/getopt.c:627 +#: posix/getopt.c:724 posix/getopt.c:897 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: optie `%s' vereist een argument\n" -#: posix/getopt.c:605 +#: posix/getopt.c:702 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: optie `--%s' staat geen argument toe\n" -#: posix/getopt.c:725 +#: posix/getopt.c:881 +#, fuzzy, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: optie `--%s' staat geen argument toe\n" + +#: posix/getopt.c:863 +#, fuzzy, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: optie `%s' is ambiguous\n" + +#: posix/getopt.c:816 posix/getopt.c:946 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: optie vereist een argument -- %c\n" -#: sunrpc/rpc_main.c:146 -#, c-format -msgid "%s: output would overwrite %s\n" -msgstr "%s: uitvoer zal %s overschrijven\n" - -#: time/zic.c:838 time/zic.c:1249 time/zic.c:1269 +#: time/zic.c:838 time/zic.c:1251 time/zic.c:1275 #, c-format msgid "%s: panic: Invalid l_value %d\n" msgstr "%s: paniek: Onjuiste `l_value' %d\n" @@ -237,22 +233,17 @@ msgstr "%s: paniek: Onjuiste `l_value' % msgid "%s: premature end of file" msgstr "%s: voorbarig einde van bestand" -#: sunrpc/rpc_main.c:152 -#, c-format -msgid "%s: unable to open " -msgstr "%s: niet in staat te openen " - -#: posix/getopt.c:660 +#: posix/getopt.c:757 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: onbekende optie `%c%s'\n" -#: posix/getopt.c:656 +#: posix/getopt.c:753 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: onbekende optie `--%s'\n" -#: time/zic.c:447 +#: time/zic.c:443 #, c-format msgid "" "%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d " @@ -263,7 +254,7 @@ msgstr "" "[ -l lokale tijd ] [ -p posixregels ] [ -d directory ]\n" "[ -L schrikkelseconden ] [ -y jaartype ] [ bestandsnaam ... ]\n" -#: time/zdump.c:165 +#: time/zdump.c:174 #, c-format msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n" msgstr "%s: gebruik is %s [ -v ] [ -c afbreken ] zonenaam ...\n" @@ -277,7 +268,7 @@ msgstr "(onbekende authenticatie (FIXME) msgid "(unknown)" msgstr "(onbekend)" -#: catgets/gencat.c:244 +#: catgets/gencat.c:254 msgid "*standard input*" msgstr "*standaardinvoer*" @@ -285,19 +276,19 @@ msgstr "*standaardinvoer*" msgid ".lib section in a.out corrupted" msgstr ".lib deel in a.out corrupt" -#: inet/rcmd.c:325 +#: inet/rcmd.c:363 msgid ".rhosts fstat failed" msgstr ".rhosts fstat faalde" -#: inet/rcmd.c:321 +#: inet/rcmd.c:359 msgid ".rhosts lstat failed" msgstr ".rhosts lstat faalde" -#: inet/rcmd.c:323 +#: inet/rcmd.c:361 msgid ".rhosts not regular file" msgstr ".rhosts is geen gewoon bestand" -#: inet/rcmd.c:329 +#: inet/rcmd.c:367 msgid ".rhosts writeable by other than owner" msgstr ".rhosts overschrijfbaar door anderen dan de eigenaar" @@ -310,12 +301,12 @@ msgstr "; low versie = %lu, high versie msgid "; why = " msgstr "; waarom = " -#: locale/programs/ld-ctype.c:325 +#: locale/programs/ld-ctype.c:331 #, c-format msgid " character must not be in class `%s'" msgstr " karakter mag geen onderdeel zijn van klasse `%s'" -#: locale/programs/ld-ctype.c:316 +#: locale/programs/ld-ctype.c:321 #, c-format msgid " character not in class `%s'" msgstr " karakter geen onderdeel van klasse `%s'" @@ -327,6 +318,10 @@ msgstr " karakter geen onderdeel van msgid "?" msgstr "" +#: sysdeps/unix/sysv/linux/siglist.h:27 +msgid "Aborted" +msgstr "" + #: stdio-common/../sysdeps/gnu/errlist.c:762 msgid "Accessing a corrupted shared library" msgstr "Benaderen van een corrupte gezamelijk bibliotheek" @@ -342,10 +337,12 @@ msgstr "Address is al in gebruik" msgid "Address family not supported by protocol" msgstr "Adres familie niet ondersteund door protocol" -#: stdio-common/../sysdeps/gnu/errlist.c:714 +#: stdio-common/../sysdeps/gnu/errlist.c:730 msgid "Advertise error" msgstr "Advertise (FIXME) fout" +#: stdio-common/../sysdeps/unix/siglist.c:43 +#: sysdeps/unix/sysv/linux/siglist.h:33 msgid "Alarm clock" msgstr "Alarmklok" @@ -383,10 +380,21 @@ msgstr "Onjuist adres" msgid "Bad file descriptor" msgstr "Onjuiste bestandsbeschrijver" -#: stdio-common/../sysdeps/gnu/errlist.c:682 +#: stdio-common/../sysdeps/gnu/errlist.c:718 msgid "Bad font file format" msgstr "Onjuist lettertype bestandsformaat" +#: stdio-common/../sysdeps/gnu/errlist.c:610 +#, fuzzy +msgid "Bad message" +msgstr "Geen data melding" + +#: stdio-common/../sysdeps/unix/siglist.c:41 +#: sysdeps/unix/sysv/linux/siglist.h:56 +#, fuzzy +msgid "Bad system call" +msgstr "Onderbroken systeemaanroep (FIXME)" + #. TRANS A file that isn't a block special file was given in a situation that #. TRANS requires one. For example, trying to mount an ordinary file as a file #. TRANS system in Unix gives this error. @@ -394,7 +402,7 @@ msgstr "Onjuist lettertype bestandsforma msgid "Block device required" msgstr "Blokapparaat vereist" -#: sunrpc/pmap_rmt.c:335 +#: sunrpc/pmap_rmt.c:338 msgid "Broadcast select problem" msgstr "Broadcast selectie probleem (FIXME)" @@ -404,18 +412,41 @@ msgstr "Broadcast selectie probleem (FIX #. TRANS or blocked. Thus, your program will never actually see @code{EPIPE} #. TRANS unless it has handled or blocked @code{SIGPIPE}. #: stdio-common/../sysdeps/gnu/errlist.c:222 +#: stdio-common/../sysdeps/unix/siglist.c:42 +#: sysdeps/unix/sysv/linux/siglist.h:32 msgid "Broken pipe" msgstr "Onderbroken pijp" +#: stdio-common/../sysdeps/unix/siglist.c:39 +#: sysdeps/unix/sysv/linux/siglist.h:30 msgid "Bus error" msgstr "Bus fout" +#: sysdeps/unix/sysv/linux/siglist.h:43 msgid "CPU time limit exceeded" msgstr "CPU tijdlimiet overschreden" #: stdio-common/../sysdeps/gnu/errlist.c:758 msgid "Can not access a needed shared library" -msgstr "Kan geen toegang verkrijgen tot benodigde gezamelijk bibliotheekbestand" +msgstr "" +"Kan geen toegang verkrijgen tot benodigde gezamelijk bibliotheekbestand" + +#: nis/ypclnt.c:695 +msgid "Can't bind to server which serves this domain" +msgstr "" + +#: nis/ypclnt.c:707 +#, fuzzy +msgid "Can't communicate with portmapper" +msgstr "rpcinfo: kan geen kontakt krijgen met portmapper" + +#: nis/ypclnt.c:709 +msgid "Can't communicate with ypbind" +msgstr "" + +#: nis/ypclnt.c:711 +msgid "Can't communicate with ypserv" +msgstr "" #. TRANS No memory available. The system cannot allocate more virtual memory #. TRANS because its capacity is full. @@ -430,7 +461,7 @@ msgstr "Kan geen geheugen aanspreken" msgid "Cannot assign requested address" msgstr "Kan gevraagde adres niet toewijzen" -#: sunrpc/pmap_rmt.c:253 +#: sunrpc/pmap_rmt.c:255 msgid "Cannot create socket for broadcast rpc" msgstr "Kan geen `socket' maken voor `broadcast' rpc" @@ -438,7 +469,7 @@ msgstr "Kan geen `socket' maken voor `br msgid "Cannot exec a shared library directly" msgstr "Kan geen gezamelijke bibliotheek rechtstreeks uitvoeren" -#: sunrpc/pmap_rmt.c:347 +#: sunrpc/pmap_rmt.c:350 msgid "Cannot receive reply to broadcast" msgstr "Kan geen antwoord ontvangen om te zenden" @@ -451,18 +482,20 @@ msgstr "Kan service niet registreren" msgid "Cannot send after transport endpoint shutdown" msgstr "Kan niet zenden na transport eindpunt `shutdown'" -#: sunrpc/pmap_rmt.c:311 +#: sunrpc/pmap_rmt.c:313 msgid "Cannot send broadcast packet" msgstr "Kan broadcast pakket niet verzenden" -#: sunrpc/pmap_rmt.c:259 +#: sunrpc/pmap_rmt.c:261 msgid "Cannot set socket option SO_BROADCAST" msgstr "Kan socket optie SO_BROADCAST niet instellen" -#: stdio-common/../sysdeps/gnu/errlist.c:622 +#: stdio-common/../sysdeps/gnu/errlist.c:658 msgid "Channel number out of range" msgstr "Kanaal nummer buiten domein" +#: stdio-common/../sysdeps/unix/siglist.c:49 +#: sysdeps/unix/sysv/linux/siglist.h:39 msgid "Child exited" msgstr "Kind is er mee opgehouden (FIXME)" @@ -470,7 +503,7 @@ msgstr "Kind is er mee opgehouden (FIXME msgid "Client credential too weak" msgstr "Klant credential is te zwak (FIXME)" -#: stdio-common/../sysdeps/gnu/errlist.c:722 +#: stdio-common/../sysdeps/gnu/errlist.c:738 msgid "Communication error on send" msgstr "Communicatie fout bij zenden" @@ -479,11 +512,11 @@ msgstr "Communicatie fout bij zenden" msgid "Computer bought the farm" msgstr "Computer heeft de boerderij gekocht" -#: locale/programs/ld-ctype.c:1196 +#: locale/programs/ld-ctype.c:1204 msgid "Computing table size for character classes might take a while..." msgstr "Berekenen tabelgrootte voor karakterklassen kan even duren..." -#: locale/programs/ld-collate.c:327 +#: locale/programs/ld-collate.c:329 msgid "Computing table size for collation information might take a while..." msgstr "Berekenen tabelgrootte voor collation informatie kan even duren..." @@ -491,7 +524,7 @@ msgstr "Berekenen tabelgrootte voor coll #. TRANS it is not running the requested service). #: stdio-common/../sysdeps/gnu/errlist.c:439 msgid "Connection refused" -msgstr "Connectie gewijgerd" +msgstr "Connectie geweigerd" #. TRANS A network connection was closed for reasons outside the control of the #. TRANS local host, such as by the remote machine rebooting or an unrecoverable @@ -506,9 +539,33 @@ msgstr "Connectie reset door `peer'" msgid "Connection timed out" msgstr "Connectie timed out" +#: stdio-common/../sysdeps/unix/siglist.c:48 +#: sysdeps/unix/sysv/linux/siglist.h:38 msgid "Continued" msgstr "Gecontinueerd" +#: catgets/gencat.c:169 db/makedb.c:120 locale/programs/locale.c:191 +#: locale/programs/localedef.c:180 +#, 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 "" +"Kopierecht (C) %s Free Software Foundation, Inc.\n" +"Dit is vrije programmatuur; zie de bron-code voor copieervoorwaarden.\n" +"Er is GEEN garantie; zelfs niet voor VERKOOPBAARHEID of GESCHIKTHEID\n" +"VOOR EEN BEPAALD DOEL.\n" + +#: stdio-common/../sysdeps/unix/siglist.c:53 +#, fuzzy +msgid "Cputime limit exceeded" +msgstr "CPU tijdlimiet overschreden" + +#: nis/ypclnt.c:721 +msgid "Database is busy" +msgstr "Database is bezig" + #. TRANS No default destination address was set for the socket. You get this #. TRANS error when you try to transmit data over a connectionless socket, #. TRANS without first specifying a destination for the data with @code{connect}. @@ -516,7 +573,7 @@ msgstr "Gecontinueerd" msgid "Destination address required" msgstr "Bestemmingsadres vereist" -#: stdio-common/../sysdeps/gnu/errlist.c:686 +#: stdio-common/../sysdeps/gnu/errlist.c:638 msgid "Device not a stream" msgstr "Apparaat is geen `stream'" @@ -547,20 +604,31 @@ msgstr "Directory niet leeg" msgid "Disc quota exceeded" msgstr "Schijf quota overschreden" +#: nis/ypclnt.c:767 +#, fuzzy +msgid "Domain not bound" +msgstr "portmap kan niet bind (FIXME)" + +#: stdio-common/../sysdeps/unix/siglist.c:36 +#: sysdeps/unix/sysv/linux/siglist.h:53 +#, fuzzy +msgid "EMT trap" +msgstr "IOT trap (FIXME)" + #: sunrpc/clnt_perr.c:254 #, c-format msgid "Error %d" msgstr "Fout %d" -#: string/../sysdeps/mach/_strerror.c:43 +#: string/../sysdeps/mach/_strerror.c:52 msgid "Error in unknown error system: " msgstr "Fout in onbekende fout systeem (FIXME): " -#: inet/ruserpass.c:156 +#: inet/ruserpass.c:161 msgid "Error: .netrc file is readable by others." msgstr "Fout: .netrc bestand is leesbaar voor anderen." -#: stdio-common/../sysdeps/gnu/errlist.c:662 +#: stdio-common/../sysdeps/gnu/errlist.c:698 msgid "Exchange full" msgstr "Uitwisseling vol" @@ -570,7 +638,7 @@ msgstr "Uitwisseling vol" msgid "Exec format error" msgstr "Exec formaat fout" -#: locale/programs/localedef.c:207 +#: locale/programs/localedef.c:216 msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'" msgstr "FATAAL: systeem heeft `_POSIX2_LOCALEDEF' niet gedefinieerd" @@ -588,7 +656,7 @@ msgstr "Bestandsbeschrijver in slechte s msgid "File exists" msgstr "Bestand bestaat" -#: stdio-common/../sysdeps/gnu/errlist.c:678 +#: stdio-common/../sysdeps/gnu/errlist.c:714 msgid "File locking deadlock error" msgstr "Bestandsafscherming deadlock fout" @@ -599,6 +667,7 @@ msgstr "Bestandsafscherming deadlock fou msgid "File name too long" msgstr "Bestandsnaam te lang" +#: sysdeps/unix/sysv/linux/siglist.h:44 msgid "File size limit exceeded" msgstr "Bestandsgrootte limiet overschreden" @@ -607,6 +676,13 @@ msgstr "Bestandsgrootte limiet overschre msgid "File too large" msgstr "Bestand te groot" +#: stdio-common/../sysdeps/unix/siglist.c:54 +#, fuzzy +msgid "Filesize limit exceeded" +msgstr "Bestandsgrootte limiet overschreden" + +#: stdio-common/../sysdeps/unix/siglist.c:37 +#: sysdeps/unix/sysv/linux/siglist.h:28 msgid "Floating point exception" msgstr "Drijvende punt exceptie" @@ -622,6 +698,8 @@ msgstr "Functie niet geimplementeerd" msgid "Gratuitous error" msgstr "Gratuitous (FIXME) fout" +#: stdio-common/../sysdeps/unix/siglist.c:30 +#: sysdeps/unix/sysv/linux/siglist.h:22 msgid "Hangup" msgstr "Ophangen" @@ -634,19 +712,28 @@ msgstr "`Host' is `down'" msgid "Host name lookup failure" msgstr "Host naam opzoek fout (FIXME)" +#: stdio-common/../sysdeps/unix/siglist.c:52 +#: sysdeps/unix/sysv/linux/siglist.h:42 msgid "I/O possible" msgstr "I/O mogelijk" +#: stdio-common/../sysdeps/unix/siglist.c:35 msgid "IOT trap" msgstr "IOT trap (FIXME)" -#: stdio-common/../sysdeps/gnu/errlist.c:618 +#: stdio-common/../sysdeps/gnu/errlist.c:614 msgid "Identifier removed" msgstr "Identifier verwijderd" +#: sysdeps/unix/sysv/linux/siglist.h:25 msgid "Illegal Instruction" msgstr "Verkeerde instructie" +#: stdio-common/../sysdeps/unix/siglist.c:33 +#, fuzzy +msgid "Illegal instruction" +msgstr "Verkeerde instructie" + #. TRANS Invalid seek operation (such as on a pipe). #: stdio-common/../sysdeps/gnu/errlist.c:201 msgid "Illegal seek" @@ -677,15 +764,32 @@ msgstr "Ongeschikte `ioctl' voor apparaa msgid "Inappropriate operation for background process" msgstr "Ongeschikte operatie voor achtergrond proces" +#: sysdeps/unix/sysv/linux/siglist.h:62 +#, fuzzy +msgid "Information request" +msgstr "Ongeldige vraag code" + #. TRANS Input/output error; usually used for physical read or write errors. #: stdio-common/../sysdeps/gnu/errlist.c:40 msgid "Input/output error" msgstr "Invoer/uitvoer fout" +#: nis/ypclnt.c:701 +#, fuzzy +msgid "Internal NIS error" +msgstr "Resolver interne fout" + +#: nis/ypclnt.c:765 +#, fuzzy +msgid "Internal ypbind error" +msgstr "Stromen pijp fout" + +#: stdio-common/../sysdeps/unix/siglist.c:31 +#: sysdeps/unix/sysv/linux/siglist.h:23 msgid "Interrupt" msgstr "Interrupt" -#. TRANS Interrupted function call; an asynchronous signal occured and prevented +#. TRANS Interrupted function call; an asynchronous signal occurred and prevented #. TRANS completion of the call. When this happens, you should try the call #. TRANS again. #. TRANS @@ -696,7 +800,7 @@ msgstr "Interrupt" msgid "Interrupted system call" msgstr "Onderbroken systeemaanroep (FIXME)" -#: stdio-common/../sysdeps/gnu/errlist.c:610 +#: stdio-common/../sysdeps/gnu/errlist.c:654 msgid "Interrupted system call should be restarted" msgstr "Onderbroken systeemaanroep moet opnieuw gestart worden" @@ -706,11 +810,11 @@ msgstr "Onderbroken systeemaanroep moet msgid "Invalid argument" msgstr "Onjuist argument" -#: posix/regex.c:946 +#: posix/regex.c:978 msgid "Invalid back reference" msgstr "Onjuiste `back reference' (FIXME)" -#: posix/regex.c:944 +#: posix/regex.c:976 msgid "Invalid character class name" msgstr "Onjuiste karakterklassenaam" @@ -722,11 +826,11 @@ msgstr "Onjuiste klant credential (FIXME msgid "Invalid client verifier" msgstr "Ongeldige klant verifier (FIXME)" -#: posix/regex.c:943 +#: posix/regex.c:975 msgid "Invalid collation character" msgstr "Ongeldig collatie karakter (FIXME)" -#: posix/regex.c:950 +#: posix/regex.c:982 msgid "Invalid content of \\{\\}" msgstr "Ongeldige inhoud van \\{\\}" @@ -737,7 +841,7 @@ msgstr "Ongeldige inhoud van \\{\\}" msgid "Invalid cross-device link" msgstr "Ongeldige cross-device verwijzing" -#: stdio-common/../sysdeps/gnu/errlist.c:654 +#: stdio-common/../sysdeps/gnu/errlist.c:690 msgid "Invalid exchange" msgstr "Onjuiste uitwisseling" @@ -747,23 +851,23 @@ msgstr "Onjuiste uitwisseling" msgid "Invalid or incomplete multibyte or wide character" msgstr "Ongeldig of incompleet multibyte of wide karakter" -#: posix/regex.c:953 +#: posix/regex.c:985 msgid "Invalid preceding regular expression" msgstr "Ongeldige voorafgaande reguliere expressie" -#: posix/regex.c:951 +#: posix/regex.c:983 msgid "Invalid range end" msgstr "Onjuist bereik einde" -#: posix/regex.c:942 +#: posix/regex.c:974 msgid "Invalid regular expression" msgstr "Onjuiste reguliere expressie" -#: stdio-common/../sysdeps/gnu/errlist.c:670 +#: stdio-common/../sysdeps/gnu/errlist.c:706 msgid "Invalid request code" msgstr "Ongeldige vraag code" -#: stdio-common/../sysdeps/gnu/errlist.c:658 +#: stdio-common/../sysdeps/gnu/errlist.c:694 msgid "Invalid request descriptor" msgstr "Onjuiste vraag beschrijver" @@ -771,7 +875,7 @@ msgstr "Onjuiste vraag beschrijver" msgid "Invalid server verifier" msgstr "Onjuiste `server' verifier (FIXME)" -#: stdio-common/../sysdeps/gnu/errlist.c:674 +#: stdio-common/../sysdeps/gnu/errlist.c:710 msgid "Invalid slot" msgstr "Onjuist slot" @@ -785,38 +889,48 @@ msgstr "Is een directory" msgid "Is a named type file" msgstr "Is een benoemd bestandstype" +#: stdio-common/../sysdeps/unix/siglist.c:38 +#: sysdeps/unix/sysv/linux/siglist.h:29 msgid "Killed" msgstr "Gedood" -#: stdio-common/../sysdeps/gnu/errlist.c:650 +#: stdio-common/../sysdeps/gnu/errlist.c:686 msgid "Level 2 halted" msgstr "Nivo 2 gestopt" -#: stdio-common/../sysdeps/gnu/errlist.c:626 +#: stdio-common/../sysdeps/gnu/errlist.c:662 msgid "Level 2 not synchronized" msgstr "Nivo 2 niet gesyncrhoniseerd" -#: stdio-common/../sysdeps/gnu/errlist.c:630 +#: stdio-common/../sysdeps/gnu/errlist.c:666 msgid "Level 3 halted" msgstr "Nivo 3 gestopt" -#: stdio-common/../sysdeps/gnu/errlist.c:634 +#: stdio-common/../sysdeps/gnu/errlist.c:670 msgid "Level 3 reset" msgstr "Nivo 3 reset" -#: stdio-common/../sysdeps/gnu/errlist.c:710 +#: stdio-common/../sysdeps/gnu/errlist.c:626 msgid "Link has been severed" -msgstr "" +msgstr "Verwijzing is onderbroken" -#: stdio-common/../sysdeps/gnu/errlist.c:638 +#: stdio-common/../sysdeps/gnu/errlist.c:674 msgid "Link number out of range" msgstr "Verwijzingsnummer buiten bereik" -#: stdio-common/../sysdeps/gnu/errlist.c:702 +#: nis/ypclnt.c:713 +msgid "Local domain name not set" +msgstr "Lokale domeinnaam niet ingesteld" + +#: nis/ypclnt.c:703 +msgid "Local resource allocation failure" +msgstr "Lokale `resource' toewijzingsfout" + +#: stdio-common/../sysdeps/gnu/errlist.c:722 msgid "Machine is not on the network" msgstr "Machine is niet aangesloten op het netwerk" -#: posix/regex.c:952 +#: posix/regex.c:984 msgid "Memory exhausted" msgstr "Geheugen opgebruikt" @@ -826,10 +940,18 @@ msgstr "Geheugen opgebruikt" msgid "Message too long" msgstr "Melding te lang" -#: stdio-common/../sysdeps/gnu/errlist.c:730 +#: stdio-common/../sysdeps/gnu/errlist.c:618 msgid "Multihop attempted" msgstr "Multihop geprobeerd" +#: nis/ypclnt.c:717 +msgid "NIS client/server version mismatch - can't supply service" +msgstr "NIS klant/server versie verschillend - kan geen diensten bieden" + +#: nis/ypclnt.c:715 +msgid "NIS map data base is bad" +msgstr "NIS map database is niet ok" + #: stdio-common/../sysdeps/gnu/errlist.c:746 msgid "Name not unique on network" msgstr "Naam is niet uniek op netwerk" @@ -855,7 +977,7 @@ msgstr "Netwerk is `down'" msgid "Network is unreachable" msgstr "Netwerk is onbereikbaar" -#: stdio-common/../sysdeps/gnu/errlist.c:646 +#: stdio-common/../sysdeps/gnu/errlist.c:682 msgid "No CSI structure available" msgstr "Geen CSI structuur beschikbaar" @@ -867,7 +989,7 @@ msgstr "Geen XENIX semaphoren beschikbaa msgid "No address associated with name" msgstr "Geen adres geassocieerd met naam" -#: stdio-common/../sysdeps/gnu/errlist.c:666 +#: stdio-common/../sysdeps/gnu/errlist.c:702 msgid "No anode" msgstr "Geen anode" @@ -885,7 +1007,7 @@ msgstr "Geen bufferruimte beschikbaar" msgid "No child processes" msgstr "Geen kindprocessen (FIXME)" -#: stdio-common/../sysdeps/gnu/errlist.c:690 +#: stdio-common/../sysdeps/gnu/errlist.c:622 msgid "No data available" msgstr "Geen data beschikbaar" @@ -897,15 +1019,20 @@ msgstr "Geen data beschikbaar" msgid "No locks available" msgstr "Geen sloten beschikbaar" -#: posix/regex.c:941 +#: posix/regex.c:973 msgid "No match" msgstr "Geen overeenkomst" -#: stdio-common/../sysdeps/gnu/errlist.c:614 +#: stdio-common/../sysdeps/gnu/errlist.c:630 msgid "No message of desired type" msgstr "Geen melding van gewenst type" -#: posix/regex.c:5202 +#: nis/ypclnt.c:705 +#, fuzzy +msgid "No more records in map database" +msgstr "bij lezen database" + +#: posix/regex.c:5434 msgid "No previous regular expression" msgstr "Geen vorige reguliere expressie" @@ -931,6 +1058,14 @@ msgstr "Geen ruimte meer op apparaat" msgid "No such file or directory" msgstr "Onbekend bestand of directory" +#: nis/ypclnt.c:699 +msgid "No such key in map" +msgstr "Niet zo'n sleutel in map" + +#: nis/ypclnt.c:697 +msgid "No such map in server's domain" +msgstr "Niet zo'n map in server's domein" + #. TRANS No process matches the specified process ID. #: stdio-common/../sysdeps/gnu/errlist.c:24 msgid "No such process" @@ -940,10 +1075,6 @@ msgstr "Onbekend proces" msgid "Not a XENIX named type file" msgstr "Geen XENIX benoemd type bestand" -#: stdio-common/../sysdeps/gnu/errlist.c:738 -msgid "Not a data message" -msgstr "Geen data melding" - #. TRANS A file that isn't a directory was specified when a directory is required. #: stdio-common/../sysdeps/gnu/errlist.c:140 msgid "Not a directory" @@ -969,7 +1100,7 @@ msgstr "Numeriek resultaat is buiten dom msgid "Object is remote" msgstr "Object is niet lokaal" -#: time/zic.c:1940 +#: time/zic.c:1979 msgid "Odd number of quotation marks" msgstr "Oneven aantal quotes" @@ -1022,34 +1153,37 @@ msgstr "Ingreep in voorbereiding" msgid "Operation would block" msgstr "Operatie zou blokeren" -#: stdio-common/../sysdeps/gnu/errlist.c:698 +#: stdio-common/../sysdeps/gnu/errlist.c:634 msgid "Out of streams resources" msgstr "Geen streams resources meer" -#: stdio-common/../sysdeps/gnu/errlist.c:706 +#: stdio-common/../sysdeps/gnu/errlist.c:726 msgid "Package not installed" msgstr "Pakket niet geïnstalleerd" #. TRANS Permission denied; the file permissions do not allow the attempted operation. -#: stdio-common/../sysdeps/gnu/errlist.c:96 +#: nis/ypclnt.c:719 stdio-common/../sysdeps/gnu/errlist.c:96 msgid "Permission denied" msgstr "Toegang geweigerd" +#: sysdeps/unix/sysv/linux/siglist.h:64 msgid "Power failure" msgstr "Elektrische voeding faald" -#: posix/regex.c:954 +#: posix/regex.c:986 msgid "Premature end of regular expression" msgstr "Prematuur einde van reguliere expressie" +#: stdio-common/../sysdeps/unix/siglist.c:56 +#: sysdeps/unix/sysv/linux/siglist.h:46 msgid "Profiling timer expired" msgstr "Profiling timer verlopen (FIMXE)" -#: stdio-common/../sysdeps/gnu/errlist.c:642 +#: stdio-common/../sysdeps/gnu/errlist.c:678 msgid "Protocol driver not attached" msgstr "Protocol driver niet aangesloten" -#: stdio-common/../sysdeps/gnu/errlist.c:726 +#: stdio-common/../sysdeps/gnu/errlist.c:646 msgid "Protocol error" msgstr "Protocol fout" @@ -1076,27 +1210,33 @@ msgstr "Protocol niet ondersteund" msgid "Protocol wrong type for socket" msgstr "Protocol verkeerd type voor socket (FIXME)" +#: stdio-common/../sysdeps/unix/siglist.c:32 +#: sysdeps/unix/sysv/linux/siglist.h:24 msgid "Quit" msgstr "Stop" -#: stdio-common/../sysdeps/gnu/errlist.c:734 +#: stdio-common/../sysdeps/gnu/errlist.c:742 msgid "RFS specific error" msgstr "RFS specifieke fout" #. TRANS ??? #: stdio-common/../sysdeps/gnu/errlist.c:527 msgid "RPC bad procedure for program" -msgstr "RPC verkeerde procedure voor programa" +msgstr "RPC verkeerde procedure voor programma" + +#: nis/ypclnt.c:693 +msgid "RPC failure on NIS operation" +msgstr "RPC fout bij NIS actie" #. TRANS ??? #: stdio-common/../sysdeps/gnu/errlist.c:517 msgid "RPC program not available" -msgstr "RPC programa niet beschikbaar" +msgstr "RPC programma niet beschikbaar" #. TRANS ??? #: stdio-common/../sysdeps/gnu/errlist.c:522 msgid "RPC program version wrong" -msgstr "RPC programa versie onjuist" +msgstr "RPC programma versie onjuist" #. TRANS ??? #: stdio-common/../sysdeps/gnu/errlist.c:507 @@ -1142,15 +1282,15 @@ msgstr "RPC: Procedure niet beschikbaar" #: sunrpc/clnt_perr.c:197 msgid "RPC: Program not registered" -msgstr "RPC: Programa niet geregistreerd" +msgstr "RPC: Programma niet geregistreerd" #: sunrpc/clnt_perr.c:181 msgid "RPC: Program unavailable" -msgstr "RPC: Programa niet beschikbaar" +msgstr "RPC: Programma niet beschikbaar" #: sunrpc/clnt_perr.c:183 msgid "RPC: Program/version mismatch" -msgstr "RPC: Programa/versie niet overeenkomstig" +msgstr "RPC: Programma/versie niet overeenkomstig" #: sunrpc/clnt_perr.c:189 msgid "RPC: Remote system error" @@ -1184,12 +1324,16 @@ msgstr "RPC: Onbekende host" msgid "RPC: Unknown protocol" msgstr "RPC: Onbekend protocol" +#: elf/dlsym.c:49 +msgid "RTLD_NEXT used in code not dynamically loaded" +msgstr "RTLD_NEXT gebruikt in niet dynamisch geladen code" + #. TRANS An attempt was made to modify something on a read-only file system. #: stdio-common/../sysdeps/gnu/errlist.c:206 msgid "Read-only file system" msgstr "Read-only bestandssysteem (FIXME)" -#: posix/regex.c:955 +#: posix/regex.c:987 msgid "Regular expression too big" msgstr "Reguliere expressie te groot" @@ -1201,15 +1345,24 @@ msgstr "Remote I/O fout" msgid "Remote address changed" msgstr "Op-afstand adres gewijzigd" -#: inet/ruserpass.c:157 +#: inet/ruserpass.c:162 msgid "Remove password or make file unreadable by others." msgstr "Verwijder wachtwoord of maak bestand onleesbaar voor anderen." +#: catgets/gencat.c:224 db/makedb.c:227 locale/programs/locale.c:262 +#: locale/programs/localedef.c:415 +msgid "Report bugs using the `glibcbug' script to .\n" +msgstr "Meld fouten met het `glibcbug' script aan .\n" + +#: nis/ypclnt.c:691 +msgid "Request arguments bad" +msgstr "Verkeerde verzoek argumenten" + #: resolv/herror.c:73 msgid "Resolver Error 0 (no error)" msgstr "Resolver Fout 0 (geen fout)" -#: resolv/herror.c:115 +#: resolv/herror.c:117 msgid "Resolver internal error" msgstr "Resolver interne fout" @@ -1221,6 +1374,10 @@ msgstr "Resolver interne fout" msgid "Resource deadlock avoided" msgstr "Resource dood lock vermeden (FIXME)" +#: stdio-common/../sysdeps/unix/siglist.c:58 +msgid "Resource lost" +msgstr "Resource kwijt" + #. TRANS Resource temporarily unavailable; the call might work if you try again #. TRANS later. The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN}; #. TRANS they are always the same in the GNU C library. @@ -1254,6 +1411,8 @@ msgstr "Resource dood lock vermeden (FIX msgid "Resource temporarily unavailable" msgstr "Resource tijdelijk niet beschikbaar" +#: stdio-common/../sysdeps/unix/siglist.c:40 +#: sysdeps/unix/sysv/linux/siglist.h:31 msgid "Segmentation fault" msgstr "Segmentatie fout" @@ -1265,6 +1424,10 @@ msgstr "Server rejected credential (FIXM msgid "Server rejected verifier" msgstr "Server rejected verifier (FIXME)" +#: stdio-common/../sysdeps/unix/siglist.c:29 +msgid "Signal 0" +msgstr "Signaal 0" + #. TRANS A file that isn't a socket was specified when a socket is required. #: stdio-common/../sysdeps/gnu/errlist.c:299 msgid "Socket operation on non-socket" @@ -1280,10 +1443,15 @@ msgstr "Socket type niet ondersteund" msgid "Software caused connection abort" msgstr "Software veroorzaakte afbreken verbinding" -#: stdio-common/../sysdeps/gnu/errlist.c:718 +#: stdio-common/../sysdeps/gnu/errlist.c:734 msgid "Srmount error" msgstr "Srmount fout" +#: sysdeps/unix/sysv/linux/siglist.h:59 +#, fuzzy +msgid "Stack fault" +msgstr "Segmentatie fout" + #. TRANS Stale NFS file handle. This indicates an internal confusion in the NFS #. TRANS system which is due to file system rearrangements on the server host. #. TRANS Repairing this condition usually requires unmounting and remounting @@ -1292,15 +1460,23 @@ msgstr "Srmount fout" msgid "Stale NFS file handle" msgstr "Stale NFS file handle (FIMXE)" +#: stdio-common/../sysdeps/unix/siglist.c:47 +#: sysdeps/unix/sysv/linux/siglist.h:37 msgid "Stopped" msgstr "Gestopt" +#: stdio-common/../sysdeps/unix/siglist.c:46 +#: sysdeps/unix/sysv/linux/siglist.h:36 msgid "Stopped (signal)" msgstr "Gestopt (signaal)" +#: stdio-common/../sysdeps/unix/siglist.c:50 +#: sysdeps/unix/sysv/linux/siglist.h:40 msgid "Stopped (tty input)" msgstr "Gestopt (tty invoer)" +#: stdio-common/../sysdeps/unix/siglist.c:51 +#: sysdeps/unix/sysv/linux/siglist.h:41 msgid "Stopped (tty output)" msgstr "Gestopt (tty uitvoer)" @@ -1312,10 +1488,17 @@ msgstr "Stromen pijp fout" msgid "Structure needs cleaning" msgstr "Struktuur heeft schoonmaak nodig" -#: posix/regex.c:940 stdio-common/../sysdeps/gnu/errlist.c:7 +#: nis/ypclnt.c:689 nis/ypclnt.c:763 posix/regex.c:972 +#: stdio-common/../sysdeps/gnu/errlist.c:7 msgid "Success" msgstr "Succes" +#: nis/ypclnt.c:769 +msgid "System resource allocation failure" +msgstr "Systeem resource toewijzings fout" + +#: stdio-common/../sysdeps/unix/siglist.c:44 +#: sysdeps/unix/sysv/linux/siglist.h:34 msgid "Terminated" msgstr "Getermineerd" @@ -1328,7 +1511,7 @@ msgstr "Getermineerd" msgid "Text file busy" msgstr "Tekstbestand in gebruik" -#: stdio-common/../sysdeps/gnu/errlist.c:694 +#: stdio-common/../sysdeps/gnu/errlist.c:650 msgid "Timer expired" msgstr "Timer afgelopen" @@ -1381,10 +1564,16 @@ msgstr "Te veel referenties: kan splice msgid "Too many users" msgstr "Te veel gebruikers" +#: stdio-common/../sysdeps/unix/siglist.c:34 +#, fuzzy +msgid "Trace/BPT trap" +msgstr "Trace/breakpoint trap (FIXME)" + +#: sysdeps/unix/sysv/linux/siglist.h:26 msgid "Trace/breakpoint trap" msgstr "Trace/breakpoint trap (FIXME)" -#: posix/regex.c:945 +#: posix/regex.c:977 msgid "Trailing backslash" msgstr "Trailing backslash (FIXME)" @@ -1409,24 +1598,29 @@ msgstr "Er is al verbinding met het tran msgid "Transport endpoint is not connected" msgstr "Er is geen verbinding met het transport eindpunt" -#: catgets/gencat.c:202 db/makedb.c:197 locale/programs/locale.c:234 -#: locale/programs/localedef.c:383 +#: catgets/gencat.c:208 db/makedb.c:209 locale/programs/locale.c:246 +#: locale/programs/localedef.c:396 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Probeer `%s --help' voor meer informatie.\n" -#: inet/rcmd.c:118 +#: inet/rcmd.c:137 #, c-format msgid "Trying %s...\n" msgstr "Probeer %s...\n" -#: inet/ruserpass.c:241 +#: inet/ruserpass.c:246 #, c-format msgid "Unknown .netrc keyword %s" msgstr "Onbekend .netrc sleutelwoord %s" -#: string/../sysdeps/generic/_strerror.c:36 -#: string/../sysdeps/mach/_strerror.c:58 +#: nis/ypclnt.c:723 +#, fuzzy +msgid "Unknown NIS error code" +msgstr "Onbekende fout " + +#: string/../sysdeps/generic/_strerror.c:44 +#: string/../sysdeps/mach/_strerror.c:67 msgid "Unknown error " msgstr "Onbekende fout " @@ -1434,7 +1628,7 @@ msgstr "Onbekende fout " msgid "Unknown host" msgstr "Onbekende host" -#: resolv/herror.c:118 +#: resolv/herror.c:120 msgid "Unknown resolver error" msgstr "Onbekende resolver fout (FIXME)" @@ -1442,53 +1636,60 @@ msgstr "Onbekende resolver fout (FIXME)" msgid "Unknown server error" msgstr "Onbekende server fout (FIXME)" -#: string/strsignal.c:40 +#: string/strsignal.c:41 #, c-format msgid "Unknown signal %d" msgstr "Onbekend signaal %d" -#: misc/error.c:92 +#: misc/error.c:100 msgid "Unknown system error" msgstr "Onbekende systeem fout" -#: posix/regex.c:948 +#: nis/ypclnt.c:771 +#, fuzzy +msgid "Unknown ypbind error" +msgstr "Onbekende fout " + +#: posix/regex.c:980 msgid "Unmatched ( or \\(" msgstr "Niet corresponderende ( of \\(" -#: posix/regex.c:956 +#: posix/regex.c:988 msgid "Unmatched ) or \\)" msgstr "Niet corresponderende ) of \\)" -#: posix/regex.c:947 +#: posix/regex.c:979 msgid "Unmatched [ or [^" msgstr "Niet corresponderende [ of [^" -#: posix/regex.c:949 +#: posix/regex.c:981 msgid "Unmatched \\{" msgstr "Niet corresponderende \\{" -#: posix/getconf.c:184 +#: posix/getconf.c:260 #, c-format msgid "Unrecognized variable `%s'" msgstr "Onbekende variabele `%s'" +#: stdio-common/../sysdeps/unix/siglist.c:45 +#: sysdeps/unix/sysv/linux/siglist.h:35 msgid "Urgent I/O condition" msgstr "Dringende I/O conditie" -#: catgets/gencat.c:205 -#, c-format +#: catgets/gencat.c:212 +#, fuzzy, c-format msgid "" "Usage: %s [OPTION]... -o OUTPUT-FILE [INPUT-FILE]...\n" " %s [OPTION]... [OUTPUT-FILE [INPUT-FILE]...]\n" "Mandatory arguments to long options are mandatory for short options too.\n" -" -H, --header create C header file containing symbol definitions\n" +" -H, --header=NAME create C header file NAME containing symbol " +"definitions\n" " -h, --help display this help and exit\n" " --new do not use existing catalog, force new output file\n" " -o, --output=NAME write output to file NAME\n" " -V, --version output version information and exit\n" "If INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n" "is -, output is written to standard output.\n" -"Report bugs to .\n" msgstr "" "Gebruik: %s [OPTIE]... -o UITVOER-BESTAND [INVOER-BESTAND]...\n" " %s [OPTIE]... [UITVOER-BESTAND [INVOER-BESTAND]...]\n" @@ -1502,8 +1703,8 @@ msgstr "" "UITVOER-BESTAND\n" "is -, schrijf uitvoer naar standaarduitvoer.\n" -#: db/makedb.c:200 -#, c-format +#: db/makedb.c:213 +#, fuzzy, c-format msgid "" "Usage: %s [OPTION]... INPUT-FILE OUTPUT-FILE\n" " %s [OPTION]... -o OUTPUT-FILE INPUT-FILE\n" @@ -1516,7 +1717,6 @@ msgid "" " -u, --undo print content of database file, one entry a line\n" " -V, --version output version information and exit\n" "If INPUT-FILE is -, input is read from standard input.\n" -"Report bugs to .\n" msgstr "" "Gebruik: %s [OPTIE]... INVOER-BESTAND UITVOER-BESTAND\n" " %s [OPTIE]... -o UITVOER-BESTAND [INVOER-BESTAND]\n" @@ -1530,8 +1730,8 @@ msgstr "" "Als INVOER-BESTAND is -, lees invoer uit standardinvoer.\n" "Meld fouten via .\n" -#: locale/programs/localedef.c:386 -#, c-format +#: locale/programs/localedef.c:400 +#, fuzzy, c-format msgid "" "Usage: %s [OPTION]... name\n" "Mandatory arguments to long options are mandatory for short options too.\n" @@ -1547,15 +1747,17 @@ msgid "" "\n" "System's directory for character maps: %s\n" " locale files : %s\n" -"Report bugs to .\n" msgstr "" "Aanroep: %s [OPTIE]... naam\n" "Verplichte argumenten bij lange opties zijn ook verplicht bij korte opties.\n" -" -c, --force maak uitvoer zelfs als waarschuwing werden gegeven\n" +" -c, --force maak uitvoer zelfs als waarschuwing werden " +"gegeven\n" " -h, --help toon hulptekst en beëindig programma\n" -" -f, --charmap=BESTAND symbolische karakternamen gedefinieerd in BESTAND\n" +" -f, --charmap=BESTAND symbolische karakternamen gedefinieerd in " +"BESTAND\n" " -i, --inputfile=BESTAND bron definities zijn gevonden in BESTAND\n" -" -u, --code-set-name=NAAM specificeer codeset voor mappen ISO 10646 elementen\n" +" -u, --code-set-name=NAAM specificeer codeset voor mappen ISO 10646 " +"elementen\n" " -v, --verbose toon meer meldigen\n" " -V, --version toon versie-informatie en beëindig programma\n" " --posix volg de POSIX afspraken\n" @@ -1564,8 +1766,8 @@ msgstr "" " locale bestanden: %s\n" "Meld fouten aan .\n" -#: locale/programs/locale.c:237 -#, c-format +#: locale/programs/locale.c:250 +#, fuzzy, c-format msgid "" "Usage: %s [OPTION]... name\n" "Mandatory arguments to long options are mandatory for short options too.\n" @@ -1577,7 +1779,6 @@ msgid "" "\n" " -c, --category-name write names of selected categories\n" " -k, --keyword-name write names of selected keywords\n" -"Report bugs to .\n" msgstr "" "Aanroep: %s [OPTIE]... naam\n" "Verplichte argumenten bij lange opties zijn ook verplicht bij korte opties.\n" @@ -1591,7 +1792,7 @@ msgstr "" " -k, --keyword-name toon namen van geselecteerde sleutelwoorden\n" "Meld fouten aan .\n" -#: posix/getconf.c:131 +#: posix/getconf.c:200 #, c-format msgid "Usage: %s variable_name [pathname]\n" msgstr "Gebruik: %s variabele_naam [padnaam]\n" @@ -1601,229 +1802,254 @@ msgid "Usage: rpcinfo [ -n portnum ] -u msgstr "" "Gebruik: rpcinfo [ -n portnummer ] -u host prognummer [ versienummer ]\n" +#: stdio-common/../sysdeps/unix/siglist.c:59 +#: sysdeps/unix/sysv/linux/siglist.h:48 msgid "User defined signal 1" msgstr "Gebruiker gedefinieerd signaal 1" +#: stdio-common/../sysdeps/unix/siglist.c:60 +#: sysdeps/unix/sysv/linux/siglist.h:49 msgid "User defined signal 2" msgstr "Gebruiker gedefinieerd signaal 2" -#: stdio-common/../sysdeps/gnu/errlist.c:742 +#: stdio-common/../sysdeps/gnu/errlist.c:642 msgid "Value too large for defined data type" msgstr "Waarde te groot voor gedefinieerd data type" +#: stdio-common/../sysdeps/unix/siglist.c:55 +#: sysdeps/unix/sysv/linux/siglist.h:45 msgid "Virtual timer expired" msgstr "Virtuele timer afgelopen (FIXME)" -#: time/zic.c:1845 +#: time/zic.c:1884 msgid "Wild result from command execution" msgstr "Wild resultaat afkomstig uit commando uitvoer" +#: stdio-common/../sysdeps/unix/siglist.c:57 +#: sysdeps/unix/sysv/linux/siglist.h:47 msgid "Window changed" msgstr "Venster veranderd" +#: catgets/gencat.c:174 db/makedb.c:125 locale/programs/locale.c:196 +#: locale/programs/localedef.c:185 +#, c-format +msgid "Written by %s.\n" +msgstr "Geschreven door %s.\n" + +#: nis/ypclnt.c:142 +msgid "YPBINDPROC_DOMAIN: Internal error\n" +msgstr "YPBINDPROC_DOMAIN: Intere fout\n" + +#: nis/ypclnt.c:146 +#, c-format +msgid "YPBINDPROC_DOMAIN: No server for domain %s\n" +msgstr "YPBINDPROC_DOMAIN: Geen server voor domein %s\n" + +#: nis/ypclnt.c:150 +msgid "YPBINDPROC_DOMAIN: Resource allocation failure\n" +msgstr "YPBINDPROC_DOMAIN: Resource toewijzings fout\n" + +#: nis/ypclnt.c:154 +msgid "YPBINDPROC_DOMAIN: Unknown error\n" +msgstr "YPBINDPROC_DOMAIN: Onbekende fout\n" + #. TRANS You did @strong{what}? #: stdio-common/../sysdeps/gnu/errlist.c:596 msgid "You really blew it this time" msgstr "Deze keer heb je het echt goed verknalt" -#: time/zic.c:1051 +#: time/zic.c:1052 msgid "Zone continuation line end time is not after end time of previous line" msgstr "" "Zone continuatie regel einde tijd is niet an einde tijd van voorgaande regel" -#: locale/programs/charmap.c:397 locale/programs/locfile.c:341 +#: locale/programs/charmap.c:397 locale/programs/locfile.c:363 #, c-format msgid "`%1$s' definition does not end with `END %1$s'" msgstr "`%1$s' definitie eindigt niet met `END %1$s'" -#: locale/programs/ld-monetary.c:358 locale/programs/ld-numeric.c:190 +#: locale/programs/ld-monetary.c:359 locale/programs/ld-numeric.c:190 #, c-format msgid "`-1' must be last entry in `%s' field in `%s' category" msgstr "`-1' moet de laatste ingang zijn `%s' veld in `%s' categorie" -#: locale/programs/ld-collate.c:1651 +#: locale/programs/ld-collate.c:1655 msgid "`...' must only be used in `...' and `UNDEFINED' entries" msgstr "`...' mag alleen gebruikt worden `...' en `UNDEFINED' ingangen" -#: locale/programs/locfile.c:538 +#: locale/programs/locfile.c:560 msgid "`from' expected after first argument to `collating-element'" msgstr "verwacht `from' na eerste argument (??)to `collating-element'" -#: locale/programs/ld-collate.c:1108 +#: locale/programs/ld-collate.c:1112 msgid "" "`from' string in collation element declaration contains unknown character" -msgstr "`from' string in vergelijkende element declaratie bevat onbekend karakter" +msgstr "" +"`from' string in vergelijkende element declaratie bevat onbekend karakter" #: locale/programs/charmap.c:267 #, c-format msgid "argument to <%s> must be a single character" msgstr "argument van <%s> moet één karakter zijn" -#: locale/programs/locfile.c:215 +#: locale/programs/locfile.c:237 #, c-format msgid "argument to `%s' must be a single character" msgstr "argument van `%s' moet één karakter zijn" -#: sunrpc/rpc_parse.c:326 -msgid "array declaration expected" -msgstr "verwachte array declaratie" - -#: sunrpc/auth_unix.c:314 +#: sunrpc/auth_unix.c:323 msgid "auth_none.c - Fatal marshalling problem" -msgstr "" +msgstr "auth_none.c - Fataal marshalling probleem" -#: inet/rcmd.c:327 +#: inet/rcmd.c:365 msgid "bad .rhosts owner" msgstr "onjuiste .rhosts eigenaar" -#: locale/programs/charmap.c:212 locale/programs/locfile.c:209 +#: locale/programs/charmap.c:212 locale/programs/locfile.c:231 msgid "bad argument" msgstr "onjuist argument" -#: time/zic.c:1173 +#: time/zic.c:1174 msgid "blank FROM field on Link line" msgstr "leeg FROM veld op `Link' regel" -#: time/zic.c:1177 +#: time/zic.c:1178 msgid "blank TO field on Link line" msgstr "leeg TO veld op `Link' regel" -#: malloc/mcheck.c:189 +#: malloc/mcheck.c:191 msgid "block freed twice" msgstr "blok is twee keer vrijgegeven" -#: malloc/mcheck.c:192 +#: malloc/mcheck.c:194 msgid "bogus mcheck_status, library is buggy" msgstr "bogus mcheck_status, bibliotheek is maar zozo" -#: sunrpc/pmap_rmt.c:177 +#: sunrpc/pmap_rmt.c:179 msgid "broadcast: ioctl (get interface configuration)" -msgstr "" +msgstr "broadcast: ioctl (verkrijg interface configuratie)" -#: sunrpc/pmap_rmt.c:184 +#: sunrpc/pmap_rmt.c:186 msgid "broadcast: ioctl (get interface flags)" -msgstr "" +msgstr "broadcast: ioctl (verkrijg interface vlaggen)" -#: sunrpc/svc_udp.c:398 +#: sunrpc/svc_udp.c:402 msgid "cache_set: victim not found" msgstr "cache_set: slachtoffer niet gevonden" -#: time/zic.c:1686 -msgid "can't determine time zone abbrevation to use just after until time" -msgstr "kan afkorting tijdzone (te gebruiken na tijdsaanduiding) niet achterhalen" +#: time/zic.c:1711 +#, fuzzy +msgid "can't determine time zone abbreviation to use just after until time" +msgstr "" +"kan afkorting tijdzone (te gebruiken na tijdsaanduiding) niet achterhalen" #: sunrpc/svc_simple.c:64 #, c-format msgid "can't reassign procedure number %d\n" msgstr "kan procedure nummer %d niet opnieuw toewijzen\n" -#: locale/programs/localedef.c:281 +#: locale/programs/localedef.c:294 #, c-format msgid "cannot `stat' locale file `%s'" msgstr "kan niet `stat' locale bestand `%s'" -#: locale/programs/ld-collate.c:1313 +#: locale/programs/ld-collate.c:1317 #, c-format msgid "cannot insert collation element `%.*s'" msgstr "kan collation element `%.*s' niet invoegen" -#: locale/programs/ld-collate.c:1492 locale/programs/ld-collate.c:1497 +#: locale/programs/ld-collate.c:1496 locale/programs/ld-collate.c:1501 msgid "cannot insert into result table" msgstr "kan niet invoegen in resultaat tabel" -#: locale/programs/ld-collate.c:1165 locale/programs/ld-collate.c:1207 +#: locale/programs/ld-collate.c:1169 locale/programs/ld-collate.c:1211 #, c-format msgid "cannot insert new collating symbol definition: %s" msgstr "kan geen nieuw vergelijking symbool definitie invoegen: %s" -#: db/makedb.c:149 +#: db/makedb.c:161 #, c-format msgid "cannot open database file `%s': %s" msgstr "kan database bestand `%s' niet openen: %s" -#: catgets/gencat.c:250 db/makedb.c:168 +#: catgets/gencat.c:260 db/makedb.c:180 #, c-format msgid "cannot open input file `%s'" msgstr "kan invoerbestand `%s' niet openen" -#: locale/programs/localedef.c:215 +#: locale/programs/localedef.c:224 #, c-format msgid "cannot open locale definition file `%s'" msgstr "kan locale definitie bestand `%s' niet openen" -#: catgets/gencat.c:755 catgets/gencat.c:796 db/makedb.c:177 +#: catgets/gencat.c:765 catgets/gencat.c:806 db/makedb.c:189 #, c-format msgid "cannot open output file `%s'" msgstr "kan uitvoerbestand `%s' niet openen" -#: locale/programs/locfile.c:986 +#: locale/programs/locfile.c:1020 #, c-format msgid "cannot open output file `%s' for category `%s'" msgstr "kan uitvoerbestand `%s' niet openen voor categorie `%s'" -#: locale/programs/ld-collate.c:1359 +#: locale/programs/ld-collate.c:1363 msgid "cannot process order specification" msgstr "kan de gespecificeerde volgorde niet afhandelen" -#: locale/programs/locale.c:293 +#: locale/programs/locale.c:444 #, c-format msgid "cannot read character map directory `%s'" msgstr "kan karakter map directory `%s' niet lezen" -#: locale/programs/locale.c:268 +#: locale/programs/locale.c:301 #, c-format msgid "cannot read locale directory `%s'" msgstr "kan locale directory `%s' niet lezen" -#: locale/programs/localedef.c:303 +#: locale/programs/localedef.c:316 #, c-format msgid "cannot read locale file `%s'" msgstr "kan locale bestand `%s' niet lezen" -#: locale/programs/localedef.c:328 +#: locale/programs/localedef.c:341 #, c-format msgid "cannot write output files to `%s'" msgstr "kan uitvoer niet schrijven naar `%s'" -#: locale/programs/localedef.c:371 +#: locale/programs/localedef.c:384 msgid "category data requested more than once: should not happen" msgstr "categorie data meer dan eens gevraagd: zou niet mogen gebeuren" -#: locale/programs/ld-ctype.c:264 +#: locale/programs/ld-ctype.c:266 #, c-format msgid "character %s'%s' in class `%s' must be in class `%s'" msgstr "karakter %s'%s' in klasse `%s' hoort in klasse `%s'" -#: locale/programs/ld-ctype.c:288 +#: locale/programs/ld-ctype.c:291 #, c-format msgid "character %s'%s' in class `%s' must not be in class `%s'" msgstr "karakter %s'%s' in klasse `%s' hoort niet in klasse `%s'" -#: locale/programs/ld-ctype.c:309 +#: locale/programs/ld-ctype.c:313 msgid "character not defined in character map" msgstr "karakter niet gedefinieerd in karaktermap" -#: locale/programs/ld-ctype.c:1140 -#, c-format -msgid "character `%c' not defined while needed as default value" -msgstr "karakter `%c' niet gedefinieerd maar nodig als standaard waarde" - -#: locale/programs/ld-ctype.c:938 locale/programs/ld-ctype.c:1001 -#: locale/programs/ld-ctype.c:1009 locale/programs/ld-ctype.c:1017 -#: locale/programs/ld-ctype.c:1025 locale/programs/ld-ctype.c:1033 -#: locale/programs/ld-ctype.c:1041 locale/programs/ld-ctype.c:1067 -#: locale/programs/ld-ctype.c:1075 locale/programs/ld-ctype.c:1113 -#: locale/programs/ld-ctype.c:1151 +#: locale/programs/ld-ctype.c:944 locale/programs/ld-ctype.c:1007 +#: locale/programs/ld-ctype.c:1015 locale/programs/ld-ctype.c:1023 +#: locale/programs/ld-ctype.c:1031 locale/programs/ld-ctype.c:1039 +#: locale/programs/ld-ctype.c:1047 locale/programs/ld-ctype.c:1073 +#: locale/programs/ld-ctype.c:1081 locale/programs/ld-ctype.c:1119 +#: locale/programs/ld-ctype.c:1146 locale/programs/ld-ctype.c:1157 #, c-format msgid "character `%s' not defined while needed as default value" msgstr "karakter `%s' niet gedefinieerd maar nodig als standaard waarde" -#: locale/programs/ld-ctype.c:800 +#: locale/programs/ld-ctype.c:806 #, c-format msgid "character class `%s' already defined" msgstr "karakterklasse `%s' is al gedefinieerd" -#: locale/programs/ld-ctype.c:832 +#: locale/programs/ld-ctype.c:838 #, c-format msgid "character map `%s' already defined" msgstr "karaktermap `%s' is al gedefinieerd" @@ -1835,43 +2061,32 @@ msgstr "karaktermapbestand `%s' niet gev #: sunrpc/clnt_raw.c:106 msgid "clnt_raw.c - Fatal header serialization error." -msgstr "" +msgstr "clnt_raw.c - Fataal header serializatie fout." -#: locale/programs/ld-collate.c:1328 +#: locale/programs/ld-collate.c:1332 #, c-format msgid "collation element `%.*s' appears more than once: ignore line" -msgstr "" +msgstr "vergelijkings element `%.*s' komt meer dan eens voor: negeer regel" -#: locale/programs/ld-collate.c:1346 -msgid "collation symbol `.*s' appears more than once: ignore line" -msgstr "" +#: locale/programs/ld-collate.c:1350 +#, c-format +msgid "collation symbol `%.*s' appears more than once: ignore line" +msgstr "vergelijkings symbool `%.*s' komt meer dan eens voor: negeer regel" -#: locale/programs/locfile.c:522 +#: locale/programs/locfile.c:544 #, c-format msgid "collation symbol expected after `%s'" -msgstr "" +msgstr "vergelijkings symbool verwacht na `%s'" -#: inet/rcmd.c:112 +#: inet/rcmd.c:130 #, c-format msgid "connect to address %s: " msgstr "verbinding maken naar adres %s: " -#: sunrpc/rpc_scan.c:109 -msgid "constant or identifier expected" -msgstr "verwacht konstante of identifier (FIXME)" - #: sunrpc/svc_simple.c:70 msgid "couldn't create an rpc server\n" msgstr "kan geen rpc server aanmaken\n" -#: sunrpc/portmap.c:121 -msgid "couldn't do tcp_create\n" -msgstr "kan niet tcp_create doen\n" - -#: sunrpc/portmap.c:99 -msgid "couldn't do udp_create\n" -msgstr "kan niet udp_create doen\n" - #: sunrpc/svc_simple.c:77 #, c-format msgid "couldn't register prog %d vers %d\n" @@ -1882,110 +2097,105 @@ msgstr "kan programma %d versie %d niet msgid "default character map file `%s' not found" msgstr "standaard karaktermapbestand `%s' niet gevonden" -#: sunrpc/rpc_parse.c:77 -msgid "definition keyword expected" -msgstr "verwacht definitie keyword" +#: locale/programs/ld-time.c:154 +#, c-format +msgid "" +"direction flag in string %d in `era' field in category `%s' is not '+' nor " +"'-'" +msgstr "richtingsvlag in string %d in `era' veld in categorie `%s' is niet '+' noch '-'" + +#: locale/programs/ld-time.c:164 +#, c-format +msgid "" +"direction flag in string %d in `era' field in category `%s' is not a single " +"character" +msgstr "richtingsvlag in string %d in `era' veld in categorie `%s' is niet a enkel karakter" #: locale/programs/charset.c:87 locale/programs/charset.c:132 #, c-format msgid "duplicate character name `%s'" msgstr "dubbele karakternaam `%s'" -#: locale/programs/ld-collate.c:1140 +#: locale/programs/ld-collate.c:1144 msgid "duplicate collating element definition" msgstr "dubbele collating element definitie" -#: locale/programs/ld-collate.c:1286 +#: locale/programs/ld-collate.c:1290 #, c-format msgid "duplicate definition for character `%.*s'" msgstr "dubbele definietie voor karakter `%.*s'" -#: db/makedb.c:295 +#: db/makedb.c:311 msgid "duplicate key" msgstr "dubbele sleutel" -#: catgets/gencat.c:369 +#: catgets/gencat.c:379 msgid "duplicate set definition" msgstr "tweede set definitie" -#: time/zic.c:966 +#: time/zic.c:967 #, c-format msgid "duplicate zone name %s (file \"%s\", line %d)" msgstr "dubbele zonenaam %s (bestand \"%s\", regel %d)" -#: catgets/gencat.c:532 +#: catgets/gencat.c:542 msgid "duplicated message identifier" msgstr "gedupliceerde meldings identifier" -#: catgets/gencat.c:505 +#: catgets/gencat.c:515 msgid "duplicated message number" msgstr "gedupliceerd meldingnummer" -#: locale/programs/ld-collate.c:1695 +#: locale/programs/ld-collate.c:1699 msgid "empty weight name: line ignored" msgstr "lege gewicht naam: regel genegeerd" -#: sunrpc/svc_udp.c:344 +#: sunrpc/svc_udp.c:348 msgid "enablecache: cache already enabled" msgstr "enablecache: cache is al mogelijk" -#: sunrpc/svc_udp.c:349 +#: sunrpc/svc_udp.c:353 msgid "enablecache: could not allocate cache" -msgstr "" +msgstr "enablecache: kan geen cache alloceren" -#: sunrpc/svc_udp.c:356 +#: sunrpc/svc_udp.c:360 msgid "enablecache: could not allocate cache data" -msgstr "" +msgstr "enablecache: kan geen cache data alloceren" -#: sunrpc/svc_udp.c:362 +#: sunrpc/svc_udp.c:366 msgid "enablecache: could not allocate cache fifo" -msgstr "" +msgstr "enablecache: kan geen cache fifo alloceren" -#: locale/programs/ld-collate.c:1418 +#: locale/programs/ld-collate.c:1422 msgid "end point of ellipsis range is bigger then start" -msgstr "" +msgstr "eindpunt van ellipsis bereik is groter dan startpunt" -#: locale/programs/ld-collate.c:1148 +#: locale/programs/ld-collate.c:1152 msgid "error while inserting collation element into hash table" -msgstr "" +msgstr "fout tijdens invoegen vergelijkings element in hash tabel" -#: locale/programs/ld-collate.c:1160 +#: locale/programs/ld-collate.c:1164 msgid "error while inserting to hash table" msgstr "fout tijdens bij invoegen in hash tabel" -#: locale/programs/locfile.c:465 +#: locale/programs/locfile.c:487 msgid "expect string argument for `copy'" msgstr "verwacht string argument voor `copy'" -#: sunrpc/rpc_util.c:300 -#, c-format -msgid "expected '%s'" -msgstr "verwachte '%s'" - -#: sunrpc/rpc_util.c:312 -#, c-format -msgid "expected '%s' or '%s'" -msgstr "verwachte '%s' of '%s'" - -#: sunrpc/rpc_util.c:325 -#, c-format -msgid "expected '%s', '%s' or '%s'" -msgstr "verwachte '%s', '%s' of '%s'" - -#: time/zic.c:857 +#: time/zic.c:858 msgid "expected continuation line not found" msgstr "verwachte continuation regel niet gevonden (FIXME)" -#: sunrpc/rpc_parse.c:384 -msgid "expected type specifier" -msgstr "verwachte type specificatie" - -#: locale/programs/locfile.c:1010 +#: locale/programs/locfile.c:1044 #, c-format msgid "failure while writing data for category `%s'" msgstr "gefaald bij schrijven data voor categorie `%s'" -#: locale/programs/ld-monetary.c:154 locale/programs/ld-numeric.c:95 +#: nis/ypclnt.c:187 +msgid "fcntl: F_SETFD" +msgstr "fcntl: F_SETFD" + +#: locale/programs/ld-monetary.c:155 locale/programs/ld-numeric.c:95 #, c-format msgid "field `%s' in category `%s' not defined" msgstr "veld `%s' uit categorie `%s' niet gedefinieerd" @@ -1995,41 +2205,56 @@ msgstr "veld `%s' uit categorie `%s' nie msgid "field `%s' in category `%s' undefined" msgstr "veld `%s' uit category `%s' ongedefinieerd" -#: locale/programs/locfile.c:547 +#: locale/programs/locfile.c:569 msgid "from-value of `collating-element' must be a string" -msgstr "" +msgstr "van-waarde van `collating-element' moet een string zijn" #: locale/programs/linereader.c:328 msgid "garbage at end of character code specification" msgstr "rommel aan het einde van de karakter code specificatie" #: locale/programs/linereader.c:214 -msgid "garbage at end of digit" +#, fuzzy +msgid "garbage at end of number" msgstr "rommel aan het einde van digit" +#: locale/programs/ld-time.c:183 +#, c-format +msgid "" +"garbage at end of offset value in string %d in `era' field in category `%s'" +msgstr "rommel aan einde van offset waarde in string %d in `era' veld in categorie `%s'" + +#: locale/programs/ld-time.c:238 +#, c-format +msgid "" +"garbage at end of starting date in string %d in `era' field in category `%s'" +msgstr "rommel aan einde van begin datum in %d in `era' veld in categorie `%s'" + +#: locale/programs/ld-time.c:311 +#, c-format +msgid "" +"garbage at end of stopping date in string %d in `era' field in category `%s'" +msgstr "rommel aan einde van eind datum in string %d in `era' veld in categorie `%s'" + #: sunrpc/get_myaddr.c:73 msgid "get_myaddress: ioctl (get interface configuration)" msgstr "get_myaddress: ioctl (haal interface configuratie op)" -#: time/zic.c:1150 +#: time/zic.c:1151 msgid "illegal CORRECTION field on Leap line" msgstr "ongeldige CORRECTION veld op schrikkel regel" -#: time/zic.c:1154 +#: time/zic.c:1155 msgid "illegal Rolling/Stationary field on Leap line" msgstr "ongeldig Rolling/Stationary veld op schrikkelregel" -#: locale/programs/ld-collate.c:1766 +#: locale/programs/ld-collate.c:1770 msgid "illegal character constant in string" msgstr "ongeldige karakterkonstante in string" -#: sunrpc/rpc_scan.c:281 -msgid "illegal character in file: " -msgstr "ongeldig karakter in bestand: " - -#: locale/programs/ld-collate.c:1115 +#: locale/programs/ld-collate.c:1119 msgid "illegal collation element" -msgstr "" +msgstr "ongelding vergelijkings element" #: locale/programs/charmap.c:196 msgid "illegal definition" @@ -2047,25 +2272,36 @@ msgstr "ongeldige escape reeks aan het e msgid "illegal names for character range" msgstr "ongeldige namen voor karakter range" -#: sunrpc/rpc_parse.c:146 -msgid "illegal result type" -msgstr "ongeldig resultaat type" +#: locale/programs/ld-time.c:176 +#, c-format +msgid "illegal number for offset in string %d in `era' field in category `%s'" +msgstr "ongeldig nummer voor offset in string %d in `era' veld in categorie `%s'" -#: catgets/gencat.c:342 catgets/gencat.c:419 +#: catgets/gencat.c:352 catgets/gencat.c:429 msgid "illegal set number" msgstr "ongeldig set nummer" -#: locale/programs/ld-ctype.c:806 +#: locale/programs/ld-time.c:230 +#, c-format +msgid "illegal starting date in string %d in `era' field in category `%s'" +msgstr "ongeldig begin datum in string %d in `era' veld in categorie `%s'" + +#: locale/programs/ld-time.c:303 +#, c-format +msgid "illegal stopping date in string %d in `era' field in category `%s'" +msgstr "ongeldige eind datum in string %d in `era' veld in categorie `%s'" + +#: locale/programs/ld-ctype.c:812 #, c-format msgid "implementation limit: no more than %d character classes allowed" msgstr "implementatielimiet: niet meer dan %d karakterklassen toegestaan" -#: locale/programs/ld-ctype.c:838 +#: locale/programs/ld-ctype.c:844 #, c-format msgid "implementation limit: no more than %d character maps allowed" msgstr "implementatielimiet: niet meer dan %d karaktermappen toegestaan" -#: db/makedb.c:151 +#: db/makedb.c:163 msgid "incorrectly formatted file" msgstr "onjuist geformateerd bestand" @@ -2073,68 +2309,68 @@ msgstr "onjuist geformateerd bestand" msgid "input line of unknown type" msgstr "invoer regel van onbekend type" -#: time/zic.c:1734 +#: time/zic.c:1773 msgid "internal error - addtype called with bad isdst" msgstr "interne fout - `addtype' aangeroepen met onjuiste `isdst'" -#: time/zic.c:1742 +#: time/zic.c:1781 msgid "internal error - addtype called with bad ttisgmt" msgstr "interne fout - `addtype' aangeroepen met onjuiste `ttisgmt'" -#: time/zic.c:1738 +#: time/zic.c:1777 msgid "internal error - addtype called with bad ttisstd" msgstr "interne fout - `addtype' aangeroepen met onjuiste `ttisstd'" -#: locale/programs/ld-ctype.c:300 +#: locale/programs/ld-ctype.c:304 #, c-format msgid "internal error in %s, line %u" msgstr "interne fout in %s, regel %u" -#: time/zic.c:1022 +#: time/zic.c:1023 msgid "invalid GMT offset" msgstr "onjuiste GMT offset" -#: time/zic.c:1025 +#: time/zic.c:1026 msgid "invalid abbreviation format" msgstr "onjuist afkortingsformaat" -#: time/zic.c:1115 time/zic.c:1314 time/zic.c:1328 +#: time/zic.c:1116 time/zic.c:1326 time/zic.c:1340 msgid "invalid day of month" msgstr "ongeldige dag van de maand" -#: time/zic.c:1273 +#: time/zic.c:1279 msgid "invalid ending year" msgstr "ongeldig ending jaar (FIXME)" -#: time/zic.c:1087 +#: time/zic.c:1088 msgid "invalid leaping year" msgstr "ongeldig schrikkeljaar" -#: time/zic.c:1102 time/zic.c:1205 +#: time/zic.c:1103 time/zic.c:1206 msgid "invalid month name" msgstr "ongeldige maandnaam" -#: time/zic.c:921 +#: time/zic.c:922 msgid "invalid saved time" msgstr "ongeldig bewaarde tijd" -#: time/zic.c:1253 +#: time/zic.c:1255 msgid "invalid starting year" msgstr "ongeldig starting jaar (FIXME)" -#: time/zic.c:1131 time/zic.c:1233 +#: time/zic.c:1132 time/zic.c:1235 msgid "invalid time of day" msgstr "ongeldige tijd van de dag" -#: time/zic.c:1319 +#: time/zic.c:1331 msgid "invalid weekday name" msgstr "ongeldig naam voor weekdag" -#: locale/programs/ld-collate.c:1411 +#: locale/programs/ld-collate.c:1415 msgid "line after ellipsis must contain character definition" msgstr "regel na ellipsis moet een karakter definitie bevatten" -#: locale/programs/ld-collate.c:1390 +#: locale/programs/ld-collate.c:1394 msgid "line before ellipsis does not contain definition for character constant" msgstr "regel voor ellipsis bevat geen konstante karakter definitie" @@ -2142,35 +2378,50 @@ msgstr "regel voor ellipsis bevat geen k msgid "line too long" msgstr "regel te lang" -#: locale/programs/localedef.c:275 +#: locale/programs/localedef.c:288 #, c-format msgid "locale file `%s', used in `copy' statement, not found" msgstr "locale bestand `%s', gebruikt in `copy' statement, niet gevonden" -#: catgets/gencat.c:600 +#: catgets/gencat.c:610 msgid "malformed line ignored" msgstr "verkeerde regel genegeerd" -#: malloc/mcheck.c:183 +#: malloc/mcheck.c:185 msgid "memory clobbered before allocated block" msgstr "geheugen clobbered voordat blok gereserveerd was (FIXME)" -#: malloc/mcheck.c:186 +#: malloc/mcheck.c:188 msgid "memory clobbered past end of allocated block" msgstr "geheugen `clobbered' na het einde van een gealloceerd blok" #: locale/programs/ld-collate.c:167 locale/programs/ld-collate.c:173 -#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1438 -#: locale/programs/ld-collate.c:1467 locale/programs/locfile.c:940 -#: locale/programs/xmalloc.c:64 posix/getconf.c:174 +#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1442 +#: locale/programs/ld-collate.c:1471 locale/programs/locfile.c:974 +#: locale/programs/xmalloc.c:68 posix/getconf.c:250 msgid "memory exhausted" msgstr "geen geheugen meer beschikbaar" -#: malloc/mcheck.c:180 +#: malloc/obstack.c:466 +#, fuzzy +msgid "memory exhausted\n" +msgstr "geen geheugen meer beschikbaar" + +#: malloc/mcheck.c:182 msgid "memory is consistent, library is buggy" msgstr "geheugen is consistent, bibliotheek is buggy" -#: time/zic.c:916 +#: locale/programs/ld-time.c:350 +#, c-format +msgid "missing era format in string %d in `era' field in category `%s'" +msgstr "" + +#: locale/programs/ld-time.c:339 +#, c-format +msgid "missing era name in string %d in `era' field in category `%s'" +msgstr "" + +#: time/zic.c:917 msgid "nameless rule" msgstr "naamloze regel" @@ -2179,28 +2430,25 @@ msgstr "naamloze regel" msgid "never registered prog %d\n" msgstr "nooit geregistreerd programma %d\n" -#: sunrpc/rpc_parse.c:305 sunrpc/rpc_parse.c:313 -msgid "no array-of-pointer declarations -- use typedef" -msgstr "geen array-of-pointer declaraties -- gebruik typedef" - #: locale/programs/ld-messages.c:95 locale/programs/ld-messages.c:116 #, c-format msgid "no correct regular expression for field `%s' in category `%s': %s" msgstr "geen correct reguliere expressie voor veld `%s' in category `%s': %s" -#: time/zic.c:2060 +#: time/zic.c:2099 msgid "no day in month matches rule" msgstr "geen enkele dag van de maand voldoet aan voorwaarde" -#: locale/programs/ld-collate.c:259 +#: locale/programs/ld-collate.c:260 msgid "no definition of `UNDEFINED'" msgstr "geen definitie van `UNDEFINED'" -#: locale/programs/locfile.c:479 +#: locale/programs/locfile.c:501 msgid "no other keyword shall be specified when `copy' is used" -msgstr "geen ander sleutelwoord mag worden gespecificeerd wanneer `copy' is gebruikt" +msgstr "" +"geen ander sleutelwoord mag worden gespecificeerd wanneer `copy' is gebruikt" -#: locale/programs/localedef.c:334 +#: locale/programs/localedef.c:347 msgid "no output file produced because warning were issued" msgstr "geen uitvoer bestand gemaakt omdat waarschuwingen zijn gegeven" @@ -2223,23 +2471,7 @@ msgstr "geen gewicht gedefinieerd voor s msgid "only WIDTH definitions are allowed to follow the CHARMAP definition" msgstr "alleen WIDTH definities zijn toegestaan na de CHARMAP definitie" -#: sunrpc/portmap.c:451 -msgid "portmap CALLIT: cannot fork.\n" -msgstr "portmap CALLIT: kan niet `fork'en.\n" - -#: sunrpc/portmap.c:94 sunrpc/portmap.c:116 -msgid "portmap cannot bind" -msgstr "portmap kan niet bind (FIXME)" - -#: sunrpc/portmap.c:86 sunrpc/portmap.c:112 -msgid "portmap cannot create socket" -msgstr "portmap kan geen socket aanmaken" - -#: sunrpc/rpc_scan.c:456 sunrpc/rpc_scan.c:464 -msgid "preprocessor error" -msgstr "voorbewerkingsfout" - -#: db/makedb.c:311 +#: db/makedb.c:327 #, c-format msgid "problems while reading `%s'" msgstr "problemem tijdens lezen `%s'" @@ -2260,25 +2492,25 @@ msgstr "programma %lu versie %lu is niet msgid "program %lu version %lu ready and waiting\n" msgstr "programma %lu versie %lu klaar en wacht\n" -#: inet/rcmd.c:154 -#, c-format -msgid "rcmd: select (setting up stderr): %s\n" +#: inet/rcmd.c:172 +#, fuzzy, c-format +msgid "rcmd: select (setting up stderr): %m\n" msgstr "rcmd: selecteer (setting up stderr): %s (FIMXE)\n" -#: inet/rcmd.c:86 +#: inet/rcmd.c:104 msgid "rcmd: socket: All ports in use\n" msgstr "rcmd: socket: Alle ports in gebruik\n" -#: inet/rcmd.c:141 -#, c-format -msgid "rcmd: write (setting up stderr): %s\n" +#: inet/rcmd.c:160 +#, fuzzy, c-format +msgid "rcmd: write (setting up stderr): %m\n" msgstr "rcmd: schrijf (setting up stderr): %s (FIXME)\n" #: sunrpc/svc_simple.c:83 msgid "registerrpc: out of memory\n" msgstr "registerrpc: geen geheugen meer beschikbaar\n" -#: time/zic.c:1795 +#: time/zic.c:1834 msgid "repeated leap second moment" msgstr "herhalend schrikkelseconde moment" @@ -2295,7 +2527,8 @@ msgstr "rpcinfo: %s is onbekende service #: sunrpc/rpcinfo.c:600 #, c-format msgid "rpcinfo: Could not delete registration for prog %s version %s\n" -msgstr "rpcinfo: Kan geen registratie verwijderen voor programma %s versie %s\n" +msgstr "" +"rpcinfo: Kan geen registratie verwijderen voor programma %s versie %s\n" #: sunrpc/rpcinfo.c:576 #, c-format @@ -2310,68 +2543,87 @@ msgstr "rpcinfo: kan geen kontakt krijge msgid "rpcinfo: can't contact portmapper: " msgstr "rpcinfo: kan geen kontakt krijgen met portmapper: " -#: sunrpc/portmap.c:137 -msgid "run_svc returned unexpectedly\n" -msgstr "run_svc kwam onverwacht terug (FIXME)\n" - -#: time/zic.c:709 time/zic.c:711 +#: time/zic.c:708 time/zic.c:710 msgid "same rule name in multiple files" msgstr "zelfde regel naam in meerdere bestanden" -#: inet/rcmd.c:158 +#: inet/rcmd.c:175 msgid "select: protocol failure in circuit setup\n" msgstr "select: protocol mislukt in opstart circuit\n" -#: inet/rcmd.c:176 -msgid "socket: protocol failure in circuit setup.\n" +#: inet/rcmd.c:193 +#, fuzzy +msgid "socket: protocol failure in circuit setup\n" msgstr "socket: protocol mislukt in opstart circuit.\n" -#: locale/programs/locfile.c:600 +#: locale/programs/locfile.c:622 msgid "sorting order `forward' and `backward' are mutually exclusive" msgstr "sorteervolgorde `forward' en `backward' zijn niet eenduidig" -#: locale/programs/ld-collate.c:1567 locale/programs/ld-collate.c:1613 +#: locale/programs/ld-collate.c:1571 locale/programs/ld-collate.c:1617 msgid "" "specification of sorting weight for collation symbol does not make sense" msgstr "specificatie van sorteergewich voor collation symbool heeft geen zin" -#: time/zic.c:780 +#: time/zic.c:779 msgid "standard input" msgstr "standaardinvoer" -#: time/zdump.c:260 +#: time/zdump.c:268 msgid "standard output" msgstr "standaarduitvoer" -#: time/zic.c:1277 +#: locale/programs/ld-time.c:257 +#, c-format +msgid "starting date is illegal in string %d in `era' field in category `%s'" +msgstr "" + +#: time/zic.c:1287 msgid "starting year greater than ending year" msgstr "beginjaar is groter dan eindejaar" -#: sunrpc/svc_tcp.c:199 sunrpc/svc_tcp.c:204 +#: time/zic.c:1261 time/zic.c:1285 +msgid "starting year too high to be represented" +msgstr "" + +#: time/zic.c:1259 time/zic.c:1283 +msgid "starting year too low to be represented" +msgstr "" + +#: locale/programs/ld-time.c:330 +#, c-format +msgid "stopping date is illegal in string %d in `era' field in category `%s'" +msgstr "" + +#: sunrpc/svc_run.c:81 +msgid "svc_run: - select failed" +msgstr "" + +#: sunrpc/svc_tcp.c:201 sunrpc/svc_tcp.c:206 msgid "svc_tcp: makefd_xprt: out of memory\n" msgstr "svc_tcp: makefd_xprt: geen geheugen meer\n" -#: sunrpc/svc_tcp.c:147 +#: sunrpc/svc_tcp.c:149 msgid "svctcp_.c - cannot getsockname or listen" msgstr "svctcp_.c - `getsockname' of `listen' lukken niet" -#: sunrpc/svc_tcp.c:134 +#: sunrpc/svc_tcp.c:136 msgid "svctcp_.c - udp socket creation problem" msgstr "svctcp_.c - udp socket aanmaak probleem" -#: sunrpc/svc_tcp.c:154 sunrpc/svc_tcp.c:161 +#: sunrpc/svc_tcp.c:156 sunrpc/svc_tcp.c:163 msgid "svctcp_create: out of memory\n" msgstr "svctcp_create: geen geheugen meer beschikbaar\n" -#: sunrpc/svc_udp.c:119 +#: sunrpc/svc_udp.c:123 msgid "svcudp_create - cannot getsockname" msgstr "svcudp_create - `getsockname' lukt niet" -#: sunrpc/svc_udp.c:107 +#: sunrpc/svc_udp.c:111 msgid "svcudp_create: socket creation problem" msgstr "svcudp_create: socket aanmaak probleem" -#: locale/programs/ld-collate.c:1190 +#: locale/programs/ld-collate.c:1194 #, c-format msgid "" "symbol for multicharacter collating element `%.*s' duplicates element " @@ -2380,7 +2632,7 @@ msgstr "" "symbool voor multikarakter vergelijkings element `%.*s' dupliceerd\n" "element definitie" -#: locale/programs/ld-collate.c:1063 +#: locale/programs/ld-collate.c:1067 #, c-format msgid "" "symbol for multicharacter collating element `%.*s' duplicates other element " @@ -2389,7 +2641,7 @@ msgstr "" "symbool voor multikarakter vergelijkings element `%.*s' dupliceert\n" "andere element definities" -#: locale/programs/ld-collate.c:1199 +#: locale/programs/ld-collate.c:1203 #, c-format msgid "" "symbol for multicharacter collating element `%.*s' duplicates other symbol " @@ -2398,14 +2650,14 @@ msgstr "" "symbool voor multikarakter vergelijkings element `%.*s' dupliceert\n" "andere symbool definitie" -#: locale/programs/ld-collate.c:1072 +#: locale/programs/ld-collate.c:1076 #, c-format msgid "" "symbol for multicharacter collating element `%.*s' duplicates symbol " "definition" msgstr "" -#: locale/programs/ld-collate.c:1054 locale/programs/ld-collate.c:1181 +#: locale/programs/ld-collate.c:1058 locale/programs/ld-collate.c:1185 #, c-format msgid "" "symbol for multicharacter collating element `%.*s' duplicates symbolic name " @@ -2420,51 +2672,51 @@ msgstr "" msgid "syntax error in %s definition: %s" msgstr "syntactische fout in %s definitie: %s" -#: locale/programs/locfile.c:620 +#: locale/programs/locfile.c:642 msgid "syntax error in `order_start' directive" msgstr "syntactische fout in `order_start' directief" -#: locale/programs/locfile.c:362 +#: locale/programs/locfile.c:384 msgid "syntax error in character class definition" msgstr "syntactische fout in karakter klasse definitie" -#: locale/programs/locfile.c:420 +#: locale/programs/locfile.c:442 msgid "syntax error in character conversion definition" msgstr "syntactische fout in karakter conversie definitie" -#: locale/programs/locfile.c:662 +#: locale/programs/locfile.c:684 msgid "syntax error in collating order definition" msgstr "syntactische fout in collating volgorde definitie" -#: locale/programs/locfile.c:512 +#: locale/programs/locfile.c:534 msgid "syntax error in collation definition" msgstr "" -#: locale/programs/locfile.c:335 +#: locale/programs/locfile.c:357 msgid "syntax error in definition of LC_CTYPE category" msgstr "syntactische fout in definitie van LC_CTYPE category" -#: locale/programs/locfile.c:278 +#: locale/programs/locfile.c:300 msgid "syntax error in definition of new character class" msgstr "syntactische fout in definitie van nieuwe karakterklasse" -#: locale/programs/locfile.c:288 +#: locale/programs/locfile.c:310 msgid "syntax error in definition of new character map" msgstr "syntactische fout in definitie van nieuwe karaktermap" -#: locale/programs/locfile.c:873 +#: locale/programs/locfile.c:895 msgid "syntax error in message locale definition" msgstr "syntactische fout in melding locale definitie" -#: locale/programs/locfile.c:784 +#: locale/programs/locfile.c:806 msgid "syntax error in monetary locale definition" msgstr "syntactische fout in monetaire locale definitie" -#: locale/programs/locfile.c:811 +#: locale/programs/locfile.c:833 msgid "syntax error in numeric locale definition" msgstr "syntactische fout in numerieke locale definitie" -#: locale/programs/locfile.c:722 +#: locale/programs/locfile.c:744 msgid "syntax error in order specification" msgstr "syntactische fout in volgorde specificatie" @@ -2473,23 +2725,23 @@ msgstr "syntactische fout in volgorde sp msgid "syntax error in prolog: %s" msgstr "syntactische fout in prolog: %s" -#: locale/programs/locfile.c:849 +#: locale/programs/locfile.c:871 msgid "syntax error in time locale definition" msgstr "syntactische fout in tijd locale definitie" -#: locale/programs/locfile.c:255 +#: locale/programs/locfile.c:277 msgid "syntax error: not inside a locale definition section" msgstr "syntactische fout: niet in een locale definitie deel" -#: catgets/gencat.c:371 catgets/gencat.c:507 catgets/gencat.c:534 +#: catgets/gencat.c:381 catgets/gencat.c:517 catgets/gencat.c:544 msgid "this is the first definition" msgstr "dit is de eerste definitie" -#: time/zic.c:1120 +#: time/zic.c:1121 msgid "time before zero" msgstr "tijd voor nul" -#: time/zic.c:1128 time/zic.c:1960 time/zic.c:1979 +#: time/zic.c:1129 time/zic.c:1999 time/zic.c:2018 msgid "time overflow" msgstr "tijd overflow" @@ -2505,27 +2757,23 @@ msgstr "te veel bytes in karaktercoderin msgid "too many character classes defined" msgstr "te veel karakterklassen gedefinieerd" -#: sunrpc/rpc_util.c:285 -msgid "too many files!\n" -msgstr "te veel bestanden!\n" - -#: time/zic.c:1789 +#: time/zic.c:1828 msgid "too many leap seconds" msgstr "te veel schrikkelseconden" -#: time/zic.c:1761 +#: time/zic.c:1800 msgid "too many local time types" msgstr "te veel lokale tijd typen" -#: time/zic.c:1715 +#: time/zic.c:1754 msgid "too many transitions?!" msgstr "te veel overgangen?!" -#: locale/programs/ld-collate.c:1622 +#: locale/programs/ld-collate.c:1626 msgid "too many weights" msgstr "te veel gewichten" -#: time/zic.c:2083 +#: time/zic.c:2122 msgid "too many, or too long, time zone abbreviations" msgstr "te veel, of te lange, tijdzone afkortingen" @@ -2538,14 +2786,18 @@ msgstr "rommel aan het einde van de rege msgid "trouble replying to prog %d\n" msgstr "moeite met antwoorden naar programma %d\n" -#: locale/programs/ld-collate.c:1382 +#: locale/programs/ld-collate.c:1386 msgid "two lines in a row containing `...' are not allowed" msgstr "twee regels in een rij bevattende `...' zijn niet toegestaan" -#: time/zic.c:1284 +#: time/zic.c:1294 msgid "typed single year" msgstr "typed enkel jaar (FIMXE)" +#: posix/getconf.c:239 +msgid "undefined" +msgstr "" + #: locale/programs/charmap.c:617 locale/programs/charmap.c:628 #, c-format msgid "unknown character `%s'" @@ -2553,38 +2805,36 @@ msgstr "onbekend karakter `%s'" #: locale/programs/ld-messages.c:193 locale/programs/ld-messages.c:204 #: locale/programs/ld-messages.c:215 locale/programs/ld-messages.c:226 +#: locale/programs/ld-time.c:698 #, c-format msgid "unknown character in field `%s' of category `%s'" msgstr "onbekend karakter in veld `%s' uit category `%s'" -#: locale/programs/locfile.c:585 +#: locale/programs/locfile.c:607 msgid "unknown collation directive" msgstr "" -#: catgets/gencat.c:468 +#: catgets/gencat.c:478 #, c-format msgid "unknown directive `%s': line ignored" msgstr "onbekende richtlijn `%s': regel genegeerd (FIXME)" -#: catgets/gencat.c:447 +#: catgets/gencat.c:457 #, c-format msgid "unknown set `%s'" msgstr "onbekende set `%s'" -msgid "unknown signal" -msgstr "onbekend signaal" - -#: locale/programs/ld-collate.c:1366 locale/programs/ld-collate.c:1557 -#: locale/programs/ld-collate.c:1731 +#: locale/programs/ld-collate.c:1370 locale/programs/ld-collate.c:1561 +#: locale/programs/ld-collate.c:1735 #, c-format msgid "unknown symbol `%.*s': line ignored" msgstr "onbekend symbool `%.*s': regel genegeerd" -#: time/zic.c:752 +#: time/zic.c:751 msgid "unruly zone" msgstr "regelloze zone" -#: catgets/gencat.c:952 +#: catgets/gencat.c:962 msgid "unterminated message" msgstr "niet getermineerde melding" @@ -2592,15 +2842,11 @@ msgstr "niet getermineerde melding" msgid "unterminated string" msgstr "niet getermineerde string" -#: sunrpc/rpc_scan.c:319 -msgid "unterminated string constant" -msgstr "niet getermineerde string konstante" - #: locale/programs/linereader.c:385 msgid "unterminated symbolic name" msgstr "niet getermineerde symbolische naam" -#: locale/programs/ld-collate.c:1684 +#: locale/programs/ld-collate.c:1688 msgid "unterminated weight name" msgstr "niet getermineerde gewichtnaam" @@ -2608,12 +2854,7 @@ msgstr "niet getermineerde gewichtnaam" msgid "upper limit in range is not smaller then lower limit" msgstr "grootste limiet in bereik is niet kleiner dan kleinste limiet" -#: sunrpc/rpc_main.c:78 -#, c-format -msgid "usage: %s infile\n" -msgstr "gebruik: %s invoerbestand\n" - -#: time/zic.c:2026 +#: time/zic.c:2065 msgid "use of 2/29 in non leap-year" msgstr "gebruik van 29 februari in niet schrikkeljaar" @@ -2627,16 +2868,17 @@ msgstr "waarde voor %s moet een integer msgid "value for <%s> must lie between 1 and 4" msgstr "waarde voor <%s> moet tussen 1 en 4 liggen" -#: locale/programs/ld-monetary.c:148 locale/programs/ld-numeric.c:89 +#: locale/programs/ld-monetary.c:149 locale/programs/ld-numeric.c:89 #, c-format msgid "value for field `%s' in category `%s' must not be the empty string" msgstr "waarde voor veld `%s' in categorie `%s' mag geen lege string zijn" #: locale/programs/charmap.c:245 msgid "value of must be greater than the value of " -msgstr "waarde van moet groter zijn dan de waarde van " +msgstr "" +"waarde van moet groter zijn dan de waarde van " -#: locale/programs/ld-monetary.c:138 +#: locale/programs/ld-monetary.c:139 msgid "" "value of field `int_curr_symbol' in category `LC_MONETARY' does not " "correspond to a valid name in ISO 4217" @@ -2651,60 +2893,149 @@ msgstr "" "de lengte van waarde van veld `int_curr_symbol' in categorie\n" "`LC_MONETARY' is niet juist" -#: locale/programs/ld-monetary.c:370 locale/programs/ld-numeric.c:199 +#: locale/programs/ld-monetary.c:371 locale/programs/ld-numeric.c:199 #, c-format msgid "values for field `%s' in category `%s' must be smaller than 127" msgstr "waarden voor veld `%s' uit categorie `%s' moeten kleiner zijn dan 127" -#: locale/programs/ld-monetary.c:366 +#: locale/programs/ld-monetary.c:367 #, c-format msgid "values for field `%s' in category `%s' must not be zero" msgstr "waarden voor veld `%s' uit categorie `%s' mogen geen nul zijn" -#: sunrpc/rpc_parse.c:330 -msgid "variable-length array declaration expected" -msgstr "verwachte variabelelengte `array' declaratie" - -#: sunrpc/rpc_parse.c:370 -msgid "voids allowed only inside union and program definitions" -msgstr "voids enkel toegestaan in union en programma definities" - -#: login/setutent_r.c:47 +#: login/utmp_file.c:76 msgid "while opening UTMP file" msgstr "bij openen UTMP bestand" -#: catgets/gencat.c:979 +#: catgets/gencat.c:989 msgid "while opening old catalog file" msgstr "bij openen oud catalogusbestand" -#: db/makedb.c:338 +#: locale/programs/locale.c:341 +#, fuzzy +msgid "while preparing output" +msgstr "bij lezen database" + +#: db/makedb.c:354 msgid "while reading database" msgstr "bij lezen database" -#: db/makedb.c:300 +#: db/makedb.c:316 msgid "while writing data base file" msgstr "bij schrijven databasebestand" -#: db/makedb.c:130 +#: db/makedb.c:142 msgid "wrong number of arguments" msgstr "onjuist aantal argumenten" -#: time/zic.c:1078 +#: time/zic.c:1079 msgid "wrong number of fields on Leap line" msgstr "onjuist aantal velden op schrikkelregel" -#: time/zic.c:1169 +#: time/zic.c:1170 msgid "wrong number of fields on Link line" msgstr "onjuist aantal velden op `Link' regel" -#: time/zic.c:912 +#: time/zic.c:913 msgid "wrong number of fields on Rule line" msgstr "onjuist aantal velden op `Rule' regel" -#: time/zic.c:982 +#: time/zic.c:983 msgid "wrong number of fields on Zone continuation line" msgstr "onjuist aantal velden op `Zone' continuation regel (FIXME)" -#: time/zic.c:940 +#: time/zic.c:941 msgid "wrong number of fields on Zone line" msgstr "onjuist aantal velden op `Zone' regel" + +#: nis/ypclnt.c:811 +msgid "yp_update: cannot convert host to netname\n" +msgstr "" + +#: nis/ypclnt.c:823 +msgid "yp_update: cannot get server address\n" +msgstr "" + +#~ msgid " %s [-c | -h | -l | -m] [-o outfile] [infile]\n" +#~ msgstr " %s [-c | -h | -l | -m] [-o uitvoerbestand] [invoerbestand]\n" + +#~ msgid " %s [-s udp|tcp]* [-o outfile] [infile]\n" +#~ msgstr " %s [-s udp|tcp]* [-o uitvoerbestand] [invoerbestand]\n" + +#~ msgid "%s, line %d: " +#~ msgstr "%s, regel %d: " + +#~ msgid "%s: output would overwrite %s\n" +#~ msgstr "%s: uitvoer zal %s overschrijven\n" + +#~ msgid "%s: unable to open " +#~ msgstr "%s: niet in staat te openen " + +#~ msgid "array declaration expected" +#~ msgstr "verwachte array declaratie" + +#~ msgid "character `%c' not defined while needed as default value" +#~ msgstr "karakter `%c' niet gedefinieerd maar nodig als standaard waarde" + +#~ msgid "constant or identifier expected" +#~ msgstr "verwacht konstante of identifier (FIXME)" + +#~ msgid "couldn't do tcp_create\n" +#~ msgstr "kan niet tcp_create doen\n" + +#~ msgid "couldn't do udp_create\n" +#~ msgstr "kan niet udp_create doen\n" + +#~ msgid "definition keyword expected" +#~ msgstr "verwacht definitie keyword" + +#~ msgid "expected '%s'" +#~ msgstr "verwachte '%s'" + +#~ msgid "expected '%s' or '%s'" +#~ msgstr "verwachte '%s' of '%s'" + +#~ msgid "expected '%s', '%s' or '%s'" +#~ msgstr "verwachte '%s', '%s' of '%s'" + +#~ msgid "expected type specifier" +#~ msgstr "verwachte type specificatie" + +#~ msgid "illegal character in file: " +#~ msgstr "ongeldig karakter in bestand: " + +#~ msgid "illegal result type" +#~ msgstr "ongeldig resultaat type" + +#~ msgid "no array-of-pointer declarations -- use typedef" +#~ msgstr "geen array-of-pointer declaraties -- gebruik typedef" + +#~ msgid "portmap CALLIT: cannot fork.\n" +#~ msgstr "portmap CALLIT: kan niet `fork'en.\n" + +#~ msgid "portmap cannot create socket" +#~ msgstr "portmap kan geen socket aanmaken" + +#~ msgid "preprocessor error" +#~ msgstr "voorbewerkingsfout" + +#~ msgid "run_svc returned unexpectedly\n" +#~ msgstr "run_svc kwam onverwacht terug (FIXME)\n" + +#~ msgid "too many files!\n" +#~ msgstr "te veel bestanden!\n" + +#~ msgid "unknown signal" +#~ msgstr "onbekend signaal" + +#~ msgid "unterminated string constant" +#~ msgstr "niet getermineerde string konstante" + +#~ msgid "usage: %s infile\n" +#~ msgstr "gebruik: %s invoerbestand\n" + +#~ msgid "variable-length array declaration expected" +#~ msgstr "verwachte variabelelengte `array' declaratie" + +#~ msgid "voids allowed only inside union and program definitions" +#~ msgstr "voids enkel toegestaan in union en programma definities" Binary files glibc-2.0.5c/po/sv.mo and glibc-2.0.6/po/sv.mo differ diff -durpN glibc-2.0.5c/posix/glob.c glibc-2.0.6/posix/glob.c --- glibc-2.0.5c/posix/glob.c Fri Apr 4 10:28:21 1997 +++ glibc-2.0.6/posix/glob.c Thu Dec 11 22:04:21 1997 @@ -16,17 +16,17 @@ Boston, MA 02111-1307, USA. */ /* AIX requires this to be the first thing in the file. */ -#if defined (_AIX) && !defined (__GNUC__) +#if defined _AIX && !defined __GNUC__ #pragma alloca #endif #ifdef HAVE_CONFIG_H -#include +# include #endif /* Enable GNU extensions in glob.h. */ #ifndef _GNU_SOURCE -#define _GNU_SOURCE 1 +# define _GNU_SOURCE 1 #endif #include @@ -37,6 +37,8 @@ /* #define NDEBUG 1 */ #include +#include /* Needed on stupid SunOS for assert. */ + /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C @@ -47,45 +49,45 @@ it is simpler to just do this in the source for each such file. */ #define GLOB_INTERFACE_VERSION 1 -#if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1 -#include -#if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION -#define ELIDE_CODE -#endif +#if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1 +# include +# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION +# define ELIDE_CODE +# endif #endif #ifndef ELIDE_CODE -#if defined(STDC_HEADERS) || defined(__GNU_LIBRARY__) -#include +#if defined STDC_HEADERS || defined __GNU_LIBRARY__ +# include #endif #if defined HAVE_UNISTD_H || defined _LIBC -#include -#ifndef POSIX -#ifdef _POSIX_VERSION -#define POSIX -#endif -#endif +# include +# ifndef POSIX +# ifdef _POSIX_VERSION +# define POSIX +# endif +# endif #endif -#if !defined (_AMIGA) && !defined (VMS) && !defined(WIN32) -#include +#if !defined _AMIGA && !defined VMS && !defined WINDOWS32 +# include #endif -#if !defined(__GNU_LIBRARY__) && !defined(STDC_HEADERS) +#if !defined __GNU_LIBRARY__ && !defined STDC_HEADERS extern int errno; #endif #ifndef __set_errno -#define __set_errno(val) errno = (val) +# define __set_errno(val) errno = (val) #endif #ifndef NULL -#define NULL 0 +# define NULL 0 #endif -#if defined (HAVE_DIRENT_H) || defined (__GNU_LIBRARY__) +#if defined HAVE_DIRENT_H || defined __GNU_LIBRARY__ # include # define NAMLEN(dirent) strlen((dirent)->d_name) #else @@ -108,36 +110,42 @@ extern int errno; /* In GNU systems, defines this macro for us. */ #ifdef _D_NAMLEN -#undef NAMLEN -#define NAMLEN(d) _D_NAMLEN(d) +# undef NAMLEN +# define NAMLEN(d) _D_NAMLEN(d) +#endif + +/* When used in the GNU libc the symbol _DIRENT_HAVE_D_TYPE is available + if the `d_type' member for `struct dirent' is available. */ +#ifdef _DIRENT_HAVE_D_TYPE +# define HAVE_D_TYPE 1 #endif -#if (defined (POSIX) || defined (WIN32)) && !defined (__GNU_LIBRARY__) +#if (defined POSIX || defined WINDOWS32) && !defined __GNU_LIBRARY__ /* Posix does not require that the d_ino field be present, and some systems do not provide it. */ -#define REAL_DIR_ENTRY(dp) 1 +# define REAL_DIR_ENTRY(dp) 1 #else -#define REAL_DIR_ENTRY(dp) (dp->d_ino != 0) +# define REAL_DIR_ENTRY(dp) (dp->d_ino != 0) #endif /* POSIX */ -#if (defined (STDC_HEADERS) || defined (__GNU_LIBRARY__)) -#include -#include -#define ANSI_STRING +#if defined STDC_HEADERS || defined __GNU_LIBRARY__ +# include +# include +# define ANSI_STRING #else /* No standard headers. */ extern char *getenv (); -#ifdef HAVE_STRING_H -#include -#define ANSI_STRING -#else -#include -#endif -#ifdef HAVE_MEMORY_H -#include -#endif +# ifdef HAVE_STRING_H +# include +# define ANSI_STRING +# else +# include +# endif +# ifdef HAVE_MEMORY_H +# include +# endif extern char *malloc (), *realloc (); extern void free (); @@ -149,35 +157,40 @@ extern void abort (), exit (); #ifndef ANSI_STRING -#ifndef bzero +# ifndef bzero extern void bzero (); -#endif -#ifndef bcopy +# endif +# ifndef bcopy extern void bcopy (); -#endif +# endif -#define memcpy(d, s, n) bcopy ((s), (d), (n)) -#define strrchr rindex +# define memcpy(d, s, n) bcopy ((s), (d), (n)) +# define strrchr rindex /* memset is only used for zero here, but let's be paranoid. */ -#define memset(s, better_be_zero, n) \ +# define memset(s, better_be_zero, n) \ ((void) ((better_be_zero) == 0 ? (bzero((s), (n)), 0) : (abort(), 0))) #endif /* Not ANSI_STRING. */ #if !defined HAVE_STRCOLL && !defined _LIBC -#define strcoll strcmp +# define strcoll strcmp +#endif + +#if !defined HAVE_MEMPCPY && __GLIBC__ - 0 == 2 && __GLIBC_MINOR__ >= 1 +# define HAVE_MEMPCPY 1 +# define mempcpy(Dest, Src, Len) __mempcpy (Dest, Src, Len) #endif #ifndef __GNU_LIBRARY__ -#ifdef __GNUC__ +# ifdef __GNUC__ __inline -#endif -#ifndef __SASC -#ifdef WIN32 +# endif +# ifndef __SASC +# ifdef WINDOWS32 static void * -#else +# else static char * -#endif +# endif my_realloc (p, n) char *p; unsigned int n; @@ -188,47 +201,47 @@ my_realloc (p, n) return (char *) malloc (n); return (char *) realloc (p, n); } -#define realloc my_realloc -#endif /* __SASC */ +# define realloc my_realloc +# endif /* __SASC */ #endif /* __GNU_LIBRARY__ */ -#if !defined(__alloca) && !defined(__GNU_LIBRARY__) +#if !defined __alloca && !defined __GNU_LIBRARY__ -#ifdef __GNUC__ -#undef alloca -#define alloca(n) __builtin_alloca (n) -#else /* Not GCC. */ -#ifdef HAVE_ALLOCA_H -#include -#else /* Not HAVE_ALLOCA_H. */ -#ifndef _AIX -#ifdef WIN32 -#include -#else +# ifdef __GNUC__ +# undef alloca +# define alloca(n) __builtin_alloca (n) +# else /* Not GCC. */ +# ifdef HAVE_ALLOCA_H +# include +# else /* Not HAVE_ALLOCA_H. */ +# ifndef _AIX +# ifdef WINDOWS32 +# include +# else extern char *alloca (); -#endif /* WIN32 */ -#endif /* Not _AIX. */ -#endif /* sparc or HAVE_ALLOCA_H. */ -#endif /* GCC. */ +# endif /* WINDOWS32 */ +# endif /* Not _AIX. */ +# endif /* sparc or HAVE_ALLOCA_H. */ +# endif /* GCC. */ -#define __alloca alloca +# define __alloca alloca #endif #ifndef __GNU_LIBRARY__ -#define __stat stat -#ifdef STAT_MACROS_BROKEN -#undef S_ISDIR -#endif -#ifndef S_ISDIR -#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) -#endif +# define __stat stat +# ifdef STAT_MACROS_BROKEN +# undef S_ISDIR +# endif +# ifndef S_ISDIR +# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) +# endif #endif -#if !(defined (STDC_HEADERS) || defined (__GNU_LIBRARY__)) -#undef size_t -#define size_t unsigned int +#if !(defined STDC_HEADERS || defined __GNU_LIBRARY__) +# undef size_t +# define size_t unsigned int #endif /* Some system header files erroneously define these. @@ -250,6 +263,11 @@ extern char *alloca (); #undef GLOB_PERIOD #include +static +#if __GNUC__ - 0 >= 2 +inline +#endif +const char *next_brace_sub __P ((const char *begin)); static int glob_in_dir __P ((const char *pattern, const char *directory, int flags, int (*errfunc) __P ((const char *, int)), @@ -265,7 +283,8 @@ static inline #endif const char * -next_brace_sub (const char *begin) +next_brace_sub (begin) + const char *begin; { unsigned int depth = 0; const char *cp = begin; @@ -307,7 +326,7 @@ next_brace_sub (const char *begin) If a directory cannot be opened or read and ERRFUNC is not nil, it is called with the pathname that caused the error, and the `errno' value from the failing call; if it returns non-zero - `glob' returns GLOB_ABEND; if it returns zero, the error is ignored. + `glob' returns GLOB_ABORTED; if it returns zero, the error is ignored. If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned. Otherwise, `glob' returns zero. */ int @@ -355,8 +374,12 @@ glob (pattern, flags, errfunc, pglob) #endif /* We know the prefix for all sub-patterns. */ +#ifdef HAVE_MEMPCPY + alt_start = mempcpy (onealt, pattern, begin - pattern); +#else memcpy (onealt, pattern, begin - pattern); alt_start = &onealt[begin - pattern]; +#endif /* Find the first sub-pattern and at the same time find the rest after the closing brace. */ @@ -409,8 +432,12 @@ glob (pattern, flags, errfunc, pglob) int result; /* Construct the new glob expression. */ +#ifdef HAVE_MEMPCPY + mempcpy (mempcpy (alt_start, p, next - p), rest, rest_len); +#else memcpy (alt_start, p, next - p); memcpy (&alt_start[next - p], rest, rest_len); +#endif result = glob (onealt, ((flags & ~(GLOB_NOCHECK|GLOB_NOMAGIC)) @@ -471,8 +498,12 @@ glob (pattern, flags, errfunc, pglob) { dirlen = filename - pattern; dirname = (char *) __alloca (dirlen + 1); +#ifdef HAVE_MEMPCPY + *((char *) mempcpy (dirname, pattern, dirlen)) = '\0'; +#else memcpy (dirname, pattern, dirlen); dirname[dirlen] = '\0'; +#endif ++filename; } @@ -500,21 +531,19 @@ glob (pattern, flags, errfunc, pglob) { /* Look up home directory. */ char *home_dir = getenv ("HOME"); -#ifdef _AMIGA +# ifdef _AMIGA if (home_dir == NULL || home_dir[0] == '\0') home_dir = "SYS:"; -#else -#ifdef WIN32 +# else +# ifdef WINDOWS32 if (home_dir == NULL || home_dir[0] == '\0') home_dir = "c:/users/default"; /* poor default */ -#else +# else if (home_dir == NULL || home_dir[0] == '\0') { - extern char *getlogin __P ((void)); - extern int getlogin_r __P ((char *, size_t)); int success; - -#if defined HAVE_GETLOGIN_R || defined _LIBC +# if defined HAVE_GETLOGIN_R || defined _LIBC + extern int getlogin_r __P ((char *, size_t)); size_t buflen = sysconf (_SC_LOGIN_NAME_MAX) + 1; char *name; @@ -522,36 +551,38 @@ glob (pattern, flags, errfunc, pglob) /* `sysconf' does not support _SC_LOGIN_NAME_MAX. Try a moderate value. */ buflen = 16; - name = __alloca (buflen); + name = (char *) __alloca (buflen); success = getlogin_r (name, buflen) >= 0; -#else +# else + extern char *getlogin __P ((void)); char *name; + success = (name = getlogin ()) != NULL; -#endif +# endif if (success) { -#if defined HAVE_GETPWNAM_R || defined _LIBC +# if defined HAVE_GETPWNAM_R || defined _LIBC size_t pwbuflen = sysconf (_SC_GETPW_R_SIZE_MAX); char *pwtmpbuf; struct passwd pwbuf, *p; - pwtmpbuf = __alloca (pwbuflen); + pwtmpbuf = (char *) __alloca (pwbuflen); success = (__getpwnam_r (name, &pwbuf, pwtmpbuf, pwbuflen, &p) >= 0); -#else +# else struct passwd *p = getpwnam (name); success = p != NULL; -#endif +# endif if (success) home_dir = p->pw_dir; } } if (home_dir == NULL || home_dir[0] == '\0') home_dir = (char *) "~"; /* No luck. */ -#endif /* WIN32 */ -#endif +# endif /* WINDOWS32 */ +# endif /* Now construct the full directory. */ if (dirname[1] == '\0') dirname = home_dir; @@ -559,13 +590,18 @@ glob (pattern, flags, errfunc, pglob) { char *newp; size_t home_len = strlen (home_dir); - newp = __alloca (home_len + dirlen); + newp = (char *) __alloca (home_len + dirlen); +# ifdef HAVE_MEMPCPY + mempcpy (mempcpy (newp, home_dir, home_len), + &dirname[1], dirlen); +# else memcpy (newp, home_dir, home_len); memcpy (&newp[home_len], &dirname[1], dirlen); +# endif dirname = newp; } } -#if !defined _AMIGA && !defined WIN32 +# if !defined _AMIGA && !defined WINDOWS32 else { char *end_name = strchr (dirname, '/'); @@ -576,28 +612,33 @@ glob (pattern, flags, errfunc, pglob) user_name = dirname + 1; else { - user_name = __alloca (end_name - dirname); + user_name = (char *) __alloca (end_name - dirname); +# ifdef HAVE_MEMPCPY + *((char *) mempcpy (user_name, dirname + 1, end_name - dirname)) + = '\0'; +# else memcpy (user_name, dirname + 1, end_name - dirname); user_name[end_name - dirname - 1] = '\0'; +# endif } /* Look up specific user's home directory. */ { -#if defined HAVE_GETPWNAM_R || defined _LIBC +# if defined HAVE_GETPWNAM_R || defined _LIBC size_t buflen = sysconf (_SC_GETPW_R_SIZE_MAX); - char *pwtmpbuf = __alloca (buflen); + char *pwtmpbuf = (char *) __alloca (buflen); struct passwd pwbuf, *p; if (__getpwnam_r (user_name, &pwbuf, pwtmpbuf, buflen, &p) >= 0) home_dir = p->pw_dir; else home_dir = NULL; -#else +# else struct passwd *p = getpwnam (user_name); if (p != NULL) home_dir = p->pw_dir; else home_dir = NULL; -#endif +# endif } /* If we found a home directory use this. */ if (home_dir != NULL) @@ -605,14 +646,19 @@ glob (pattern, flags, errfunc, pglob) char *newp; size_t home_len = strlen (home_dir); size_t rest_len = end_name == NULL ? 0 : strlen (end_name); - newp = __alloca (home_len + rest_len + 1); + newp = (char *) __alloca (home_len + rest_len + 1); +# ifdef HAVE_MEMPCPY + *((char *) mempcpy (mempcpy (newp, home_dir, home_len), + end_name, rest_len)) = '\0'; +# else memcpy (newp, home_dir, home_len); memcpy (&newp[home_len], end_name, rest_len); newp[home_len + rest_len] = '\0'; +# endif dirname = newp; } } -#endif /* Not Amiga && not Win32. */ +# endif /* Not Amiga && not WINDOWS32. */ } #endif /* Not VMS. */ @@ -625,8 +671,8 @@ glob (pattern, flags, errfunc, pglob) register int i; status = glob (dirname, - ((flags & (GLOB_ERR | GLOB_NOCHECK | GLOB_NOESCAPE)) | - GLOB_NOSORT), + ((flags & (GLOB_ERR | GLOB_NOCHECK | GLOB_NOESCAPE)) + | GLOB_NOSORT | GLOB_ONLYDIR), errfunc, &dirs); if (status != 0) return status; @@ -647,14 +693,15 @@ glob (pattern, flags, errfunc, pglob) { globfree (&dirs); globfree (&files); - return GLOB_ABEND; + return GLOB_ABORTED; } } #endif /* SHELL. */ oldcount = pglob->gl_pathc; status = glob_in_dir (filename, dirs.gl_pathv[i], - (flags | GLOB_APPEND) & ~GLOB_NOCHECK, + ((flags | GLOB_APPEND) + & ~(GLOB_NOCHECK | GLOB_ERR)), errfunc, pglob); if (status == GLOB_NOMATCH) /* No matches in this directory. Try the next. */ @@ -830,9 +877,17 @@ prefix_array (dirname, array, n) return 1; } +#ifdef HAVE_MEMPCPY + { + char *endp = (char *) mempcpy (new, dirname, dirlen); + *endp++ = '/'; + mempcpy (endp, array[i], eltlen); + } +#else memcpy (new, dirname, dirlen); new[dirlen] = '/'; memcpy (&new[dirlen + 1], array[i], eltlen); +#endif free ((__ptr_t) array[i]); array[i] = new; } @@ -900,67 +955,94 @@ glob_in_dir (pattern, directory, flags, char *name; }; struct globlink *names = NULL; - size_t nfound = 0; + size_t nfound; + int meta; + int save; - if (!__glob_pattern_p (pattern, !(flags & GLOB_NOESCAPE))) + stream = ((flags & GLOB_ALTDIRFUNC) ? + (*pglob->gl_opendir) (directory) : + (__ptr_t) opendir (directory)); + if (stream == NULL) { - stream = NULL; - flags |= GLOB_NOCHECK; + if ((errfunc != NULL && (*errfunc) (directory, errno)) || + (flags & GLOB_ERR)) + return GLOB_ABORTED; + nfound = 0; + meta = 0; + } + else if (pattern[0] == '\0') + { + /* This is a special case for matching directories like in + "*a/". */ + names = (struct globlink *) __alloca (sizeof (struct globlink)); + names->name = (char *) malloc (1); + if (names->name == NULL) + goto memory_error; + names->name[0] = '\0'; + names->next = NULL; + nfound = 1; + meta = 0; } else { - flags |= GLOB_MAGCHAR; + nfound = 0; + meta = __glob_pattern_p (pattern, !(flags & GLOB_NOESCAPE)); + if(meta) + flags |= GLOB_MAGCHAR; - stream = ((flags & GLOB_ALTDIRFUNC) ? - (*pglob->gl_opendir) (directory) : - (__ptr_t) opendir (directory)); - if (stream == NULL) + while (1) { - if ((errfunc != NULL && (*errfunc) (directory, errno)) || - (flags & GLOB_ERR)) - return GLOB_ABEND; - } - else - while (1) - { - const char *name; - size_t len; - struct dirent *d = ((flags & GLOB_ALTDIRFUNC) ? - (*pglob->gl_readdir) (stream) : - readdir ((DIR *) stream)); - if (d == NULL) - break; - if (! REAL_DIR_ENTRY (d)) - continue; + const char *name; + size_t len; + struct dirent *d = ((flags & GLOB_ALTDIRFUNC) ? + (*pglob->gl_readdir) (stream) : + readdir ((DIR *) stream)); + if (d == NULL) + break; + if (! REAL_DIR_ENTRY (d)) + continue; - name = d->d_name; +#ifdef HAVE_D_TYPE + /* If we shall match only directories use the information + provided by the dirent call if possible. */ + if ((flags & GLOB_ONLYDIR) + && d->d_type != DT_UNKNOWN && d->d_type != DT_DIR) + continue; +#endif - if (fnmatch (pattern, name, - (!(flags & GLOB_PERIOD) ? FNM_PERIOD : 0) | - ((flags & GLOB_NOESCAPE) ? FNM_NOESCAPE : 0) + name = d->d_name; + + if ((!meta && strcmp (pattern, name) == 0) + || fnmatch (pattern, name, + (!(flags & GLOB_PERIOD) ? FNM_PERIOD : 0) | + ((flags & GLOB_NOESCAPE) ? FNM_NOESCAPE : 0) #ifdef _AMIGA - | FNM_CASEFOLD + | FNM_CASEFOLD #endif ) == 0) - { - struct globlink *new - = (struct globlink *) __alloca (sizeof (struct globlink)); - len = NAMLEN (d); - new->name - = (char *) malloc (len + 1); - if (new->name == NULL) - goto memory_error; - memcpy ((__ptr_t) new->name, name, len); - new->name[len] = '\0'; - new->next = names; - names = new; - ++nfound; - } - } + { + struct globlink *new + = (struct globlink *) __alloca (sizeof (struct globlink)); + len = NAMLEN (d); + new->name = (char *) malloc (len + 1); + if (new->name == NULL) + goto memory_error; +#ifdef HAVE_MEMPCPY + *((char *) mempcpy ((__ptr_t) new->name, name, len)) = '\0'; +#else + memcpy ((__ptr_t) new->name, name, len); + new->name[len] = '\0'; +#endif + new->next = names; + names = new; + ++nfound; + if (!meta) + break; + } + } } - if (nfound == 0 && (flags & GLOB_NOMAGIC) && - ! __glob_pattern_p (pattern, !(flags & GLOB_NOESCAPE))) + if (nfound == 0 && (flags & GLOB_NOMAGIC) && !meta) flags |= GLOB_NOCHECK; if (nfound == 0 && (flags & GLOB_NOCHECK)) @@ -972,38 +1054,43 @@ glob_in_dir (pattern, directory, flags, names->name = (char *) malloc (len + 1); if (names->name == NULL) goto memory_error; +#ifdef HAVE_MEMPCPY + *((char *) mempcpy (names->name, pattern, len)) = '\0'; +#else memcpy (names->name, pattern, len); names->name[len] = '\0'; +#endif } - pglob->gl_pathv - = (char **) realloc (pglob->gl_pathv, - (pglob->gl_pathc + - ((flags & GLOB_DOOFFS) ? pglob->gl_offs : 0) + - nfound + 1) * - sizeof (char *)); - if (pglob->gl_pathv == NULL) - goto memory_error; - - if (flags & GLOB_DOOFFS) - while (pglob->gl_pathc < pglob->gl_offs) - pglob->gl_pathv[pglob->gl_pathc++] = NULL; + if (nfound != 0) + { + pglob->gl_pathv + = (char **) realloc (pglob->gl_pathv, + (pglob->gl_pathc + + ((flags & GLOB_DOOFFS) ? pglob->gl_offs : 0) + + nfound + 1) * + sizeof (char *)); + if (pglob->gl_pathv == NULL) + goto memory_error; - for (; names != NULL; names = names->next) - pglob->gl_pathv[pglob->gl_pathc++] = names->name; - pglob->gl_pathv[pglob->gl_pathc] = NULL; + if (flags & GLOB_DOOFFS) + while (pglob->gl_pathc < pglob->gl_offs) + pglob->gl_pathv[pglob->gl_pathc++] = NULL; - pglob->gl_flags = flags; + for (; names != NULL; names = names->next) + pglob->gl_pathv[pglob->gl_pathc++] = names->name; + pglob->gl_pathv[pglob->gl_pathc] = NULL; - if (stream != NULL) - { - int save = errno; - if (flags & GLOB_ALTDIRFUNC) - (*pglob->gl_closedir) (stream); - else - closedir ((DIR *) stream); - __set_errno (save); + pglob->gl_flags = flags; } + + save = errno; + if (flags & GLOB_ALTDIRFUNC) + (*pglob->gl_closedir) (stream); + else + closedir ((DIR *) stream); + __set_errno (save); + return nfound == 0 ? GLOB_NOMATCH : 0; memory_error: diff -durpN glibc-2.0.5c/posix/glob.h glibc-2.0.6/posix/glob.h --- glibc-2.0.5c/posix/glob.h Fri Apr 4 10:28:02 1997 +++ glibc-2.0.6/posix/glob.h Thu Dec 11 21:32:31 1997 @@ -1,8 +1,5 @@ /* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. Its master source is NOT part of - the C library, however. The master source lives in /gd/gnu/lib. - The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the @@ -19,7 +16,6 @@ Boston, MA 02111-1307, USA. */ #ifndef _GLOB_H - #define _GLOB_H 1 #ifdef __cplusplus @@ -28,17 +24,21 @@ extern "C" #endif #undef __ptr_t -#if (defined (__cplusplus) || (defined (__STDC__) && __STDC__) \ - || defined (WIN32)) -#undef __P -#define __P(protos) protos -#define __ptr_t void * +#if (defined __cplusplus || (defined __STDC__ && __STDC__) \ + || defined WINDOWS32) +# undef __P +# define __P(protos) protos +# define __ptr_t void * +# if !defined __GNUC__ || __GNUC__ < 2 +# undef __const +# define __const const +# endif #else /* Not C++ or ANSI C. */ -#undef __P -#define __P(protos) () -#undef const -#define const -#define __ptr_t char * +# undef __P +# define __P(protos) () +# undef __const +# define __const +# define __ptr_t char * #endif /* C++ or ANSI C. */ /* Bits set in the FLAGS argument to `glob'. */ @@ -50,26 +50,38 @@ extern "C" #define GLOB_APPEND (1 << 5)/* Append to results of a previous call. */ #define GLOB_NOESCAPE (1 << 6)/* Backslashes don't quote metacharacters. */ #define GLOB_PERIOD (1 << 7)/* Leading `.' can be matched by metachars. */ -#define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \ + +#if (!defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _BSD_SOURCE \ + || defined _GNU_SOURCE) +# define GLOB_MAGCHAR (1 << 8)/* Set in gl_flags if any metachars seen. */ +# define GLOB_ALTDIRFUNC (1 << 9)/* Use gl_opendir et al functions. */ +# define GLOB_BRACE (1 << 10)/* Expand "{a,b}" to "a" "b". */ +# define GLOB_NOMAGIC (1 << 11)/* If no magic chars, return the pattern. */ +# define GLOB_TILDE (1 << 12)/* Expand ~user and ~ to home directories. */ +# define GLOB_ONLYDIR (1 << 13)/* Match only directories. */ +# define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \ GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \ GLOB_PERIOD|GLOB_ALTDIRFUNC|GLOB_BRACE| \ - GLOB_NOMAGIC|GLOB_TILDE) - -#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_BSD_SOURCE) -#define GLOB_MAGCHAR (1 << 8)/* Set in gl_flags if any metachars seen. */ -#define GLOB_ALTDIRFUNC (1 << 9)/* Use gl_opendir et al functions. */ -#define GLOB_BRACE (1 << 10)/* Expand "{a,b}" to "a" "b". */ -#define GLOB_NOMAGIC (1 << 11)/* If no magic chars, return the pattern. */ -#define GLOB_TILDE (1 <<12)/* Expand ~user and ~ to home directories. */ + GLOB_NOMAGIC|GLOB_TILDE|GLOB_ONLYDIR) +#else +# define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS| \ + GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND| \ + GLOB_PERIOD) #endif /* Error returns from `glob'. */ #define GLOB_NOSPACE 1 /* Ran out of memory. */ -#define GLOB_ABEND 2 /* Read error. */ +#define GLOB_ABORTED 2 /* Read error. */ #define GLOB_NOMATCH 3 /* No matches found. */ +#ifdef _GNU_SOURCE +/* Previous versions of this file defined GLOB_ABEND instead of + GLOB_ABORTED. Provide a compatibility definition here. */ +# define GLOB_ABEND GLOB_ABORTED +#endif + /* Structure describing a globbing run. */ -#if !defined (_AMIGA) && !defined (VMS) /* Buggy compiler. */ +#if !defined _AMIGA && !defined VMS /* Buggy compiler. */ struct stat; #endif typedef struct @@ -83,9 +95,9 @@ typedef struct are used instead of the normal file access functions. */ void (*gl_closedir) __P ((void *)); struct dirent *(*gl_readdir) __P ((void *)); - __ptr_t (*gl_opendir) __P ((const char *)); - int (*gl_lstat) __P ((const char *, struct stat *)); - int (*gl_stat) __P ((const char *, struct stat *)); + __ptr_t (*gl_opendir) __P ((__const char *)); + int (*gl_lstat) __P ((__const char *, struct stat *)); + int (*gl_stat) __P ((__const char *, struct stat *)); } glob_t; /* Do glob searching for PATTERN, placing results in PGLOB. @@ -96,8 +108,8 @@ typedef struct `glob' returns GLOB_ABEND; if it returns zero, the error is ignored. If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned. Otherwise, `glob' returns zero. */ -extern int glob __P ((const char *__pattern, int __flags, - int (*__errfunc) __P ((const char *, int)), +extern int glob __P ((__const char *__pattern, int __flags, + int (*__errfunc) __P ((__const char *, int)), glob_t *__pglob)); /* Free storage allocated in PGLOB by a previous `glob' call. */ diff -durpN glibc-2.0.5c/posix/sched.h glibc-2.0.6/posix/sched.h --- glibc-2.0.5c/posix/sched.h Fri Dec 20 23:13:18 1996 +++ glibc-2.0.6/posix/sched.h Mon Dec 22 20:09:54 1997 @@ -1,5 +1,5 @@ /* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface. - Copyright (C) 1996 Free Software Foundation, Inc. + Copyright (C) 1996, 1997 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 @@ -24,7 +24,9 @@ /* Get type definitions. */ #include -#include /* for struct timespec */ + +#define __need_timespec +#include /* Get system specific constant and data structure definitions. */ #include diff -durpN glibc-2.0.5c/posix/sys/wait.h glibc-2.0.6/posix/sys/wait.h --- glibc-2.0.5c/posix/sys/wait.h Tue Nov 5 23:23:09 1996 +++ glibc-2.0.6/posix/sys/wait.h Sun Nov 30 00:11:13 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 96 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 93, 94, 96, 97 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 @@ -38,7 +38,7 @@ __BEGIN_DECLS /* Lots of hair to allow traditional BSD use of `union wait' as well as POSIX.1 use of `int' for the status word. */ -#ifdef __GNUC__ +#if defined __GNUC__ && !defined __cplusplus #define __WAIT_INT(status) \ (__extension__ ({ union { __typeof(status) __in; int __i; } __u; \ __u.__in = (status); __u.__i; })) diff -durpN glibc-2.0.5c/resolv/inet_addr.c glibc-2.0.6/resolv/inet_addr.c --- glibc-2.0.5c/resolv/inet_addr.c Tue Aug 13 23:48:37 1996 +++ glibc-2.0.6/resolv/inet_addr.c Thu Dec 11 21:33:26 1997 @@ -55,7 +55,7 @@ #if defined(LIBC_SCCS) && !defined(lint) static char sccsid[] = "@(#)inet_addr.c 8.1 (Berkeley) 6/17/93"; -static char rcsid[] = "$Id: inet_addr.c,v 1.5 1996/08/14 03:48:37 drepper Exp $"; +static char rcsid[] = "$Id: inet_addr.c,v 1.5.2.1 1997/12/12 02:33:26 drepper Exp $"; #endif /* LIBC_SCCS and not lint */ #include @@ -71,7 +71,7 @@ static char rcsid[] = "$Id: inet_addr.c, * Ascii internet address interpretation routine. * The value returned is in network order. */ -u_long +u_int32_t inet_addr(cp) register const char *cp; { diff -durpN glibc-2.0.5c/resolv/inet_neta.c glibc-2.0.6/resolv/inet_neta.c --- glibc-2.0.5c/resolv/inet_neta.c Tue Oct 1 21:37:22 1996 +++ glibc-2.0.6/resolv/inet_neta.c Thu Dec 11 21:33:38 1997 @@ -16,7 +16,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: inet_neta.c,v 1.3 1996/10/02 01:37:22 drepper Exp $"; +static const char rcsid[] = "$Id: inet_neta.c,v 1.3.2.1 1997/12/12 02:33:38 drepper Exp $"; #endif #include @@ -47,7 +47,7 @@ static const char rcsid[] = "$Id: inet_n */ char * inet_neta(src, dst, size) - u_long src; + u_int32_t src; char *dst; size_t size; { diff -durpN glibc-2.0.5c/resolv/nss_dns/dns-host.c glibc-2.0.6/resolv/nss_dns/dns-host.c --- glibc-2.0.5c/resolv/nss_dns/dns-host.c Mon Aug 4 17:38:58 1997 +++ glibc-2.0.6/resolv/nss_dns/dns-host.c Tue Oct 28 21:38:17 1997 @@ -158,7 +158,10 @@ _nss_dns_gethostbyname2_r (const char *n n = res_search (name, C_IN, type, host_buffer.buf, sizeof (host_buffer.buf)); if (n < 0) - return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND; + { + *h_errnop = h_errno; + return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND; + } return getanswer_r (&host_buffer, n, name, type, result, buffer, buflen, h_errnop); @@ -251,12 +254,18 @@ _nss_dns_gethostbyaddr_r (const char *ad n = res_query (qbuf, C_IN, T_PTR, (u_char *)host_buffer.buf, sizeof host_buffer); if (n < 0) - return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND; + { + *h_errnop = h_errno; + return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND; + } status = getanswer_r (&host_buffer, n, qbuf, T_PTR, result, buffer, buflen, h_errnop); if (status != NSS_STATUS_SUCCESS) - return status; + { + *h_errnop = h_errno; + return status; + } #ifdef SUNSECURITY This is not implemented because it is not possible to use the current diff -durpN glibc-2.0.5c/resolv/res_query.c glibc-2.0.6/resolv/res_query.c --- glibc-2.0.5c/resolv/res_query.c Mon Jan 6 17:05:43 1997 +++ glibc-2.0.6/resolv/res_query.c Sun Dec 21 16:19:24 1997 @@ -55,7 +55,7 @@ #if defined(LIBC_SCCS) && !defined(lint) static char sccsid[] = "@(#)res_query.c 8.1 (Berkeley) 6/4/93"; -static char rcsid[] = "$Id: res_query.c,v 1.11 1997/01/06 22:05:43 drepper Exp $"; +static char rcsid[] = "$Id: res_query.c,v 1.11.2.1 1997/12/21 21:19:24 drepper Exp $"; #endif /* LIBC_SCCS and not lint */ #include @@ -321,7 +321,7 @@ res_querydomain(name, domain, class, typ u_char *answer; /* buffer to put answer */ int anslen; /* size of answer */ { - char nbuf[MAXDNAME]; + char nbuf[MAXDNAME * 2 + 2]; const char *longname = nbuf; int n; diff -durpN glibc-2.0.5c/stdio-common/printf_fp.c glibc-2.0.6/stdio-common/printf_fp.c --- glibc-2.0.5c/stdio-common/printf_fp.c Mon Aug 4 19:51:35 1997 +++ glibc-2.0.6/stdio-common/printf_fp.c Thu Nov 13 10:32:27 1997 @@ -42,7 +42,9 @@ #include #include -#define NDEBUG /* Undefine this for debugging assertions. */ +#ifndef NDEBUG +# define NDEBUG /* Undefine this for debugging assertions. */ +#endif #include /* This defines make it possible to use the same code for GNU C library and diff -durpN glibc-2.0.5c/stdlib/exit.c glibc-2.0.6/stdlib/exit.c --- glibc-2.0.5c/stdlib/exit.c Sun Feb 9 22:18:46 1997 +++ glibc-2.0.6/stdlib/exit.c Thu Dec 11 01:38:27 1997 @@ -33,14 +33,16 @@ DEFINE_HOOK (__libc_atexit, (void)) void exit (int status) { - const struct exit_function_list *l; - - for (l = __exit_funcs; l != NULL; l = l->next) + /* We do it this way to handle recursive calls to exit () made by + the functions registered with `atexit' and `on_exit'. We call + everyone on the list and use the status value in the last + exit (). */ + for (; __exit_funcs; __exit_funcs = __exit_funcs->next) { - size_t i = l->idx; - while (i-- > 0) + while ((__exit_funcs->idx)-- > 0) { - const struct exit_function *const f = &l->fns[i]; + const struct exit_function *const f = + &__exit_funcs->fns[__exit_funcs->idx]; switch (f->flavor) { case ef_free: diff -durpN glibc-2.0.5c/stdlib/mblen.c glibc-2.0.6/stdlib/mblen.c --- glibc-2.0.5c/stdlib/mblen.c Sun Feb 9 22:18:54 1997 +++ glibc-2.0.6/stdlib/mblen.c Sat Oct 25 22:15:39 1997 @@ -17,14 +17,37 @@ Boston, MA 02111-1307, USA. */ #include - -#undef mblen +#include /* Return the length of the multibyte character (if there is one) - at S which is no longer than N characters. */ + at S which is no longer than N characters. + The ISO C standard says that the `mblen' function must not change + the global state. */ int mblen (const char *s, size_t n) { - return mbtowc ((wchar_t *) NULL, s, n); + mbstate_t state; + int result; + + /* If S is NULL the function has to return null or not null + depending on the encoding having a state depending encoding or + not. This is nonsense because any multibyte encoding has a + state. The ISO C amendment 1 corrects this while introducing the + restartable functions. We simply say here all encodings have a + state. */ + if (s == NULL) + return 1; + + state.count = 0; + state.value = 0; + + result = __mbrtowc (NULL, s, n, &state); + + /* The `mbrtowc' functions tell us more than we need. Fold the -1 + and -2 result into -1. */ + if (result < 0) + result = -1; + + return result; } diff -durpN glibc-2.0.5c/stdlib/stdlib.h glibc-2.0.6/stdlib/stdlib.h --- glibc-2.0.5c/stdlib/stdlib.h Mon Apr 21 10:24:36 1997 +++ glibc-2.0.6/stdlib/stdlib.h Sat Oct 25 12:53:28 1997 @@ -554,11 +554,6 @@ extern int mbtowc __P ((wchar_t *__pwc, by WCHAR in S, returning its length. */ extern int wctomb __P ((char *__s, wchar_t __wchar)); -#if defined (__OPTIMIZE__) && __GNUC__ >= 2 -extern __inline int mblen (__const char *__s, size_t __n) -{ return mbtowc ((wchar_t *) NULL, __s, __n); } -#endif /* Optimizing GCC >=2. */ - /* Convert a multibyte string to a wide char string. */ extern size_t mbstowcs __P ((wchar_t *__pwcs, __const char *__s, size_t __n)); diff -durpN glibc-2.0.5c/stdlib/strtod.c glibc-2.0.6/stdlib/strtod.c --- glibc-2.0.5c/stdlib/strtod.c Tue Mar 11 23:42:21 1997 +++ glibc-2.0.6/stdlib/strtod.c Fri Nov 14 20:44:20 1997 @@ -562,10 +562,18 @@ INTERNAL (STRTOF) (nptr, endptr, group) { FLOAT retval; - /* Overflow or underflow. */ - __set_errno (ERANGE); - retval = (exp_negative ? 0.0 : - negative ? -FLOAT_HUGE_VAL : FLOAT_HUGE_VAL); + /* We have to take care for special situation: a joker + might have written "0.0e100000" which is in fact + zero. */ + if (lead_zero == -1) + retval = !negative ? 0.0 : -0.0; + else + { + /* Overflow or underflow. */ + __set_errno (ERANGE); + retval = (exp_negative ? 0.0 : + negative ? -FLOAT_HUGE_VAL : FLOAT_HUGE_VAL); + } /* Accept all following digits as part of the exponent. */ do @@ -606,7 +614,7 @@ INTERNAL (STRTOF) (nptr, endptr, group) *endptr = (STRING_TYPE *) cp; if (dig_no == 0) - return 0.0; + return !negative ? 0.0 : -0.0; if (lead_zero) { diff -durpN glibc-2.0.5c/string/argz.h glibc-2.0.6/string/argz.h --- glibc-2.0.5c/string/argz.h Sun Aug 24 12:35:53 1997 +++ glibc-2.0.6/string/argz.h Fri Nov 14 20:27:10 1997 @@ -142,7 +142,7 @@ __argz_next (char *__argz, size_t __argz if (__entry < __argz + __argz_len) __entry = strchr (__entry, '\0') + 1; - return __entry >= __argz + __argz_len ? NULL : (char *) __entry; + return __entry >= __argz + __argz_len ? (char *) NULL : (char *) __entry; } else return __argz_len > 0 ? __argz : 0; diff -durpN glibc-2.0.5c/sunrpc/clnt_simp.c glibc-2.0.6/sunrpc/clnt_simp.c --- glibc-2.0.5c/sunrpc/clnt_simp.c Sun Dec 1 22:59:44 1996 +++ glibc-2.0.6/sunrpc/clnt_simp.c Tue Dec 16 17:30:03 1997 @@ -118,7 +118,8 @@ callrpc(host, prognum, versnum, procnum, crp->valid = 1; crp->oldprognum = prognum; crp->oldversnum = versnum; - (void) strcpy(crp->oldhost, host); + (void) strncpy (crp->oldhost, host, 255); + crp->oldhost[256] = '\0'; } tottimeout.tv_sec = 25; tottimeout.tv_usec = 0; diff -durpN glibc-2.0.5c/sunrpc/clnt_udp.c glibc-2.0.6/sunrpc/clnt_udp.c --- glibc-2.0.5c/sunrpc/clnt_udp.c Sun Feb 9 22:19:10 1997 +++ glibc-2.0.6/sunrpc/clnt_udp.c Wed Nov 26 11:42:09 1997 @@ -287,10 +287,10 @@ send_again: mask = 1 << cu->cu_sock; #endif /* def FD_SETSIZE */ for (;;) { - struct timeval timeout = cu->cu_wait; + struct timeval cu_wait = cu->cu_wait; readfds = mask; switch (select(_rpc_dtablesize(), &readfds, (int *)NULL, - (int *)NULL, &timeout)) { + (int *)NULL, &cu_wait)) { case 0: time_waited.tv_sec += cu->cu_wait.tv_sec; diff -durpN glibc-2.0.5c/sunrpc/rpc/clnt.h glibc-2.0.6/sunrpc/rpc/clnt.h --- glibc-2.0.5c/sunrpc/rpc/clnt.h Thu Dec 19 20:33:56 1996 +++ glibc-2.0.6/sunrpc/rpc/clnt.h Fri Nov 14 20:29:24 1997 @@ -38,6 +38,9 @@ #define _RPC_CLNT_H 1 #include +#include +#include +#include __BEGIN_DECLS @@ -336,6 +339,12 @@ extern struct rpc_createerr rpc_createer */ extern char *clnt_sperrno __P ((enum clnt_stat __num)); /* string */ + +/* + * get the local host's IP address without consulting + * name service library functions + */ +extern void get_myaddress __P ((struct sockaddr_in *)); #define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */ diff -durpN glibc-2.0.5c/sysdeps/alpha/Dist glibc-2.0.6/sysdeps/alpha/Dist --- glibc-2.0.5c/sysdeps/alpha/Dist Sat Nov 16 22:15:22 1996 +++ glibc-2.0.6/sysdeps/alpha/Dist Tue Dec 9 19:21:27 1997 @@ -1,4 +1,3 @@ -setjmp_aux.c DEFS.h divrem.h divl.S divq.S reml.S remq.S diff -durpN glibc-2.0.5c/sysdeps/alpha/Makefile glibc-2.0.6/sysdeps/alpha/Makefile --- glibc-2.0.5c/sysdeps/alpha/Makefile Mon Aug 4 17:54:32 1997 +++ glibc-2.0.6/sysdeps/alpha/Makefile Fri Dec 5 01:21:44 1997 @@ -21,10 +21,6 @@ ifeq ($(subdir),gmon) sysdep_routines += _mcount endif -ifeq ($(subdir),setjmp) -sysdep_routines += setjmp_aux -endif - ifeq ($(subdir),gnulib) sysdep_routines += $(divrem) endif @@ -45,6 +41,6 @@ endif divrem := divl divq reml remq -# For now, build everything with full IEEE math support. +# For now, build everything with full IEEE math support. # TODO: build separate libm and libm-ieee. sysdep-CFLAGS += -mieee diff -durpN glibc-2.0.5c/sysdeps/alpha/__longjmp.S glibc-2.0.6/sysdeps/alpha/__longjmp.S --- glibc-2.0.5c/sysdeps/alpha/__longjmp.S Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/sysdeps/alpha/__longjmp.S Thu Dec 4 23:29:18 1997 @@ -0,0 +1,59 @@ +/* Copyright (C) 1992, 1994, 1997 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 Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#define __ASSEMBLY__ + +#include +#include + + +ENTRY(__longjmp) +#ifdef PROF + ldgp gp, 0(pv) + .set noat + lda AT, _mcount + jsr AT, (AT), _mcount + .set at + .prologue 1 +#else + .prologue 0 +#endif + + mov a1, v0 + ldq s0, JB_S0*8(a0) + ldq s1, JB_S1*8(a0) + ldq s2, JB_S2*8(a0) + ldq s3, JB_S3*8(a0) + ldq s4, JB_S4*8(a0) + ldq s5, JB_S5*8(a0) + ldq ra, JB_PC*8(a0) + ldq fp, JB_FP*8(a0) + ldq t0, JB_SP*8(a0) + ldt $f2, JB_F2*8(a0) + ldt $f3, JB_F3*8(a0) + ldt $f4, JB_F4*8(a0) + ldt $f5, JB_F5*8(a0) + ldt $f6, JB_F6*8(a0) + ldt $f7, JB_F7*8(a0) + ldt $f8, JB_F8*8(a0) + ldt $f9, JB_F9*8(a0) + cmoveq v0, 1, v0 + mov t0, sp + ret + +END(__longjmp) diff -durpN glibc-2.0.5c/sysdeps/alpha/__longjmp.c glibc-2.0.6/sysdeps/alpha/__longjmp.c --- glibc-2.0.5c/sysdeps/alpha/__longjmp.c Tue Mar 19 14:51:41 1996 +++ glibc-2.0.6/sysdeps/alpha/__longjmp.c Wed Dec 31 19:00:00 1969 @@ -1,92 +0,0 @@ -/* Copyright (C) 1992, 1994 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 Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -The GNU C Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ - -/* Global register vars must come before any function defn. */ - -register long int - r9 asm ("$9"), r10 asm ("$10"), r11 asm ("$11"), r12 asm ("$12"), - r13 asm ("$13"), r14 asm ("$14"); - -register long int *fp asm ("$15"), *sp asm ("$30"), *retpc asm ("$26"); - -#if 1 /* XXX */ -register double - f2 asm ("$f2"), f3 asm ("$f3"), f4 asm ("$f4"), f5 asm ("$f5"), - f6 asm ("$f6"), f7 asm ("$f7"), f8 asm ("$f8"), f9 asm ("$f9"); -#endif - -#include - - -/* Jump to the position specified by ENV, causing the - setjmp call there to return VAL, or 1 if VAL is 0. */ -void -__longjmp (__jmp_buf env, int val) -{ - register long int retval asm ("$0"); - - /* Restore the integer registers. */ - r9 = env[0].__9; - r10 = env[0].__10; - r11 = env[0].__11; - r12 = env[0].__12; - r13 = env[0].__13; - r14 = env[0].__14; - -#if 1 /* XXX */ - /* Restore the floating point registers. */ - f2 = env[0].__f2; - f3 = env[0].__f3; - f4 = env[0].__f4; - f5 = env[0].__f5; - f6 = env[0].__f6; - f7 = env[0].__f7; - f8 = env[0].__f8; - f9 = env[0].__f9; -#endif - - /* Set the return PC to that of setjmp's caller. */ - retpc = env[0].__pc; - - /* Restore the FP and SP of setjmp's caller. */ - fp = env[0].__fp; - sp = env[0].__sp; - - /* Return VAL (or 1 if VAL is zero) to setjmp's caller. - - We use an asm here rather than a normal C return statement - just in case the compiler wanted to do some stack frobnication - in the function epilogue. Since we have already restored - precisely the FP and SP the desired environment needs, - we must avoid the compiler doing anything with the stack. */ - - - asm volatile - ("cmoveq %1, 1, %0\n\t" /* $0 = val ?: 1; */ - "ret $31, (%2), 1" /* return $0 */ - : "=r" (retval) - /* The "0" constraint should force VAL into $0. */ - : "0" (val), "r" (retpc)); - - while (1) - { - /* The loop is just to avoid `volatile function does return' warnings. - The instruction will only be executed once. */ - asm volatile (""); - } -} diff -durpN glibc-2.0.5c/sysdeps/alpha/__math.h glibc-2.0.6/sysdeps/alpha/__math.h --- glibc-2.0.5c/sysdeps/alpha/__math.h Thu May 23 01:32:55 1996 +++ glibc-2.0.6/sysdeps/alpha/__math.h Thu Nov 20 12:43:28 1997 @@ -1,5 +1,5 @@ /* Inline math functions for Alpha. -Copyright (C) 1996 Free Software Foundation, Inc. +Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by David Mosberger-Tang. @@ -40,14 +40,5 @@ atan (double __x) extern double __atan2 (double, double); return __atan2 (__x, 1.0); } - -#ifdef __USE_MISC -extern __inline double -cabs (struct __cabs_complex __z) -{ - extern double __hypot (double, double); - return __hypot(__z.x, __z.y); -} -#endif #endif diff -durpN glibc-2.0.5c/sysdeps/alpha/bsd-_setjmp.S glibc-2.0.6/sysdeps/alpha/bsd-_setjmp.S --- glibc-2.0.5c/sysdeps/alpha/bsd-_setjmp.S Tue Nov 19 22:44:23 1996 +++ glibc-2.0.6/sysdeps/alpha/bsd-_setjmp.S Wed Dec 10 12:05:06 1997 @@ -1,37 +1 @@ -/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. Alpha version. - Copyright (C) 1994, 1996 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 Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* This just does a tail-call to `__sigsetjmp (ARG, 0)'. - We cannot do it in C because it must be a tail-call, so frame-unwinding - in setjmp doesn't clobber the state restored by longjmp. */ - -#include - -ENTRY(_setjmp) - ldgp $29,0($27) -#ifdef PROF - .set noat - lda AT, _mcount - jsr AT, (AT), _mcount - .set at -#endif - .prologue 1 - bis $31, $31, $17 /* Pass a second argument of zero. */ - jmp $31, __sigsetjmp /* Call __sigsetjmp. */ - END(_setjmp) +/* _setjmp is in setjmp.S */ diff -durpN glibc-2.0.5c/sysdeps/alpha/bsd-setjmp.S glibc-2.0.6/sysdeps/alpha/bsd-setjmp.S --- glibc-2.0.5c/sysdeps/alpha/bsd-setjmp.S Tue Nov 19 22:44:23 1996 +++ glibc-2.0.6/sysdeps/alpha/bsd-setjmp.S Wed Dec 10 12:04:51 1997 @@ -1,37 +1 @@ -/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. Alpha version. - Copyright (C) 1994, 1996 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 Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* This just does a tail-call to `__sigsetjmp (ARG, 1)'. - We cannot do it in C because it must be a tail-call, so frame-unwinding - in setjmp doesn't clobber the state restored by longjmp. */ - -#include - -ENTRY(setjmp) - ldgp $29, 0($27) -#ifdef PROF - .set noat - lda AT, _mcount - jsr AT, (AT), _mcount - .set at -#endif - .prologue 1 - bis $31, 1, $17 /* Pass a second argument of one. */ - jmp $31, __sigsetjmp /* Call __sigsetjmp. */ - END(setjmp) +/* setjmp is in setjmp.S */ diff -durpN glibc-2.0.5c/sysdeps/alpha/dl-machine.h glibc-2.0.6/sysdeps/alpha/dl-machine.h --- glibc-2.0.5c/sysdeps/alpha/dl-machine.h Thu May 22 18:38:19 1997 +++ glibc-2.0.6/sysdeps/alpha/dl-machine.h Thu Dec 4 23:43:31 1997 @@ -157,7 +157,7 @@ _dl_runtime_resolve: subq $17, 20, $17 addq $17, $17, $17 /* Do the fixup */ - bsr $26, fixup..ng + bsr $26, "ASM_ALPHA_NG_SYMBOL_PREFIX"fixup..ng /* Move the destination address into position. */ mov $0, $27 /* Restore program registers. */ @@ -205,7 +205,7 @@ _start: 0: ldgp $gp, 0($gp) /* Pass pointer to argument block to _dl_start. */ mov $sp, $16 - bsr $26, _dl_start..ng + bsr $26, "ASM_ALPHA_NG_SYMBOL_PREFIX"_dl_start..ng .end _start /* FALLTHRU */ .globl _dl_start_user @@ -248,6 +248,9 @@ _dl_start_user: /* Nonzero iff TYPE describes relocation of a PLT entry, so PLT entries should not be allowed to define the value. */ #define elf_machine_pltrel_p(type) ((type) == R_ALPHA_JMP_SLOT) + +/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */ +#define ELF_MACHINE_JMP_SLOT R_ALPHA_JMP_SLOT /* The alpha never uses Elf64_Rel relocations. */ #define ELF_MACHINE_NO_REL 1 diff -durpN glibc-2.0.5c/sysdeps/alpha/jmp_buf.h glibc-2.0.6/sysdeps/alpha/jmp_buf.h --- glibc-2.0.5c/sysdeps/alpha/jmp_buf.h Tue Nov 24 20:55:31 1992 +++ glibc-2.0.6/sysdeps/alpha/jmp_buf.h Thu Dec 4 23:46:03 1997 @@ -1,46 +1,73 @@ /* Define the machine-dependent type `jmp_buf'. Alpha version. -Copyright (C) 1992 Free Software Foundation, Inc. -This file is part of the GNU C Library. + Copyright (C) 1992, 1997 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 Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. -The GNU C Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ -typedef struct - { - /* Integer registers: - $0 is the return value; - $1-$8, $22-$25, $28 are call-used; - $9-$14 we save here; - $15 is the FP and we save it here; - $16-$21 are input arguments (call-used); - $26 is the return PC and we save it here; - $27 is the procedure value (i.e., the address of __setjmp); - $29 is the global pointer, which the caller will reconstruct - from the return address restored in $26; - $30 is the stack pointer and we save it here; - $31 is always zero. */ - long int __9, __10, __11, __12, __13, __14; - long int *__pc, *__fp, *__sp; +/* The previous jmp_buf.h had __jmp_buf defined as a structure. + We use an array of 'long int' instead, to make writing the + assembler easier. Naturally, user code should not depend on + either representation. */ -#if 1 /* XXX need predefine for TARGET_FPREGS */ - /* Floating-point registers: - $f0 is the floating return value; - $f1, $f10-$f15, $f22-$f30 are call-used; - $f2-$f9 we save here; - $f16-$21 are input args (call-used); - $f31 is always zero. */ - double __f2, __f3, __f4, __f5, __f6, __f7, __f8, __f9; -#endif /* Have FP regs. */ - } __jmp_buf[1]; +/* + * Integer registers: + * $0 is the return value (va); + * $1-$8, $22-$25, $28 are call-used (t0-t7, t8-t11, at); + * $9-$14 we save here (s0-s5); + * $15 is the FP and we save it here (fp or s6); + * $16-$21 are input arguments (call-used) (a0-a5); + * $26 is the return PC and we save it here (ra); + * $27 is the procedure value (i.e., the address of __setjmp) (pv or t12); + * $29 is the global pointer, which the caller will reconstruct + * from the return address restored in $26 (gp); + * $30 is the stack pointer and we save it here (sp); + * $31 is always zero (zero). + * + * Floating-point registers: + * $f0 is the floating return value; + * $f1, $f10-$f15, $f22-$f30 are call-used; + * $f2-$f9 we save here; + * $f16-$21 are input args (call-used); + * $f31 is always zero. + * + * Note that even on Alpha hardware that does not have an FPU (there + * isn't such a thing currently) it is required to implement the FP + * registers. + */ + +#if defined __USE_MISC || defined __ASSEMBLY__ +# define JB_S0 0 +# define JB_S1 1 +# define JB_S2 2 +# define JB_S3 3 +# define JB_S4 4 +# define JB_S5 5 +# define JB_PC 6 +# define JB_FP 7 +# define JB_SP 8 +# define JB_F2 9 +# define JB_F3 10 +# define JB_F4 11 +# define JB_F5 12 +# define JB_F6 13 +# define JB_F7 14 +# define JB_F8 15 +# define JB_F9 16 +#endif + +#ifndef __ASSEMBLY__ +typedef long int __jmp_buf[17]; +#endif diff -durpN glibc-2.0.5c/sysdeps/alpha/setjmp.S glibc-2.0.6/sysdeps/alpha/setjmp.S --- glibc-2.0.5c/sysdeps/alpha/setjmp.S Tue Nov 19 22:44:27 1996 +++ glibc-2.0.6/sysdeps/alpha/setjmp.S Fri Dec 5 01:20:57 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1994, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1994, 1996, 1997 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 @@ -16,13 +16,21 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#define __ASSEMBLY__ + #include +#include -/* The function __sigsetjmp_aux saves all the registers, but it can't - reliably access the stack or frame pointers, so we pass them in as - extra arguments. */ -ENTRY (__sigsetjmp) - ldgp $29, 0($27) + .ent __sigsetjmp + .global __sigsetjmp +__sigsetjmp: + ldgp gp, 0(pv) + +$sigsetjmp_local: + subq sp, 16, sp + .frame sp, 16, ra, 0 + stq ra, 0(sp) + .mask 0x04000000, -16 #ifdef PROF .set noat lda AT, _mcount @@ -31,8 +39,48 @@ ENTRY (__sigsetjmp) #endif .prologue 1 - bis $30, $30, $18 /* Pass SP as 3rd arg. */ - bis $15, $15, $19 /* Pass FP as 4th arg. */ - jmp $31, __sigsetjmp_aux /* Call __sigsetjmp_aux. */ + stq s0, JB_S0*8(a0) + stq s1, JB_S1*8(a0) + stq s2, JB_S2*8(a0) + stq s3, JB_S3*8(a0) + stq s4, JB_S4*8(a0) + stq s5, JB_S5*8(a0) + stq ra, JB_PC*8(a0) + addq sp, 16, t0 + stq fp, JB_FP*8(a0) + stq t0, JB_SP*8(a0) + stt $f2, JB_F2*8(a0) + stt $f3, JB_F3*8(a0) + stt $f4, JB_F4*8(a0) + stt $f5, JB_F5*8(a0) + stt $f6, JB_F6*8(a0) + stt $f7, JB_F7*8(a0) + stt $f8, JB_F8*8(a0) + stt $f9, JB_F9*8(a0) - END(__sigsetjmp) + /* Call to C to (potentially) save our signal mask. */ + jsr ra, __sigjmp_save + + ldq ra, 0(sp) + addq sp, 16, sp + ret + +END(__sigsetjmp) + +/* Put these traditional entry points in the same file so that we can + elide much of the nonsense in trying to jmp to the real function. */ + +ENTRY(__setjmp) + ldgp gp, 0(pv) + mov 0, a1 + br $sigsetjmp_local +END(__setjmp) + +ENTRY(setjmp) + ldgp gp, 0(pv) + mov 1, a1 + br $sigsetjmp_local +END(setjmp) + +weak_alias(__setjmp, _setjmp) +weak_extern(setjmp) diff -durpN glibc-2.0.5c/sysdeps/alpha/setjmp_aux.c glibc-2.0.6/sysdeps/alpha/setjmp_aux.c --- glibc-2.0.5c/sysdeps/alpha/setjmp_aux.c Tue Mar 19 14:52:32 1996 +++ glibc-2.0.6/sysdeps/alpha/setjmp_aux.c Wed Dec 31 19:00:00 1969 @@ -1,76 +0,0 @@ -/* Copyright (C) 1992, 1994 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 Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. - -The GNU C Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ - -/* Global register decls must come before any function defn. */ - -register long int - r9 asm ("$9"), r10 asm ("$10"), r11 asm ("$11"), r12 asm ("$12"), - r13 asm ("$13"), r14 asm ("$14"); - -register long int *fp asm ("$15"), *sp asm ("$30"), *retpc asm ("$26"); - -#if 1 /* XXX */ -register double - f2 asm ("$f2"), f3 asm ("$f3"), f4 asm ("$f4"), f5 asm ("$f5"), - f6 asm ("$f6"), f7 asm ("$f7"), f8 asm ("$f8"), f9 asm ("$f9"); -#endif - - -#include - - -/* Save the current program position in ENV and return 0. */ -int -__sigsetjmp_aux (sigjmp_buf env, int savemask, long int *sp, long int *fp) -{ - /* Save the integer registers. */ - env[0].__jmpbuf[0].__9 = r9; - env[0].__jmpbuf[0].__10 = r10; - env[0].__jmpbuf[0].__11 = r11; - env[0].__jmpbuf[0].__12 = r12; - env[0].__jmpbuf[0].__13 = r13; - env[0].__jmpbuf[0].__14 = r14; - -#if 1 /* XXX */ - /* Save the floating point registers. */ - env[0].__jmpbuf[0].__f2 = f2; - env[0].__jmpbuf[0].__f3 = f3; - env[0].__jmpbuf[0].__f4 = f4; - env[0].__jmpbuf[0].__f5 = f5; - env[0].__jmpbuf[0].__f6 = f6; - env[0].__jmpbuf[0].__f7 = f7; - env[0].__jmpbuf[0].__f8 = f8; - env[0].__jmpbuf[0].__f9 = f9; -#endif - - /* Save the return address of our caller, where longjmp will jump to. */ - env[0].__jmpbuf[0].__pc = retpc; - - /* Save the FP and SP of our caller. The __sigsetjmp entry point - simply puts these in the argument registers for us to fetch. */ - env[0].__jmpbuf[0].__fp = fp; - env[0].__jmpbuf[0].__sp = sp; - - /* Save the signal mask if requested. */ - __sigjmp_save (env, savemask); - - retpc = env[0].__jmpbuf[0].__pc; /* restore ra, ugly... */ - - /* Return to the original caller of __sigsetjmp. */ - return 0; -} diff -durpN glibc-2.0.5c/sysdeps/generic/_G_config.h glibc-2.0.6/sysdeps/generic/_G_config.h --- glibc-2.0.5c/sysdeps/generic/_G_config.h Sat Aug 9 07:01:04 1997 +++ glibc-2.0.6/sysdeps/generic/_G_config.h Mon Nov 17 14:01:57 1997 @@ -9,6 +9,7 @@ #include #define __need_size_t #define __need_wint_t +#define __need_NULL #include #ifndef _WINT_T /* Integral type unchanged by default argument promotions that can diff -durpN glibc-2.0.5c/sysdeps/generic/dl-cache.c glibc-2.0.6/sysdeps/generic/dl-cache.c --- glibc-2.0.5c/sysdeps/generic/dl-cache.c Thu Mar 6 15:35:57 1997 +++ glibc-2.0.6/sysdeps/generic/dl-cache.c Fri Oct 24 21:58:34 1997 @@ -53,10 +53,7 @@ _dl_load_cache_lookup (const char *name) static struct cache_file *cache; static size_t cachesize; unsigned int i; - - if (cache == (void *) -1) - /* Previously looked for the cache file and didn't find it. */ - return NULL; + const char *best; if (cache == NULL) { @@ -76,6 +73,11 @@ _dl_load_cache_lookup (const char *name) } } + if (cache == (void *) -1) + /* Previously looked for the cache file and didn't find it. */ + return NULL; + + best = NULL; for (i = 0; i < cache->nlibs; ++i) if ((cache->libs[i].flags == 1 || cache->libs[i].flags == 3) && /* ELF library entry. */ @@ -85,7 +87,14 @@ _dl_load_cache_lookup (const char *name) /* Does the name match? */ ! strcmp (name, ((const char *) &cache->libs[cache->nlibs] + cache->libs[i].key))) - return (const char *) &cache->libs[cache->nlibs] + cache->libs[i].value; + { + best = ((const char *) &cache->libs[cache->nlibs] + + cache->libs[i].value); - return NULL; + if (cache->libs[i].flags == 3) + /* We've found an exact match for the shared object and no + general `ELF' release. Stop searching. */ + break; + } + return best; } diff -durpN glibc-2.0.5c/sysdeps/generic/gnu/types.h glibc-2.0.6/sysdeps/generic/gnu/types.h --- glibc-2.0.5c/sysdeps/generic/gnu/types.h Mon Jan 6 17:06:04 1997 +++ glibc-2.0.6/sysdeps/generic/gnu/types.h Thu Dec 11 14:08:14 1997 @@ -68,7 +68,7 @@ typedef long int __key_t; /* Type of an /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ #define __NFDBITS (sizeof (unsigned long int) * 8) #define __FDELT(d) ((d) / __NFDBITS) -#define __FDMASK(d) (1 << ((d) % __NFDBITS)) +#define __FDMASK(d) ((unsigned long int) 1 << ((d) % __NFDBITS)) typedef struct { diff -durpN glibc-2.0.5c/sysdeps/generic/pty.c glibc-2.0.6/sysdeps/generic/pty.c --- glibc-2.0.5c/sysdeps/generic/pty.c Wed Nov 27 01:09:29 1996 +++ glibc-2.0.6/sysdeps/generic/pty.c Tue Nov 18 12:11:42 1997 @@ -49,6 +49,10 @@ static char sccsid[] = "@(#)pty.c 8.1 (B #include #include +#ifndef REVOKE +# define REVOKE(Line) revoke (line) +#endif + int openpty(amaster, aslave, name, termp, winp) int *amaster, *aslave; @@ -56,7 +60,7 @@ openpty(amaster, aslave, name, termp, wi struct termios *termp; struct winsize *winp; { - static char line[] = "/dev/ptyXX"; + char line[11]; register const char *cp1, *cp2; register int master, slave, ttygid; size_t buflen = sysconf (_SC_GETGR_R_SIZE_MAX); @@ -64,6 +68,8 @@ openpty(amaster, aslave, name, termp, wi struct group grbuffer; struct group *gr; + strcpy (line, "/dev/ptyXX"); + if (getgrnam_r("tty", &grbuffer, buffer, buflen, &gr) >= 0) ttygid = gr->gr_gid; else @@ -80,7 +86,7 @@ openpty(amaster, aslave, name, termp, wi line[5] = 't'; (void) chown(line, getuid(), ttygid); (void) chmod(line, S_IRUSR|S_IWUSR|S_IWGRP); - (void) revoke(line); + REVOKE (line); if ((slave = open(line, O_RDWR, 0)) != -1) { *amaster = master; *aslave = slave; diff -durpN glibc-2.0.5c/sysdeps/gnu/errlist.c glibc-2.0.6/sysdeps/gnu/errlist.c --- glibc-2.0.5c/sysdeps/gnu/errlist.c Tue May 20 11:25:17 1997 +++ glibc-2.0.6/sysdeps/gnu/errlist.c Fri Nov 14 21:24:36 1997 @@ -249,7 +249,7 @@ TRANS until some external condition make TRANS connect (whatever the operation). You can use @code{select} to find out TRANS when the operation will be possible; @pxref{Waiting for I/O}. TRANS -TRANS @strong{Portability Note:} In older Unix many systems, this condition +TRANS @strong{Portability Note:} In many older Unix systems, this condition TRANS was indicated by @code{EWOULDBLOCK}, which was a distinct error code TRANS different from @code{EAGAIN}. To make your program portable, you should TRANS check for both codes and treat them the same. @@ -796,6 +796,14 @@ TRANS This error code has no purpose. */ #ifdef EREMOTEIO /* */ [EREMOTEIO] = N_("Remote I/O error"), +#endif +#ifdef ENOMEDIUM +/* */ + [ENOMEDIUM] = N_("No medium found"), +#endif +#ifdef EMEDIUMTYPE +/* */ + [EMEDIUMTYPE] = N_("Wrong medium type"), #endif }; diff -durpN glibc-2.0.5c/sysdeps/i386/selectbits.h glibc-2.0.6/sysdeps/i386/selectbits.h --- glibc-2.0.5c/sysdeps/i386/selectbits.h Sun Dec 28 20:10:48 1997 +++ glibc-2.0.6/sysdeps/i386/selectbits.h Sat Nov 1 08:11:53 1997 @@ -23,29 +23,28 @@ # define __FD_ZERO(fdsetp) \ __asm__ __volatile__ ("cld; rep; stosl" \ - : "=m" (((__fd_mask *) \ - (fdsetp))[__FDELT (__FD_SETSIZE)]) \ + : "=m" ((fdsetp)->fds_bits[__FDELT (__FD_SETSIZE)]) \ : "a" (0), "c" (sizeof (__fd_set) \ / sizeof (__fd_mask)), \ - "D" ((__fd_mask *) (fdsetp)) \ - :"cx","di") + "D" (&(fdsetp)->fds_bits[0]) \ + :"cx","di","memory") # define __FD_SET(fd, fdsetp) \ __asm__ __volatile__ ("btsl %1,%0" \ - : "=m" (((__fd_mask *) (fdsetp))[__FDELT (fd)]) \ + : "=m" ((fdsetp)->fds_bits[__FDELT (fd)]) \ : "r" (((int) (fd)) % __NFDBITS) \ - : "cc") + : "cc","memory") # define __FD_CLR(fd, fdsetp) \ __asm__ __volatile__ ("btrl %1,%0" \ - : "=m" (((__fd_mask *) (fdsetp))[__FDELT (fd)]) \ + : "=m" ((fdsetp)->fds_bits[__FDELT (fd)]) \ : "r" (((int) (fd)) % __NFDBITS) \ - : "cc") + : "cc","memory") # define __FD_ISSET(fd, fdsetp) \ (__extension__ \ ({register char __result; \ __asm__ __volatile__ ("btl %1,%2 ; setcb %b0" \ : "=q" (__result) \ : "r" (((int) (fd)) % __NFDBITS), \ - "m" (((__fd_mask *) (fdsetp))[__FDELT (fd)]) \ + "m" (((fdsetp)->fds_bits)[__FDELT (fd)]) \ : "cc"); \ __result; })) diff -durpN glibc-2.0.5c/sysdeps/libm-i387/e_remainder.S glibc-2.0.6/sysdeps/libm-i387/e_remainder.S --- glibc-2.0.5c/sysdeps/libm-i387/e_remainder.S Sun Dec 29 20:46:45 1996 +++ glibc-2.0.6/sysdeps/libm-i387/e_remainder.S Fri Nov 14 18:21:01 1997 @@ -14,6 +14,6 @@ ENTRY(__ieee754_remainder) fstsw %ax sahf jp 1b - fstpl %st(1) + fstp %st(1) ret END (__ieee754_remainder) diff -durpN glibc-2.0.5c/sysdeps/libm-i387/e_remainderf.S glibc-2.0.6/sysdeps/libm-i387/e_remainderf.S --- glibc-2.0.5c/sysdeps/libm-i387/e_remainderf.S Sun Dec 29 20:46:46 1996 +++ glibc-2.0.6/sysdeps/libm-i387/e_remainderf.S Fri Nov 14 18:21:10 1997 @@ -14,6 +14,6 @@ ENTRY(__ieee754_remainderf) fstsw %ax sahf jp 1b - fstpl %st(1) + fstp %st(1) ret END (__ieee754_remainderf) diff -durpN glibc-2.0.5c/sysdeps/libm-i387/e_remainderl.S glibc-2.0.6/sysdeps/libm-i387/e_remainderl.S --- glibc-2.0.5c/sysdeps/libm-i387/e_remainderl.S Sun Dec 29 20:46:46 1996 +++ glibc-2.0.6/sysdeps/libm-i387/e_remainderl.S Fri Nov 14 18:21:35 1997 @@ -16,5 +16,6 @@ ENTRY(__ieee754_remainderl) fstsw %ax sahf jp 1b + fstp %st(1) ret END (__ieee754_remainderl) diff -durpN glibc-2.0.5c/sysdeps/libm-i387/s_nextafterl.c glibc-2.0.6/sysdeps/libm-i387/s_nextafterl.c --- glibc-2.0.5c/sysdeps/libm-i387/s_nextafterl.c Thu May 30 12:08:06 1996 +++ glibc-2.0.6/sysdeps/libm-i387/s_nextafterl.c Fri Nov 14 18:36:35 1997 @@ -49,7 +49,7 @@ static char rcsid[] = "$NetBSD: $"; if(((ix==0x7fff)&&(((hx|lx)|-(hx|lx))&hx)>>31!=0) || /* x is nan */ ((iy==0x7fff)&&(((hy|ly)|-(hy|ly))&hy)>>31!=0)) /* y is nan */ return x+y; - if(x==y) return x; /* x=y, return x */ + if(x==y) return y; /* x=y, return y */ if((ix|hx|lx)==0) { /* x == 0 */ SET_LDOUBLE_WORDS(x,esx&0x8000,0,1);/* return +-minsubnormal */ y = x*x; diff -durpN glibc-2.0.5c/sysdeps/libm-ieee754/s_cbrt.c glibc-2.0.6/sysdeps/libm-ieee754/s_cbrt.c --- glibc-2.0.5c/sysdeps/libm-ieee754/s_cbrt.c Thu Aug 7 20:31:12 1997 +++ glibc-2.0.6/sysdeps/libm-ieee754/s_cbrt.c Sat Nov 1 09:33:52 1997 @@ -47,7 +47,7 @@ __cbrt (double x) /* If X is not finite or is null return it (with raising exceptions if necessary. */ - if (xe == 0) + if (xe == 0 && (x == 0.0 || isnan (x) || isinf (x))) return x + x; u = (0.354895765043919860 diff -durpN glibc-2.0.5c/sysdeps/libm-ieee754/s_cbrtf.c glibc-2.0.6/sysdeps/libm-ieee754/s_cbrtf.c --- glibc-2.0.5c/sysdeps/libm-ieee754/s_cbrtf.c Thu Aug 7 20:31:12 1997 +++ glibc-2.0.6/sysdeps/libm-ieee754/s_cbrtf.c Sat Nov 1 09:34:00 1997 @@ -47,7 +47,7 @@ __cbrtf (float x) /* If X is not finite or is null return it (with raising exceptions if necessary. */ - if (xe == 0) + if (xe == 0 && (x == 0.0 || isnanf (x) || isinff (x))) return x + x; u = (0.492659620528969547 + (0.697570460207922770 diff -durpN glibc-2.0.5c/sysdeps/libm-ieee754/s_cbrtl.c glibc-2.0.6/sysdeps/libm-ieee754/s_cbrtl.c --- glibc-2.0.5c/sysdeps/libm-ieee754/s_cbrtl.c Thu Aug 7 20:31:12 1997 +++ glibc-2.0.6/sysdeps/libm-ieee754/s_cbrtl.c Sat Nov 1 09:34:06 1997 @@ -49,7 +49,7 @@ __cbrtl (long double x) /* If X is not finite or is null return it (with raising exceptions if necessary. */ - if (xe == 0) + if (xe == 0 && (x == 0.0 || isnanl (x) || isinfl (x))) return x + x; u = (0.338058687610520237 diff -durpN glibc-2.0.5c/sysdeps/libm-ieee754/w_cabs.c glibc-2.0.6/sysdeps/libm-ieee754/w_cabs.c --- glibc-2.0.5c/sysdeps/libm-ieee754/w_cabs.c Thu Oct 10 23:12:11 1996 +++ glibc-2.0.6/sysdeps/libm-ieee754/w_cabs.c Fri Nov 21 15:33:02 1997 @@ -7,20 +7,28 @@ #include +struct __cabs_complex +{ + double x, y; +}; + double -__cabs(z) - struct __cabs_complex z; +__cabs (struct __cabs_complex z) { return __hypot(z.x, z.y); } weak_alias (__cabs, cabs) #ifdef NO_LONG_DOUBLE +struct __cabs_complexl +{ + double x, y; +}; + double -__cabsl(z) - struct __cabs_complexl z; +__cabsl (struct __cabs_complexl z) { - return __hypotl(z.x, z.y); + return __hypot(z.x, z.y); } weak_alias (__cabsl, cabsl) #endif diff -durpN glibc-2.0.5c/sysdeps/libm-ieee754/w_cabsf.c glibc-2.0.6/sysdeps/libm-ieee754/w_cabsf.c --- glibc-2.0.5c/sysdeps/libm-ieee754/w_cabsf.c Tue Mar 5 14:08:38 1996 +++ glibc-2.0.6/sysdeps/libm-ieee754/w_cabsf.c Tue Nov 18 20:25:53 1997 @@ -1,6 +1,6 @@ /* * cabsf() wrapper for hypotf(). - * + * * Written by J.T. Conklin, * Placed into the Public Domain, 1994. */ @@ -8,9 +8,13 @@ #include "math.h" #include "math_private.h" +struct __cabs_complexf +{ + float x, y; +}; + float -__cabsf(z) - struct __cabs_complexf z; +__cabsf (struct __cabs_complexf z) { return __hypotf(z.x, z.y); } diff -durpN glibc-2.0.5c/sysdeps/libm-ieee754/w_cabsl.c glibc-2.0.6/sysdeps/libm-ieee754/w_cabsl.c --- glibc-2.0.5c/sysdeps/libm-ieee754/w_cabsl.c Tue Jun 4 23:29:00 1996 +++ glibc-2.0.6/sysdeps/libm-ieee754/w_cabsl.c Tue Nov 18 20:26:10 1997 @@ -9,9 +9,13 @@ #include +struct __cabs_complexl +{ + long double x, y; +}; + long double -__cabsl(z) - struct __cabs_complexl z; +__cabsl (struct __cabs_complexl z) { return __hypotl(z.x, z.y); } diff -durpN glibc-2.0.5c/sysdeps/mach/hurd/cthreads.c glibc-2.0.6/sysdeps/mach/hurd/cthreads.c --- glibc-2.0.5c/sysdeps/mach/hurd/cthreads.c Sat Aug 9 07:07:37 1997 +++ glibc-2.0.6/sysdeps/mach/hurd/cthreads.c Mon Sep 29 12:39:27 1997 @@ -1,4 +1,4 @@ -#include +#include #include #include diff -durpN glibc-2.0.5c/sysdeps/posix/mk-stdiolim.c glibc-2.0.6/sysdeps/posix/mk-stdiolim.c --- glibc-2.0.5c/sysdeps/posix/mk-stdiolim.c Fri Sep 27 23:22:17 1996 +++ glibc-2.0.6/sysdeps/posix/mk-stdiolim.c Sun Dec 28 11:33:30 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1993, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1993, 1996, 1997 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 @@ -23,6 +23,7 @@ main() { /* These values correspond to the code in sysdeps/posix/tempname.c. Change the values here if you change that code. */ + puts ("#ifdef _STDIO_H"); printf("#define L_tmpnam %u\n", sizeof("/usr/tmp/") + 9); printf("#define TMP_MAX %u\n", 62 * 62 * 62); @@ -31,11 +32,33 @@ main() printf("#define L_cuserid 9\n"); puts ("#endif"); + printf("#define FILENAME_MAX %u\n", +#ifdef PATH_MAX + PATH_MAX +#else + /* This is supposed to be the size needed to hold the longest file + name string the implementation guarantees can be opened. + PATH_MAX not being defined means the actual limit on the length + of a file name is runtime-variant (or it is unlimited). ANSI + says in such a case FILENAME_MAX should be a good size to + allocate for a file name string. POSIX.1 guarantees that a + file name up to _POSIX_PATH_MAX chars long can be opened, so + this value must be at least that. */ + 1024 /* _POSIX_PATH_MAX is 255. */ +#endif + ); + + puts ("#undef __need_FOPEN_MAX"); + puts ("#define __need_FOPEN_MAX 1"); + puts ("#endif\n"); + /* POSIX does not require that OPEN_MAX and PATH_MAX be defined, so will not define them if they are run-time variant (which is the case in the Hurd). ANSI still requires that FOPEN_MAX and FILENAME_MAX be defined, however. */ + puts ("#if defined __need_FOPEN_MAX && !defined __defined_FOPEN_MAX"); + puts ("#define __defined_FOPEN_MAX"); printf("#define FOPEN_MAX %u\n", #ifdef OPEN_MAX @@ -50,22 +73,8 @@ main() #endif ); + puts ("#endif"); + puts ("#undef __need_FOPEN_MAX"); - printf("#define FILENAME_MAX %u\n", -#ifdef PATH_MAX - PATH_MAX -#else - /* This is supposed to be the size needed to hold the longest file - name string the implementation guarantees can be opened. - PATH_MAX not being defined means the actual limit on the length - of a file name is runtime-variant (or it is unlimited). ANSI - says in such a case FILENAME_MAX should be a good size to - allocate for a file name string. POSIX.1 guarantees that a - file name up to _POSIX_PATH_MAX chars long can be opened, so - this value must be at least that. */ - 1024 /* _POSIX_PATH_MAX is 255. */ -#endif - ); - - exit(0); + exit (0); } diff -durpN glibc-2.0.5c/sysdeps/posix/sigblock.c glibc-2.0.6/sysdeps/posix/sigblock.c --- glibc-2.0.5c/sysdeps/posix/sigblock.c Tue Nov 19 22:44:58 1996 +++ glibc-2.0.6/sysdeps/posix/sigblock.c Sun Dec 7 00:07:45 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1994, 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1994, 1995, 1996, 1997 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 @@ -35,7 +35,7 @@ __sigblock (mask) else if (sizeof (unsigned long int) == sizeof (set)) *(unsigned long int *) &set = (unsigned int) mask; else - for (sig = 1; sig < NSIG; ++sig) + for (sig = 1; sig < NSIG && sig <= sizeof (mask) * 8; ++sig) if ((mask & sigmask (sig)) && __sigaddset (&set, sig) < 0) return -1; @@ -47,7 +47,7 @@ __sigblock (mask) else if (sizeof (unsigned long int) == sizeof (oset)) mask = *(unsigned long int*) &oset; else - for (sig = 1, mask = 0; sig < NSIG; ++sig) + for (sig = 1, mask = 0; sig < NSIG && sig <= sizeof (mask) * 8; ++sig) if (__sigismember (&oset, sig)) mask |= sigmask (sig); diff -durpN glibc-2.0.5c/sysdeps/posix/sigsetmask.c glibc-2.0.6/sysdeps/posix/sigsetmask.c --- glibc-2.0.5c/sysdeps/posix/sigsetmask.c Tue Nov 19 22:45:02 1996 +++ glibc-2.0.6/sysdeps/posix/sigsetmask.c Sun Dec 7 00:08:04 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1994, 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1994, 1995, 1996, 1997 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 @@ -34,7 +34,7 @@ __sigsetmask (int mask) else if (sizeof (unsigned long int) == sizeof (set)) *(unsigned long int *) &set = (unsigned int) mask; else - for (sig = 1; sig < NSIG; ++sig) + for (sig = 1; sig < NSIG && sig <= sizeof (mask) * 8; ++sig) if ((mask & sigmask (sig)) && __sigaddset (&set, sig) < 0) return -1; @@ -46,7 +46,7 @@ __sigsetmask (int mask) else if (sizeof (unsigned long int) == sizeof (oset)) mask = *(unsigned long int *) &oset; else - for (sig = 1, mask = 0; sig < NSIG; ++sig) + for (sig = 1, mask = 0; sig < NSIG && sig <= sizeof (mask) * 8; ++sig) if (__sigismember (&oset, sig)) mask |= sigmask (sig); diff -durpN glibc-2.0.5c/sysdeps/posix/sigvec.c glibc-2.0.6/sysdeps/posix/sigvec.c --- glibc-2.0.5c/sysdeps/posix/sigvec.c Tue Nov 19 22:45:02 1996 +++ glibc-2.0.6/sysdeps/posix/sigvec.c Sun Dec 7 00:08:28 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 94, 95, 96 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 94, 95, 96, 97 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 @@ -62,7 +62,7 @@ convert_mask (set, mask) if (__sigemptyset (set) < 0) return -1; - for (sig = 1; sig < NSIG; ++sig) + for (sig = 1; sig < NSIG && sig <= sizeof (mask) * 8; ++sig) if ((mask & sigmask (sig)) && __sigaddset (set, sig) < 0) return -1; } @@ -138,7 +138,7 @@ __sigvec (sig, vec, ovec) else if (sizeof (unsigned long int) == sizeof (sigset_t)) mask = *(unsigned long int *) &old.sa_mask; else - for (i = 1; i < NSIG; ++i) + for (i = 1; i < NSIG && i <= sizeof (mask) * 8; ++i) if (__sigismember(&old.sa_mask, i)) mask |= sigmask(i); diff -durpN glibc-2.0.5c/sysdeps/posix/sysv_signal.c glibc-2.0.6/sysdeps/posix/sysv_signal.c --- glibc-2.0.5c/sysdeps/posix/sysv_signal.c Mon Jan 6 17:06:16 1997 +++ glibc-2.0.6/sysdeps/posix/sysv_signal.c Sat Nov 22 00:26:10 1997 @@ -56,3 +56,5 @@ __sysv_signal (sig, handler) return oact.sa_handler; } + +weak_alias (__sysv_signal, sysv_signal) diff -durpN glibc-2.0.5c/sysdeps/posix/writev.c glibc-2.0.6/sysdeps/posix/writev.c --- glibc-2.0.5c/sysdeps/posix/writev.c Thu Mar 20 14:19:48 1997 +++ glibc-2.0.6/sysdeps/posix/writev.c Tue Nov 4 14:28:48 1997 @@ -57,7 +57,7 @@ __writev (fd, vector, count) bp += copy; to_copy -= copy; - if (bytes == 0) + if (to_copy == 0) break; } diff -durpN glibc-2.0.5c/sysdeps/standalone/stdio_lim.h glibc-2.0.6/sysdeps/standalone/stdio_lim.h --- glibc-2.0.5c/sysdeps/standalone/stdio_lim.h Fri Aug 26 02:12:55 1994 +++ glibc-2.0.6/sysdeps/standalone/stdio_lim.h Tue Dec 16 18:36:11 1997 @@ -1,27 +1,32 @@ -/* Copyright (C) 1994 Free Software Foundation, Inc. +/* Copyright (C) 1994, 1997 Free Software Foundation, Inc. Ported to standalone by Joel Sherrill jsherril@redstone-emh2.army.mil, On-Line Applications Research Corporation. - + 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 Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - + The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#ifdef _STDIO_H #define L_tmpnam 1 #define TMPMAX 0 #define L_ctermid 1 #define L_cuserid 1 -#define FOPEN_MAX 16 #define FILENAME_MAX 14 +#endif + +#ifndef FOPEN_MAX +#define FOPEN_MAX 16 +#endif diff -durpN glibc-2.0.5c/sysdeps/stub/stdio_lim.h glibc-2.0.6/sysdeps/stub/stdio_lim.h --- glibc-2.0.5c/sysdeps/stub/stdio_lim.h Fri Aug 2 01:05:41 1996 +++ glibc-2.0.6/sysdeps/stub/stdio_lim.h Tue Dec 16 18:35:36 1997 @@ -1,4 +1,9 @@ +#ifdef _STDIO_H #define L_tmpnam 1 #define TMPMAX 0 -#define FOPEN_MAX 16 #define FILENAME_MAX 14 +#endif + +#ifndef FOPEN_MAX +#define FOPEN_MAX 16 +#endif diff -durpN glibc-2.0.5c/sysdeps/unix/inet/syscalls.list glibc-2.0.6/sysdeps/unix/inet/syscalls.list --- glibc-2.0.5c/sysdeps/unix/inet/syscalls.list Wed Jul 17 12:14:23 1996 +++ glibc-2.0.6/sysdeps/unix/inet/syscalls.list Sun Dec 7 23:38:10 1997 @@ -1,20 +1,20 @@ # File name Caller Syscall name # args Strong name Weak names -accept - accept 3 accept +accept - accept 3 __libc_accept accept bind - bind 3 bind -connect - connect 3 __connect connect +connect - connect 3 __libc_connect __connect connect gethostid - gethostid 0 gethostid gethostname - gethostname 2 __gethostname gethostname getpeername - getpeername 3 getpeername getsockname - getsockname 3 getsockname getsockopt - getsockopt 5 getsockopt listen - listen 2 listen -recv - recv 4 recv -recvfrom - recvfrom 6 recvfrom -recvmsg - recvmsg 3 recvmsg -send - send 4 __send send -sendmsg - sendmsg 3 sendmsg -sendto - sendto 6 sendto +recv - recv 4 __libc_recv recv +recvfrom - recvfrom 6 __libc_recvfrom recvfrom +recvmsg - recvmsg 3 __libc_recvmsg recvmsg +send - send 4 __libc_send __send send +sendmsg - sendmsg 3 __libc_sendmsg sendmsg +sendto - sendto 6 __libc_sendto sendto sethostid - sethostid 1 sethostid sethostname - sethostname 2 sethostname setsockopt - setsockopt 5 setsockopt diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/Dist glibc-2.0.6/sysdeps/unix/sysv/linux/Dist --- glibc-2.0.5c/sysdeps/unix/sysv/linux/Dist Mon Aug 4 19:32:22 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/Dist Tue Dec 9 18:31:01 1997 @@ -3,13 +3,16 @@ init-first.h kernel_sigaction.h kernel_stat.h llseek.c +scsi/sg.h siglist.h sysctl.c termio.h net/ethernet.h net/if.h net/if_arp.h +net/if_packet.h net/if_ppp.h +net/if_slip.h net/ppp-comp.h net/ppp_defs.h net/route.h @@ -32,9 +35,9 @@ sys/kd.h sys/kdaemon.h sys/kernel_termios.h sys/klog.h -sys/module.h sys/mount.h sys/mtio.h +sys/prctl.h sys/procfs.h sys/quota.h sys/socketcall.h diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/Makefile glibc-2.0.6/sysdeps/unix/sysv/linux/Makefile --- glibc-2.0.5c/sysdeps/unix/sysv/linux/Makefile Mon Aug 4 19:32:08 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/Makefile Tue Dec 9 18:30:46 1997 @@ -8,10 +8,10 @@ ifeq ($(subdir),misc) sysdep_routines += sysctl clone llseek sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h sys/mtio.h \ - sys/module.h sys/io.h sys/klog.h sys/kdaemon.h \ + sys/io.h sys/klog.h sys/kdaemon.h \ sys/user.h syscall-list.h sys/sysmacros.h sys/procfs.h \ sys/debugreg.h sys/kd.h sys/soundcard.h sys/vt.h \ - sys/quota.h sys/fsuid.h + sys/quota.h sys/fsuid.h sys/prctl.h scsi/sg.h # Generate the list of SYS_* macros for the system calls (__NR_* macros). $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/sys/syscall.h @@ -56,7 +56,7 @@ ifeq ($(subdir),inet) sysdep_headers += netinet/in_systm.h netinet/udp.h \ netinet/if_fddi.h netinet/if_tr.h netinet/igmp.h \ netinet/ip_fw.h netinet/ip_icmp.h netipx/ipx.h \ - sys/socketvar.h + sys/socketvar.h net/if_slip.h net/if_packet.h endif # Don't compile the ctype glue code, since there is no old non-GNU C library. diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/_G_config.h glibc-2.0.6/sysdeps/unix/sysv/linux/_G_config.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/_G_config.h Sat Aug 9 07:01:18 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/_G_config.h Mon Nov 17 14:02:15 1997 @@ -9,6 +9,7 @@ #include #define __need_size_t #define __need_wint_t +#define __need_NULL #include #ifndef _WINT_T /* Integral type unchanged by default argument promotions that can diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/accept.S glibc-2.0.6/sysdeps/unix/sysv/linux/accept.S --- glibc-2.0.5c/sysdeps/unix/sysv/linux/accept.S Fri Sep 8 10:00:35 1995 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/accept.S Tue Dec 9 17:41:15 1997 @@ -1,2 +1,3 @@ #define socket accept #include +strong_alias (__accept, __libc_accept) diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/alpha/gnu/types.h glibc-2.0.6/sysdeps/unix/sysv/linux/alpha/gnu/types.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/alpha/gnu/types.h Mon Aug 4 17:46:02 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/alpha/gnu/types.h Tue Dec 16 20:55:00 1997 @@ -79,7 +79,7 @@ typedef unsigned long int __fd_mask; /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ #define __NFDBITS (8 * sizeof (__fd_mask)) #define __FDELT(d) ((d) / __NFDBITS) -#define __FDMASK(d) (1 << ((d) % __NFDBITS)) +#define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS)) /* fd_set for select and pselect. */ typedef struct @@ -90,5 +90,7 @@ typedef struct typedef int __key_t; + +typedef int __ipc_pid_t; #endif /* gnu/types.h */ diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S glibc-2.0.6/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S --- glibc-2.0.5c/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S Mon Aug 4 17:49:47 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S Fri Nov 14 19:57:59 1997 @@ -41,9 +41,9 @@ LEAF(__ieee_set_fp_control, 16) ldi v0, __NR_osf_setsysinfo call_pal PAL_callsys - lda sp, 16(sp) - bne a3, $error + + lda sp, 16(sp) ret $error: diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/alpha/init-first.h glibc-2.0.6/sysdeps/unix/sysv/linux/alpha/init-first.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/alpha/init-first.h Wed Sep 4 22:48:43 1996 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/alpha/init-first.h Fri Dec 5 01:24:53 1997 @@ -2,28 +2,26 @@ This is done in one of two ways: either in the stack context of program start, or having dlopen pass them in. */ -#define SYSDEP_CALL_INIT(NAME, INIT) \ - asm(".weak _dl_starting_up\n\t" \ - ".globl " #NAME "\n\t" \ - ".ent " #NAME "\n" \ - #NAME ":\n\t" \ - "ldgp $29, 0($27)\n\t" \ - ".prologue 1\n\t" \ - ".set at\n\t" \ - /* Are we a dynamic libc being loaded into a static program? */ \ - "lda $0, _dl_starting_up\n\t" \ - "beq $0, 1f\n\t" \ - "ldl $0, 0($0)\n" \ - "cmpeq $31, $0, $0\n" \ - "1:\t" \ - "stl $0, __libc_multiple_libcs\n\t" \ - /* If so, argc et al are in a0-a2 already. Otherwise, load them. */ \ - "bne $0, 2f\n\t" \ - "ldl $16, 0($30)\n\t" \ - "lda $17, 8($30)\n\t" \ - "s8addq $16, $17, $18\n\t" \ - "addq $18, 8, $18\n" \ - "2:\t" \ - "br $31, " #INIT "..ng\n\t" \ - ".set noat\n\t" \ - ".end " #NAME); +#define SYSDEP_CALL_INIT(NAME, INIT) asm("\ + .weak _dl_starting_up + .globl " #NAME " + .ent " #NAME " +" #NAME ": + ldgp $29, 0($27) + .prologue 1 + .set at + /* Are we a dynamic libc being loaded into a static program? */ + lda $0, _dl_starting_up + beq $0, 1f + ldl $0, 0($0) + cmpeq $31, $0, $0 +1: stl $0, __libc_multiple_libcs + /* If so, argc et al are in a0-a2 already. Otherwise, load them. */ + bne $0, 2f + ldl $16, 0($30) + lda $17, 8($30) + s8addq $16, $17, $18 + addq $18, 8, $18 +2: br $31, " ASM_ALPHA_NG_SYMBOL_PREFIX #INIT "..ng + .set noat + .end " #NAME); diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/connect.S glibc-2.0.6/sysdeps/unix/sysv/linux/connect.S --- glibc-2.0.5c/sysdeps/unix/sysv/linux/connect.S Fri Sep 8 10:00:41 1995 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/connect.S Tue Dec 9 17:42:58 1997 @@ -1,2 +1,3 @@ #define socket connect #include +strong_alias (__connect, __libc_connect) diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/gnu/types.h glibc-2.0.6/sysdeps/unix/sysv/linux/gnu/types.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/gnu/types.h Mon Jan 6 17:07:10 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/gnu/types.h Tue Dec 16 20:55:26 1997 @@ -74,7 +74,7 @@ typedef unsigned long int __fd_mask; /* It's easier to assume 8-bit bytes than to get CHAR_BIT. */ #define __NFDBITS (8 * sizeof (__fd_mask)) #define __FDELT(d) ((d) / __NFDBITS) -#define __FDMASK(d) (1 << ((d) % __NFDBITS)) +#define __FDMASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS)) /* fd_set for select and pselect. */ typedef struct @@ -85,5 +85,7 @@ typedef struct typedef int __key_t; + +typedef short int __ipc_pid_t; #endif /* gnu/types.h */ diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/net/if.h glibc-2.0.6/sysdeps/unix/sysv/linux/net/if.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/net/if.h Thu Jan 23 21:23:45 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/net/if.h Wed Nov 19 18:51:52 1997 @@ -42,7 +42,10 @@ enum IFF_MASTER = 0x400, /* Master of a load balancer. */ IFF_SLAVE = 0x800, /* Slave of a load balancer. */ - IFF_MULTICAST = 0x1000 /* Supports multicast. */ + IFF_MULTICAST = 0x1000, /* Supports multicast. */ + + IFF_PORTSEL = 0x2000, /* Can set media type. */ + IFF_AUTOMEDIA = 0x4000 /* Auto media select active. */ }; /* The ifaddr structure contains information about one address of an diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/net/if_arp.h glibc-2.0.6/sysdeps/unix/sysv/linux/net/if_arp.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/net/if_arp.h Mon Aug 4 18:12:52 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/net/if_arp.h Fri Nov 14 20:02:36 1997 @@ -69,7 +69,7 @@ struct arphdr /* ARP protocol HARDWARE identifiers. */ #define ARPHRD_NETROM 0 /* From KA9Q: NET/ROM pseudo. */ -#define ARPHRD_ETHER 1 /* Ethernet 10Mbps. */ +#define ARPHRD_ETHER 1 /* Ethernet 10/100Mbps. */ #define ARPHRD_EETHER 2 /* Experimental Ethernet. */ #define ARPHRD_AX25 3 /* AX.25 Level 2. */ #define ARPHRD_PRONET 4 /* PROnet token ring. */ @@ -92,6 +92,7 @@ struct arphdr #define ARPHRD_PPP 512 #define ARPHRD_HDLC 513 /* (Cisco) HDLC. */ #define ARPHRD_LAPB 516 /* LAPB. */ +#define ARPHRD_ASH 517 /* ASH. */ #define ARPHRD_TUNNEL 768 /* IPIP tunnel. */ #define ARPHRD_TUNNEL6 769 /* IPIP6 tunnel. */ diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/net/if_packet.h glibc-2.0.6/sysdeps/unix/sysv/linux/net/if_packet.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/net/if_packet.h Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/net/if_packet.h Tue Dec 9 18:30:23 1997 @@ -0,0 +1,26 @@ +/* Definitions for use with Linux SOCK_PACKET sockets. + Copyright (C) 1997 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 Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef __IF_PACKET_H +#define __IF_PACKET_H + +/* For now we can just use the kernel definitions. */ +#include + +#endif diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/net/if_slip.h glibc-2.0.6/sysdeps/unix/sysv/linux/net/if_slip.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/net/if_slip.h Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/net/if_slip.h Tue Dec 9 18:29:53 1997 @@ -0,0 +1,25 @@ +/* Copyright (C) 1997 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 Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _NET_IF_SLIP_H +#define _NET_IF_SLIP_H 1 + +/* We can use the kernel header. */ +#include + +#endif /* net/if_slip.h. */ diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/netinet/ip_fw.h glibc-2.0.6/sysdeps/unix/sysv/linux/netinet/ip_fw.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/netinet/ip_fw.h Sun Dec 28 20:10:49 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/netinet/ip_fw.h Fri Nov 14 20:03:34 1997 @@ -70,7 +70,7 @@ struct ip_fw { /* count of 0 means match all ports) */ #define IP_FW_MAX_PORTS 10 /* A reasonable maximum */ u_int16_t fw_pts[IP_FW_MAX_PORTS]; /* Array of port numbers to match */ - unsigned long int fw_pcnt, fw_bcnt; /* Packet and byte counters */ + u_int32_t fw_pcnt, fw_bcnt; /* Packet and byte counters */ u_int8_t fw_tosand, fw_tosxor; /* Revised packet priority */ char fw_vianame[IFNAMSIZ]; /* name of interface "via" */ }; diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/ptrace.c glibc-2.0.6/sysdeps/unix/sysv/linux/ptrace.c --- glibc-2.0.5c/sysdeps/unix/sysv/linux/ptrace.c Mon Aug 4 19:46:37 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/ptrace.c Fri Nov 14 20:04:05 1997 @@ -21,12 +21,12 @@ #include #include -extern int __syscall_ptrace (int, pid_t, void *, void *); +extern long int __syscall_ptrace (int, pid_t, void *, void *); -int +long int ptrace (enum __ptrace_request request, ...) { - int res, ret; + long int res, ret; va_list ap; pid_t pid; void *addr, *data; diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/pty.c glibc-2.0.6/sysdeps/unix/sysv/linux/pty.c --- glibc-2.0.5c/sysdeps/unix/sysv/linux/pty.c Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/pty.c Tue Nov 18 12:12:48 1997 @@ -0,0 +1,3 @@ +/* Linux does not has the `revoke' function. */ +#define REVOKE(Line) +#include diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/recv.S glibc-2.0.6/sysdeps/unix/sysv/linux/recv.S --- glibc-2.0.5c/sysdeps/unix/sysv/linux/recv.S Fri Sep 8 10:01:19 1995 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/recv.S Tue Dec 9 17:42:33 1997 @@ -1,2 +1,3 @@ #define socket recv #include +strong_alias (__recv, __libc_recv) diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/recvfrom.S glibc-2.0.6/sysdeps/unix/sysv/linux/recvfrom.S --- glibc-2.0.5c/sysdeps/unix/sysv/linux/recvfrom.S Fri Sep 8 10:01:21 1995 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/recvfrom.S Tue Dec 9 17:41:53 1997 @@ -1,2 +1,3 @@ #define socket recvfrom #include +strong_alias (__recvfrom, __libc_recvfrom) diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/recvmsg.S glibc-2.0.6/sysdeps/unix/sysv/linux/recvmsg.S --- glibc-2.0.5c/sysdeps/unix/sysv/linux/recvmsg.S Fri Sep 8 10:01:23 1995 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/recvmsg.S Tue Dec 9 17:42:12 1997 @@ -1,2 +1,3 @@ #define socket recvmsg #include +strong_alias (__recvmsg, __libc_recvmsg) diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/scsi/sg.h glibc-2.0.6/sysdeps/unix/sysv/linux/scsi/sg.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/scsi/sg.h Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/scsi/sg.h Tue Dec 9 18:27:15 1997 @@ -0,0 +1,59 @@ +/* Copyright (C) 1997 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 Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* + History: + Started: Aug 9 by Lawrence Foard (entropy@world.std.com), to allow user + process control of SCSI devices. + Development Sponsored by Killy Corp. NY NY +*/ + +#ifndef _SCSI_SG_H +#define _SCSI_SG_H 1 + +/* An SG device is accessed by writing "packets" to it, the replies + are then read using the read call. The same header is used for + replies; ignore the reply_len field. */ + +struct sg_header + { + int pack_len; /* length of incoming packet + (including header). */ + int reply_len; /* max length of expected reply. */ + int pack_id; /* id number of packet. */ + int result; /* 0==ok, otherwise error number. */ + unsigned int twelve_byte:1; /* force 12 byte command length for + group 6 & 7 commands. */ + unsigned int other_flags:31; /* for future use. */ + unsigned char sense_buffer[16]; /* used only by reads. */ + /* command follows then data for command. */ + }; + +/* ioctl's */ +#define SG_SET_TIMEOUT 0x2201 /* set timeout *(int *)arg==timeout */ +#define SG_GET_TIMEOUT 0x2202 /* get timeout return timeout */ + +#define SG_DEFAULT_TIMEOUT (60*HZ) /* 1 minute timeout */ +#define SG_DEFAULT_RETRIES 1 + +#define SG_MAX_QUEUE 4 /* maximum outstanding request, arbitrary, may be + changed if sufficient DMA buffer room available. */ + +#define SG_BIG_BUFF 32768 + +#endif /* scsi/sg.h */ diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/send.S glibc-2.0.6/sysdeps/unix/sysv/linux/send.S --- glibc-2.0.5c/sysdeps/unix/sysv/linux/send.S Fri Sep 8 10:01:29 1995 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/send.S Tue Dec 9 17:41:34 1997 @@ -1,2 +1,3 @@ #define socket send #include +strong_alias (__send, __libc_send) diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/sendmsg.S glibc-2.0.6/sysdeps/unix/sysv/linux/sendmsg.S --- glibc-2.0.5c/sysdeps/unix/sysv/linux/sendmsg.S Fri Sep 8 10:01:30 1995 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/sendmsg.S Tue Dec 9 17:42:23 1997 @@ -1,2 +1,3 @@ #define socket sendmsg #include +strong_alias (__sendmsg, __libc_sendmsg) diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/sendto.S glibc-2.0.6/sysdeps/unix/sysv/linux/sendto.S --- glibc-2.0.5c/sysdeps/unix/sysv/linux/sendto.S Fri Sep 8 10:01:32 1995 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/sendto.S Tue Dec 9 17:42:47 1997 @@ -1,2 +1,3 @@ #define socket sendto #include +strong_alias (__sendto, __libc_sendto) diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/socketbits.h glibc-2.0.6/sysdeps/unix/sysv/linux/socketbits.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/socketbits.h Mon Aug 4 20:05:17 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/socketbits.h Thu Dec 4 13:33:17 1997 @@ -68,7 +68,15 @@ enum __socket_type #define PF_AAL5 8 /* Reserved for Werner's ATM. */ #define PF_X25 9 /* Reserved for X.25 project. */ #define PF_INET6 10 /* IP version 6. */ -#define PF_MAX 12 /* For now.. */ +#define PF_ROSE 11 /* Amateur Radio X.25 PLP */ +#define PF_DECnet 12 /* Reserved for DECnet project */ +#define PF_NETBEUI 13 /* Reserved for 802.2LLC project*/ +#define PF_SECURITY 14 /* Security callback pseudo AF */ +#define pseudo_PF_KEY 15 /* PF_KEY key management API */ +#define PF_NETLINK 16 +#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD */ +#define PF_PACKET 17 /* Packet family */ +#define PF_MAX 32 /* For now.. */ /* Address families. */ #define AF_UNSPEC PF_UNSPEC @@ -84,10 +92,29 @@ enum __socket_type #define AF_AAL5 PF_AAL5 #define AF_X25 PF_X25 #define AF_INET6 PF_INET6 +#define AF_ROSE PF_ROSE +#define AF_DECnet PF_DECnet +#define AF_NETBEUI PF_NETBEUI +#define AF_SECURITY PF_SECURITY +#define AF_KEY pseudo_PF_KEY +#define AF_NETLINK PF_NETLINK +#define AF_ROUTE PF_ROUTE +#define AF_PACKET PF_PACKET #define AF_MAX PF_MAX -/* Raw IP packet level. */ +/* Socket level values. Others are defined in the appropriate headers. + + XXX These definitions also should go into the appropriate headers as + far as they are available. */ +#define SOL_IPV6 41 +#define SOL_ICMPV6 58 #define SOL_RAW 255 +#define SOL_AX25 257 +#define SOL_ATALK 258 +#define SOL_NETROM 259 +#define SOL_ROSE 260 +#define SOL_DECNET 261 +#define SOL_X25 262 /* Maximum queue length specifiable by listen. */ #define SOMAXCONN 128 @@ -119,13 +146,13 @@ enum struct msghdr { __ptr_t msg_name; /* Address to send to/receive from. */ - socklen_t msg_namelen; /* Length of address data. */ + socklen_t msg_namelen; /* Length of address data. */ struct iovec *msg_iov; /* Vector of data to send/receive into. */ - int msg_iovlen; /* Number of elements in the vector. */ + size_t msg_iovlen; /* Number of elements in the vector. */ __ptr_t msg_control; /* Ancillary data (eg BSD filedesc passing). */ - socklen_t msg_controllen; /* Ancillary data buffer length. */ + size_t msg_controllen; /* Ancillary data buffer length. */ int msg_flags; /* Flags on received message. */ }; @@ -133,7 +160,7 @@ struct msghdr /* Structure used for storage of ancillary data object information. */ struct cmsghdr { - socklen_t cmsg_len; /* Length of data in cmsg_data plus length + size_t cmsg_len; /* Length of data in cmsg_data plus length of cmsghdr structure. */ int cmsg_level; /* Originating protocol. */ int cmsg_type; /* Protocol specific type. */ @@ -150,7 +177,7 @@ struct cmsghdr #endif #define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg) #define CMSG_FIRSTHDR(mhdr) \ - ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ + ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL) @@ -175,6 +202,16 @@ __cmsg_nxthdr (struct msghdr *__mhdr, st return NULL; return (struct cmsghdr *) __p; } + +/* Socket level message types. This must match the definitions in + . */ +enum + { + SCM_RIGHTS = 0x01, /* Data array contains access rights. */ +#define SCM_RIGHTS SCM_RIGHTS + __SCM_CREDENTIALS = 0x02, /* Data array is `struct ucred'. */ + __SCM_CONNECT = 0x03 /* Data array is `struct scm_connect'. */ + }; /* Get socket manipulation related informations from kernel headers. */ diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/kd.h glibc-2.0.6/sysdeps/unix/sysv/linux/sys/kd.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/kd.h Thu Apr 17 16:03:54 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/sys/kd.h Mon Dec 22 20:36:04 1997 @@ -20,7 +20,9 @@ #define _SYS_KD_H 1 /* Make sure the header is not loaded. */ +#ifndef _LINUX_TYPES_H #define _LINUX_TYPES_H 1 +#endif #include diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/mman.h glibc-2.0.6/sysdeps/unix/sysv/linux/sys/mman.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/mman.h Mon Dec 9 22:07:46 1996 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/sys/mman.h Wed Dec 3 10:12:03 1997 @@ -1,5 +1,5 @@ /* Definitions for BSD-style memory management. Linux version. - Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -37,6 +37,9 @@ #ifndef MAP_FILE #define MAP_FILE 0 #endif + +/* Return value of `mmap' in case of an error. */ +#define MAP_FAILED ((__ptr_t) -1) __BEGIN_DECLS /* Map addresses starting near ADDR and extending for LEN bytes. from diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/module.h glibc-2.0.6/sysdeps/unix/sysv/linux/sys/module.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/module.h Thu Dec 19 20:35:23 1996 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/sys/module.h Wed Dec 31 19:00:00 1969 @@ -1,61 +0,0 @@ -/* Copyright (C) 1996 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 Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _SYS_MODULE_H - -#define _SYS_MODULE_H 1 -#include - -#define __need_size_t -#include - -#include - -__BEGIN_DECLS - -/* Return number of kernel symbols if TABLE == NULL, otherwise, return - kernel symbols in TABLE. TABLE must be large enough to hold all - kernel symbols. */ -extern int get_kernel_syms __P ((struct kernel_sym *__table)); - -/* Create a new module of name MODULE_NAME and of size SIZE bytes. - The return address is the starting address of the new module or -1L - if the module cannot be created (the return value needs to be cast - to (long) to detect the error condition). */ -extern unsigned long int create_module __P ((__const char *__module_name, - size_t __size)); - -/* Initialize the module called MODULE_NAME with the CONTENTSSIZE - bytes starting at address CONTENTS. CONTENTS normally contains the - text and data segment of the module (the bss is implicitly zeroed). - After copying the contents, the function pointed to by - ROUTINES.init is executed. When the module is no longer needed, - ROUTINES.cleanup is executed. SYMTAB is NULL if the module does - not want to export symbols by itself, or a pointer to a symbol - table if the module wants to register its own symbols. */ -extern int init_module __P ((__const char *__module_name, - __const void *__contents, size_t __contentssize, - struct mod_routines *__routines, - struct symbol_table *__symtab)); - -/* Delete the module named MODULE_NAME from the kernel. */ -extern int delete_module __P ((__const char *__module_name)); - -__END_DECLS - -#endif /* sys/module.h */ diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/msq_buf.h glibc-2.0.6/sysdeps/unix/sysv/linux/sys/msq_buf.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/msq_buf.h Tue Jan 21 01:10:25 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/sys/msq_buf.h Mon Dec 22 10:27:54 1997 @@ -46,8 +46,8 @@ struct msqid_ds unsigned short int __msg_cbytes;/* current number of bytes on queue */ unsigned short int msg_qnum; /* number of messages currently on queue */ unsigned short int msg_qbytes;/* max number of bytes allowed on queue */ - int msg_lspid; /* pid of last msgsnd() */ - int msg_lrpid; /* pid of last msgrcv() */ + __ipc_pid_t msg_lspid; /* pid of last msgsnd() */ + __ipc_pid_t msg_lrpid; /* pid of last msgrcv() */ }; #ifdef __USE_MISC diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/prctl.h glibc-2.0.6/sysdeps/unix/sysv/linux/sys/prctl.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/prctl.h Wed Dec 31 19:00:00 1969 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/sys/prctl.h Tue Dec 9 18:26:16 1997 @@ -0,0 +1,32 @@ +/* Copyright (C) 1997 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 Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _SYS_PRCTL_H +#define _SYS_PRCTL_H 1 + +#include +#include /* The magic values come from here */ + +__BEGIN_DECLS + +/* Control process execution. */ +extern int prctl __P ((int __option, ...)); + +__END_DECLS + +#endif /* sys/prctl.h */ diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/ptrace.h glibc-2.0.6/sysdeps/unix/sysv/linux/sys/ptrace.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/ptrace.h Mon Jan 6 17:07:15 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/sys/ptrace.h Fri Nov 14 20:05:00 1997 @@ -93,7 +93,7 @@ enum __ptrace_request appear (those that are used for the particular request) as: pid_t PID, void *ADDR, int DATA, void *ADDR2 after REQUEST. */ -extern int ptrace __P ((enum __ptrace_request __request, ...)); +extern long int ptrace __P ((enum __ptrace_request __request, ...)); __END_DECLS diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/quota.h glibc-2.0.6/sysdeps/unix/sysv/linux/sys/quota.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/quota.h Tue May 7 23:30:47 1996 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/sys/quota.h Fri Nov 14 20:05:17 1997 @@ -1,2 +1,3 @@ /* The kernel header file contains all declarations and definitions. */ +#include #include diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/shm_buf.h glibc-2.0.6/sysdeps/unix/sysv/linux/sys/shm_buf.h --- glibc-2.0.5c/sysdeps/unix/sysv/linux/sys/shm_buf.h Tue Jan 21 01:10:27 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/sys/shm_buf.h Tue Dec 16 20:54:15 1997 @@ -48,8 +48,8 @@ struct shmid_ds __time_t shm_atime; /* time of last shmat() */ __time_t shm_dtime; /* time of last shmdt() */ __time_t shm_ctime; /* time of last change by shmctl() */ - int shm_cpid; /* pid of creator */ - int shm_lpid; /* pid of last shmop */ + __ipc_pid_t shm_cpid; /* pid of creator */ + __ipc_pid_t shm_lpid; /* pid of last shmop */ unsigned short int shm_nattch; /* number of current attaches */ unsigned short int __shm_npages; /* size of segment (pages) */ unsigned long int *__shm_pages; /* array of ptrs to frames -> SHMMAX */ diff -durpN glibc-2.0.5c/sysdeps/unix/sysv/linux/syscalls.list glibc-2.0.6/sysdeps/unix/sysv/linux/syscalls.list --- glibc-2.0.5c/sysdeps/unix/sysv/linux/syscalls.list Mon Aug 4 19:09:18 1997 +++ glibc-2.0.6/sysdeps/unix/sysv/linux/syscalls.list Tue Dec 9 18:25:51 1997 @@ -32,6 +32,7 @@ nfsservctl EXTRA nfsservctl 3 nfsservctl pause - pause 0 __libc_pause pause personality init-first personality 1 __personality personality pipe - pipe 1 __pipe pipe +prctl EXTRA prctl 5 prctl query_module EXTRA query_module 5 query_module quotactl EXTRA quotactl 4 quotactl s_getdents EXTRA getdents 3 __getdents diff -durpN glibc-2.0.5c/termios/cfsetspeed.c glibc-2.0.6/termios/cfsetspeed.c --- glibc-2.0.5c/termios/cfsetspeed.c Mon Aug 4 19:48:44 1997 +++ glibc-2.0.6/termios/cfsetspeed.c Fri Nov 14 20:26:08 1997 @@ -102,7 +102,7 @@ static struct speed_struct /* Set both the input and output baud rates stored in *TERMIOS_P to SPEED. */ -void +int cfsetspeed (struct termios *termios_p, speed_t speed) { size_t cnt; @@ -112,14 +112,16 @@ cfsetspeed (struct termios *termios_p, s { cfsetispeed (termios_p, speed); cfsetospeed (termios_p, speed); - return; + return 0; } else if (speed == speeds[cnt].value) { cfsetispeed (termios_p, speeds[cnt].internal); cfsetospeed (termios_p, speeds[cnt].internal); - return; + return 0; } __set_errno (EINVAL); + + return -1; } diff -durpN glibc-2.0.5c/termios/termios.h glibc-2.0.6/termios/termios.h --- glibc-2.0.5c/termios/termios.h Wed Nov 6 20:34:44 1996 +++ glibc-2.0.6/termios/termios.h Fri Nov 14 20:35:41 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 96 Free Software Foundation, Inc. +/* Copyright (C) 1991, 92, 93, 94, 96, 97 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 @@ -51,7 +51,7 @@ extern int cfsetispeed __P ((struct term #ifdef __USE_BSD /* Set both the input and output baud rates in *TERMIOS_OP to SPEED. */ -extern void cfsetspeed __P ((struct termios *__termios_p, speed_t __speed)); +extern int cfsetspeed __P ((struct termios *__termios_p, speed_t __speed)); #endif diff -durpN glibc-2.0.5c/time/README glibc-2.0.6/time/README --- glibc-2.0.5c/time/README Fri Jan 24 21:36:37 1997 +++ glibc-2.0.6/time/README Tue Sep 9 08:42:04 1997 @@ -3,7 +3,7 @@ The source files `zdump.c' `tzselect.ksh' `checktab.awk' -come from the tzcode1997a package by Arthur David Olsen et.al. +come from the tzcode1997g package by Arthur David Olsen et.al. The files `africa' @@ -25,4 +25,4 @@ The files `zone.tab' `leapseconds' `yearistype' -come from the tzdata1997a package by Arthur David Olsen et.al. +come from the tzdata1997h package by Arthur David Olsen et.al. diff -durpN glibc-2.0.5c/time/africa glibc-2.0.6/time/africa --- glibc-2.0.5c/time/africa Sun Dec 28 20:10:49 1997 +++ glibc-2.0.6/time/africa Thu Nov 13 09:32:47 1997 @@ -1,14 +1,14 @@ -# @(#)africa 7.19 +# @(#)africa 7.20 # This data is by no means authoritative; if you think you know better, # go ahead and edit the file (and please send any changes to # tz@elsie.nci.nih.gov for general use in the future). -# From Paul Eggert (1996-11-22): +# From Paul Eggert (1997-10-05): # # A good source for time zone historical data outside the U.S. is -# Thomas G. Shanks, The International Atlas (3rd edition), -# San Diego: ACS Publications, Inc. (1991). +# Thomas G. Shanks, The International Atlas (4th edition), +# San Diego: ACS Publications, Inc. (1995). # # Gwillim Law writes that a good source # for recent time zone data is the International Air Transport @@ -27,16 +27,40 @@ # Derek Howse, Greenwich time and the discovery of the longitude, # Oxford University Press (1980). # -# For Africa I invented the following time zone abbreviations. -# LMT Local Mean Time -# -1:00 AAT Atlantic Africa Time (no longer used) -# 0:00 WAT West Africa Time -# 1:00 CAT Central Africa Time -# 2:00 SAT South Africa Time +# Previous editions of this database used WAT, CAT, SAT, and EAT +# for +0:00 through +3:00, respectively, +# but Mark R V Murray reports that +# `SAST' is the official abbreviation for +2:00 in the country of South Africa, +# `CAT' is commonly used for +2:00 in countries north of South Africa, and +# `WAT' is probably the best name for +1:00, as the common phrase for +# the area that includes Nigeria is ``West Africa''. +# He has heard of ``Western Sahara Time'' for +0:00 but can find no reference. +# +# To make things confusing, `WAT' seems to have been used for -1:00 long ago; +# I'd guess that this was because people needed _some_ name for -1:00, +# and at the time, far west Africa was the only major land area in -1:00. +# This usage is now obsolete, as the last use of -1:00 on the African +# mainland seems to have been 1976 in Western Sahara. +# +# To summarize, the following abbreviations seem to have some currency: +# -1:00 WAT West Africa Time (no longer used) +# 0:00 GMT Greenwich Mean Time +# 2:00 CAT Central Africa Time +# 2:00 SAST South Africa Standard Time +# and Murray suggests the following abbreviation: +# 1:00 WAT West Africa Time +# I realize that this leads to `WAT' being used for both -1:00 and 1:00 +# for times before 1976, but this is the best I can think of +# until we get more information. +# +# I invented the following abbreviations; corrections are welcome! +# 2:00 WAST West Africa Summer Time +# 2:30 BEAT British East Africa Time (no longer used) +# 2:45 BEAUT British East Africa Unified Time (no longer used) +# 3:00 CAST Central Africa Summer Time (no longer used) +# 3:00 SAST South Africa Summer Time (no longer used) # 3:00 EAT East Africa Time -# The final `T' is replaced by `ST' for summer time, e.g. `SAST'. -# BEAT is British East Africa Time, which was 2:30 before 1948 and 2:45 after. - +# 4:00 EAST East Africa Summer Time (no longer used) # Algeria # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S @@ -79,7 +103,7 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 M # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Luanda 0:52:56 - LMT 1892 0:52:04 - LMT 1911 May 26 # Luanda Mean Time? - 1:00 - CAT + 1:00 - WAT # Bassas da India # uninhabited @@ -88,31 +112,31 @@ Zone Africa/Luanda 0:52:56 - LMT 1892 # Whitman says they switched to 1:00 in 1946, not 1934; go with Shanks. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Porto-Novo 0:10:28 - LMT 1912 - 0:00 - WAT 1934 Feb 26 - 1:00 - CAT + 0:00 - GMT 1934 Feb 26 + 1:00 - WAT # Botswana # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Gaborone 1:43:40 - LMT 1885 - 2:00 - SAT 1943 Sep 19 2:00 - 2:00 1:00 SAST 1944 Mar 19 2:00 - 2:00 - SAT + 2:00 - CAT 1943 Sep 19 2:00 + 2:00 1:00 CAST 1944 Mar 19 2:00 + 2:00 - CAT # Burkina Faso # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Ouagadougou -0:06:04 - LMT 1912 - 0:00 - WAT + 0:00 - GMT # Burundi # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Bujumbura 1:57:28 - LMT 1890 - 2:00 - SAT + 2:00 - CAT # Cameroon # Whitman says they switched to 1:00 in 1920; go with Shanks. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Douala 0:38:48 - LMT 1912 - 1:00 - CAT + 1:00 - WAT # Cape Verde # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -125,14 +149,14 @@ Zone Atlantic/Cape_Verde -1:34:04 - LMT # Central African Republic # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Bangui 1:14:20 - LMT 1912 - 1:00 - CAT + 1:00 - WAT # Chad # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Ndjamena 1:00:12 - LMT 1912 - 1:00 - CAT 1979 Oct 14 - 1:00 1:00 CAST 1980 Mar 8 - 1:00 - CAT + 1:00 - WAT 1979 Oct 14 + 1:00 1:00 WAST 1980 Mar 8 + 1:00 - WAT # Comoros # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -142,19 +166,19 @@ Zone Indian/Comoro 2:53:04 - LMT 1911 Ju # Democratic Republic of Congo # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Kinshasa 1:01:12 - LMT 1897 Nov 9 - 1:00 - CAT + 1:00 - WAT Zone Africa/Lubumbashi 1:49:52 - LMT 1897 Nov 9 - 2:00 - SAT + 2:00 - CAT # Republic of the Congo # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Brazzaville 1:01:08 - LMT 1912 - 1:00 - CAT + 1:00 - WAT # Cote D'Ivoire # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Abidjan -0:16:08 - LMT 1912 - 0:00 - WAT + 0:00 - GMT # Djibouti # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -165,18 +189,6 @@ Zone Africa/Djibouti 2:52:36 - LMT 1911 # Egypt -# From Bob Devine (1988-01-28): -# Egypt: DST from first day of May to first of October (ending may -# also be on Sept 30th not 31st -- you might want to ask one of the -# soc.* groups, you might hit someone who could ask an embassy). -# DST since 1960 except for 1981-82. - -# From U. S. Naval Observatory (1989-01-19): -# EGYPT 2 H AHEAD OF UTC -# EGYPT 3 H AHEAD OF UTC MAY 17 - SEP 30 (AFTER -# EGYPT RAMADAN) - -# From Shanks (1991): # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Egypt 1940 only - Jul 15 0:00 1:00 S Rule Egypt 1940 only - Oct 1 0:00 0 - @@ -191,16 +203,15 @@ Rule Egypt 1957 1958 - Oct 1 0:00 0 - Rule Egypt 1958 only - May 1 0:00 1:00 S Rule Egypt 1959 1981 - May 1 1:00 1:00 S Rule Egypt 1959 1965 - Sep 30 3:00 0 - -Rule Egypt 1966 1990 - Oct 1 3:00 0 - +Rule Egypt 1966 1994 - Oct 1 3:00 0 - Rule Egypt 1982 only - Jul 25 1:00 1:00 S Rule Egypt 1983 only - Jul 12 1:00 1:00 S Rule Egypt 1984 1988 - May 1 1:00 1:00 S Rule Egypt 1989 only - May 6 1:00 1:00 S -Rule Egypt 1990 only - May 1 1:00 1:00 S -Rule Egypt 1991 1994 - May 1 0:00 1:00 S -Rule Egypt 1991 1994 - Oct 1 0:00 0 - -Rule Egypt 1995 max - Apr lastFri 0:00 1:00 S -Rule Egypt 1995 max - Sep lastFri 0:00 0 - +Rule Egypt 1990 1994 - May 1 1:00 1:00 S +# IATA (after 1990) says transitions are at 0:00; go with Shanks. +Rule Egypt 1995 max - Apr lastFri 1:00 1:00 S +Rule Egypt 1995 max - Sep lastFri 3:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Cairo 2:05:00 - LMT 1900 Oct @@ -209,20 +220,24 @@ Zone Africa/Cairo 2:05:00 - LMT 1900 Oct # Equatorial Guinea # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Malabo 0:35:08 - LMT 1912 - 0:00 - WAT 1963 Dec 15 - 1:00 - CAT + 0:00 - GMT 1963 Dec 15 + 1:00 - WAT # Eritrea # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Asmera 2:35:32 - LMT 1870 2:35:32 - AMT 1890 # Asmera Mean Time - 2:35:20 - AAMT 1936 May 5 # Addis Ababa MT? + 2:35:20 - ADMT 1936 May 5 # Adis Dera MT 3:00 - EAT # Ethiopia +# From Paul Eggert (1997-10-05): +# Shanks writes that Ethiopia had six narrowly-spaced time zones between +# 1870 and 1890, and that they merged to 38E50 (2:35:20) in 1890. +# We'll guess that 38E50 is for Adis Dera. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Addis_Ababa 2:34:48 - LMT 1870 - 2:35:20 - AAMT 1936 May 5 # Addis Ababa MT? + 2:35:20 - ADMT 1936 May 5 # Adis Dera MT 3:00 - EAT # Europa Island @@ -231,23 +246,20 @@ Zone Africa/Addis_Ababa 2:34:48 - LMT 18 # Gabon # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Libreville 0:37:48 - LMT 1912 - 1:00 - CAT + 1:00 - WAT # Gambia # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Banjul -1:06:36 - LMT 1912 -1:06:36 - BMT 1935 # Banjul Mean Time - -1:00 - AAT 1964 - 0:00 - WAT + -1:00 - WAT 1964 + 0:00 - GMT # Ghana -# From Paul Eggert (1996-09-03): -# WATST is my invention for ``West Africa one-Third Summer Time''. -# From Shanks (1991): # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Whitman says DST was observed from 1931 to ``the present''; go with Shanks. -Rule Ghana 1936 1942 - Sep 1 0:00 0:20 WATST -Rule Ghana 1936 1942 - Dec 31 0:00 0 WAT +Rule Ghana 1936 1942 - Sep 1 0:00 0:20 GHST +Rule Ghana 1936 1942 - Dec 31 0:00 0 GMT # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Accra -0:00:52 - LMT 1918 0:00 Ghana %s @@ -258,35 +270,33 @@ Zone Africa/Accra -0:00:52 - LMT 1918 # Guinea # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Conakry -0:54:52 - LMT 1912 - 0:00 - WAT 1934 Feb 26 - 1:00 - CAT 1960 - 0:00 - WAT + 0:00 - GMT 1934 Feb 26 + -1:00 - WAT 1960 + 0:00 - GMT # Guinea-Bissau # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Bissau -1:02:20 - LMT 1911 May 26 - 1:00 - CAT 1975 - 0:00 - WAT + -1:00 - WAT 1975 + 0:00 - GMT # Juan de Nova # uninhabited # Kenya -# From Paul Eggert (1993-11-18): -# Shanks says the transition to 2:45 was in 1940, but it must have been 1948. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Nairobi 2:27:16 - LMT 1928 Jul 3:00 - EAT 1930 - 2:30 - BEAT 1948 - 2:45 - BEAT 1960 + 2:30 - BEAT 1940 + 2:45 - BEAUT 1960 3:00 - EAT # Lesotho # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Maseru 1:50:00 - LMT 1903 Mar - 2:00 - SAT 1943 Sep 19 2:00 + 2:00 - SAST 1943 Sep 19 2:00 2:00 1:00 SAST 1944 Mar 19 2:00 - 2:00 - SAT + 2:00 - SAST # Liberia # From Paul Eggert (1993-11-18): @@ -297,25 +307,17 @@ Zone Africa/Maseru 1:50:00 - LMT 1903 Ma # For Liberia before 1972, Shanks reports -0:44, whereas Howse and Whitman # each report -0:44:30; go with the more precise figure. # -# From Shanks (1991), as corrected by Whitman: +# From Shanks, as corrected by Whitman: # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Monrovia -0:43:08 - LMT 1882 -0:43:08 - MMT 1919 Mar # Monrovia Mean Time -0:44:30 - LRT 1972 May # Liberia Time - 0:00 - WAT + 0:00 - GMT ############################################################################### # Libya -# From Bob Devine (January 28 1988): -# Libya: Since 1982 April 1st to September 30th (?) - -# From U. S. Naval Observatory (1989-01-19): -# LIBYAN ARAB 1 H AHEAD OF UTC JAMAHIRIYA/LIBYA -# LIBYAN ARAB 2 H AHEAD OF UTC APR 1 - SEP 30 JAMAHIRIYA/LIBYA - -# From Shanks (1991): # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Libya 1951 only - Oct 14 2:00 1:00 S Rule Libya 1952 only - Jan 1 0:00 0 - @@ -353,24 +355,24 @@ Zone Indian/Antananarivo 3:10:04 - LMT 1 # Malawi # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Blantyre 2:20:00 - LMT 1903 Mar - 2:00 - SAT + 2:00 - CAT # Mali # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Bamako -0:32:00 - LMT 1912 - 0:00 - WAT 1934 Feb 26 - -1:00 - AAT 1960 Jun 20 - 0:00 - WAT + 0:00 - GMT 1934 Feb 26 + -1:00 - WAT 1960 Jun 20 + 0:00 - GMT # no longer different from Bamako, but too famous to omit Zone Africa/Timbuktu -0:12:04 - LMT 1912 - 0:00 - WAT + 0:00 - GMT # Mauritania # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Nouakchott -1:03:48 - LMT 1912 - 0:00 - WAT 1934 Feb 26 - -1:00 - AAT 1960 Jun 20 - 0:00 - WAT + 0:00 - GMT 1934 Feb 26 + -1:00 - WAT 1960 Nov 28 + 0:00 - GMT # Mauritius # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -385,6 +387,7 @@ Zone Indian/Mayotte 3:00:56 - LMT 1911 J 3:00 - EAT # Morocco +# See the `europe' file for Spanish Morocco (Africa/Ceuta). # RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Morocco 1939 only - Sep 12 0:00 1:00 S Rule Morocco 1939 only - Nov 19 0:00 0 - @@ -408,36 +411,40 @@ Zone Africa/Casablanca -0:30:20 - LMT 19 0:00 - WET # Western Sahara Zone Africa/El_Aaiun -0:52:48 - LMT 1934 Jan - -1:00 - AAT 1976 Apr 14 + -1:00 - WAT 1976 Apr 14 0:00 - WET # Mozambique # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Maputo 2:10:20 - LMT 1903 Mar - 2:00 - SAT + 2:00 - CAT # Namibia +# Shanks says DST transitions are at 0:00; go with IATA. +# The 1994-04-03 transition is from Shanks. # RULE NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Namibia 1994 max - Sep Sun>=1 2:00 1:00 S Rule Namibia 1995 max - Apr Sun>=1 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Windhoek 1:08:24 - LMT 1892 Feb 8 1:30 - SWAT 1903 Mar # SW Africa Time - 2:00 - SAT 1942 Sep 20 2:00 + 2:00 - SAST 1942 Sep 20 2:00 2:00 1:00 SAST 1943 Mar 21 2:00 - 2:00 Namibia SA%sT + 2:00 - SAST 1990 Mar 21 # independence + 2:00 - CAT 1994 Apr 3 + 1:00 Namibia WA%sT # Niger # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Africa/Niamey 0:08:28 - LMT 1912 - 1:00 - CAT 1934 Feb 26 - 0:00 - WAT 1960 - 1:00 - CAT +Zone Africa/Niamey 0:08:28 - LMT 1912 + -1:00 - WAT 1934 Feb 26 + 0:00 - GMT 1960 + 1:00 - WAT # Nigeria # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Lagos 0:13:36 - LMT 1919 Sep - 1:00 - CAT + 1:00 - WAT # Reunion # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -447,12 +454,15 @@ Zone Indian/Reunion 3:41:52 - LMT 1911 J # Rwanda # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Kigali 2:00:16 - LMT 1935 Jun - 2:00 - SAT + 2:00 - CAT # St Helena +# From Paul Eggert (1997-10-05): +# Shanks says St Helena was 1W26 (-0:05:44) from 1890 to 1951, +# but this is most likely a typo for 5W42, the longitude of Jamestown. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Atlantic/St_Helena -0:22:48 - LMT 1890 # Jamestown - -0:06 - SHT 1951 # St Helena Time (?) + -0:22:48 - JMT 1951 # Jamestown Mean Time 0:00 - GMT # The other parts of the St Helena territory are similar: # Tristan da Cunha: on GMT, say Whitman and the CIA @@ -464,13 +474,13 @@ Zone Atlantic/St_Helena -0:22:48 - LMT 1 # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Sao_Tome 0:26:56 - LMT 1884 -0:36:32 - LMT 1912 # Lisbon Mean Time - 0:00 - WAT + 0:00 - GMT # Senegal # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Dakar -1:09:44 - LMT 1912 - -1:00 - AAT 1941 Jun - 0:00 - WAT + -1:00 - WAT 1941 Jun + 0:00 - GMT # Seychelles # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -480,34 +490,34 @@ Zone Indian/Mahe 3:41:48 - LMT 1906 Jun # Sierra Leone # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S # Whitman gives Mar 31 - Aug 31 for 1931 on; go with Shanks. -Rule SL 1935 1942 - Jun 1 0:00 1:00 S -Rule SL 1935 1942 - Oct 1 0:00 0 - -Rule SL 1957 1962 - Jun 1 0:00 1:00 S -Rule SL 1957 1962 - Sep 1 0:00 0 - +Rule SL 1935 1942 - Jun 1 0:00 0:40 SLST +Rule SL 1935 1942 - Oct 1 0:00 0 WAT +Rule SL 1957 1962 - Jun 1 0:00 1:00 SLST +Rule SL 1957 1962 - Sep 1 0:00 0 GMT # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Freetown -0:53:00 - LMT 1882 -0:53:00 - FMT 1913 Jun # Freetown Mean Time - -1:00 SL AA%sT 1957 - 0:00 SL WA%sT + -1:00 SL %s 1957 + 0:00 SL %s # Somalia -# From Paul Eggert (1993-11-18): -# Shanks omits the 1948 transition to 2:45; this is probably a typo. # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Mogadishu 3:01:28 - LMT 1893 Nov 3:00 - EAT 1931 - 2:30 - BEAT 1948 - 2:45 - BEAT 1957 # not in Shanks + 2:30 - BEAT 1957 3:00 - EAT # South Africa # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 S +Rule SA 1942 1943 - Sep Sun>=15 2:00 1:00 - Rule SA 1943 1944 - Mar Sun>=15 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Johannesburg 1:52:00 - LMT 1892 Feb 8 - 1:30 - SAT 1903 Mar - 2:00 SA SA%sT + 1:30 - SAST 1903 Mar + 2:00 SA SAST +# Shanks erroneously claims that most of South Africa switched to 1:00 +# on 1994-04-03 at 00:00. +# # Marion and Prince Edward Is # weather station since 1947 # no information @@ -524,24 +534,24 @@ Rule Sudan 1971 only - Apr 30 0:00 1:00 Rule Sudan 1972 1985 - Apr lastSun 0:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Khartoum 2:10:08 - LMT 1931 - 2:00 Sudan EE%sT + 2:00 Sudan CA%sT # Swaziland # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Mbabane 2:04:24 - LMT 1903 Mar - 2:00 - SAT + 2:00 - SAST # Tanzania # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Dar_es_Salaam 2:37:08 - LMT 1931 3:00 - EAT 1948 - 2:45 - BEAT 1961 + 2:45 - BEAUT 1961 3:00 - EAT # Togo # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Lome 0:04:52 - LMT 1893 - 0:00 - WAT + 0:00 - GMT # Tromelin # uninhabited @@ -581,15 +591,15 @@ Zone Africa/Tunis 0:40:44 - LMT 1881 May Zone Africa/Kampala 2:09:40 - LMT 1928 Jul 3:00 - EAT 1930 2:30 - BEAT 1948 - 2:45 - BEAT 1957 + 2:45 - BEAUT 1957 3:00 - EAT # Zambia # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Lusaka 1:53:08 - LMT 1903 Mar - 2:00 - SAT + 2:00 - CAT # Zimbabwe # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Harare 2:04:12 - LMT 1903 Mar - 2:00 - SAT + 2:00 - CAT diff -durpN glibc-2.0.5c/time/mktime.c glibc-2.0.6/time/mktime.c --- glibc-2.0.5c/time/mktime.c Mon Aug 4 19:14:49 1997 +++ glibc-2.0.6/time/mktime.c Wed Sep 10 00:20:26 1997 @@ -225,10 +225,10 @@ __mktime_internal (tp, convert, offset) [mon_remainder + 12 * negative_mon_remainder]) + mday - 1); + int sec_requested = sec; #if LEAP_SECONDS_POSSIBLE /* Handle out-of-range seconds specially, since ydhms_tm_diff assumes every minute has 60 seconds. */ - int sec_requested = sec; if (sec < 0) sec = 0; if (59 < sec) diff -durpN glibc-2.0.5c/time/tzfile.c glibc-2.0.6/time/tzfile.c --- glibc-2.0.5c/time/tzfile.c Sun Dec 28 20:10:51 1997 +++ glibc-2.0.6/time/tzfile.c Tue Oct 28 10:50:38 1997 @@ -420,7 +420,7 @@ __tzfile_compute (time_t timer, int use_ { struct ttinfo *info = find_transition (timer); __daylight = info->isdst; - __timezone = info->offset; + __timezone = -info->offset; for (i = 0; i < num_types && i < sizeof (__tzname) / sizeof (__tzname[0]); ++i) diff -durpN glibc-2.0.5c/time/tzset.c glibc-2.0.6/time/tzset.c --- glibc-2.0.5c/time/tzset.c Sun Dec 28 20:10:51 1997 +++ glibc-2.0.6/time/tzset.c Tue Oct 28 22:16:12 1997 @@ -543,7 +543,7 @@ tz_compute (timer, tm) return 0; __daylight = timer >= tz_rules[0].change && timer < tz_rules[1].change; - __timezone = tz_rules[__daylight ? 1 : 0].offset; + __timezone = -tz_rules[__daylight].offset; __tzname[0] = (char *) tz_rules[0].name; __tzname[1] = (char *) tz_rules[1].name; @@ -624,7 +624,7 @@ __tz_convert (const time_t *timer, int u { tp->tm_isdst = __daylight; tp->tm_zone = __tzname[__daylight]; - tp->tm_gmtoff = __timezone; + tp->tm_gmtoff = -__timezone; } else { diff -durpN glibc-2.0.5c/version.h glibc-2.0.6/version.h --- glibc-2.0.5c/version.h Thu Jun 5 12:14:36 1997 +++ glibc-2.0.6/version.h Sat Dec 27 16:01:11 1997 @@ -1,4 +1,4 @@ /* This file just defines the current version number of libc. */ -#define RELEASE "experimental" -#define VERSION "2.0.5" +#define RELEASE "production" +#define VERSION "2.0.6" diff -durpN glibc-2.0.5c/wctype/test_wctype.c glibc-2.0.6/wctype/test_wctype.c --- glibc-2.0.5c/wctype/test_wctype.c Fri May 3 13:43:45 1996 +++ glibc-2.0.6/wctype/test_wctype.c Tue Dec 9 17:03:04 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997 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 @@ -48,12 +48,20 @@ main (int argc, char *argv[]) { #define TEST(test) \ do \ - if ((is##test (ch) == 0) != (iswctype (ch, bit_##test)) == 0) \ - { \ - printf ("class `%s' test for character \\%o failed\n", \ - #test, ch); \ - result = 1; \ - } \ + { \ + if ((is##test (ch) == 0) != (iswctype (ch, bit_##test)) == 0) \ + { \ + printf ("class `%s' test for character \\%o failed\n", \ + #test, ch); \ + result = 1; \ + } \ + if ((is##test (ch) == 0) != (isw##test (ch) == 0)) \ + { \ + printf ("`isw%s' test for character \\%o failed\n", \ + #test, ch); \ + result = 1; \ + } \ + } \ while (0) TEST (alnum); diff -durpN glibc-2.0.5c/wctype/wctype.c glibc-2.0.6/wctype/wctype.c --- glibc-2.0.5c/wctype/wctype.c Wed May 1 09:46:20 1996 +++ glibc-2.0.6/wctype/wctype.c Tue Dec 9 15:00:53 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper, . @@ -42,9 +42,9 @@ wctype (const char *property) #if __BYTE_ORDER == __BIG_ENDIAN return result; #else -# define SWAPU32(w) \ - (((w) << 24) | (((w) & 0xff00) << 8) | (((w) >> 8) & 0xff00) | ((w) >> 24)) +#define XSWAPU32(w) \ + ((((w) & 0xff00ff00) >> 8) | (((w) & 0xff00ff) << 8)) - return SWAPU32 (result); + return XSWAPU32 (result); #endif } diff -durpN glibc-2.0.5c/xopen_lim.h glibc-2.0.6/xopen_lim.h --- glibc-2.0.5c/xopen_lim.h Tue Nov 5 23:21:52 1996 +++ glibc-2.0.6/xopen_lim.h Tue Dec 16 19:44:58 1997 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997 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 @@ -24,9 +24,11 @@ should be used to obtain the actual value. */ #ifndef _XOPEN_LIM_H - #define _XOPEN_LIM_H 1 +#define __need_FOPEN_MAX +#include + /* We do not provide fixed values for ARG_MAX Maximum length of argument to the `exec' function @@ -53,7 +55,7 @@ #define IOV_MAX _XOPEN_IOV_MAX /* The number of streams that one process can have open at one time. */ -#define STREAM_MAX _POSIX_STREAM_MAX +#define STREAM_MAX FOPEN_MAX /* Maximum number of bytes supported for the name of a time zone. */ #define TZNAME_MAX _POSIX_TZNAME_MAX