about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-10-06 02:05:11 +0000
committerUlrich Drepper <drepper@redhat.com>1996-10-06 02:05:11 +0000
commitcccda09fd700b0720f2ec3c7c516e0fedca4a6c2 (patch)
tree5315e37ded435676bc9fff5462811cb85af47994
parent106b47fccffad8b701393adfe0bff6aa8abb9852 (diff)
downloadglibc-cvs/libc-970912.tar.gz
glibc-cvs/libc-970912.tar.xz
glibc-cvs/libc-970912.zip
Sun Oct  6 02:05:52 1996  Ulrich Drepper  <drepper@cygnus.com>

	* posix/getopt.c: Add casts to prevent warnings.
	* posix/regex.c: Likewise.

	* math/Makefile (long-m-routines, long-m-yes): Define to correct
	values to make `long double' functions available.
	(distribute): Add $(long-m-yes:=.c).

	* sysdeps/libm-i387/s_ceill.S: Correct loading of return value.
	Use long double instruction.

	* sysdeps/libm-ieee754/e_atanhl.c (huge): Correct constant.
	* sysdeps/libm-ieee754/e_asinhl.c: Likewise.
	* sysdeps/libm-ieee754/s_tanhl.c: Likewise.

	* sysdeps/libm-ieee754/e_coshl.c: New file.

	* sysdeps/libm-ieee754/s_asinh.c [!NO_LONG_DOUBLE]: Define names
	for `long double' version as alias.
	* sysdeps/libm-ieee754/s_atan.c: Likewise.
	* sysdeps/libm-ieee754/s_cbrt.c: Likewise.
	* sysdeps/libm-ieee754/s_ceil.c: Likewise.
	* sysdeps/libm-ieee754/s_copysign.c: Likewise.
	* sysdeps/libm-ieee754/s_cos.c: Likewise.
	* sysdeps/libm-ieee754/s_erf.c: Likewise.
	* sysdeps/libm-ieee754/s_expm1.c: Likewise.
	* sysdeps/libm-ieee754/s_fabs.c: Likewise.
	* sysdeps/libm-ieee754/s_finite.c: Likewise.
	* sysdeps/libm-ieee754/s_floor.c: Likewise.
	* sysdeps/libm-ieee754/s_frexp.c: Likewise.
	* sysdeps/libm-ieee754/s_ilogb.c: Likewise.
	* sysdeps/libm-ieee754/s_ldexp.c: Likewise.
	* sysdeps/libm-ieee754/s_log1p.c: Likewise.
	* sysdeps/libm-ieee754/s_logb.c: Likewise.
	* sysdeps/libm-ieee754/s_modf.c: Likewise.
	* sysdeps/libm-ieee754/s_nextafter.c: Likewise.
	* sysdeps/libm-ieee754/s_rint.c: Likewise.
	* sysdeps/libm-ieee754/s_scalbn.c: Likewise.
	* sysdeps/libm-ieee754/s_significand.c: Likewise.
	* sysdeps/libm-ieee754/s_sin.c: Likewise.
	* sysdeps/libm-ieee754/s_tan.c: Likewise.
	* sysdeps/libm-ieee754/s_tanh.c: Likewise.
	* sysdeps/libm-ieee754/w_acos.c: Likewise.
	* sysdeps/libm-ieee754/w_acosh.c: Likewise.
	* sysdeps/libm-ieee754/w_sin.c: Likewise.
	* sysdeps/libm-ieee754/w_atan2.c: Likewise.
	* sysdeps/libm-ieee754/w_atanh.c: Likewise.
	* sysdeps/libm-ieee754/w_cabs.c: Likewise.
	* sysdeps/libm-ieee754/w_cosh.c: Likewise.
	* sysdeps/libm-ieee754/w_drem.c: Likewise.
	* sysdeps/libm-ieee754/w_exp.c: Likewise.
	* sysdeps/libm-ieee754/w_fmod.c: Likewise.
	* sysdeps/libm-ieee754/w_gamma.c: Likewise.
	* sysdeps/libm-ieee754/w_gamma_r.c: Likewise.
	* sysdeps/libm-ieee754/w_hypot.c: Likewise.
	* sysdeps/libm-ieee754/w_j0.c: Likewise.
	* sysdeps/libm-ieee754/w_j1.c: Likewise.
	* sysdeps/libm-ieee754/w_jn.c: Likewise.
	* sysdeps/libm-ieee754/w_lgamma.c: Likewise.
	* sysdeps/libm-ieee754/w_lgamma_r.c: Likewise.
	* sysdeps/libm-ieee754/w_log.c: Likewise.
	* sysdeps/libm-ieee754/w_log10.c: Likewise.
	* sysdeps/libm-ieee754/w_pow.c: Likewise.
	* sysdeps/libm-ieee754/w_remainder.c: Likewise.
	* sysdeps/libm-ieee754/w_scalb.c: Likewise.
	* sysdeps/libm-ieee754/w_sinh.c: Likewise.
	* sysdeps/libm-ieee754/w_sqrt.c: Likewise.

	Stub files for missing long double math functions.
	* sysdeps/stub/e_acoshl.c: New file.
	* sysdeps/stub/e_hypotl.c: New file.
	* sysdeps/stub/e_j0l.c: New file.
	* sysdeps/stub/e_j1l.c: New file.
	* sysdeps/stub/e_jnl.c: New file.
	* sysdeps/stub/e_lgammal_r.c: New file.
	* sysdeps/stub/e_powl.c: New file.
	* sysdeps/stub/e_rem_pio2l.c: New file.
	* sysdeps/stub/e_sinhl.c: New file.
	* sysdeps/stub/k_cosl.c: New file.
	* sysdeps/stub/k_rem_pio2l.c: New file.
	* sysdeps/stub/k_sinl.c: New file.
	* sysdeps/stub/k_tanl.c: New file.
	* sysdeps/stub/s_erfl.c: New file.
	* sysdeps/stub/s_expm1l.c: New file.

	* sysdeps/i386/__longjmp.S: Use PSEUDO_END macro to provide
	.size directive.
	* sysdeps/i386/bsd-_setjmp.S: Likewise.
	* sysdeps/i386/bsd-setjmp.S: Likewise.
	* sysdeps/i386/memchr.S: Likewise.
	* sysdeps/i386/memcmp.S: Likewise.
	* sysdeps/i386/setjmp.S: Likewise.
	* sysdeps/i386/stpcpy.S: Likewise.
	* sysdeps/i386/stpncpy.S: Likewise.
	* sysdeps/i386/strchr.S: Likewise.
	* sysdeps/i386/strcspn.S: Likewise.
	* sysdeps/i386/strpbrk.S: Likewise.
	* sysdeps/i386/strrchr.S: Likewise.
	* sysdeps/i386/strspn.S: Likewise.
	* sysdeps/i386/strtok.S: Likewise.
	* sysdeps/i386/i486/strcat.S: Likewise.
	* sysdeps/i386/i486/strlen.S: Likewise.
	* sysdeps/i386/i586/memset.S: Likewise.
	* sysdeps/i386/i586/strchr.S: Likewise.
	* sysdeps/i386/i586/strlen.S: Likewise.
	* sysdeps/libm-i387/e_acos.S: Likewise.
	* sysdeps/libm-i387/e_acosl.S: Likewise.
	* sysdeps/libm-i387/e_asin.S: Likewise.
	* sysdeps/libm-i387/e_asinl.S: Likewise.
	* sysdeps/libm-i387/e_atan2.S: Likewise.
	* sysdeps/libm-i387/e_atan2l.S: Likewise.
	* sysdeps/libm-i387/e_exp.S: Likewise.
	* sysdeps/libm-i387/e_expl.S: Likewise.
	* sysdeps/libm-i387/e_fmod.S: Likewise.
	* sysdeps/libm-i387/e_fmodl.S: Likewise.
	* sysdeps/libm-i387/e_log.S: Likewise.
	* sysdeps/libm-i387/e_log10.S: Likewise.
	* sysdeps/libm-i387/e_log10l.S: Likewise.
	* sysdeps/libm-i387/e_logl.S: Likewise.
	* sysdeps/libm-i387/e_remainder.S: Likewise.
	* sysdeps/libm-i387/e_remainderf.S: Likewise.
	* sysdeps/libm-i387/e_remainderl.S: Likewise.
	* sysdeps/libm-i387/e_scalb.S: Likewise.
	* sysdeps/libm-i387/e_scalbl.S: Likewise.
	* sysdeps/libm-i387/e_sqrt.S: Likewise.
	* sysdeps/libm-i387/e_sqrtf.S: Likewise.
	* sysdeps/libm-i387/e_sqrtl.S: Likewise.
	* sysdeps/libm-i387/s_atan.S: Likewise.
	* sysdeps/libm-i387/s_atanf.S: Likewise.
	* sysdeps/libm-i387/s_atanl.S: Likewise.
	* sysdeps/libm-i387/s_ceil.S: Likewise.
	* sysdeps/libm-i387/s_ceilf.S: Likewise.
	* sysdeps/libm-i387/s_ceill.S: Likewise.
	* sysdeps/libm-i387/s_copysign.S: Likewise.
	* sysdeps/libm-i387/s_copysignf.S: Likewise.
	* sysdeps/libm-i387/s_copysignl.S: Likewise.
	* sysdeps/libm-i387/s_cos.S: Likewise.
	* sysdeps/libm-i387/s_cosf.S: Likewise.
	* sysdeps/libm-i387/s_cosl.S: Likewise.
	* sysdeps/libm-i387/s_finite.S: Likewise.
	* sysdeps/libm-i387/s_finitef.S: Likewise.
	* sysdeps/libm-i387/s_finitel.S: Likewise.
	* sysdeps/libm-i387/s_floor.S: Likewise.
	* sysdeps/libm-i387/s_floorf.S: Likewise.
	* sysdeps/libm-i387/s_floorl.S: Likewise.
	* sysdeps/libm-i387/s_ilogb.S: Likewise.
	* sysdeps/libm-i387/s_ilogbf.S: Likewise.
	* sysdeps/libm-i387/s_ilogbl.S: Likewise.
	* sysdeps/libm-i387/s_log1p.S: Likewise.
	* sysdeps/libm-i387/s_log1pf.S: Likewise.
	* sysdeps/libm-i387/s_log1pl.S: Likewise.
	* sysdeps/libm-i387/s_logb.S: Likewise.
	* sysdeps/libm-i387/s_logbf.S: Likewise.
	* sysdeps/libm-i387/s_logbl.S: Likewise.
	* sysdeps/libm-i387/s_rint.S: Likewise.
	* sysdeps/libm-i387/s_rintf.S: Likewise.
	* sysdeps/libm-i387/s_rintl.S: Likewise.
	* sysdeps/libm-i387/s_scalbn.S: Likewise.
	* sysdeps/libm-i387/s_scalbnf.S: Likewise.
	* sysdeps/libm-i387/s_scalbnl.S: Likewise.
	* sysdeps/libm-i387/s_significand.S: Likewise.
	* sysdeps/libm-i387/s_significandf.S: Likewise.
	* sysdeps/libm-i387/s_significandl.S: Likewise.
	* sysdeps/libm-i387/s_sin.S: Likewise.
	* sysdeps/libm-i387/s_sinf.S: Likewise.
	* sysdeps/libm-i387/s_sinl.S: Likewise.
	* sysdeps/libm-i387/s_tan.S: Likewise.
	* sysdeps/libm-i387/s_tanf.S: Likewise.
	* sysdeps/libm-i387/s_tanl.S: Likewise.

	* sysdeps/unix/sysv/linux/i386/clone.S: Add .size directive.
	* sysdeps/unix/sysv/linux/i386/mmap.S. Likewise.
	* sysdeps/unix/sysv/linux/i386/socket.S. Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.S. More compact .size line.

	* sysdeps/i386/sysdep.h (ASM_SIZE_DIRECTIVE): New macro.  Used
	to provide .size directive on ELF systems.

	* sysdeps/unix/sysv/linux/i386/profil-counter.h: Include
	<sigcontext.h> and rename parameter type to sigcontext.
	* sysdeps/unix/sysv/linux/i386/sigcontext.h New file.

	* sysdeps/unix/sysv/linux/i386/syscall.S: From Linux 2.1 on
	negative values might occur as positive results.  Test against
	-125 to decide for error or not.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise for system calls.

Thu Oct  3 21:07:58 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/dl-open.c: Use _DYNAMIC instead of _dl_start to decide
	whether this is a statically linked program.  The latter is now
	always defined.

Fri Oct  4 02:08:10 1996  Bang Jun-Young  <bangjy@nownuri.nowcom.co.kr>

	* po/ko.po: Update.

Fri Oct  4 02:07:46 1996  Michel Robitaille  <robitail@IRO.UMontreal.CA>

	* po/fr.po: New file.

Fri Oct  4 05:04:52 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/i386/sigcontext.h: New file.

	Add support for MD5 crypt replacement.
	* Makefile (subdirs): Add crypt.
	* shlib-versions: Add entry for libcrypt.
	* crypt/md5-crypt.c: New file.
	* crypt/md5.c: New file.
	* crypt/md5.h: New file.
	* sysdeps/generic/crypt-entry.c: New file.
	* sysdeps/generic/crypt.h: New file.

Thu Oct  3 20:53:23 1996  Andreas Jaeger  <aj@arthur.pfalz.de>

	* dirent/tst-seekdir.c: Provide correct prototypes.
	* io/test-utime.c: Likewise.
	* malloc/mallocbug.c: Likewise.
	* posix/testfnm.c: Likewise.
	* stdio-common/xbug.c: Likewise.
	* sysdeps/posix/cuserid.c: Likewise.

Wed Oct  2 13:33:48 1996  Richard Henderson  <rth@tamu.edu>

	Provide optimized string functions for Alpha processors.
	* sysdeps/alpha/bzero.S: New file.
	* sysdeps/alpha/memset.S: New file.
	* sysdeps/alpha/stpcpy.S: New file.
	* sysdeps/alpha/stpncpy.S: New file.
	* sysdeps/alpha/strcat.S: New file.
	* sysdeps/alpha/strchr.S: New file.
	* sysdeps/alpha/strcpy.S: New file.
	* sysdeps/alpha/strncat.S: New file.
	* sysdeps/alpha/strncpy.S: New file.
	* sysdeps/alpha/strrchr.S: New file.
	* sysdeps/alpha/stxcpy.S: New file.
	* sysdeps/alpha/stxncpy.S: New file.

	* sysdeps/alpha/Makefile [$(sudir)==string]: Add stxcpy and
	stxncpy to sysdep_routines.
	Minor correction.

Wed Oct  2 13:41:48 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/strtok.c: Don't set stored pointer to NULL when
 	notheing is found.  This guarantees all subsequent calls behave
 	the same.
	* sysdeps/generic/strtok_r.c: Likewise.

Mon Sep 30 22:27:36 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/posix/tempname.c (__stdio_gen_tempname): Don't declare
	`i' as const.

Mon Sep 30 22:38:29 1996  Richard Henderson  <rth@tamu.edu>

	* sysdeps/generic/strtok.c: When we hit EOS, don't set olds to
	NULL immediately; we're going to get called one more time.
	* sysdeps/generic/strtok_r.c: Likewise.

Tue Oct  1 09:12:21 1996  Ulrich Drepper  <drepper@cygnus.com>

	* locale/programs/ld-time.c: Always write some bytes at the end of
 	the file even if no `era's are specified.

	* stdio-common/tmpname.c (tmpbuf): Don't define as array of
 	pointers.

Tue Oct  1 01:43:11 1996  Ulrich Drepper  <drepper@cygnus.com>

	* libio/iofclose.c: Move unlocking to right position.

Mon Sep 30 03:08:34 1996  Richard Henderson  <rth@tamu.edu>

	* misc/Makefile: Kill force-wrapper.
	* misc/force-wrapper.c: Delete.

	* elf/eval.c: Add <string.h>.

	* gmon/sys/gmon_out.h: Nonsense like `char foo[sizeof(char*)]'
	followed by `bcopy(&ptr, &foo, sizeof(foo))' helps portability
	and binary compatibility not at all.  Better to do `char *foo'
	followed by `foo = ptr' as it is much cleaner.
	(struct gmon_hdr): Fix version.
	(struct gmon_hist_hdr): Fix low_pc, high_pc, hist_size, prof_rate.
	(struct gmon_cg_arc_record): Fix from_pc, self_pc, count.
	* gmon/gmon.c: De-ansidecl-ify.
	(write_hist): De-bcopy-fy.
	(write_call_graph): Likewise.

	* gmon/mcount.c: Assume _MCOUNT_DECL does the entire declaration.
	* sysdeps/alpha/machine-gmon.h: Update _MCOUNT_DECL.
	* sysdeps/generic/machine-gmon.h: Likewise.

	* resolv/netdb.h: Add __set_h_errno to mimic __set_errno.
	* nss/getXXent_r.c: Use __set_h_errno to set h_errno in all funcs.
	* nss/nss_dns/dns-network.c: Likewise.
	* resolv/getunamaddr.c: Likewise.  Also use __set_errno where needed.
	* resolv/getnetnamadr.c: Likewise.
	* resolv/res_debug.c: Likewise.
	* resolv/res_mkquery.c: Likewise.
	* resolv/res_query.c: Likewise.

	* libio/clearerr_u.c: It's not necessary to define __ protected
	function so don't do it.
	* libio/feof_u.c, libio/ferror_u.c, libio/fputc_u.c,
	  libio/getc_u.c, libio/getchar_u.c, libio/iofflush_u.c: Likewise.

	* libio/fgetc.c: Avoid a warning by casting _IO_funlockfile for
	the cleanup registrar.
	* libio/fputc.c, libio/freopen.c, libio/fseek.c, libio/getc.c,
	  libio/getchar.c, libio/iofclose.c, libio/iofflush.c,
	  libio/iofgetpos.c, libio/iofgets.c, libio/iofputs.c,
	  libio/iofread.c, libio/iofsetpos.c, libio/ioftell.c,
	  libio/iofwrite.c, libio/iogetdelim.c, libio/iogets.c,
	  libio/ioputs.c, libio/iosetbuffer.c, libio/iosetvbuf.c,
	  libio/ioungetc.c, libio/putc.c, libio/putchar.c, libio/rewind.c:
	Likewise.

	* locale/programs/ld-ctype.c: Include <alloca.h>.

	* login/login_tty.c: Get login_tty prototype from <utmp.h>.

	* posix/sys/types.h: Change #defines to typedefs.  This is looking
	forward to more comprehensive namespace cleanups for C++.
	* posix/unistd.h: Likewise for ssize_t.

	* pwd/getpw.c: Prototype and rename getpw -> __getpw and add a
	weak alias.

	* resolv/base64.c: Don't do `for (NULL; ...)' as it causes
	`statement with no effect' warnings.
	* resolv/inet_neta.c: Include <string.h> for strlen.

	* stdio-common/getline.c: Undef ssize_t before libio redefinition.
	* stdio-common/tstgetln.c: Same.  De-ansidecl-ify.
	* stdio-common/vfprintf.c: Same for va_list.
	* stdio-common/vfscanf.c: Same.
	* stdio-common/reg-printf.c: Prototype the __ function.
	* stdio-common/scanf.c [USE_IN_LIBIO]: Include <libioP.h> for
	_IO_vscanf declaration.

	* string/tester.c: Tsk, tsk.  Don't cast pointers to int,
	but to unsigned long for the health of 64-bit systems.

	* sunrpc/svc_udp.c: Define MAX only if we don't have it yet.
	Many system's <sys/param.h> pulls this in.

	* sysdeps/generic/dl-cache.c: Kill the bottom half of the
	patch doubled file.

	* sysdeps/generic/pty.c (forkpty): Get login_tty decl from <utmp.h>
	instead of defining it locally.

	* sysdeps/posix/sigvec.c: Prototype wrapper_handler and convert_mask.
	* sysdeps/stub/chflags.c: Prototype chflags.
	* sysdeps/stub/fchflags.c: Prototype fchflags.
	* sysdeps/stub/sstk.c: Prototype sstk.

	* sysdeps/unix/alpha/sysdep.S:  Add strong alias from errno
	variable to __errno.  Update __syscall_error to store to both
	the global and per-thread variables.

	* sysdeps/unix/sysv/linux/init-first.c: Change include of
	init-first.h from "" to <> as "" does not search the include path.
	Prototype _dl_start.

Sun Sep 29 14:41:17 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Make it a
	pattern rule to get the right stem.

Sat Sep 28 01:30:06 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile ($(objpfx)version-info.h): Fix typo in previous change.

Sat Sep 28 00:44:38 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/posix/euidaccess.c (__set_errno): Fix typo.

Sat Sep 28 00:40:38 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* malloc/free.c (_free_internal): Don't call free recursively, use
	the internal functions instead.

Sat Sep 28 00:23:20 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/posix/tempname.c (__stdio_gen_tempname) [USE_IN_LIBIO &&
	_IO_MTSAFE_IO]: Allocate and initialize the file lock.

Fri Sep 27 23:58:17 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* catgets/gencat.c (main): Print version information on stdout,
	not stderr.
	* db/makedb.c: Likewise.
	* locale/programs/locale.c: Likewise.
	* locale/programs/localedef.c: Likewise.

Mon Sep 30 00:14:26 1996  Ulrich Drepper  <drepper@cygnus.com>

	Add implementation of netgroup.
	* inet/Makefile (distributes): Add netgroup.h.
	(routines): Add getnetgrent.c and getnetgrent_r.c.
	* inet/getnetgrent.c: New file.
	* inet/getnetgrent_r.c: New file.
	* inet/netgroup.h: New file.
	* netgroup.h: New file.
	* nsswitch.h: New file.
	* nss/Makefile (databases): Add getgrp.
	* nss/databases.def: Add netgroup.
	* nss/db-Makefile: Add rules for netgroup.
	* nss/netgrp-lookup.c: New file.
	* nss/nss.h: Add new status value NSS_STATUS_RETURN which will
	always return without a check of the transition table.
	* nss/nsswitch.h (struct service_user): Extend actions array to
	five elements.
	* nss/nsswitch.c (__nss_next): Allow NSS_STATUS_RETURN as legal
	status value.
	(nss_parse_service_list): Initialize action for NSS_STATUS_RETURN
	to NSS_ACTION_RETURN.
	* nss/nss_db/db-netgrp.c: New file.
	* nss/nss_files/files-netgrp.c: New file.
	* nss/nsswitch.conf: Add entry for netgroup.
	* resolv/netdb.h: Add prototypes for netgroup functions.

	* nss/nss_db/db-XXX.c: Use `enum nss_status' type when status
	value is used.

Sun Sep 29 12:55:58 1996  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/syscalls.list: Change funciton name for
 	_llseek to _llseek (not llseek).
	Reported by Matthias Urlichs <smurf@smurf.noris.de>.

Sun Sep 29 05:34:32 1996  Ulrich Drepper  <drepper@cygnus.com>

	* inet/rcmd.c: Remove definition of MIN.

Sat Sep 28 14:22:51 1996  Ulrich Drepper  <drepper@cygnus.com>

	* dirent/readdir_r.c: Removed.  We indeed need a real implementation.
	* sysdeps/unix/readdir_r.c: New file.
	* sysdeps/unix/readdir.c: Remove check for correct parameter
	values.  Let them simply die.
	* manual/filesys.texi: Document readdir_r.

	* sysdeps/gnu/errlist.awk: Define _sys_errlist as `const char* const'.
	Proposed by Per Abrahamsen <abraham@dina.kvl.dk>.
-rw-r--r--ChangeLog451
-rw-r--r--Makefile2
-rw-r--r--README.libm1
-rw-r--r--dirent/tst-seekdir.c4
-rw-r--r--elf/dl-open.c12
-rw-r--r--io/test-utime.c4
-rw-r--r--math/Makefile6
-rw-r--r--po/fr.po2652
-rw-r--r--po/ko.po1697
-rw-r--r--posix/getopt.c5
-rw-r--r--posix/regex.c20
-rw-r--r--posix/testfnm.c4
-rw-r--r--shlib-versions3
-rw-r--r--stdio-common/xbug.c22
-rw-r--r--sysdeps/alpha/Makefile14
-rw-r--r--sysdeps/alpha/bzero.S113
-rw-r--r--sysdeps/alpha/memset.S130
-rw-r--r--sysdeps/alpha/stpcpy.S49
-rw-r--r--sysdeps/alpha/stpncpy.S103
-rw-r--r--sysdeps/alpha/strcat.S66
-rw-r--r--sysdeps/alpha/strchr.S88
-rw-r--r--sysdeps/alpha/strcpy.S36
-rw-r--r--sysdeps/alpha/strncat.S90
-rw-r--r--sysdeps/alpha/strncpy.S85
-rw-r--r--sysdeps/alpha/strrchr.S104
-rw-r--r--sysdeps/alpha/stxcpy.S307
-rw-r--r--sysdeps/alpha/stxncpy.S350
-rw-r--r--sysdeps/generic/crypt-entry.c68
-rw-r--r--sysdeps/generic/crypt.h58
-rw-r--r--sysdeps/generic/strtok.c5
-rw-r--r--sysdeps/generic/strtok_r.c5
-rw-r--r--sysdeps/i386/__longjmp.S3
-rw-r--r--sysdeps/i386/bsd-_setjmp.S4
-rw-r--r--sysdeps/i386/bsd-setjmp.S3
-rw-r--r--sysdeps/i386/i486/strcat.S1
-rw-r--r--sysdeps/i386/i486/strlen.S3
-rw-r--r--sysdeps/i386/i586/memset.S1
-rw-r--r--sysdeps/i386/i586/strchr.S1
-rw-r--r--sysdeps/i386/i586/strlen.S1
-rw-r--r--sysdeps/i386/memchr.S3
-rw-r--r--sysdeps/i386/memcmp.S1
-rw-r--r--sysdeps/i386/setjmp.S1
-rw-r--r--sysdeps/i386/stpcpy.S3
-rw-r--r--sysdeps/i386/stpncpy.S3
-rw-r--r--sysdeps/i386/strchr.S3
-rw-r--r--sysdeps/i386/strcspn.S3
-rw-r--r--sysdeps/i386/strpbrk.S3
-rw-r--r--sysdeps/i386/strrchr.S1
-rw-r--r--sysdeps/i386/strspn.S3
-rw-r--r--sysdeps/i386/strtok.S1
-rw-r--r--sysdeps/i386/sysdep.h8
-rw-r--r--sysdeps/libm-i387/e_acos.S3
-rw-r--r--sysdeps/libm-i387/e_acosl.S3
-rw-r--r--sysdeps/libm-i387/e_asin.S1
-rw-r--r--sysdeps/libm-i387/e_asinl.S1
-rw-r--r--sysdeps/libm-i387/e_atan2.S1
-rw-r--r--sysdeps/libm-i387/e_atan2f.S1
-rw-r--r--sysdeps/libm-i387/e_atan2l.S1
-rw-r--r--sysdeps/libm-i387/e_exp.S2
-rw-r--r--sysdeps/libm-i387/e_expl.S2
-rw-r--r--sysdeps/libm-i387/e_fmod.S1
-rw-r--r--sysdeps/libm-i387/e_fmodl.S1
-rw-r--r--sysdeps/libm-i387/e_log.S1
-rw-r--r--sysdeps/libm-i387/e_log10.S1
-rw-r--r--sysdeps/libm-i387/e_log10l.S1
-rw-r--r--sysdeps/libm-i387/e_logl.S1
-rw-r--r--sysdeps/libm-i387/e_remainder.S1
-rw-r--r--sysdeps/libm-i387/e_remainderf.S1
-rw-r--r--sysdeps/libm-i387/e_remainderl.S1
-rw-r--r--sysdeps/libm-i387/e_scalb.S1
-rw-r--r--sysdeps/libm-i387/e_scalbl.S1
-rw-r--r--sysdeps/libm-i387/e_sqrt.S1
-rw-r--r--sysdeps/libm-i387/e_sqrtf.S1
-rw-r--r--sysdeps/libm-i387/e_sqrtl.S1
-rw-r--r--sysdeps/libm-i387/s_atan.S1
-rw-r--r--sysdeps/libm-i387/s_atanf.S1
-rw-r--r--sysdeps/libm-i387/s_atanl.S1
-rw-r--r--sysdeps/libm-i387/s_ceil.S13
-rw-r--r--sysdeps/libm-i387/s_ceilf.S13
-rw-r--r--sysdeps/libm-i387/s_ceill.S13
-rw-r--r--sysdeps/libm-i387/s_copysign.S3
-rw-r--r--sysdeps/libm-i387/s_copysignf.S3
-rw-r--r--sysdeps/libm-i387/s_copysignl.S3
-rw-r--r--sysdeps/libm-i387/s_cos.S3
-rw-r--r--sysdeps/libm-i387/s_cosf.S3
-rw-r--r--sysdeps/libm-i387/s_cosl.S1
-rw-r--r--sysdeps/libm-i387/s_finite.S1
-rw-r--r--sysdeps/libm-i387/s_finitef.S1
-rw-r--r--sysdeps/libm-i387/s_finitel.S1
-rw-r--r--sysdeps/libm-i387/s_floor.S1
-rw-r--r--sysdeps/libm-i387/s_floorf.S1
-rw-r--r--sysdeps/libm-i387/s_floorl.S1
-rw-r--r--sysdeps/libm-i387/s_ilogb.S1
-rw-r--r--sysdeps/libm-i387/s_ilogbf.S1
-rw-r--r--sysdeps/libm-i387/s_ilogbl.S1
-rw-r--r--sysdeps/libm-i387/s_log1p.S3
-rw-r--r--sysdeps/libm-i387/s_log1pf.S3
-rw-r--r--sysdeps/libm-i387/s_log1pl.S1
-rw-r--r--sysdeps/libm-i387/s_logb.S1
-rw-r--r--sysdeps/libm-i387/s_logbf.S1
-rw-r--r--sysdeps/libm-i387/s_logbl.S1
-rw-r--r--sysdeps/libm-i387/s_rint.S1
-rw-r--r--sysdeps/libm-i387/s_rintf.S1
-rw-r--r--sysdeps/libm-i387/s_rintl.S1
-rw-r--r--sysdeps/libm-i387/s_scalbn.S1
-rw-r--r--sysdeps/libm-i387/s_scalbnf.S1
-rw-r--r--sysdeps/libm-i387/s_scalbnl.S1
-rw-r--r--sysdeps/libm-i387/s_significand.S1
-rw-r--r--sysdeps/libm-i387/s_significandf.S1
-rw-r--r--sysdeps/libm-i387/s_significandl.S3
-rw-r--r--sysdeps/libm-i387/s_sin.S1
-rw-r--r--sysdeps/libm-i387/s_sinf.S1
-rw-r--r--sysdeps/libm-i387/s_sinl.S1
-rw-r--r--sysdeps/libm-i387/s_tan.S1
-rw-r--r--sysdeps/libm-i387/s_tanf.S1
-rw-r--r--sysdeps/libm-i387/s_tanl.S1
-rw-r--r--sysdeps/libm-ieee754/e_atanhl.c6
-rw-r--r--sysdeps/libm-ieee754/e_coshl.c94
-rw-r--r--sysdeps/libm-ieee754/s_asinh.c4
-rw-r--r--sysdeps/libm-ieee754/s_asinhl.c2
-rw-r--r--sysdeps/libm-ieee754/s_atan.c20
-rw-r--r--sysdeps/libm-ieee754/s_cbrt.c16
-rw-r--r--sysdeps/libm-ieee754/s_ceil.c10
-rw-r--r--sysdeps/libm-ieee754/s_copysign.c6
-rw-r--r--sysdeps/libm-ieee754/s_cos.c12
-rw-r--r--sysdeps/libm-ieee754/s_erf.c30
-rw-r--r--sysdeps/libm-ieee754/s_expm1.c52
-rw-r--r--sysdeps/libm-ieee754/s_fabs.c6
-rw-r--r--sysdeps/libm-ieee754/s_finite.c6
-rw-r--r--sysdeps/libm-ieee754/s_floor.c10
-rw-r--r--sysdeps/libm-ieee754/s_frexp.c12
-rw-r--r--sysdeps/libm-ieee754/s_ilogb.c8
-rw-r--r--sysdeps/libm-ieee754/s_ldexp.c4
-rw-r--r--sysdeps/libm-ieee754/s_log1p.c44
-rw-r--r--sysdeps/libm-ieee754/s_logb.c10
-rw-r--r--sysdeps/libm-ieee754/s_modf.c8
-rw-r--r--sysdeps/libm-ieee754/s_nextafter.c14
-rw-r--r--sysdeps/libm-ieee754/s_rint.c10
-rw-r--r--sysdeps/libm-ieee754/s_scalbn.c4
-rw-r--r--sysdeps/libm-ieee754/s_significand.c6
-rw-r--r--sysdeps/libm-ieee754/s_sin.c12
-rw-r--r--sysdeps/libm-ieee754/s_tan.c12
-rw-r--r--sysdeps/libm-ieee754/s_tanh.c8
-rw-r--r--sysdeps/libm-ieee754/s_tanhl.c9
-rw-r--r--sysdeps/libm-ieee754/w_acos.c6
-rw-r--r--sysdeps/libm-ieee754/w_acosh.c8
-rw-r--r--sysdeps/libm-ieee754/w_asin.c8
-rw-r--r--sysdeps/libm-ieee754/w_atan2.c8
-rw-r--r--sysdeps/libm-ieee754/w_atanh.c10
-rw-r--r--sysdeps/libm-ieee754/w_cabs.c6
-rw-r--r--sysdeps/libm-ieee754/w_cosh.c10
-rw-r--r--sysdeps/libm-ieee754/w_drem.c6
-rw-r--r--sysdeps/libm-ieee754/w_exp.c10
-rw-r--r--sysdeps/libm-ieee754/w_fmod.c8
-rw-r--r--sysdeps/libm-ieee754/w_gamma.c4
-rw-r--r--sysdeps/libm-ieee754/w_gamma_r.c10
-rw-r--r--sysdeps/libm-ieee754/w_hypot.c6
-rw-r--r--sysdeps/libm-ieee754/w_j0.c11
-rw-r--r--sysdeps/libm-ieee754/w_j1.c15
-rw-r--r--sysdeps/libm-ieee754/w_jn.c15
-rw-r--r--sysdeps/libm-ieee754/w_lgamma.c8
-rw-r--r--sysdeps/libm-ieee754/w_lgamma_r.c10
-rw-r--r--sysdeps/libm-ieee754/w_log.c8
-rw-r--r--sysdeps/libm-ieee754/w_log10.c10
-rw-r--r--sysdeps/libm-ieee754/w_pow.c18
-rw-r--r--sysdeps/libm-ieee754/w_remainder.c10
-rw-r--r--sysdeps/libm-ieee754/w_scalb.c4
-rw-r--r--sysdeps/libm-ieee754/w_sinh.c10
-rw-r--r--sysdeps/libm-ieee754/w_sqrt.c8
-rw-r--r--sysdeps/posix/cuserid.c4
-rw-r--r--sysdeps/stub/e_acoshl.c11
-rw-r--r--sysdeps/stub/e_hypotl.c11
-rw-r--r--sysdeps/stub/e_j0l.c11
-rw-r--r--sysdeps/stub/e_j1l.c11
-rw-r--r--sysdeps/stub/e_jnl.c11
-rw-r--r--sysdeps/stub/e_lgammal_r.c11
-rw-r--r--sysdeps/stub/e_powl.c11
-rw-r--r--sysdeps/stub/e_rem_pio2l.c11
-rw-r--r--sysdeps/stub/e_sinhl.c11
-rw-r--r--sysdeps/stub/k_cosl.c11
-rw-r--r--sysdeps/stub/k_rem_pio2l.c13
-rw-r--r--sysdeps/stub/k_sinl.c11
-rw-r--r--sysdeps/stub/k_tanl.c11
-rw-r--r--sysdeps/stub/s_erfl.c12
-rw-r--r--sysdeps/stub/s_expm1l.c12
-rw-r--r--sysdeps/unix/sysv/linux/i386/clone.S1
-rw-r--r--sysdeps/unix/sysv/linux/i386/mmap.S1
-rw-r--r--sysdeps/unix/sysv/linux/i386/profil-counter.h4
-rw-r--r--sysdeps/unix/sysv/linux/i386/sigcontext.h29
-rw-r--r--sysdeps/unix/sysv/linux/i386/socket.S1
-rw-r--r--sysdeps/unix/sysv/linux/i386/syscall.S10
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.S3
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h25
193 files changed, 7093 insertions, 543 deletions
diff --git a/ChangeLog b/ChangeLog
index decbf31275..c076757269 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,454 @@
+Sun Oct  6 02:05:52 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	* posix/getopt.c: Add casts to prevent warnings.
+	* posix/regex.c: Likewise.
+
+	* math/Makefile (long-m-routines, long-m-yes): Define to correct
+	values to make `long double' functions available.
+	(distribute): Add $(long-m-yes:=.c).
+
+	* sysdeps/libm-i387/s_ceill.S: Correct loading of return value.
+	Use long double instruction.
+
+	* sysdeps/libm-ieee754/e_atanhl.c (huge): Correct constant.
+	* sysdeps/libm-ieee754/e_asinhl.c: Likewise.
+	* sysdeps/libm-ieee754/s_tanhl.c: Likewise.
+
+	* sysdeps/libm-ieee754/e_coshl.c: New file.
+
+	* sysdeps/libm-ieee754/s_asinh.c [!NO_LONG_DOUBLE]: Define names
+	for `long double' version as alias.
+	* sysdeps/libm-ieee754/s_atan.c: Likewise.
+	* sysdeps/libm-ieee754/s_cbrt.c: Likewise.
+	* sysdeps/libm-ieee754/s_ceil.c: Likewise.
+	* sysdeps/libm-ieee754/s_copysign.c: Likewise.
+	* sysdeps/libm-ieee754/s_cos.c: Likewise.
+	* sysdeps/libm-ieee754/s_erf.c: Likewise.
+	* sysdeps/libm-ieee754/s_expm1.c: Likewise.
+	* sysdeps/libm-ieee754/s_fabs.c: Likewise.
+	* sysdeps/libm-ieee754/s_finite.c: Likewise.
+	* sysdeps/libm-ieee754/s_floor.c: Likewise.
+	* sysdeps/libm-ieee754/s_frexp.c: Likewise.
+	* sysdeps/libm-ieee754/s_ilogb.c: Likewise.
+	* sysdeps/libm-ieee754/s_ldexp.c: Likewise.
+	* sysdeps/libm-ieee754/s_log1p.c: Likewise.
+	* sysdeps/libm-ieee754/s_logb.c: Likewise.
+	* sysdeps/libm-ieee754/s_modf.c: Likewise.
+	* sysdeps/libm-ieee754/s_nextafter.c: Likewise.
+	* sysdeps/libm-ieee754/s_rint.c: Likewise.
+	* sysdeps/libm-ieee754/s_scalbn.c: Likewise.
+	* sysdeps/libm-ieee754/s_significand.c: Likewise.
+	* sysdeps/libm-ieee754/s_sin.c: Likewise.
+	* sysdeps/libm-ieee754/s_tan.c: Likewise.
+	* sysdeps/libm-ieee754/s_tanh.c: Likewise.
+	* sysdeps/libm-ieee754/w_acos.c: Likewise.
+	* sysdeps/libm-ieee754/w_acosh.c: Likewise.
+	* sysdeps/libm-ieee754/w_sin.c: Likewise.
+	* sysdeps/libm-ieee754/w_atan2.c: Likewise.
+	* sysdeps/libm-ieee754/w_atanh.c: Likewise.
+	* sysdeps/libm-ieee754/w_cabs.c: Likewise.
+	* sysdeps/libm-ieee754/w_cosh.c: Likewise.
+	* sysdeps/libm-ieee754/w_drem.c: Likewise.
+	* sysdeps/libm-ieee754/w_exp.c: Likewise.
+	* sysdeps/libm-ieee754/w_fmod.c: Likewise.
+	* sysdeps/libm-ieee754/w_gamma.c: Likewise.
+	* sysdeps/libm-ieee754/w_gamma_r.c: Likewise.
+	* sysdeps/libm-ieee754/w_hypot.c: Likewise.
+	* sysdeps/libm-ieee754/w_j0.c: Likewise.
+	* sysdeps/libm-ieee754/w_j1.c: Likewise.
+	* sysdeps/libm-ieee754/w_jn.c: Likewise.
+	* sysdeps/libm-ieee754/w_lgamma.c: Likewise.
+	* sysdeps/libm-ieee754/w_lgamma_r.c: Likewise.
+	* sysdeps/libm-ieee754/w_log.c: Likewise.
+	* sysdeps/libm-ieee754/w_log10.c: Likewise.
+	* sysdeps/libm-ieee754/w_pow.c: Likewise.
+	* sysdeps/libm-ieee754/w_remainder.c: Likewise.
+	* sysdeps/libm-ieee754/w_scalb.c: Likewise.
+	* sysdeps/libm-ieee754/w_sinh.c: Likewise.
+	* sysdeps/libm-ieee754/w_sqrt.c: Likewise.
+
+	Stub files for missing long double math functions.
+	* sysdeps/stub/e_acoshl.c: New file.
+	* sysdeps/stub/e_hypotl.c: New file.
+	* sysdeps/stub/e_j0l.c: New file.
+	* sysdeps/stub/e_j1l.c: New file.
+	* sysdeps/stub/e_jnl.c: New file.
+	* sysdeps/stub/e_lgammal_r.c: New file.
+	* sysdeps/stub/e_powl.c: New file.
+	* sysdeps/stub/e_rem_pio2l.c: New file.
+	* sysdeps/stub/e_sinhl.c: New file.
+	* sysdeps/stub/k_cosl.c: New file.
+	* sysdeps/stub/k_rem_pio2l.c: New file.
+	* sysdeps/stub/k_sinl.c: New file.
+	* sysdeps/stub/k_tanl.c: New file.
+	* sysdeps/stub/s_erfl.c: New file.
+	* sysdeps/stub/s_expm1l.c: New file.
+
+	* sysdeps/i386/__longjmp.S: Use PSEUDO_END macro to provide
+	.size directive.
+	* sysdeps/i386/bsd-_setjmp.S: Likewise.
+	* sysdeps/i386/bsd-setjmp.S: Likewise.
+	* sysdeps/i386/memchr.S: Likewise.
+	* sysdeps/i386/memcmp.S: Likewise.
+	* sysdeps/i386/setjmp.S: Likewise.
+	* sysdeps/i386/stpcpy.S: Likewise.
+	* sysdeps/i386/stpncpy.S: Likewise.
+	* sysdeps/i386/strchr.S: Likewise.
+	* sysdeps/i386/strcspn.S: Likewise.
+	* sysdeps/i386/strpbrk.S: Likewise.
+	* sysdeps/i386/strrchr.S: Likewise.
+	* sysdeps/i386/strspn.S: Likewise.
+	* sysdeps/i386/strtok.S: Likewise.
+	* sysdeps/i386/i486/strcat.S: Likewise.
+	* sysdeps/i386/i486/strlen.S: Likewise.
+	* sysdeps/i386/i586/memset.S: Likewise.
+	* sysdeps/i386/i586/strchr.S: Likewise.
+	* sysdeps/i386/i586/strlen.S: Likewise.
+	* sysdeps/libm-i387/e_acos.S: Likewise.
+	* sysdeps/libm-i387/e_acosl.S: Likewise.
+	* sysdeps/libm-i387/e_asin.S: Likewise.
+	* sysdeps/libm-i387/e_asinl.S: Likewise.
+	* sysdeps/libm-i387/e_atan2.S: Likewise.
+	* sysdeps/libm-i387/e_atan2l.S: Likewise.
+	* sysdeps/libm-i387/e_exp.S: Likewise.
+	* sysdeps/libm-i387/e_expl.S: Likewise.
+	* sysdeps/libm-i387/e_fmod.S: Likewise.
+	* sysdeps/libm-i387/e_fmodl.S: Likewise.
+	* sysdeps/libm-i387/e_log.S: Likewise.
+	* sysdeps/libm-i387/e_log10.S: Likewise.
+	* sysdeps/libm-i387/e_log10l.S: Likewise.
+	* sysdeps/libm-i387/e_logl.S: Likewise.
+	* sysdeps/libm-i387/e_remainder.S: Likewise.
+	* sysdeps/libm-i387/e_remainderf.S: Likewise.
+	* sysdeps/libm-i387/e_remainderl.S: Likewise.
+	* sysdeps/libm-i387/e_scalb.S: Likewise.
+	* sysdeps/libm-i387/e_scalbl.S: Likewise.
+	* sysdeps/libm-i387/e_sqrt.S: Likewise.
+	* sysdeps/libm-i387/e_sqrtf.S: Likewise.
+	* sysdeps/libm-i387/e_sqrtl.S: Likewise.
+	* sysdeps/libm-i387/s_atan.S: Likewise.
+	* sysdeps/libm-i387/s_atanf.S: Likewise.
+	* sysdeps/libm-i387/s_atanl.S: Likewise.
+	* sysdeps/libm-i387/s_ceil.S: Likewise.
+	* sysdeps/libm-i387/s_ceilf.S: Likewise.
+	* sysdeps/libm-i387/s_ceill.S: Likewise.
+	* sysdeps/libm-i387/s_copysign.S: Likewise.
+	* sysdeps/libm-i387/s_copysignf.S: Likewise.
+	* sysdeps/libm-i387/s_copysignl.S: Likewise.
+	* sysdeps/libm-i387/s_cos.S: Likewise.
+	* sysdeps/libm-i387/s_cosf.S: Likewise.
+	* sysdeps/libm-i387/s_cosl.S: Likewise.
+	* sysdeps/libm-i387/s_finite.S: Likewise.
+	* sysdeps/libm-i387/s_finitef.S: Likewise.
+	* sysdeps/libm-i387/s_finitel.S: Likewise.
+	* sysdeps/libm-i387/s_floor.S: Likewise.
+	* sysdeps/libm-i387/s_floorf.S: Likewise.
+	* sysdeps/libm-i387/s_floorl.S: Likewise.
+	* sysdeps/libm-i387/s_ilogb.S: Likewise.
+	* sysdeps/libm-i387/s_ilogbf.S: Likewise.
+	* sysdeps/libm-i387/s_ilogbl.S: Likewise.
+	* sysdeps/libm-i387/s_log1p.S: Likewise.
+	* sysdeps/libm-i387/s_log1pf.S: Likewise.
+	* sysdeps/libm-i387/s_log1pl.S: Likewise.
+	* sysdeps/libm-i387/s_logb.S: Likewise.
+	* sysdeps/libm-i387/s_logbf.S: Likewise.
+	* sysdeps/libm-i387/s_logbl.S: Likewise.
+	* sysdeps/libm-i387/s_rint.S: Likewise.
+	* sysdeps/libm-i387/s_rintf.S: Likewise.
+	* sysdeps/libm-i387/s_rintl.S: Likewise.
+	* sysdeps/libm-i387/s_scalbn.S: Likewise.
+	* sysdeps/libm-i387/s_scalbnf.S: Likewise.
+	* sysdeps/libm-i387/s_scalbnl.S: Likewise.
+	* sysdeps/libm-i387/s_significand.S: Likewise.
+	* sysdeps/libm-i387/s_significandf.S: Likewise.
+	* sysdeps/libm-i387/s_significandl.S: Likewise.
+	* sysdeps/libm-i387/s_sin.S: Likewise.
+	* sysdeps/libm-i387/s_sinf.S: Likewise.
+	* sysdeps/libm-i387/s_sinl.S: Likewise.
+	* sysdeps/libm-i387/s_tan.S: Likewise.
+	* sysdeps/libm-i387/s_tanf.S: Likewise.
+	* sysdeps/libm-i387/s_tanl.S: Likewise.
+
+	* sysdeps/unix/sysv/linux/i386/clone.S: Add .size directive.
+	* sysdeps/unix/sysv/linux/i386/mmap.S. Likewise.
+	* sysdeps/unix/sysv/linux/i386/socket.S. Likewise.
+	* sysdeps/unix/sysv/linux/i386/sysdep.S. More compact .size line.
+
+	* sysdeps/i386/sysdep.h (ASM_SIZE_DIRECTIVE): New macro.  Used
+	to provide .size directive on ELF systems.
+
+	* sysdeps/unix/sysv/linux/i386/profil-counter.h: Include
+	<sigcontext.h> and rename parameter type to sigcontext.
+	* sysdeps/unix/sysv/linux/i386/sigcontext.h New file.
+
+	* sysdeps/unix/sysv/linux/i386/syscall.S: From Linux 2.1 on
+	negative values might occur as positive results.  Test against
+	-125 to decide for error or not.
+	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise for system calls.
+
+Thu Oct  3 21:07:58 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* elf/dl-open.c: Use _DYNAMIC instead of _dl_start to decide
+	whether this is a statically linked program.  The latter is now
+	always defined.
+
+Fri Oct  4 02:08:10 1996  Bang Jun-Young  <bangjy@nownuri.nowcom.co.kr>
+
+	* po/ko.po: Update.
+
+Fri Oct  4 02:07:46 1996  Michel Robitaille  <robitail@IRO.UMontreal.CA>
+
+	* po/fr.po: New file.
+
+Fri Oct  4 05:04:52 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/unix/sysv/linux/i386/sigcontext.h: New file.
+
+	Add support for MD5 crypt replacement.
+	* Makefile (subdirs): Add crypt.
+	* shlib-versions: Add entry for libcrypt.
+	* crypt/md5-crypt.c: New file.
+	* crypt/md5.c: New file.
+	* crypt/md5.h: New file.
+	* sysdeps/generic/crypt-entry.c: New file.
+	* sysdeps/generic/crypt.h: New file.
+
+Thu Oct  3 20:53:23 1996  Andreas Jaeger  <aj@arthur.pfalz.de>
+
+	* dirent/tst-seekdir.c: Provide correct prototypes.
+	* io/test-utime.c: Likewise.
+	* malloc/mallocbug.c: Likewise.
+	* posix/testfnm.c: Likewise.
+	* stdio-common/xbug.c: Likewise.
+	* sysdeps/posix/cuserid.c: Likewise.
+
+Wed Oct  2 13:33:48 1996  Richard Henderson  <rth@tamu.edu>
+
+	Provide optimized string functions for Alpha processors.
+	* sysdeps/alpha/bzero.S: New file.
+	* sysdeps/alpha/memset.S: New file.
+	* sysdeps/alpha/stpcpy.S: New file.
+	* sysdeps/alpha/stpncpy.S: New file.
+	* sysdeps/alpha/strcat.S: New file.
+	* sysdeps/alpha/strchr.S: New file.
+	* sysdeps/alpha/strcpy.S: New file.
+	* sysdeps/alpha/strncat.S: New file.
+	* sysdeps/alpha/strncpy.S: New file.
+	* sysdeps/alpha/strrchr.S: New file.
+	* sysdeps/alpha/stxcpy.S: New file.
+	* sysdeps/alpha/stxncpy.S: New file.
+
+	* sysdeps/alpha/Makefile [$(sudir)==string]: Add stxcpy and
+	stxncpy to sysdep_routines.
+	Minor correction.
+
+Wed Oct  2 13:41:48 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/generic/strtok.c: Don't set stored pointer to NULL when
+ 	notheing is found.  This guarantees all subsequent calls behave
+ 	the same.
+	* sysdeps/generic/strtok_r.c: Likewise.
+
+Mon Sep 30 22:27:36 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* sysdeps/posix/tempname.c (__stdio_gen_tempname): Don't declare
+	`i' as const.
+
+Mon Sep 30 22:38:29 1996  Richard Henderson  <rth@tamu.edu>
+
+	* sysdeps/generic/strtok.c: When we hit EOS, don't set olds to
+	NULL immediately; we're going to get called one more time.
+	* sysdeps/generic/strtok_r.c: Likewise.
+
+Tue Oct  1 09:12:21 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	* locale/programs/ld-time.c: Always write some bytes at the end of
+ 	the file even if no `era's are specified.
+
+	* stdio-common/tmpname.c (tmpbuf): Don't define as array of
+ 	pointers.
+
+Tue Oct  1 01:43:11 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	* libio/iofclose.c: Move unlocking to right position.
+
+Mon Sep 30 03:08:34 1996  Richard Henderson  <rth@tamu.edu>
+
+	* misc/Makefile: Kill force-wrapper.
+	* misc/force-wrapper.c: Delete.
+
+	* elf/eval.c: Add <string.h>.
+
+	* gmon/sys/gmon_out.h: Nonsense like `char foo[sizeof(char*)]'
+	followed by `bcopy(&ptr, &foo, sizeof(foo))' helps portability
+	and binary compatibility not at all.  Better to do `char *foo'
+	followed by `foo = ptr' as it is much cleaner.
+	(struct gmon_hdr): Fix version.
+	(struct gmon_hist_hdr): Fix low_pc, high_pc, hist_size, prof_rate.
+	(struct gmon_cg_arc_record): Fix from_pc, self_pc, count.
+	* gmon/gmon.c: De-ansidecl-ify.
+	(write_hist): De-bcopy-fy.
+	(write_call_graph): Likewise.
+
+	* gmon/mcount.c: Assume _MCOUNT_DECL does the entire declaration.
+	* sysdeps/alpha/machine-gmon.h: Update _MCOUNT_DECL.
+	* sysdeps/generic/machine-gmon.h: Likewise.
+
+	* resolv/netdb.h: Add __set_h_errno to mimic __set_errno.
+	* nss/getXXent_r.c: Use __set_h_errno to set h_errno in all funcs.
+	* nss/nss_dns/dns-network.c: Likewise.
+	* resolv/getunamaddr.c: Likewise.  Also use __set_errno where needed.
+	* resolv/getnetnamadr.c: Likewise.
+	* resolv/res_debug.c: Likewise.
+	* resolv/res_mkquery.c: Likewise.
+	* resolv/res_query.c: Likewise.
+
+	* libio/clearerr_u.c: It's not necessary to define __ protected
+	function so don't do it.
+	* libio/feof_u.c, libio/ferror_u.c, libio/fputc_u.c,
+	  libio/getc_u.c, libio/getchar_u.c, libio/iofflush_u.c: Likewise.
+
+	* libio/fgetc.c: Avoid a warning by casting _IO_funlockfile for
+	the cleanup registrar.
+	* libio/fputc.c, libio/freopen.c, libio/fseek.c, libio/getc.c,
+	  libio/getchar.c, libio/iofclose.c, libio/iofflush.c,
+	  libio/iofgetpos.c, libio/iofgets.c, libio/iofputs.c,
+	  libio/iofread.c, libio/iofsetpos.c, libio/ioftell.c,
+	  libio/iofwrite.c, libio/iogetdelim.c, libio/iogets.c,
+	  libio/ioputs.c, libio/iosetbuffer.c, libio/iosetvbuf.c,
+	  libio/ioungetc.c, libio/putc.c, libio/putchar.c, libio/rewind.c:
+	Likewise.
+
+	* locale/programs/ld-ctype.c: Include <alloca.h>.
+
+	* login/login_tty.c: Get login_tty prototype from <utmp.h>.
+
+	* posix/sys/types.h: Change #defines to typedefs.  This is looking
+	forward to more comprehensive namespace cleanups for C++.
+	* posix/unistd.h: Likewise for ssize_t.
+
+	* pwd/getpw.c: Prototype and rename getpw -> __getpw and add a
+	weak alias.
+
+	* resolv/base64.c: Don't do `for (NULL; ...)' as it causes
+	`statement with no effect' warnings.
+	* resolv/inet_neta.c: Include <string.h> for strlen.
+
+	* stdio-common/getline.c: Undef ssize_t before libio redefinition.
+	* stdio-common/tstgetln.c: Same.  De-ansidecl-ify.
+	* stdio-common/vfprintf.c: Same for va_list.
+	* stdio-common/vfscanf.c: Same.
+	* stdio-common/reg-printf.c: Prototype the __ function.
+	* stdio-common/scanf.c [USE_IN_LIBIO]: Include <libioP.h> for
+	_IO_vscanf declaration.
+
+	* string/tester.c: Tsk, tsk.  Don't cast pointers to int,
+	but to unsigned long for the health of 64-bit systems.
+
+	* sunrpc/svc_udp.c: Define MAX only if we don't have it yet.
+	Many system's <sys/param.h> pulls this in.
+
+	* sysdeps/generic/dl-cache.c: Kill the bottom half of the
+	patch doubled file.
+
+	* sysdeps/generic/pty.c (forkpty): Get login_tty decl from <utmp.h>
+	instead of defining it locally.
+
+	* sysdeps/posix/sigvec.c: Prototype wrapper_handler and convert_mask.
+	* sysdeps/stub/chflags.c: Prototype chflags.
+	* sysdeps/stub/fchflags.c: Prototype fchflags.
+	* sysdeps/stub/sstk.c: Prototype sstk.
+
+	* sysdeps/unix/alpha/sysdep.S:  Add strong alias from errno
+	variable to __errno.  Update __syscall_error to store to both
+	the global and per-thread variables.
+
+	* sysdeps/unix/sysv/linux/init-first.c: Change include of
+	init-first.h from "" to <> as "" does not search the include path.
+	Prototype _dl_start.
+
+Sun Sep 29 14:41:17 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Make it a
+	pattern rule to get the right stem.
+
+Sat Sep 28 01:30:06 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* Makefile ($(objpfx)version-info.h): Fix typo in previous change.
+
+Sat Sep 28 00:44:38 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* sysdeps/posix/euidaccess.c (__set_errno): Fix typo.
+
+Sat Sep 28 00:40:38 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* malloc/free.c (_free_internal): Don't call free recursively, use
+	the internal functions instead.
+
+Sat Sep 28 00:23:20 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* sysdeps/posix/tempname.c (__stdio_gen_tempname) [USE_IN_LIBIO &&
+	_IO_MTSAFE_IO]: Allocate and initialize the file lock.
+
+Fri Sep 27 23:58:17 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* catgets/gencat.c (main): Print version information on stdout,
+	not stderr.
+	* db/makedb.c: Likewise.
+	* locale/programs/locale.c: Likewise.
+	* locale/programs/localedef.c: Likewise.
+
+Mon Sep 30 00:14:26 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	Add implementation of netgroup.
+	* inet/Makefile (distributes): Add netgroup.h.
+	(routines): Add getnetgrent.c and getnetgrent_r.c.
+	* inet/getnetgrent.c: New file.
+	* inet/getnetgrent_r.c: New file.
+	* inet/netgroup.h: New file.
+	* netgroup.h: New file.
+	* nsswitch.h: New file.
+	* nss/Makefile (databases): Add getgrp.
+	* nss/databases.def: Add netgroup.
+	* nss/db-Makefile: Add rules for netgroup.
+	* nss/netgrp-lookup.c: New file.
+	* nss/nss.h: Add new status value NSS_STATUS_RETURN which will
+	always return without a check of the transition table.
+	* nss/nsswitch.h (struct service_user): Extend actions array to
+	five elements.
+	* nss/nsswitch.c (__nss_next): Allow NSS_STATUS_RETURN as legal
+	status value.
+	(nss_parse_service_list): Initialize action for NSS_STATUS_RETURN
+	to NSS_ACTION_RETURN.
+	* nss/nss_db/db-netgrp.c: New file.
+	* nss/nss_files/files-netgrp.c: New file.
+	* nss/nsswitch.conf: Add entry for netgroup.
+	* resolv/netdb.h: Add prototypes for netgroup functions.
+
+	* nss/nss_db/db-XXX.c: Use `enum nss_status' type when status
+	value is used.
+
+Sun Sep 29 12:55:58 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/unix/sysv/linux/syscalls.list: Change funciton name for
+ 	_llseek to _llseek (not llseek).
+	Reported by Matthias Urlichs <smurf@smurf.noris.de>.
+
+Sun Sep 29 05:34:32 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	* inet/rcmd.c: Remove definition of MIN.
+
+Sat Sep 28 14:22:51 1996  Ulrich Drepper  <drepper@cygnus.com>
+
+	* dirent/readdir_r.c: Removed.  We indeed need a real implementation.
+	* sysdeps/unix/readdir_r.c: New file.
+	* sysdeps/unix/readdir.c: Remove check for correct parameter
+	values.  Let them simply die.
+	* manual/filesys.texi: Document readdir_r.
+
+	* sysdeps/gnu/errlist.awk: Define _sys_errlist as `const char* const'.
+	Proposed by Per Abrahamsen <abraham@dina.kvl.dk>.
+
 Sat Sep 28 03:02:49 1996  Ulrich Drepper  <drepper@cygnus.com>
 
 	* dirent/Makefile (routines): Add readdir_r.
diff --git a/Makefile b/Makefile
index c9513a2684..8556b61761 100644
--- a/Makefile
+++ b/Makefile
@@ -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 $(sysdep-subdirs) nss elf po $(add-ons)
+	  wctype manual shadow crypt $(sysdep-subdirs) nss elf po $(add-ons)
 export subdirs := $(subdirs)	# Benign, useless in GNU make before 3.63.
 
 # The mach and hurd subdirectories have many generated header files which
diff --git a/README.libm b/README.libm
index 6efd8ceed3..40edd3177a 100644
--- a/README.libm
+++ b/README.libm
@@ -4,7 +4,6 @@ function have to be written:
 e_acosl.c
 e_asinl.c
 e_atan2l.c
-e_acoshl.c
 e_expl.c
 e_fmodl.c
 e_hypotl.c
diff --git a/dirent/tst-seekdir.c b/dirent/tst-seekdir.c
index 3022783e54..f12b13f4d3 100644
--- a/dirent/tst-seekdir.c
+++ b/dirent/tst-seekdir.c
@@ -3,7 +3,7 @@
 #include <stdlib.h>
 
 int
-main ()
+main (int argc, char *argv[])
 {
 
   DIR * dirp;
@@ -31,7 +31,7 @@ main ()
   /* go back to saved entry */
   seekdir (dirp, save3);
 
-  
+
   /* print remaining files (3-last) */
   for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
     printf("%s\n", dp->d_name);
diff --git a/elf/dl-open.c b/elf/dl-open.c
index ff19f811d5..6b8b218582 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -23,7 +23,7 @@ Cambridge, MA 02139, USA.  */
 #include <errno.h>
 
 
-extern void _dl_start (void); weak_extern (_dl_start)
+weak_extern (_DYNAMIC)
 
 extern int __libc_multiple_libcs;	/* Defined in init-first.c.  */
 
@@ -40,9 +40,6 @@ _dl_open (const char *file, int mode)
   struct link_map *new, *l;
   ElfW(Addr) init;
   struct r_debug *r;
-  /* To decide whether we are the static libc or not.  We must use
-     this variable since gcc would otherwise optimize the test away.  */
-  void (*dl_start_ptr) (void) = &_dl_start;
 
   /* Load the named object.  */
   new = _dl_map_object (NULL, file, lt_loaded);
@@ -144,10 +141,9 @@ _dl_open (const char *file, int mode)
     (*(void (*) (int, char **, char **)) init) (__libc_argc, __libc_argv,
 						__environ);
 
-  if (dl_start_ptr == NULL)
-    /* We must be the static _dl_open in libc.a because ld.so.1 is not
-       in scope.  A static program that has loaded a dynamic object
-       now has competition.  */
+  if (_DYNAMIC == NULL)
+    /* We must be the static _dl_open in libc.a.  A static program that
+       has loaded a dynamic object now has competition.  */
     __libc_multiple_libcs = 1;
 
   return new;
diff --git a/io/test-utime.c b/io/test-utime.c
index 565e010815..ef5ab97fd2 100644
--- a/io/test-utime.c
+++ b/io/test-utime.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994 Free Software Foundation, Inc.
+/* 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
@@ -22,7 +22,7 @@ Cambridge, MA 02139, USA.  */
 #include <unistd.h>
 
 int
-main ()
+main (int argc, char *argv[])
 {
   char file[L_tmpnam];
   struct utimbuf ut;
diff --git a/math/Makefile b/math/Makefile
index c7bacd03f8..9b15e636b4 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -49,9 +49,9 @@ libm-calls = e_acos e_acosh e_asin e_atan2 e_atanh e_cosh e_exp e_fmod	\
 libm-routines = $(libm-support) $(libm-calls) \
 		$(patsubst %_rf,%f_r,$(libm-calls:=f))	\
 		$(long-m-$(long-double-fcts))
-long-m-routines = $(patsubst %_rl,%l_r,$(libm-calls:=l)) # not ready yet
-#long-m-yes = $(long-m-routines) # uncomment this when code works
-#distribute += $(long-m-routines:=.c) # and this when at least all files exist
+long-m-routines = $(patsubst %_rl,%l_r,$(libm-calls:=l))
+long-m-yes = $(long-m-routines)
+distribute += $(long-m-yes:=.c)
 
 # These functions are in libc instead of libm because __printf_fp
 # calls them, so any program using printf will need them linked in,
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000000..94c54e838c
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,2652 @@
+# Messages frangais pour GNU concernant gcal.
+# Copyright (C) 1996 Free Software Foundation, Inc.
+# Michel Robitaille <robitail@IRO.UMontreal.CA>, 1996.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU libc 1.94\n"
+"POT-Creation-Date: 1996-09-08 03:45 -0400\n"
+"PO-Revision-Date: 1996-09-29 14:50 -0400\n"
+"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
+"Language-Team: French <fr@li.org>\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 fichier_de_sortie] [fichier_d_entrée]\n"
+
+#: sunrpc/rpc_main.c:83
+#, c-format
+msgid "       %s [-s udp|tcp]* [-o outfile] [infile]\n"
+msgstr "       %s [-s udp|tcp]* [-o fichier_de_sortie] [fichier_d_entrée]\n"
+
+#: sunrpc/rpcinfo.c:612
+msgid "       rpcinfo -b prognum versnum\n"
+msgstr "       rpcinfo -b no_program no_version\n"
+
+#: sunrpc/rpcinfo.c:613
+msgid "       rpcinfo -d prognum versnum\n"
+msgstr "       rpcinfo -d no_program no_version\n"
+
+#: sunrpc/rpcinfo.c:611
+msgid "       rpcinfo -p [ host ]\n"
+msgstr "       rpcinfo -p [ hôte ]\n"
+
+#: sunrpc/rpcinfo.c:610
+msgid "       rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
+msgstr "       rpcinfo [ -n no_de_port ] -t hôte no_program [ no_version ]\n"
+
+#: sunrpc/rpcinfo.c:517
+msgid "   program vers proto   port\n"
+msgstr "   program no_version protocole  no_port\n"
+
+#: time/zic.c:425
+#, c-format
+msgid " (rule from \"%s\", line %d)"
+msgstr " (règles de \"%s\", ligne %d)"
+
+#: locale/programs/ld-collate.c:360 locale/programs/ld-ctype.c:1233
+msgid " done\n"
+msgstr " complété\n"
+
+#: time/zic.c:422
+#, c-format
+msgid "\"%s\", line %d: %s"
+msgstr "\"%s\", ligne %d: %s"
+
+#: time/zic.c:946
+#, 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:954
+#, 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:759
+#, c-format
+msgid "%s in ruleless zone"
+msgstr "%s est dans une zone sans règle."
+
+#: assert/assert.c:48
+#, c-format
+msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
+msgstr "%s%s%s:%u: %s%s l'assertion `%s' a échoué.\n"
+
+#: assert/assert-perr.c:46
+#, c-format
+msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
+msgstr "%s%s%s:%u: %s%s erreur non prévue: %s.\n"
+
+#: stdio-common/psignal.c:48
+#, c-format
+msgid "%s%sUnknown signal %d\n"
+msgstr "%s%ssignal inconnu %d\n"
+
+#: sunrpc/rpc_util.c:258
+#, c-format
+msgid "%s, line %d: "
+msgstr "%s, ligne %d: "
+
+#: time/zic.c:2140
+#, 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"
+
+#: locale/programs/charmap.c:176
+#, c-format
+msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
+msgstr "%s: <mb_cur_max> doit être plus grande que <mb_cur_min>\n"
+
+#: time/zic.c:1431
+#, c-format
+msgid "%s: Can't create %s: %s\n"
+msgstr "%s: ne peut créer %s: %s\n"
+
+#: time/zic.c:2119
+#, 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:613
+#, 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:784
+#, c-format
+msgid "%s: Can't open %s: %s\n"
+msgstr "%s: ne peut ouvrir %s: %s\n"
+
+#: time/zic.c:852
+#, c-format
+msgid "%s: Error closing %s: %s\n"
+msgstr "%s: erreur lors de la fermeture de %s: %s\n"
+
+#: time/zic.c:846
+#, c-format
+msgid "%s: Error reading %s\n"
+msgstr "%s: erreur de lecture de %s\n"
+
+#: time/zic.c:1495
+#, c-format
+msgid "%s: Error writing %s\n"
+msgstr "%s: erreur d'écriture de %s\n"
+
+#: time/zdump.c:258
+#, c-format
+msgid "%s: Error writing standard output "
+msgstr "%s: erreur d'écriture sur la sortie standard "
+
+#: 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 de délai en secondes %s\n"
+
+#: time/zic.c:362
+#, c-format
+msgid "%s: Memory exhausted: %s\n"
+msgstr "%s: mémoire épuisée: %s\n"
+
+#: time/zic.c:528
+#, 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:488
+#, 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:498
+#, 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:508
+#, 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:518
+#, 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:1846
+#, c-format
+msgid "%s: command was '%s', result was %d\n"
+msgstr "%s: la commande était '%s', le résultat était %d.\n"
+
+#: locale/programs/charmap.c:593 locale/programs/locfile.c:878
+#, c-format
+msgid "%s: error in state machine"
+msgstr "%s: erreur de l'automate à états finis."
+
+#: posix/getopt.c:686
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: option illégale -- %c.\n"
+
+#: posix/getopt.c:689
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: option invalide -- %c.\n"
+
+#: posix/getopt.c:610
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: l'option `%c%s' ne permet pas de paramètre.\n"
+
+#: posix/getopt.c:581
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: l'option `%s' est ambiguë.\n"
+
+#: posix/getopt.c:627
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: l'option `%s' requiert un paramètre.\n"
+
+#: posix/getopt.c:605
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: l'option `--%s' ne permet pas de paramètre.\n"
+
+#: posix/getopt.c:725
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: l'option requiert un paramètre -- %c.\n"
+
+#: sunrpc/rpc_main.c:146
+#, c-format
+msgid "%s: output would overwrite %s\n"
+msgstr "%s: la sortie écraserait %s.\n"
+
+#: time/zic.c:838 time/zic.c:1249 time/zic.c:1269
+#, c-format
+msgid "%s: panic: Invalid l_value %d\n"
+msgstr "%s: panique: valeur %d de type `l_value' invalide.\n"
+
+#: locale/programs/charmap.c:600
+#, c-format
+msgid "%s: premature end of file"
+msgstr "%s: fin prématurée de fichier."
+
+#: sunrpc/rpc_main.c:152
+#, c-format
+msgid "%s: unable to open "
+msgstr "%s: incapable d'ouvrir "
+
+#: posix/getopt.c:660
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: option non reconnue `%c%s'.\n"
+
+#: posix/getopt.c:656
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: option non reconnue `--%s'.\n"
+
+#: time/zic.c:447
+#, c-format
+msgid ""
+"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d "
+"directory ]\n"
+"\t[ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
+msgstr ""
+"%s: usage: %s [ -s ] [ -v ] [ -l temps_local ] [ -p règles_posix ]\n"
+"\t[ -d répertoire ]\n"
+"\t[ -L secondes_écoulées ] [ -y type_année ] [ fichier ... ]\n"
+
+#: time/zdump.c:165
+#, c-format
+msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n"
+msgstr "%s: usage: %s [ -v ] [ -c seuil ] nom_de_zone ...\n"
+
+#: sunrpc/clnt_perr.c:125
+#, c-format
+msgid "(unknown authentication error - %d)"
+msgstr "(erreur inconnue d'authentification - %d)"
+
+#: sunrpc/rpcinfo.c:555
+msgid "(unknown)"
+msgstr "(inconnu)"
+
+#: catgets/gencat.c:244
+msgid "*standard input*"
+msgstr "*entrée standard*"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:766
+msgid ".lib section in a.out corrupted"
+msgstr "La section .lib dans a.out est corrompue."
+
+#: inet/rcmd.c:325
+msgid ".rhosts fstat failed"
+msgstr "Échec d'évaluation fstat() de .rhosts."
+
+#: inet/rcmd.c:321
+msgid ".rhosts lstat failed"
+msgstr "Échec d'évaluation lstat() de .rhosts."
+
+#: inet/rcmd.c:323
+msgid ".rhosts not regular file"
+msgstr ".rhosts n'est pas un fichier régulier."
+
+#: inet/rcmd.c:329
+msgid ".rhosts writeable by other than owner"
+msgstr ".rhosts accessible en écriture par d'autres que le propriétaire."
+
+#: sunrpc/clnt_perr.c:112 sunrpc/clnt_perr.c:133
+#, c-format
+msgid "; low version = %lu, high version = %lu"
+msgstr "; version basse = %lu, version haute = %lu"
+
+#: sunrpc/clnt_perr.c:119
+msgid "; why = "
+msgstr "; pourquoi = "
+
+#: locale/programs/ld-ctype.c:325
+#, c-format
+msgid "<SP> character must not be in class `%s'"
+msgstr "Le caractères <SP> ne doit pas être dans la classe `%s'."
+
+#: locale/programs/ld-ctype.c:316
+#, c-format
+msgid "<SP> character not in class `%s'"
+msgstr "Le caractères <SP> n'est pas dans la classe `%s'."
+
+#. 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.
+#: stdio-common/../sysdeps/gnu/errlist.c:591
+msgid "?"
+msgstr "?"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:762
+msgid "Accessing a corrupted shared library"
+msgstr "Accès d'une librairie partagée corrompue."
+
+#. TRANS The requested socket address is already in use.  @xref{Socket Addresses}.
+#: stdio-common/../sysdeps/gnu/errlist.c:354
+msgid "Address already in use"
+msgstr "Adresse déjà utilisée."
+
+#. TRANS The address family specified for a socket is not supported; it is
+#. TRANS inconsistent with the protocol being used on the socket.  @xref{Sockets}.
+#: stdio-common/../sysdeps/gnu/errlist.c:349
+msgid "Address family not supported by protocol"
+msgstr "Famille d'adresses non supportée par le protocole."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:714
+msgid "Advertise error"
+msgstr "Erreur d'annonce."
+
+#. TRANS Argument list too long; used when the arguments passed to a new program
+#. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a
+#. TRANS File}) occupy too much memory space.  This condition never arises in the
+#. TRANS GNU system.
+#: stdio-common/../sysdeps/gnu/errlist.c:57
+msgid "Argument list too long"
+msgstr "Liste de paramètres trop longue."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:770
+msgid "Attempting to link in too many shared libraries"
+msgstr "Tentative d'édition de liens à partir de trop de librairies partagées."
+
+#: sunrpc/clnt_perr.c:276
+msgid "Authentication OK"
+msgstr "Succès d'authentification."
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:549
+msgid "Authentication error"
+msgstr "Erreur d'authentification."
+
+#. TRANS Bad address; an invalid pointer was detected.
+#. TRANS In the GNU system, this error never happens; you get a signal instead.
+#: stdio-common/../sysdeps/gnu/errlist.c:102
+msgid "Bad address"
+msgstr "Mauvaise adresse."
+
+#. TRANS Bad file descriptor; for example, I/O on a descriptor that has been
+#. TRANS closed or reading from a descriptor open only for writing (or vice
+#. TRANS versa).
+#: stdio-common/../sysdeps/gnu/errlist.c:70
+msgid "Bad file descriptor"
+msgstr "Mauvais descripteur de fichier."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:682
+msgid "Bad font file format"
+msgstr "Mauvais format du fichier de fontes."
+
+#. 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.
+#: stdio-common/../sysdeps/gnu/errlist.c:109
+msgid "Block device required"
+msgstr "Bloc de périphérique requis."
+
+#: sunrpc/pmap_rmt.c:335
+msgid "Broadcast select problem"
+msgstr "Problème de sélection durant la diffusion."
+
+#. TRANS Broken pipe; there is no process reading from the other end of a pipe.
+#. TRANS Every library function that returns this error code also generates a
+#. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled
+#. TRANS or blocked.  Thus, your program will never actually see @code{EPIPE}
+#. TRANS unless it has handled or blocked @code{SIGPIPE}.
+#: stdio-common/../sysdeps/gnu/errlist.c:222
+msgid "Broken pipe"
+msgstr "Relais brisé (pipe)"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:758
+msgid "Can not access a needed shared library"
+msgstr "Ne peut accéder à la librairie partagée demandée."
+
+#. TRANS No memory available.  The system cannot allocate more virtual memory
+#. TRANS because its capacity is full.
+#: stdio-common/../sysdeps/gnu/errlist.c:91
+msgid "Cannot allocate memory"
+msgstr "Ne peut allouer de la mémoire."
+
+#. TRANS The requested socket address is not available; for example, you tried
+#. TRANS to give a socket a name that doesn't match the local host name.
+#. TRANS @xref{Socket Addresses}.
+#: stdio-common/../sysdeps/gnu/errlist.c:361
+msgid "Cannot assign requested address"
+msgstr "Ne peut attribuer l'adresse demandée."
+
+#: sunrpc/pmap_rmt.c:253
+msgid "Cannot create socket for broadcast rpc"
+msgstr "Ne peut créer un socket pour une diffusion de type rpc."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:774
+msgid "Cannot exec a shared library directly"
+msgstr "Ne peut exécuter une librairie partagée directement."
+
+#: sunrpc/pmap_rmt.c:347
+msgid "Cannot receive reply to broadcast"
+msgstr "Ne peut recevoir l'accusé réception à la requête faite par diffusion."
+
+#: sunrpc/pmap_clnt.c:79
+msgid "Cannot register service"
+msgstr "Ne peut enregistrer le service."
+
+#. TRANS The socket has already been shut down.
+#: stdio-common/../sysdeps/gnu/errlist.c:422
+msgid "Cannot send after transport endpoint shutdown"
+msgstr "Ne peut transmettre après la fermeture du noeud final de transport."
+
+#: sunrpc/pmap_rmt.c:311
+msgid "Cannot send broadcast packet"
+msgstr "Ne peut transmettre le paquet par diffusion."
+
+#: sunrpc/pmap_rmt.c:259
+msgid "Cannot set socket option SO_BROADCAST"
+msgstr "Ne peut initialiser l'option `SO_BROADCAST' de socket."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:622
+msgid "Channel number out of range"
+msgstr "Numéro de canal en dehors des limites."
+
+#: sunrpc/clnt_perr.c:286
+msgid "Client credential too weak"
+msgstr "Identité du client peu fiable."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:722
+msgid "Communication error on send"
+msgstr "Erreur de communication lors de la transmission."
+
+#. 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 "Allez à la maison et buvez un verre de lait."
+
+#: locale/programs/ld-ctype.c:1196
+msgid "Computing table size for character classes might take a while..."
+msgstr ""
+"Le calcul de la taille de la table des classes de caractères\n"
+"peut prendre un certain temps..."
+
+#: locale/programs/ld-collate.c:327
+msgid "Computing table size for collation information might take a while..."
+msgstr ""
+"Le calcul de la taille de la table pour le fusionnement des informations\n"
+"peut prendre un certain temps..."
+
+#. TRANS A remote host refused to allow the network connection (typically because
+#. TRANS it is not running the requested service).
+#: stdio-common/../sysdeps/gnu/errlist.c:439
+msgid "Connection refused"
+msgstr "Connexion refusée."
+
+#. TRANS A network connection was closed for reasons outside the control of the
+#. TRANS local host, such as by the remote machine rebooting or an unrecoverable
+#. TRANS protocol violation.
+#: stdio-common/../sysdeps/gnu/errlist.c:389
+msgid "Connection reset by peer"
+msgstr "Connexion ré-initialisée par le correspondant."
+
+#. TRANS A socket operation with a specified timeout received no response during
+#. TRANS the timeout period.
+#: stdio-common/../sysdeps/gnu/errlist.c:433
+msgid "Connection timed out"
+msgstr "Connexion terminée par expiration du délai d'inactivité."
+
+#. 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}.
+#: stdio-common/../sysdeps/gnu/errlist.c:417
+msgid "Destination address required"
+msgstr "Adresse de destination requise."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:686
+msgid "Device not a stream"
+msgstr "Le périphérique n'est pas de type stream."
+
+#. TRANS No such device or address.  The system tried to use the device
+#. TRANS represented by a file you specified, and it couldn't find the device.
+#. TRANS This can mean that the device file was installed incorrectly, or that
+#. TRANS the physical device is missing or not correctly attached to the
+#. TRANS computer.
+#: stdio-common/../sysdeps/gnu/errlist.c:49
+msgid "Device not configured"
+msgstr "Périphérique non configuré."
+
+#. TRANS Resource busy; a system resource that can't be shared is already in use.
+#. TRANS For example, if you try to delete a file that is the root of a currently
+#. TRANS mounted filesystem, you get this error.
+#: stdio-common/../sysdeps/gnu/errlist.c:116
+msgid "Device or resource busy"
+msgstr "Périphérique ou ressource occupé."
+
+#. TRANS Directory not empty, where an empty directory was expected.  Typically,
+#. TRANS this error occurs when you are trying to delete a directory.
+#: stdio-common/../sysdeps/gnu/errlist.c:468
+msgid "Directory not empty"
+msgstr "Le répertoire n'est pas vide."
+
+#. TRANS The user's disk quota was exceeded.
+#: stdio-common/../sysdeps/gnu/errlist.c:486
+msgid "Disc quota exceeded"
+msgstr "Débordement du quota du disque."
+
+#: sunrpc/clnt_perr.c:254
+#, c-format
+msgid "Error %d"
+msgstr "Erreur %d"
+
+#: string/../sysdeps/mach/_strerror.c:43
+msgid "Error in unknown error system: "
+msgstr "Erreur provenant d'une erreur système inconnue: "
+
+#: inet/ruserpass.c:156
+msgid "Error: .netrc file is readable by others."
+msgstr "Erreur: le fichier .netrc est lisible par les autres."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:662
+msgid "Exchange full"
+msgstr "L'échangeur est plein."
+
+#. TRANS Invalid executable file format.  This condition is detected by the
+#. TRANS @code{exec} functions; see @ref{Executing a File}.
+#: stdio-common/../sysdeps/gnu/errlist.c:63
+msgid "Exec format error"
+msgstr "Erreur de format pour exec()."
+
+#: locale/programs/localedef.c:207
+msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
+msgstr "ERREUR FATALE: le système ne peut définir `_POSIX2_LOCALEDEF'"
+
+#: sunrpc/clnt_perr.c:290
+msgid "Failed (unspecified error)"
+msgstr "Échec (erreur non spécifiée)."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:750
+msgid "File descriptor in bad state"
+msgstr "Le descripteur du fichier est dans un mauvais état."
+
+#. 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 "Le fichier existe."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:678
+msgid "File locking deadlock error"
+msgstr "Erreur de verrou bloquant l'accès au fichier"
+
+#. 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 "Nom de fichier trop long."
+
+#. 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 "Fichier trop gros."
+
+#. TRANS Function not implemented.  Some functions have commands or options defined
+#. TRANS that might not be supported in all implementations, and this is the kind
+#. TRANS of error you get if you request them and they are not supported.
+#: stdio-common/../sysdeps/gnu/errlist.c:561
+msgid "Function not implemented"
+msgstr "Fonction non implantée."
+
+#. TRANS This error code has no purpose.
+#: stdio-common/../sysdeps/gnu/errlist.c:606
+msgid "Gratuitous error"
+msgstr "Erreur gratuite."
+
+#. TRANS The remote host for a requested network connection is down.
+#: stdio-common/../sysdeps/gnu/errlist.c:457
+msgid "Host is down"
+msgstr "L'hôte cible est arrêté ou en panne."
+
+#: resolv/herror.c:75
+msgid "Host name lookup failure"
+msgstr "Erreur de repérage du nom de l'hôte cible."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:618
+msgid "Identifier removed"
+msgstr "Identificateur éliminé."
+
+#. TRANS Invalid seek operation (such as on a pipe).
+#: stdio-common/../sysdeps/gnu/errlist.c:201
+msgid "Illegal seek"
+msgstr "Repérage illégal"
+
+#. TRANS Inappropriate file type or format.  The file was the wrong type for the
+#. TRANS operation, or a data file had the wrong format.
+#. TRANS
+#. TRANS On some systems @code{chmod} returns this error if you try to set the
+#. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}.
+#: stdio-common/../sysdeps/gnu/errlist.c:544
+msgid "Inappropriate file type or format"
+msgstr "Type de fichier ou format inapproprié."
+
+#. TRANS Inappropriate I/O control operation, such as trying to set terminal
+#. TRANS modes on an ordinary file.
+#: stdio-common/../sysdeps/gnu/errlist.c:176
+msgid "Inappropriate ioctl for device"
+msgstr "Ioctl() inappropré pour un périphérique."
+
+#. TRANS In the GNU system, servers supporting the @code{term} protocol return
+#. TRANS this error for certain operations when the caller is not in the
+#. TRANS foreground process group of the terminal.  Users do not usually see this
+#. TRANS error because functions such as @code{read} and @code{write} translate
+#. TRANS it into a @code{SIGTTIN} or @code{SIGTTOU} signal.  @xref{Job Control},
+#. TRANS for information on process groups and these signals.
+#: stdio-common/../sysdeps/gnu/errlist.c:577
+msgid "Inappropriate operation for background process"
+msgstr "Opération inappropriée pour un processus d'arrière-plan."
+
+#. TRANS Input/output error; usually used for physical read or write errors.
+#: stdio-common/../sysdeps/gnu/errlist.c:40
+msgid "Input/output error"
+msgstr "Erreur d'entrée/sortie."
+
+#. TRANS Interrupted function call; an asynchronous signal occured and prevented
+#. TRANS completion of the call.  When this happens, you should try the call
+#. TRANS again.
+#. TRANS
+#. TRANS You can choose to have functions resume after a signal that is handled,
+#. TRANS rather than failing with @code{EINTR}; see @ref{Interrupted
+#. TRANS Primitives}.
+#: stdio-common/../sysdeps/gnu/errlist.c:35
+msgid "Interrupted system call"
+msgstr "Appel système interrompu."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:610
+msgid "Interrupted system call should be restarted"
+msgstr "Appel système interrompu, il aurait dû être relancé."
+
+#. TRANS Invalid argument.  This is used to indicate various kinds of problems
+#. TRANS with passing the wrong argument to a library function.
+#: stdio-common/../sysdeps/gnu/errlist.c:152
+msgid "Invalid argument"
+msgstr "Paramètre invalide."
+
+#: posix/regex.c:946
+msgid "Invalid back reference"
+msgstr "Référence arrière invalide."
+
+#: posix/regex.c:944
+msgid "Invalid character class name"
+msgstr "Nom de classe de caractères invalide."
+
+#: sunrpc/clnt_perr.c:278
+msgid "Invalid client credential"
+msgstr "Identité du client invalide."
+
+#: sunrpc/clnt_perr.c:282
+msgid "Invalid client verifier"
+msgstr "Vérificateur du client invalide."
+
+#: posix/regex.c:943
+msgid "Invalid collation character"
+msgstr "Caractère de fusionnement invalide."
+
+#: posix/regex.c:950
+msgid "Invalid content of \\{\\}"
+msgstr "Contenu invalide de \\{\\}"
+
+#. TRANS An attempt to make an improper link across file systems was detected.
+#. TRANS This happens not only when you use @code{link} (@pxref{Hard Links}) but
+#. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}).
+#: stdio-common/../sysdeps/gnu/errlist.c:129
+msgid "Invalid cross-device link"
+msgstr "Lien croisé de périphéque invalide."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:654
+msgid "Invalid exchange"
+msgstr "Échange invalide."
+
+#. 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.
+#: stdio-common/../sysdeps/gnu/errlist.c:567
+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:953
+msgid "Invalid preceding regular expression"
+msgstr "Expression régulière précédente invalide."
+
+#: posix/regex.c:951
+msgid "Invalid range end"
+msgstr "Fin d'intervalle invalide."
+
+#: posix/regex.c:942
+msgid "Invalid regular expression"
+msgstr "Expression régulière invalide."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:670
+msgid "Invalid request code"
+msgstr "Requête de code invalide."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:658
+msgid "Invalid request descriptor"
+msgstr "Descripteur de requête invalide"
+
+#: sunrpc/clnt_perr.c:288
+msgid "Invalid server verifier"
+msgstr "Vérificateur du serveur invalide."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:674
+msgid "Invalid slot"
+msgstr "Dalot invalide."
+
+#. TRANS File is a directory; you cannot open a directory for writing,
+#. TRANS or create or remove hard links to it.
+#: stdio-common/../sysdeps/gnu/errlist.c:146
+msgid "Is a directory"
+msgstr "est un répertoire."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:794
+msgid "Is a named type file"
+msgstr "est un type de fichier nommé (named)."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:650
+msgid "Level 2 halted"
+msgstr "Niveau 2 en halte."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:626
+msgid "Level 2 not synchronized"
+msgstr "Niveau 2 non synchronisé."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:630
+msgid "Level 3 halted"
+msgstr "Niveau 3 en halte."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:634
+msgid "Level 3 reset"
+msgstr "Niveau 3 réinitialisé."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:710
+msgid "Link has been severed"
+msgstr "Le lien a été endommagé."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:638
+msgid "Link number out of range"
+msgstr "Numéro du lien hors intervalle."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:702
+msgid "Machine is not on the network"
+msgstr "La machine cible n'est pas sur le réseau."
+
+#: posix/regex.c:952
+msgid "Memory exhausted"
+msgstr "Mémoire épuisée."
+
+#. TRANS The size of a message sent on a socket was larger than the supported
+#. TRANS maximum size.
+#: stdio-common/../sysdeps/gnu/errlist.c:305
+msgid "Message too long"
+msgstr "Message trop long."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:730
+#: MRO a verifier
+msgid "Multihop attempted"
+msgstr "Connexion par liens par noeuds multiples de relais tentée."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:746
+msgid "Name not unique on network"
+msgstr "Le nom n'est pas unique sur le réseau."
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:554
+msgid "Need authenticator"
+msgstr "Besoin d'un authentificateur."
+
+#. TRANS A network connection was reset because the remote host crashed.
+#: stdio-common/../sysdeps/gnu/errlist.c:377
+msgid "Network dropped connection on reset"
+msgstr "Le réseau a brisé la connexion lors de la réinitialisation."
+
+#. TRANS A socket operation failed because the network was down.
+#: stdio-common/../sysdeps/gnu/errlist.c:366
+msgid "Network is down"
+msgstr "Le réseau ne fonctionne pas."
+
+#. 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 "Le réseau n'est pas accessible."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:646
+msgid "No CSI structure available"
+msgstr "Aucune structure CSI disponible."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:790
+msgid "No XENIX semaphores available"
+msgstr "Aucun sémaphore XENIX disponible."
+
+#: resolv/herror.c:77
+msgid "No address associated with name"
+msgstr "Aucune adresse associée avec le nom."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:666
+#: MRO a verifier
+msgid "No anode"
+msgstr "Aucune `anode' disponible."
+
+#. TRANS The kernel's buffers for I/O operations are all in use.  In GNU, this
+#. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the
+#. TRANS other from network operations.
+#: stdio-common/../sysdeps/gnu/errlist.c:396
+msgid "No buffer space available"
+msgstr "Aucun espace tampon disponible."
+
+#. TRANS There are no child processes.  This error happens on operations that are
+#. TRANS supposed to manipulate child processes, when there aren't any processes
+#. TRANS to manipulate.
+#: stdio-common/../sysdeps/gnu/errlist.c:77
+msgid "No child processes"
+msgstr "Aucun processus enfant."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:690
+msgid "No data available"
+msgstr "Aucune donnée disponible."
+
+#. TRANS No locks available.  This is used by the file locking facilities; see
+#. TRANS @ref{File Locks}.  This error is never generated by the GNU system, but
+#. TRANS it can result from an operation to an NFS server running another
+#. TRANS operating system.
+#: stdio-common/../sysdeps/gnu/errlist.c:535
+msgid "No locks available"
+msgstr "Aucun verrou disponible."
+
+#: posix/regex.c:941
+msgid "No match"
+msgstr "Pas de concordance."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:614
+msgid "No message of desired type"
+msgstr "Aucun message du type désiré."
+
+#: posix/regex.c:5202
+msgid "No previous regular expression"
+msgstr "Aucune expression régulière ne précède."
+
+#: sunrpc/rpcinfo.c:515
+msgid "No remote programs registered.\n"
+msgstr "Aucun programme enregistré sur l'hôte cible.\n"
+
+#. 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 "Aucun chemin d'accès pour atteindre l'hôte cible."
+
+#. TRANS No space left on device; write operation on a file failed because the
+#. TRANS disk is full.
+#: stdio-common/../sysdeps/gnu/errlist.c:196
+msgid "No space left on device"
+msgstr "Aucun espace disponible sur le périphérique."
+
+#. TRANS No such file or directory.  This is a ``file doesn't exist'' error
+#. TRANS for ordinary files that are referenced in contexts where they are
+#. TRANS expected to already exist.
+#: stdio-common/../sysdeps/gnu/errlist.c:19
+msgid "No such file or directory"
+msgstr "Aucun fichier ou répertoire de ce type."
+
+#. TRANS No process matches the specified process ID.
+#: stdio-common/../sysdeps/gnu/errlist.c:24
+msgid "No such process"
+msgstr "Aucun processus de ce type."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:786
+msgid "Not a XENIX named type file"
+msgstr "Aucun fichier de type XENIX named."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:738
+msgid "Not a data message"
+msgstr "N'est pas un message de données."
+
+#. 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"
+msgstr "N'est pas un répertoire."
+
+#. TRANS Domain error; used by mathematical functions when an argument value does
+#. TRANS not fall into the domain over which the function is defined.
+#: stdio-common/../sysdeps/gnu/errlist.c:228
+msgid "Numerical argument out of domain"
+msgstr "Le paramètre numérique est hors du domaine."
+
+#. TRANS Range error; used by mathematical functions when the result value is
+#. TRANS not representable because of overflow or underflow.
+#: stdio-common/../sysdeps/gnu/errlist.c:234
+msgid "Numerical result out of range"
+msgstr "Le résultat numérique est en dehors de l'intervalle."
+
+#. TRANS An attempt was made to NFS-mount a remote file system with a file name that
+#. TRANS already specifies an NFS-mounted file.
+#. TRANS (This is an error on some operating systems, but we expect it to work
+#. TRANS properly on the GNU system, making this error code impossible.)
+#: stdio-common/../sysdeps/gnu/errlist.c:502
+msgid "Object is remote"
+msgstr "L'objet est télé-accessible."
+
+#: time/zic.c:1940
+msgid "Odd number of quotation marks"
+msgstr "Nombre impair de caractères apostrophe."
+
+#. TRANS An operation is already in progress on an object that has non-blocking
+#. TRANS mode selected.
+#: stdio-common/../sysdeps/gnu/errlist.c:294
+msgid "Operation already in progress"
+msgstr "Opération déjà en cours."
+
+#. TRANS Operation not permitted; only the owner of the file (or other resource)
+#. TRANS or processes with special privileges can perform the operation.
+#: stdio-common/../sysdeps/gnu/errlist.c:12
+msgid "Operation not permitted"
+msgstr "Opération non permise."
+
+#. TRANS The operation you requested is not supported.  Some socket functions
+#. TRANS don't make sense for all types of sockets, and others may not be
+#. TRANS implemented for all communications protocols.  In the GNU system, this
+#. TRANS error can happen for many calls when the object does not support the
+#. TRANS particular operation; it is a generic indication that the server knows
+#. TRANS nothing to do for that call.
+#: stdio-common/../sysdeps/gnu/errlist.c:338
+msgid "Operation not supported"
+msgstr "Opération non supportée."
+
+#. TRANS The wrong type of device was given to a function that expects a
+#. TRANS particular sort of device.
+#: stdio-common/../sysdeps/gnu/errlist.c:135
+msgid "Operation not supported by device"
+msgstr "Opération non supportée par ce périphérique."
+
+#. TRANS An operation that cannot complete immediately was initiated on an object
+#. TRANS that has non-blocking mode selected.  Some functions that must always
+#. TRANS block (such as @code{connect}; @pxref{Connecting}) never return
+#. TRANS @code{EAGAIN}.  Instead, they return @code{EINPROGRESS} to indicate that
+#. TRANS the operation has begun and will take some time.  Attempts to manipulate
+#. TRANS the object before the call completes return @code{EALREADY}.  You can
+#. TRANS use the @code{select} function to find out when the pending operation
+#. TRANS has completed; @pxref{Waiting for I/O}.
+#: stdio-common/../sysdeps/gnu/errlist.c:288
+msgid "Operation now in progress"
+msgstr "Opération maintenant en cours."
+
+#. TRANS In the GNU C library, this is another name for @code{EAGAIN} (above).
+#. TRANS The values are always the same, on every operating system.
+#. TRANS
+#. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a
+#. TRANS separate error code.
+#: stdio-common/../sysdeps/gnu/errlist.c:276
+msgid "Operation would block"
+msgstr "L'opération pourrait se bloquer."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:698
+msgid "Out of streams resources"
+msgstr "Aucune autre ressource de type streams disponible."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:706
+msgid "Package not installed"
+msgstr "Le package n'est pas installé."
+
+#. TRANS Permission denied; the file permissions do not allow the attempted operation.
+#: stdio-common/../sysdeps/gnu/errlist.c:96
+msgid "Permission denied"
+msgstr "Permission non accordée."
+
+#: posix/regex.c:954
+msgid "Premature end of regular expression"
+msgstr "Fin prématurée de l'expression régulière."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:642
+msgid "Protocol driver not attached"
+msgstr "Pilote du protocole n'est pas attaché."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:726
+msgid "Protocol error"
+msgstr "Erreur de protocole."
+
+#. TRANS The socket communications protocol family you requested is not supported.
+#: stdio-common/../sysdeps/gnu/errlist.c:343
+msgid "Protocol family not supported"
+msgstr "Famille de protocoles non supportée."
+
+#. TRANS You specified a socket option that doesn't make sense for the
+#. TRANS particular protocol being used by the socket.  @xref{Socket Options}.
+#: stdio-common/../sysdeps/gnu/errlist.c:316
+msgid "Protocol not available"
+msgstr "Protocole non disponible."
+
+#. TRANS The socket domain does not support the requested communications protocol
+#. TRANS (perhaps because the requested protocol is completely invalid.)
+#. TRANS @xref{Creating a Socket}.
+#: stdio-common/../sysdeps/gnu/errlist.c:323
+msgid "Protocol not supported"
+msgstr "Protocole non supporté."
+
+#. TRANS The socket type does not support the requested communications protocol.
+#: stdio-common/../sysdeps/gnu/errlist.c:310
+msgid "Protocol wrong type for socket"
+msgstr "Mauvais type pour un socket de protocole."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:734
+msgid "RFS specific error"
+msgstr "Erreur spécifique à RFS."
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:527
+msgid "RPC bad procedure for program"
+msgstr "Mauvaise procédure RPC du programme."
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:517
+msgid "RPC program not available"
+msgstr "Programme RPC non disponible."
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:522
+msgid "RPC program version wrong"
+msgstr "Version de programme RPC erronée."
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:507
+msgid "RPC struct is bad"
+msgstr "La déclaration struct RPC est erronée."
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:512
+msgid "RPC version wrong"
+msgstr "Mauvaise version RPC."
+
+#: sunrpc/clnt_perr.c:217
+msgid "RPC: (unknown error code)"
+msgstr "RPC: (code d'erreur inconnu)."
+
+#: sunrpc/clnt_perr.c:179
+msgid "RPC: Authentication error"
+msgstr "RPC: erreur d'authentification."
+
+#: sunrpc/clnt_perr.c:169
+msgid "RPC: Can't decode result"
+msgstr "RPC: ne peut décoder le résultat."
+
+#: sunrpc/clnt_perr.c:167
+msgid "RPC: Can't encode arguments"
+msgstr "RPC: ne peut encoder les paramètres."
+
+#: sunrpc/clnt_perr.c:199
+msgid "RPC: Failed (unspecified error)"
+msgstr "RPC: échec (erreur non spécifiée)."
+
+#: sunrpc/clnt_perr.c:177
+msgid "RPC: Incompatible versions of RPC"
+msgstr "RPC: versions incompatibles de RPC."
+
+#: sunrpc/clnt_perr.c:195
+msgid "RPC: Port mapper failure"
+msgstr "RPC: échec de conversion de ports."
+
+#: sunrpc/clnt_perr.c:185
+msgid "RPC: Procedure unavailable"
+msgstr "RPC: la procédure n'est pas disponible."
+
+#: sunrpc/clnt_perr.c:197
+msgid "RPC: Program not registered"
+msgstr "RPC: le programme n'est pas enregistré."
+
+#: sunrpc/clnt_perr.c:181
+msgid "RPC: Program unavailable"
+msgstr "RPC: le programme n'est pas disponible."
+
+#: sunrpc/clnt_perr.c:183
+msgid "RPC: Program/version mismatch"
+msgstr "RPC: non concordance de programme ou de version."
+
+#: sunrpc/clnt_perr.c:189
+msgid "RPC: Remote system error"
+msgstr "RPC: erreur système sur l'hôte cible."
+
+#: sunrpc/clnt_perr.c:187
+msgid "RPC: Server can't decode arguments"
+msgstr "RPC: le serveur ne peut décoder les paramètres."
+
+#: sunrpc/clnt_perr.c:165
+msgid "RPC: Success"
+msgstr "RPC: succès."
+
+#: sunrpc/clnt_perr.c:175
+msgid "RPC: Timed out"
+msgstr "RPC: expiration du délai de la minuterie."
+
+#: sunrpc/clnt_perr.c:173
+msgid "RPC: Unable to receive"
+msgstr "RPC: incapable d'effectuer la réception."
+
+#: sunrpc/clnt_perr.c:171
+msgid "RPC: Unable to send"
+msgstr "RPC: incapable d'effectuer la transmission."
+
+#: sunrpc/clnt_perr.c:191
+msgid "RPC: Unknown host"
+msgstr "RPC: hôte inconnu."
+
+#: sunrpc/clnt_perr.c:193
+msgid "RPC: Unknown protocol"
+msgstr "RPC: protocole inconnu."
+
+#. 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 "Système de fichiers accessible en lecture seulement."
+
+#: posix/regex.c:955
+msgid "Regular expression too big"
+msgstr "Expression régulière trop grosse."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:798
+msgid "Remote I/O error"
+msgstr "Erreur d'entrée/sortie sur l'hôte cible."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:754
+msgid "Remote address changed"
+msgstr "L'adresse de l'hôte cible a été modifiée."
+
+#: inet/ruserpass.c:157
+msgid "Remove password or make file unreadable by others."
+msgstr "Retirer le mot de passe ou rendre les fichiers illisibles par les autres."
+
+#: resolv/herror.c:73
+msgid "Resolver Error 0 (no error)"
+msgstr "Code d'erreur 0 du `resolver' (pas d'erreur)."
+
+#: resolv/herror.c:115
+msgid "Resolver internal error"
+msgstr "Erreur interne du `resolver'."
+
+#. TRANS Deadlock avoided; allocating a system resource would have resulted in a
+#. TRANS deadlock situation.  The system does not guarantee that it will notice
+#. TRANS all such situations.  This error means you got lucky and the system
+#. TRANS noticed; it might just hang.  @xref{File Locks}, for an example.
+#: stdio-common/../sysdeps/gnu/errlist.c:85
+msgid "Resource deadlock avoided"
+msgstr "Blocage évité des accès aux ressources."
+
+#. TRANS Resource temporarily unavailable; the call might work if you try again
+#. TRANS later.  The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN};
+#. TRANS they are always the same in the GNU C library.
+#. TRANS
+#. TRANS This error can happen in a few different situations:
+#. TRANS
+#. TRANS @itemize @bullet
+#. TRANS @item
+#. TRANS An operation that would block was attempted on an object that has
+#. TRANS non-blocking mode selected.  Trying the same operation again will block
+#. TRANS until some external condition makes it possible to read, write, or
+#. TRANS connect (whatever the operation).  You can use @code{select} to find out
+#. TRANS when the operation will be possible; @pxref{Waiting for I/O}.
+#. TRANS
+#. TRANS @strong{Portability Note:} In older Unix many systems, this condition
+#. TRANS was indicated by @code{EWOULDBLOCK}, which was a distinct error code
+#. TRANS different from @code{EAGAIN}.  To make your program portable, you should
+#. TRANS check for both codes and treat them the same.
+#. TRANS
+#. TRANS @item
+#. TRANS A temporary resource shortage made an operation impossible.  @code{fork}
+#. TRANS can return this error.  It indicates that the shortage is expected to
+#. TRANS pass, so your program can try the call again later and it may succeed.
+#. TRANS It is probably a good idea to delay for a few seconds before trying it
+#. TRANS again, to allow time for other processes to release scarce resources.
+#. TRANS Such shortages are usually fairly serious and affect the whole system,
+#. TRANS so usually an interactive program should report the error to the user
+#. TRANS and return to its command loop.
+#. TRANS @end itemize
+#: stdio-common/../sysdeps/gnu/errlist.c:267
+msgid "Resource temporarily unavailable"
+msgstr "Ressource temporairement non disponible."
+
+#: sunrpc/clnt_perr.c:280
+msgid "Server rejected credential"
+msgstr "Le serveur a rejeté l'identité."
+
+#: sunrpc/clnt_perr.c:284
+msgid "Server rejected verifier"
+msgstr "Le server a rejeté la vérification."
+
+#. 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"
+msgstr "Opération sur socket sur un type non socket."
+
+#. TRANS The socket type is not supported.
+#: stdio-common/../sysdeps/gnu/errlist.c:328
+msgid "Socket type not supported"
+msgstr "Type de socket non supporté."
+
+#. TRANS A network connection was aborted locally.
+#: stdio-common/../sysdeps/gnu/errlist.c:382
+msgid "Software caused connection abort"
+msgstr "Le logiciel a provoqué l'abandon de la connexion."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:718
+msgid "Srmount error"
+msgstr "Erreur srmount()."
+
+#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
+#. TRANS system which is due to file system rearrangements on the server host.
+#. TRANS Repairing this condition usually requires unmounting and remounting
+#. TRANS the NFS file system on the local host.
+#: stdio-common/../sysdeps/gnu/errlist.c:494
+msgid "Stale NFS file handle"
+msgstr "Panne d'accès au fichier NFS."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:778
+msgid "Streams pipe error"
+msgstr "Erreur de relais de type streams."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:782
+msgid "Structure needs cleaning"
+msgstr "La structure a besoin d'un nettoyage."
+
+#: posix/regex.c:940 stdio-common/../sysdeps/gnu/errlist.c:7
+msgid "Success"
+msgstr "Succès."
+
+#. TRANS An attempt to execute a file that is currently open for writing, or
+#. TRANS write to a file that is currently being executed.  Often using a
+#. TRANS debugger to run a program is considered having it open for writing and
+#. TRANS will cause this error.  (The name stands for ``text file busy''.)  This
+#. TRANS is not an error in the GNU system; the text is copied as necessary.
+#: stdio-common/../sysdeps/gnu/errlist.c:185
+msgid "Text file busy"
+msgstr "Fichier texte occupé."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:694
+msgid "Timer expired"
+msgstr "Expiration de la minuterie."
+
+#. TRANS Too many levels of symbolic links were encountered in looking up a file name.
+#. TRANS This often indicates a cycle of symbolic links.
+#: stdio-common/../sysdeps/gnu/errlist.c:445
+msgid "Too many levels of symbolic links"
+msgstr "Trop de niveaux de liens symboliques."
+
+#. TRANS Too many links; the link count of a single file would become too large.
+#. TRANS @code{rename} can cause this error if the file being renamed already has
+#. TRANS as many links as it can take (@pxref{Renaming Files}).
+#: stdio-common/../sysdeps/gnu/errlist.c:213
+msgid "Too many links"
+msgstr "Trop de liens."
+
+#. TRANS The current process has too many files open and can't open any more.
+#. TRANS Duplicate descriptors do count toward this limit.
+#. TRANS
+#. TRANS In BSD and GNU, the number of open files is controlled by a resource
+#. TRANS limit that can usually be increased.  If you get this error, you might
+#. TRANS want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited;
+#. TRANS @pxref{Limits on Resources}.
+#: stdio-common/../sysdeps/gnu/errlist.c:163
+msgid "Too many open files"
+msgstr "Trop de fichiers ouverts."
+
+#. 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 "Trop de fichiers ouverts dans le système."
+
+#. TRANS This means that the per-user limit on new process would be exceeded by
+#. TRANS an attempted @code{fork}.  @xref{Limits on Resources}, for details on
+#. TRANS the @code{RLIMIT_NPROC} limit.
+#: stdio-common/../sysdeps/gnu/errlist.c:475
+msgid "Too many processes"
+msgstr "Trop de processus."
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:427
+msgid "Too many references: cannot splice"
+msgstr "Trop de références: ne peut segmenter."
+
+#. TRANS The file quota system is confused because there are too many users.
+#. TRANS @c This can probably happen in a GNU system when using NFS.
+#: stdio-common/../sysdeps/gnu/errlist.c:481
+msgid "Too many users"
+msgstr "Trop d'usagers."
+
+#: posix/regex.c:945
+msgid "Trailing backslash"
+msgstr "Barre oblique en suffixe."
+
+#. TRANS In the GNU system, opening a file returns this error when the file is
+#. TRANS translated by a program and the translator program dies while starting
+#. TRANS up, before it has connected to the file.
+#: stdio-common/../sysdeps/gnu/errlist.c:584
+msgid "Translator died"
+msgstr "Panne du traducteur."
+
+#. TRANS You tried to connect a socket that is already connected.
+#. TRANS @xref{Connecting}.
+#: stdio-common/../sysdeps/gnu/errlist.c:402
+msgid "Transport endpoint is already connected"
+msgstr "Noeud final de transport déjà connecté."
+
+#. TRANS The socket is not connected to anything.  You get this error when you
+#. TRANS try to transmit data over a socket, without first specifying a
+#. TRANS destination for the data.  For a connectionless socket (for datagram
+#. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead.
+#: stdio-common/../sysdeps/gnu/errlist.c:410
+msgid "Transport endpoint is not connected"
+msgstr "Le noeud final de transport n'est pas connecté."
+
+#: catgets/gencat.c:202 db/makedb.c:197 locale/programs/locale.c:234
+#: locale/programs/localedef.c:383
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Pour en savoir davantage, faites: `%s --help'.\n"
+
+#: inet/rcmd.c:118
+#, c-format
+msgid "Trying %s...\n"
+msgstr "On tente %s...\n"
+
+#: inet/ruserpass.c:241
+#, c-format
+msgid "Unknown .netrc keyword %s"
+msgstr "Mot clé inconnu %s dans .netrc."
+
+#: string/../sysdeps/generic/_strerror.c:36
+#: string/../sysdeps/mach/_strerror.c:58
+msgid "Unknown error "
+msgstr "Erreur inconnue "
+
+#: resolv/herror.c:74
+msgid "Unknown host"
+msgstr "Hôte inconnu"
+
+#: resolv/herror.c:118
+msgid "Unknown resolver error"
+msgstr "Erreur inconnue du `resolver'."
+
+#: resolv/herror.c:76
+msgid "Unknown server error"
+msgstr "Erreur du serveur inconnu."
+
+#: string/strsignal.c:40
+#, c-format
+msgid "Unknown signal %d"
+msgstr "Signal inconnu %d"
+
+#: misc/error.c:92
+msgid "Unknown system error"
+msgstr "Erreur système inconnue."
+
+#: posix/regex.c:948
+msgid "Unmatched ( or \\("
+msgstr "Échec du pairage de ( ou de \\("
+
+#: posix/regex.c:956
+msgid "Unmatched ) or \\)"
+msgstr "Échec du pairage de ) ou de \\)"
+
+#: posix/regex.c:947
+msgid "Unmatched [ or [^"
+msgstr "Échec du pairage de [ ou de [^"
+
+#: posix/regex.c:949
+msgid "Unmatched \\{"
+msgstr "Échec du pairage de \\{"
+
+#: posix/getconf.c:184
+#, c-format
+msgid "Unrecognized variable `%s'"
+msgstr "Variable non reconnue `%s'"
+
+#: catgets/gencat.c:205
+#, 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, --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 <bug-glibc@prep.ai.mit.edu>.\n"
+msgstr ""
+"Usage: %s [OPTION]... -o FICHIER_DE_SORTIE [FICHIER_D_ENTRÉE]...\n"
+"       %s [OPTION]... [FICHIER_DE_SORTIE [FICHIER_D_ENTRÉE]...]\n"
+"Les paramètres obligatoires pour les options de formes longues le sont\n"
+"aussi pour les options de forme courtes.\n"
+"  -H, --header         créer une en-tête de fichier C contenant\n"
+"                       les définitions des symboles\n"
+"  -h, --help           afficher l'aide-mémoire\n"
+"      --new            ne pas utiliser le catalogue existant,\n"
+"                       forcer la sortie sur un nouveau fichier\n"
+"  -o, --output=FICHIER écrire la sortie dans le FICHIER\n"
+"  -V, --version        afficher le nom et la version du logiciel\n"
+"Si le FICHIER_D_ENTRÉE est -, la lecture se fait de l'entrée standard.\n"
+"Si le FICHIER_DE_SORTIE est -, l'écriture se fait sur la sortie standard.\n"
+"Rapporter toutes anomalies à l'adresse suivante: <bug-glibc@prep.ai.mit.edu>.\n"
+
+#: db/makedb.c:200
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... INPUT-FILE OUTPUT-FILE\n"
+"       %s [OPTION]... -o OUTPUT-FILE INPUT-FILE\n"
+"       %s [OPTION]... -u INPUT-FILE\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"  -f, --fold-case     convert key to lower case\n"
+"  -h, --help          display this help and exit\n"
+"  -o, --output=NAME   write output to file NAME\n"
+"      --quiet         don't print messages while building database\n"
+"  -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 <bug-glibc@prep.ai.mit.edu>.\n"
+msgstr ""
+"Usage: %s [OPTION]... FICHIER_D_ENTRÉE FICHIER_DE_SORTIE\n"
+"       %s [OPTION]... -o FICHIER_DE_SORTIE FICHIER_D_ENTRÉE\n"
+"       %s [OPTION]... -u FICHIER_D_ENTRÉE\n"
+"Les paramètres obligatoires pour les options de formes longues le sont\n"
+"aussi pour les options de forme courtes.\n"
+"  -f, --fold-case      convertir les clés en minuscules\n"
+"  -h, --help           afficher l'aide-mémoire\n"
+"  -o, --output=FICHIER écrire la sortie dans le FICHIER\n"
+"      --quiet          ne pas afficher les messages lors de\n"
+"                       construction de la base de données\n"
+"  -u, --undo           afficher le contenu du fichier de la base de données\n"
+"                       une entrée par ligne\n"
+"  -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"
+"Rapporter toutes anomalies à l'adresse suivante: <bug-glibc@prep.ai.mit.edu>.\n"
+
+#: locale/programs/localedef.c:386
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... name\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"  -c, --force               create output even if warning messages were "
+"issued\n"
+"  -h, --help                display this help and exit\n"
+"  -f, --charmap=FILE        symbolic character names defined in FILE\n"
+"  -i, --inputfile=FILE      source definitions are found in FILE\n"
+"  -u, --code-set-name=NAME  specify code set for mapping ISO 10646 elements\n"
+"  -v, --verbose             print more messages\n"
+"  -V, --version             output version information and exit\n"
+"      --posix               be strictly POSIX conform\n"
+"\n"
+"System's directory for character maps: %s\n"
+"                       locale files  : %s\n"
+"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
+msgstr ""
+"Usage: %s [OPTION]... nom\n"
+"Les paramètres obligatoires pour les options de formes longues le sont\n"
+"aussi pour les options de forme courtes.\n"
+"  -c, --force               poursuivre la génération sur la sortie\n"
+"                            même si des messages d'avertissements s'affichent\n"
+"  -h, --help                afficher l'aide-mémoire\n"
+"  -f, --charmap=FICHIER     utiliser les noms symboliques de caractères\n"
+"                            qui se trouvent dans le FICHIER\n"
+"  -i, --inputfile=FICHIER   utiliser les définitions sources qui se\n"
+"                            trouvent dans le FICHIER\n"
+"  -u, --code-set-name=CODE  spécifier un CODE d'ensemble pour la table des\n"
+"                            éléments ISO 10646\n"
+"  -v, --verbose             utiliser le mode bavard\n"
+"  -V, --version             afficher le nom et la version du logiciel\n"
+"      --posix               se conformer de façon stricte à POSIX\n"
+"\n"
+"Répertoire système des tables de caractères: %s\n"
+"                            fichiers locaux: %s\n"
+"Rapporter toutes anomalies à l'adresse suivante: <bug-glibc@prep.ai.mit.edu>.\n"
+
+#: locale/programs/locale.c:237
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... name\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"  -h, --help            display this help and exit\n"
+"  -V, --version         output version information and exit\n"
+"\n"
+"  -a, --all-locales     write names of available locales\n"
+"  -m, --charmaps        write names of available charmaps\n"
+"\n"
+"  -c, --category-name   write names of selected categories\n"
+"  -k, --keyword-name    write names of selected keywords\n"
+"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
+msgstr ""
+"Usage: %s [OPTION]... nom\n"
+"Les paramètres obligatoires pour les options de formes longues le sont\n"
+"aussi pour les options de forme courtes.\n"
+"  -h, --help            afficher l'aide-mémoire\n"
+"  -V, --version         afficher le nom et la version du logiciel\n"
+"\n"
+"  -a, --all-locales     afficher les noms localisés disponibles\n"
+"  -m, --charmaps        afficher les noms des tables de caractères disponibles\n"
+"\n"
+"  -c, --category-name   afficher les noms des catégories sélectionnées\n"
+"  -k, --keyword-name    afficher les noms des mots clés sélectionnés\n"
+"Rapporter toutes anomalies à l'adresse suivante: <bug-glibc@prep.ai.mit.edu>.\n"
+
+#: posix/getconf.c:131
+#, c-format
+msgid "Usage: %s variable_name [pathname]\n"
+msgstr "Usage: %s nom_de_variable [chemin_d_accès]\n"
+
+#: sunrpc/rpcinfo.c:609
+msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
+msgstr "Usage: rpcinfo [ -n no_port ] -u hôte no_prog [ no_version ]\n"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:742
+msgid "Value too large for defined data type"
+msgstr "Valeur trop grande pour le type défini de données."
+
+#: time/zic.c:1845
+msgid "Wild result from command execution"
+msgstr "Résultat anarchique résultant de l'exécution de la commande."
+
+#. TRANS You did @strong{what}?
+#: stdio-common/../sysdeps/gnu/errlist.c:596
+msgid "You really blew it this time"
+msgstr "Vous avez vraiment tout gâcher cette fois-ci."
+
+#: time/zic.c:1051
+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"
+"au temps final de la ligne précédente."
+
+#: locale/programs/charmap.c:397 locale/programs/locfile.c:341
+#, c-format
+msgid "`%1$s' definition does not end with `END %1$s'"
+msgstr "`%1$s' la définition ne se termine pas par `END %1$s'"
+
+#: locale/programs/ld-monetary.c:358 locale/programs/ld-numeric.c:190
+#, c-format
+msgid "`-1' must be last entry in `%s' field in `%s' category"
+msgstr "`-1' doit être la dernière entrée du champ `%s' de catégorie `%s'"
+
+#: locale/programs/ld-collate.c:1651
+msgid "`...' must only be used in `...' and `UNDEFINED' entries"
+msgstr "`...' doit être utilisé seulement avec les entrées `...' et  `UNDEFINED'"
+
+#: locale/programs/locfile.c:538
+msgid "`from' expected after first argument to `collating-element'"
+msgstr "`from' attendu après le premier paramètre de `collating-element'"
+
+#: locale/programs/ld-collate.c:1108
+msgid ""
+"`from' string in collation element declaration contains unknown character"
+msgstr ""
+"La chaîne `from' déclarant un élément de fusionnement contient un caractère inconnu."
+
+#: locale/programs/charmap.c:267
+#, c-format
+msgid "argument to <%s> must be a single character"
+msgstr "Le paramètre de <%s> doit être un caractère simple."
+
+#: locale/programs/locfile.c:215
+#, c-format
+msgid "argument to `%s' must be a single character"
+msgstr "Le paramètre de `%s' doit être un caractère simple."
+
+#: sunrpc/rpc_parse.c:326
+msgid "array declaration expected"
+msgstr "Déclaration attendue de tableau."
+
+#: sunrpc/auth_unix.c:314
+msgid "auth_none.c - Fatal marshalling problem"
+msgstr "auth_none.c - problème fatal de mise en ordre."
+
+#: inet/rcmd.c:327
+msgid "bad .rhosts owner"
+msgstr "Mauvais propriétaire du fichier .rhosts."
+
+#: locale/programs/charmap.c:212 locale/programs/locfile.c:209
+msgid "bad argument"
+msgstr "Mauvais paramètre."
+
+#: time/zic.c:1173
+msgid "blank FROM field on Link line"
+msgstr "Champ `FROM' vide dans la ligne de type `Link'."
+
+#: time/zic.c:1177
+msgid "blank TO field on Link line"
+msgstr "Champ `TO' vide dans la ligne de type `Link'."
+
+#: malloc/mcheck.c:189
+msgid "block freed twice"
+msgstr "Bloc libéré deux fois."
+
+#: malloc/mcheck.c:192
+msgid "bogus mcheck_status, library is buggy"
+msgstr "Statut de `mcheck_status' erroné, la librarie est erronée."
+
+#: sunrpc/pmap_rmt.c:177
+msgid "broadcast: ioctl (get interface configuration)"
+msgstr "Diffusion: ioctl (a obtenu la configuration de l'interface)"
+
+#: sunrpc/pmap_rmt.c:184
+msgid "broadcast: ioctl (get interface flags)"
+msgstr "Diffusion: ioctl (a obtenu la valeur des fanions de l'interface)"
+
+#: sunrpc/svc_udp.c:398
+msgid "cache_set: victim not found"
+msgstr "cache_set: victime non repérée."
+
+#: time/zic.c:1686
+msgid "can't determine time zone abbrevation to use just after until time"
+msgstr ""
+"Ne peut déterminer le nom abrégé du fuseau horaire à utiliser\n"
+"pour rencontrer la condition `jusqu'au temps voulue'."
+
+#: sunrpc/svc_simple.c:64
+#, c-format
+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:281
+#, c-format
+msgid "cannot `stat' locale file `%s'"
+msgstr "Ne peut effectuer l'évaluation `stat' du fichier local `%s'."
+
+#: locale/programs/ld-collate.c:1313
+#, c-format
+msgid "cannot insert collation element `%.*s'"
+msgstr "Ne peut insérer l'élément de fusionnement `%.*s'."
+
+#: locale/programs/ld-collate.c:1492 locale/programs/ld-collate.c:1497
+msgid "cannot insert into result table"
+msgstr "Ne peut effectuer une insertion dans la table des résultats."
+
+#: locale/programs/ld-collate.c:1165 locale/programs/ld-collate.c:1207
+#, c-format
+msgid "cannot insert new collating symbol definition: %s"
+msgstr "Ne peut insérer une nouvelle définition de symbole de fusionnement: %s."
+
+#: db/makedb.c:149
+#, c-format
+msgid "cannot open database file `%s': %s"
+msgstr "Ne peut ouvrir le fichier de base de données `%s': %s."
+
+#: catgets/gencat.c:250 db/makedb.c:168
+#, c-format
+msgid "cannot open input file `%s'"
+msgstr "Ne peut ouvrir le fichier d'entrée `%s'."
+
+#: locale/programs/localedef.c:215
+#, c-format
+msgid "cannot open locale definition file `%s'"
+msgstr "Ne peut ouvrir le fichier des localisations `%s'."
+
+#: catgets/gencat.c:755 catgets/gencat.c:796 db/makedb.c:177
+#, c-format
+msgid "cannot open output file `%s'"
+msgstr "Ne peut ouvrir le fichier de sortie `%s'."
+
+#: locale/programs/locfile.c:986
+#, c-format
+msgid "cannot open output file `%s' for category `%s'"
+msgstr "Ne peut ouvrir le fichier de sortie `%s' de catégorie `%s'."
+
+#: locale/programs/ld-collate.c:1359
+msgid "cannot process order specification"
+msgstr "Ne peut traiter la spécification d'ordonnancement."
+
+#: locale/programs/locale.c:293
+#, 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:268
+#, 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:303
+#, c-format
+msgid "cannot read locale file `%s'"
+msgstr "Ne peut lire le fichier des définitions localisées `%s'."
+
+#: locale/programs/localedef.c:328
+#, c-format
+msgid "cannot write output files to `%s'"
+msgstr "Ne peut écrire dans les fichiers de sortie vers `%s'."
+
+#: locale/programs/localedef.c:371
+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."
+
+#: locale/programs/ld-ctype.c:264
+#, c-format
+msgid "character %s'%s' in class `%s' must be in class `%s'"
+msgstr "Caractère %s'%s' de la classe `%s' doit être dans la classe `%s'."
+
+#: locale/programs/ld-ctype.c:288
+#, c-format
+msgid "character %s'%s' in class `%s' must not be in class `%s'"
+msgstr "Caractère %s'%s' de la classe `%s' ne doit pas être dans la classe `%s'."
+
+#: locale/programs/ld-ctype.c:309
+msgid "character <SP> not defined in character map"
+msgstr "Caractère <SP> non défini dans la table des caractères."
+
+#: locale/programs/ld-ctype.c:1140
+#, c-format
+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."
+
+#: 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
+#, c-format
+msgid "character `%s' not defined while needed as default value"
+msgstr "Caractère `%s' non défini alors qu'attendu comme valeur par défaut."
+
+#: locale/programs/ld-ctype.c:800
+#, c-format
+msgid "character class `%s' already defined"
+msgstr "Classe de caractères `%s' déjà définie."
+
+#: locale/programs/ld-ctype.c:832
+#, c-format
+msgid "character map `%s' already defined"
+msgstr "Table de caractères `%s' déjà définie."
+
+#: locale/programs/charmap.c:76
+#, c-format
+msgid "character map file `%s' not found"
+msgstr "Fichier de la table des caractères `%s' non repérable."
+
+#: sunrpc/clnt_raw.c:106
+msgid "clnt_raw.c - Fatal header serialization error."
+msgstr "clnt_raw.c - erreur fatale de sérialisation d'en-tête."
+
+#: locale/programs/ld-collate.c:1328
+#, c-format
+msgid "collation element `%.*s' appears more than once: ignore line"
+msgstr "Élément de fusionnement `%.*s' apparaît plus d'une fois: ligne ignorée."
+
+#: locale/programs/ld-collate.c:1346
+msgid "collation symbol `.*s' appears more than once: ignore line"
+msgstr "Symbole de fusionnement `.*s' apparaît plus d'une fois: ligne ignorée."
+
+#: locale/programs/locfile.c:522
+#, c-format
+msgid "collation symbol expected after `%s'"
+msgstr "Symbole de fusionnement attendu après `%s'."
+
+#: inet/rcmd.c:112
+#, c-format
+msgid "connect to address %s: "
+msgstr "Connexion établie à l'adresse %s: "
+
+#: sunrpc/rpc_scan.c:109
+msgid "constant or identifier expected"
+msgstr "Constante ou identificateur attendu."
+
+#: sunrpc/svc_simple.c:70
+msgid "couldn't create an rpc server\n"
+msgstr "Ne peut créer un serveur rpc.\n"
+
+#: sunrpc/portmap.c:121
+msgid "couldn't do tcp_create\n"
+msgstr "Ne peut exécuter tcp_create.\n"
+
+#: sunrpc/portmap.c:99
+msgid "couldn't do udp_create\n"
+msgstr "Ne peut exécuter udp_create.\n"
+
+#: sunrpc/svc_simple.c:77
+#, c-format
+msgid "couldn't register prog %d vers %d\n"
+msgstr "Ne peut enregistrer le programme %d de version %d.\n"
+
+#: locale/programs/charmap.c:86
+#, c-format
+msgid "default character map file `%s' not found"
+msgstr "Fichier de la table des caractères par défaut `%s' non repéré."
+
+#: sunrpc/rpc_parse.c:77
+msgid "definition keyword expected"
+msgstr "Définition de mot clé attendu."
+
+#: locale/programs/charset.c:87 locale/programs/charset.c:132
+#, c-format
+msgid "duplicate character name `%s'"
+msgstr "Duplicité du nom de caractère `%s'."
+
+#: locale/programs/ld-collate.c:1140
+msgid "duplicate collating element definition"
+msgstr "Duplicité de la définition d'élément de fusionnement."
+
+#: locale/programs/ld-collate.c:1286
+#, c-format
+msgid "duplicate definition for character `%.*s'"
+msgstr "Duplicité de la définition du caractère `%.*s'."
+
+#: db/makedb.c:295
+msgid "duplicate key"
+msgstr "Duplicité de clé."
+
+#: catgets/gencat.c:369
+msgid "duplicate set definition"
+msgstr "Duplicité de la définition d'ensemble."
+
+#: time/zic.c:966
+#, c-format
+msgid "duplicate zone name %s (file \"%s\", line %d)"
+msgstr "Duplicité du nom de zone  %s (fichier \"%s\", ligne %d)."
+
+#: catgets/gencat.c:532
+msgid "duplicated message identifier"
+msgstr "Duplicité de l'identificateur de message."
+
+#: catgets/gencat.c:505
+msgid "duplicated message number"
+msgstr "Duplicité du numéro de message"
+
+#: locale/programs/ld-collate.c:1695
+msgid "empty weight name: line ignored"
+msgstr "Nom du poids vide: ligne ignorée."
+
+#: sunrpc/svc_udp.c:344
+msgid "enablecache: cache already enabled"
+msgstr "enablecache: cache déjà activée."
+
+#: sunrpc/svc_udp.c:349
+msgid "enablecache: could not allocate cache"
+msgstr "enablecache: ne peut allouer une cache."
+
+#: sunrpc/svc_udp.c:356
+msgid "enablecache: could not allocate cache data"
+msgstr "enablecache: ne peut allouer une cache de données."
+
+#: sunrpc/svc_udp.c:362
+msgid "enablecache: could not allocate cache fifo"
+msgstr "enablecache: ne peut allouer une cache de type fifo."
+
+#: locale/programs/ld-collate.c:1418
+msgid "end point of ellipsis range is bigger then start"
+msgstr "Le noeud final de l'intervalle d'ellipse est plus grand que l'initial."
+
+#: locale/programs/ld-collate.c:1148
+msgid "error while inserting collation element into hash table"
+msgstr "Erreur durant l'insertion d'un élément de fusionnement dans la table de hachage."
+
+#: locale/programs/ld-collate.c:1160
+msgid "error while inserting to hash table"
+msgstr "Erreur lors de l'insertion dans la table de hachage."
+
+#: locale/programs/locfile.c:465
+msgid "expect string argument for `copy'"
+msgstr "Chaîne attendue pour le paramètre de `copy'."
+
+#: sunrpc/rpc_util.c:300
+#, c-format
+msgid "expected '%s'"
+msgstr "attendu '%s'"
+
+#: sunrpc/rpc_util.c:312
+#, c-format
+msgid "expected '%s' or '%s'"
+msgstr "attendu '%s' ou '%s'"
+
+#: sunrpc/rpc_util.c:325
+#, c-format
+msgid "expected '%s', '%s' or '%s'"
+msgstr "attendu '%s', '%s' ou '%s'"
+
+#: time/zic.c:857
+msgid "expected continuation line not found"
+msgstr "Ligne de continuation attendue, non repérée."
+
+#: sunrpc/rpc_parse.c:384
+msgid "expected type specifier"
+msgstr "Spécification de type attendu."
+
+#: locale/programs/locfile.c:1010
+#, c-format
+msgid "failure while writing data for category `%s'"
+msgstr "Échec durant l'écriture des données de catégorie `%s'."
+
+#: locale/programs/ld-monetary.c:154 locale/programs/ld-numeric.c:95
+#, c-format
+msgid "field `%s' in category `%s' not defined"
+msgstr "Champ `%s' de catégorie `%s' n'est pas défini."
+
+#: locale/programs/ld-messages.c:81 locale/programs/ld-messages.c:102
+#, c-format
+msgid "field `%s' in category `%s' undefined"
+msgstr "Champ `%s' de catégorie `%s' indéfini."
+
+#: locale/programs/locfile.c:547
+msgid "from-value of `collating-element' must be a string"
+msgstr "La valeur de départ de `collating-element' doit être une chaîne."
+
+#: locale/programs/linereader.c:328
+msgid "garbage at end of character code specification"
+msgstr "Rebut à la fin du caractère du code de spécification."
+
+#: locale/programs/linereader.c:214
+msgid "garbage at end of digit"
+msgstr "Rebut à la fin des chiffres."
+
+#: sunrpc/get_myaddr.c:73
+msgid "get_myaddress: ioctl (get interface configuration)"
+msgstr "get_myaddress: ioctl (a obtenu la configuration de l'interface)."
+
+#: time/zic.c:1150
+msgid "illegal CORRECTION field on Leap line"
+msgstr "CORRECTION illégale du champ dans la ligne de type `Leap'."
+
+#: time/zic.c:1154
+msgid "illegal Rolling/Stationary field on Leap line"
+msgstr "Champ `Rolling/Stationary' illégal sur la ligne de type `Leap'."
+
+#: locale/programs/ld-collate.c:1766
+msgid "illegal character constant in string"
+msgstr "Caractère illégal de constante dans la chaîne."
+
+#: sunrpc/rpc_scan.c:281
+msgid "illegal character in file: "
+msgstr "Caractère illégal dans le fichier: "
+
+#: locale/programs/ld-collate.c:1115
+msgid "illegal collation element"
+msgstr "Élément de fusionnement illégal."
+
+#: locale/programs/charmap.c:196
+msgid "illegal definition"
+msgstr "Définition illégale."
+
+#: locale/programs/charmap.c:349
+msgid "illegal encoding given"
+msgstr "Encodage fourni illégal."
+
+#: locale/programs/linereader.c:546
+msgid "illegal escape sequence at end of string"
+msgstr "Séquence d'échappement illégale à la fin de la chaîne."
+
+#: locale/programs/charset.c:101
+msgid "illegal names for character range"
+msgstr "Nom illégal pour un intervalle de caractères."
+
+#: sunrpc/rpc_parse.c:146
+msgid "illegal result type"
+msgstr "Résultat de type illégal."
+
+#: catgets/gencat.c:342 catgets/gencat.c:419
+msgid "illegal set number"
+msgstr "Numéro d'ensemble illégal."
+
+#: locale/programs/ld-ctype.c:806
+#, c-format
+msgid "implementation limit: no more than %d character classes allowed"
+msgstr "Limite d'impantation: pas plus de %d classes de caractères sont permises."
+
+#: locale/programs/ld-ctype.c:838
+#, c-format
+msgid "implementation limit: no more than %d character maps allowed"
+msgstr "Limite d'impantation: pas plus de %d tables de caractères sont permises."
+
+#: db/makedb.c:151
+msgid "incorrectly formatted file"
+msgstr "Fichier incorrectement formaté."
+
+#: time/zic.c:815
+msgid "input line of unknown type"
+msgstr "Ligne d'entrée de type inconnu."
+
+#: time/zic.c:1734
+msgid "internal error - addtype called with bad isdst"
+msgstr "Erreur interne - addtype appellé avec un mauvais bloc isdst."
+
+#: time/zic.c:1742
+msgid "internal error - addtype called with bad ttisgmt"
+msgstr "Erreur interne - addtype appellé avec un mauvais bloc ttisgmt."
+
+#: time/zic.c:1738
+msgid "internal error - addtype called with bad ttisstd"
+msgstr "Erreur interne - addtype appellé avec un mauvais bloc ttisstd."
+
+#: locale/programs/ld-ctype.c:300
+#, c-format
+msgid "internal error in %s, line %u"
+msgstr "Erreur interne dans %s, ligne %u"
+
+#: time/zic.c:1022
+msgid "invalid GMT offset"
+msgstr "Décalage relatif GMT invalide."
+
+#: time/zic.c:1025
+msgid "invalid abbreviation format"
+msgstr "Format d'abréviation invalide."
+
+#: time/zic.c:1115 time/zic.c:1314 time/zic.c:1328
+msgid "invalid day of month"
+msgstr "Jour du mois invalide."
+
+#: time/zic.c:1273
+msgid "invalid ending year"
+msgstr "Année finale invalide."
+
+#: time/zic.c:1087
+msgid "invalid leaping year"
+msgstr "Année bissextile invalide."
+
+#: time/zic.c:1102 time/zic.c:1205
+msgid "invalid month name"
+msgstr "Nom de mois invalide."
+
+#: time/zic.c:921
+msgid "invalid saved time"
+msgstr "Temps sauvegardé invalide."
+
+#: time/zic.c:1253
+msgid "invalid starting year"
+msgstr "Année initiale invalide."
+
+#: time/zic.c:1131 time/zic.c:1233
+msgid "invalid time of day"
+msgstr "Heure du jour invalide."
+
+#: time/zic.c:1319
+msgid "invalid weekday name"
+msgstr "Nom du jour de semaine invalide."
+
+#: locale/programs/ld-collate.c:1411
+msgid "line after ellipsis must contain character definition"
+msgstr "La ligne après l'ellipse doit contenir la définition d'un caractère."
+
+#: locale/programs/ld-collate.c:1390
+msgid "line before ellipsis does not contain definition for character constant"
+msgstr "La ligne avant l'ellipse ne doit pas contenir la définition d'une constante de caractères."
+
+#: time/zic.c:795
+msgid "line too long"
+msgstr "Ligne trop longue."
+
+#: locale/programs/localedef.c:275
+#, c-format
+msgid "locale file `%s', used in `copy' statement, not found"
+msgstr "Fichier localisé `%s', utilisé dans la déclaration de `copy', non repéré."
+
+#: catgets/gencat.c:600
+msgid "malformed line ignored"
+msgstr "Ligne malformée ignorée."
+
+#: malloc/mcheck.c:183
+msgid "memory clobbered before allocated block"
+msgstr "Mémoire écrasée avant le bloc alloué."
+
+#: malloc/mcheck.c:186
+msgid "memory clobbered past end of allocated block"
+msgstr "Mémoire écrasée après la fin du bloc alloué."
+
+#: 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
+msgid "memory exhausted"
+msgstr "Mémoire épuisée."
+
+#: malloc/mcheck.c:180
+msgid "memory is consistent, library is buggy"
+msgstr "Mémoire consistente, la librairie est fautive."
+
+#: time/zic.c:916
+msgid "nameless rule"
+msgstr "Règle sans nom."
+
+#: sunrpc/svc_simple.c:140
+#, c-format
+msgid "never registered prog %d\n"
+msgstr "Le programme %d n'a jamais été enregistré.\n"
+
+#: sunrpc/rpc_parse.c:305 sunrpc/rpc_parse.c:313
+msgid "no array-of-pointer declarations -- use typedef"
+msgstr "Pas de déclaration `array-of-pointer' -- utiliser 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 "Expression reguliere incorrecte du champ `%s' de catégorie `%s': %s"
+
+#: time/zic.c:2060
+msgid "no day in month matches rule"
+msgstr "Pas de jour dans les règles de concordance."
+
+#: locale/programs/ld-collate.c:259
+msgid "no definition of `UNDEFINED'"
+msgstr "Pas de définition de type `UNDEFINED'."
+
+#: locale/programs/locfile.c:479
+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:334
+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."
+
+#: locale/programs/charmap.c:315 locale/programs/charmap.c:466
+#: locale/programs/charmap.c:545
+msgid "no symbolic name given"
+msgstr "Aucun nom symbolique fourni."
+
+#: 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 "Pas de nom symbolique fourni pour la fin de l'intervalle."
+
+#: locale/programs/ld-collate.c:244
+#, c-format
+msgid "no weight defined for symbol `%s'"
+msgstr "Pas de poids défini pour le symbole `%s'."
+
+#: locale/programs/charmap.c:430
+msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
+msgstr ""
+"Seules les définitions de type `WIDTH' sont autorisées à suivre\n"
+"la définition de `CHARMAP'."
+
+#: sunrpc/portmap.c:451
+msgid "portmap CALLIT: cannot fork.\n"
+msgstr "portmap CALLIT: ne peut procéder à un clonage de type fork.\n"
+
+#: sunrpc/portmap.c:94 sunrpc/portmap.c:116
+msgid "portmap cannot bind"
+msgstr "portmap ne peut établir un pairage (bind)."
+
+#: sunrpc/portmap.c:86 sunrpc/portmap.c:112
+msgid "portmap cannot create socket"
+msgstr "portmap ne créer un socket"
+
+#: sunrpc/rpc_scan.c:456 sunrpc/rpc_scan.c:464
+msgid "preprocessor error"
+msgstr "Erreur du préprocesseur."
+
+#: db/makedb.c:311
+#, c-format
+msgid "problems while reading `%s'"
+msgstr "Problèmes lors de la lecture de `%s'"
+
+#: sunrpc/rpcinfo.c:222 sunrpc/rpcinfo.c:350
+#, c-format
+msgid "program %lu is not available\n"
+msgstr "Le programme %lu n'est pas disponible.\n"
+
+#: sunrpc/rpcinfo.c:245 sunrpc/rpcinfo.c:282 sunrpc/rpcinfo.c:371
+#: sunrpc/rpcinfo.c:408 sunrpc/rpcinfo.c:429 sunrpc/rpcinfo.c:462
+#, c-format
+msgid "program %lu version %lu is not available\n"
+msgstr "Le programme %lu de version %lu n'est pas disponible.\n"
+
+#: sunrpc/rpcinfo.c:466
+#, c-format
+msgid "program %lu version %lu ready and waiting\n"
+msgstr "Le programme %lu de version %lu est prêt et en attente.\n"
+
+#: inet/rcmd.c:154
+#, c-format
+msgid "rcmd: select (setting up stderr): %s\n"
+msgstr "rcmd: sélection (configuration de stderr): %s.\n"
+
+#: inet/rcmd.c:86
+msgid "rcmd: socket: All ports in use\n"
+msgstr "rcmd: socket: tous les ports sont occupés.\n"
+
+#: inet/rcmd.c:141
+#, c-format
+msgid "rcmd: write (setting up stderr): %s\n"
+msgstr "rcmd: écriture (configuration de stderr): %s.\n"
+
+#: sunrpc/svc_simple.c:83
+msgid "registerrpc: out of memory\n"
+msgstr "registerrpc: mémoire épuisée.\n"
+
+#: time/zic.c:1795
+msgid "repeated leap second moment"
+msgstr "Répétition du délai une seconde fois."
+
+#: sunrpc/rpcinfo.c:659
+#, c-format
+msgid "rpcinfo: %s is unknown host\n"
+msgstr "rpcinfo: %s est un hôte inconnu.\n"
+
+#: sunrpc/rpcinfo.c:626
+#, c-format
+msgid "rpcinfo: %s is unknown service\n"
+msgstr "rpcinfo: %s est un service inconnu.\n"
+
+#: sunrpc/rpcinfo.c:600
+#, c-format
+msgid "rpcinfo: Could not delete registration for prog %s version %s\n"
+msgstr "rpcinfo: ne peut éliminer l'enregistrement du programme %s de version %s.\n"
+
+#: sunrpc/rpcinfo.c:576
+#, c-format
+msgid "rpcinfo: broadcast failed: %s\n"
+msgstr "rpcinfo: échec de diffusion: %s.\n"
+
+#: sunrpc/rpcinfo.c:505
+msgid "rpcinfo: can't contact portmapper"
+msgstr "rpcinfo: ne peut contacter le convertisseur de ports."
+
+#: sunrpc/rpcinfo.c:510
+msgid "rpcinfo: can't contact portmapper: "
+msgstr "rpcinfo: ne peut contacter le convertisseur de ports."
+
+#: sunrpc/portmap.c:137
+msgid "run_svc returned unexpectedly\n"
+msgstr "run_svc a retourné de façon imprévue.\n"
+
+#: time/zic.c:709 time/zic.c:711
+msgid "same rule name in multiple files"
+msgstr "Même nom de règle dans plusieurs fichiers."
+
+#: inet/rcmd.c:158
+msgid "select: protocol failure in circuit setup\n"
+msgstr "select: échec de protocole dans la configuration du circuit.\n"
+
+#: inet/rcmd.c:176
+msgid "socket: protocol failure in circuit setup.\n"
+msgstr "socket: échec de protocole dans la configuration du circuit.\n"
+
+#: locale/programs/locfile.c:600
+msgid "sorting order `forward' and `backward' are mutually exclusive"
+msgstr "Les options de tri `forward' et `backward' sont mutuellement exclusives."
+
+#: locale/programs/ld-collate.c:1567 locale/programs/ld-collate.c:1613
+msgid ""
+"specification of sorting weight for collation symbol does not make sense"
+msgstr ""
+"La spécification de tri par le poids des symboles de fusionnement n'a aucun sens."
+
+#: time/zic.c:780
+msgid "standard input"
+msgstr "entrée standard"
+
+#: time/zdump.c:260
+msgid "standard output"
+msgstr "sortie standard"
+
+#: time/zic.c:1277
+msgid "starting year greater than ending year"
+msgstr "Année initiale plus grande que l'année finale."
+
+#: sunrpc/svc_tcp.c:199 sunrpc/svc_tcp.c:204
+msgid "svc_tcp: makefd_xprt: out of memory\n"
+msgstr "svc_tcp: makefd_xprt: mémoire épuisée.\n"
+
+#: sunrpc/svc_tcp.c:147
+msgid "svctcp_.c - cannot getsockname or listen"
+msgstr "svctcp_.c - ne peut trouver le nom du socket par getsockname() ou listen()."
+
+#: sunrpc/svc_tcp.c:134
+msgid "svctcp_.c - udp socket creation problem"
+msgstr "svctcp_.c - problème de création d'un socket udp."
+
+#: sunrpc/svc_tcp.c:154 sunrpc/svc_tcp.c:161
+msgid "svctcp_create: out of memory\n"
+msgstr "svctcp_create: mémoire épuisée.\n"
+
+#: sunrpc/svc_udp.c:119
+msgid "svcudp_create - cannot getsockname"
+msgstr "svcudp_create - ne peut trouver le nom du socket par getsockname()."
+
+#: sunrpc/svc_udp.c:107
+msgid "svcudp_create: socket creation problem"
+msgstr "svcudp_create: problème de création du socket."
+
+#: locale/programs/ld-collate.c:1190
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates element "
+"definition"
+msgstr ""
+"Le symbole d'un élément de fusionnement multi-caractères `%.*s' \n"
+"provoque la duplication de la définition d'un élément."
+
+#: locale/programs/ld-collate.c:1063
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates other element "
+"definition"
+msgstr ""
+"Le symbole d'un élément de fusionnement multi-caractères `%.*s' \n"
+"provoque la duplication d'autres définitions d'éléments."
+
+#: locale/programs/ld-collate.c:1199
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates other symbol "
+"definition"
+msgstr ""
+"Le symbole d'un élément de fusionnement multi-caractères `%.*s' \n"
+"provoque la duplication d'autres définitions de symboles."
+
+#: locale/programs/ld-collate.c:1072
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates symbol "
+"definition"
+msgstr ""
+"Le symbole d'un élément de fusionnement multi-caractères `%.*s' \n"
+"provoque la duplication de la définition d'un symbole."
+
+#: locale/programs/ld-collate.c:1054 locale/programs/ld-collate.c:1181
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates symbolic name "
+"in charset"
+msgstr ""
+"Le symbole d'un élément de fusionnement multi-caractères `%.*s' \n"
+"provoque la duplication d'un nom symbolique dans le jeu de caractères."
+
+#: locale/programs/charmap.c:314 locale/programs/charmap.c:348
+#: locale/programs/charmap.c:378 locale/programs/charmap.c:465
+#: locale/programs/charmap.c:511 locale/programs/charmap.c:544
+#: locale/programs/charmap.c:576
+#, c-format
+msgid "syntax error in %s definition: %s"
+msgstr "Erreur de syntaxe dans la définition de %s: %s."
+
+#: locale/programs/locfile.c:620
+msgid "syntax error in `order_start' directive"
+msgstr "Erreur de syntaxe dans la directive `order_start'."
+
+#: locale/programs/locfile.c:362
+msgid "syntax error in character class definition"
+msgstr "Erreur de syntaxe dans la définition de la classe de caractères."
+
+#: locale/programs/locfile.c:420
+msgid "syntax error in character conversion definition"
+msgstr "Erreur de syntaxe dans la définition du caractère de conversion."
+
+#: locale/programs/locfile.c:662
+msgid "syntax error in collating order definition"
+msgstr "Erreur de syntaxe dans l'ordre de la définition du fusionnement."
+
+#: locale/programs/locfile.c:512
+msgid "syntax error in collation definition"
+msgstr "Erreur de syntaxe dans la définition du fusionnement."
+
+#: locale/programs/locfile.c:335
+msgid "syntax error in definition of LC_CTYPE category"
+msgstr "Erreur de syntaxe dans la définition d'une catégorie de type `LC_CTYPE'."
+
+#: locale/programs/locfile.c:278
+msgid "syntax error in definition of new character class"
+msgstr "Erreur de syntaxe dans la définition d'une nouvelle classe de caractères."
+
+#: locale/programs/locfile.c:288
+msgid "syntax error in definition of new character map"
+msgstr "Erreur de syntaxe dans la définition d'une nouvelle table de caractères."
+
+#: locale/programs/locfile.c:873
+msgid "syntax error in message locale definition"
+msgstr "Erreur de syntaxe dans la définition localisée du message."
+
+#: locale/programs/locfile.c:784
+msgid "syntax error in monetary locale definition"
+msgstr "Erreur de syntaxe dans la définition localisée des valeurs monétaires."
+
+#: locale/programs/locfile.c:811
+msgid "syntax error in numeric locale definition"
+msgstr "Erreur de syntaxe dans la définition localisée de représentation numérique."
+
+#: locale/programs/locfile.c:722
+msgid "syntax error in order specification"
+msgstr "Erreur de syntaxe dans la spéficication de l'ordonnancement."
+
+#: locale/programs/charmap.c:195 locale/programs/charmap.c:211
+#, c-format
+msgid "syntax error in prolog: %s"
+msgstr "Erreur de syntaxe du prologue: %s."
+
+#: locale/programs/locfile.c:849
+msgid "syntax error in time locale definition"
+msgstr "Erreur de syntaxe dans la définition localisée de la représentation du temps."
+
+#: locale/programs/locfile.c:255
+msgid "syntax error: not inside a locale definition section"
+msgstr "Erreur de syntaxe: pas à l'intérieur d'une section de définition localisée."
+
+#: catgets/gencat.c:371 catgets/gencat.c:507 catgets/gencat.c:534
+msgid "this is the first definition"
+msgstr "Ceci est la première définition."
+
+#: time/zic.c:1120A
+#: mro: à investiguer dans le code source
+msgid "time before zero"
+msgstr "Temps défini avant le zéro."
+
+#: time/zic.c:1128 time/zic.c:1960 time/zic.c:1979
+msgid "time overflow"
+msgstr "Débordement de temps."
+
+#: locale/programs/charset.c:44
+msgid "too few bytes in character encoding"
+msgstr "Trop peu d'octets pour l'encodage des caractères."
+
+#: locale/programs/charset.c:46
+msgid "too many bytes in character encoding"
+msgstr "Trop d'octets pour l'encodage des caractères."
+
+#: locale/programs/locales.h:72
+msgid "too many character classes defined"
+msgstr "Trop de définitions de classes de caractères."
+
+#: sunrpc/rpc_util.c:285
+msgid "too many files!\n"
+msgstr "Trop de fichiers!\n"
+
+#: time/zic.c:1789
+msgid "too many leap seconds"
+msgstr "Trop de délai en secondes."
+
+#: time/zic.c:1761
+msgid "too many local time types"
+msgstr "Trop de types localisés pour la représentation du temps."
+
+#: time/zic.c:1715
+msgid "too many transitions?!"
+msgstr "Trop de transitions définies?!"
+
+#: locale/programs/ld-collate.c:1622
+msgid "too many weights"
+msgstr "Trop de poids définis."
+
+#: time/zic.c:2083
+msgid "too many, or too long, time zone abbreviations"
+msgstr "Trop ou de trop longues abréviations de fuseaux horaires."
+
+#: locale/programs/linereader.h:146
+msgid "trailing garbage at end of line"
+msgstr "Suffixe en rebut à la fin de la ligne."
+
+#: sunrpc/svc_simple.c:132
+#, c-format
+msgid "trouble replying to prog %d\n"
+msgstr "Problème à répondre au programme %d.\n"
+
+#: locale/programs/ld-collate.c:1382
+msgid "two lines in a row containing `...' are not allowed"
+msgstr "Deux lignes consécutives contenant `...' ne sont pas permises."
+
+#: time/zic.c:1284
+msgid "typed single year"
+msgstr "Une seule année fournie."
+
+#: locale/programs/charmap.c:617 locale/programs/charmap.c:628
+#, c-format
+msgid "unknown character `%s'"
+msgstr "Caractère inconnu `%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
+#, c-format
+msgid "unknown character in field `%s' of category `%s'"
+msgstr "Caractère inconnu dans le champ `%s' de catégorie `%s'."
+
+#: locale/programs/locfile.c:585
+msgid "unknown collation directive"
+msgstr "Directive de fusionnement inconnue."
+
+#: catgets/gencat.c:468
+#, c-format
+msgid "unknown directive `%s': line ignored"
+msgstr "Directive inconnue `%s': ligne ignorée."
+
+#: catgets/gencat.c:447
+#, c-format
+msgid "unknown set `%s'"
+msgstr "Ensemble inconnu `%s'."
+
+#: locale/programs/ld-collate.c:1366 locale/programs/ld-collate.c:1557
+#: locale/programs/ld-collate.c:1731
+#, c-format
+msgid "unknown symbol `%.*s': line ignored"
+msgstr "Symbole inconnu `%.*s': ligne ignorée."
+
+#: time/zic.c:752
+msgid "unruly zone"
+msgstr "Zone sans règle."
+
+#: catgets/gencat.c:952
+msgid "unterminated message"
+msgstr "Message incomplet."
+
+#: locale/programs/linereader.c:515 locale/programs/linereader.c:550
+msgid "unterminated string"
+msgstr "Chaîne incomplète."
+
+#: sunrpc/rpc_scan.c:319
+msgid "unterminated string constant"
+msgstr "Chaîne de constante incomplète."
+
+#: locale/programs/linereader.c:385
+msgid "unterminated symbolic name"
+msgstr "Nom symbolique incomplet."
+
+#: locale/programs/ld-collate.c:1684
+msgid "unterminated weight name"
+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."
+
+#: sunrpc/rpc_main.c:78
+#, c-format
+msgid "usage: %s infile\n"
+msgstr "Usage: %s fichier_d_entrée\n"
+
+#: time/zic.c:2026
+msgid "use of 2/29 in non leap-year"
+msgstr "Utiliser 2/29 pour les années non-bissextiles."
+
+#: locale/programs/charmap.c:438 locale/programs/charmap.c:492
+#, c-format
+msgid "value for %s must be an integer"
+msgstr "La valeur de %s doit être un entier."
+
+#: locale/programs/charmap.c:233
+#, c-format
+msgid "value for <%s> must lie between 1 and 4"
+msgstr "La valeur de <%s> doit être comprise entre 1 et 4."
+
+#: locale/programs/ld-monetary.c:148 locale/programs/ld-numeric.c:89
+#, c-format
+msgid "value for field `%s' in category `%s' must not be the empty string"
+msgstr "La valeur du champ `%s' de catégorie `%s' ne doit pas être un chaîne vide."
+
+#: locale/programs/charmap.c:245
+msgid "value of <mb_cur_max> must be greater than the value of <mb_cur_min>"
+msgstr "La valeur de <mb_cur_max> doit être plus grande que la valeur de <mb_cur_min>."
+
+#: locale/programs/ld-monetary.c:138
+msgid ""
+"value of field `int_curr_symbol' in category `LC_MONETARY' does not "
+"correspond to a valid name in ISO 4217"
+msgstr ""
+"La valeur du champ `int_curr_symbol' de catégorie `LC_MONETARY' ne doit pas "
+"correspondre à un nom valide de la norme ISO 4217."
+
+#: locale/programs/ld-monetary.c:133
+msgid ""
+"value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length"
+msgstr ""
+"La valeur du champ `int_curr_symbol' de catégorie `LC_MONETARY' n'a pas la bonne longueur."
+
+#: locale/programs/ld-monetary.c:370 locale/programs/ld-numeric.c:199
+#, c-format
+msgid "values for field `%s' in category `%s' must be smaller than 127"
+msgstr "Les valeurs du champ `%s' de catégorie `%s' doivent être plus petite que 127."
+
+#: locale/programs/ld-monetary.c:366
+#, c-format
+msgid "values for field `%s' in category `%s' must not be zero"
+msgstr "Les valeurs du champ `%s' de catégorie `%s' ne doivent pas être égal à zéro."
+
+#: sunrpc/rpc_parse.c:330
+msgid "variable-length array declaration expected"
+msgstr "Déclaration attendue de tableau de type `variable-length'."
+
+#: sunrpc/rpc_parse.c:370
+msgid "voids allowed only inside union and program definitions"
+msgstr "Déclaration `voids' permises seulement à l'intérieur d'une définition d'`union' et de programme."
+
+#: login/setutent_r.c:47
+msgid "while opening UTMP file"
+msgstr "durant l'ouverture du fichier UTMP."
+
+#: catgets/gencat.c:979
+msgid "while opening old catalog file"
+msgstr "durant l'ouverture du vieux fichier du catalogue."
+
+#: db/makedb.c:338
+msgid "while reading database"
+msgstr "durant la lecture de la base de données."
+
+#: db/makedb.c:300
+msgid "while writing data base file"
+msgstr "durant l'écriture dans le fichier de la base de données."
+
+#: db/makedb.c:130
+msgid "wrong number of arguments"
+msgstr "Mauvais nombre de paramètres."
+
+#: time/zic.c:1078
+msgid "wrong number of fields on Leap line"
+msgstr "Mauvais nombre de champs sur la ligne de type `Leap'."
+
+#: time/zic.c:1169
+msgid "wrong number of fields on Link line"
+msgstr "Mauvais nombre de champs sur la ligne de type `Link'."
+
+#: time/zic.c:912
+msgid "wrong number of fields on Rule line"
+msgstr "Mauvais nombre de champs sur la ligne de type `Rule'."
+
+#: time/zic.c:982
+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:940
+msgid "wrong number of fields on Zone line"
+msgstr "Mauvais nombre de champs sur la ligne de type `Zone'."
diff --git a/po/ko.po b/po/ko.po
index af81ea645a..726cb14b2e 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -1,13 +1,13 @@
-# Korean messages for GNU C Library
+# Korean messages for GNU libc
 # Copyright (C) 1996 Free Software Foundation, Inc.
-# Bang Jun Young <bangjy@nownuri.nowcom.co.kr>, 1996.
+# Bang Jun-Young <bangjy@nownuri.nowcom.co.kr>, 1996.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU glibc 1.90\n"
-"POT-Creation-Date: 1996-05-29 14:03\n"
-"PO-Revision-Date: 1996-08-22 23:20+0900\n"
-"Last-Translator: Bang Jun Young <bangjy@nownuri.nowcom.co.kr>\n"
+"Project-Id-Version: GNU libc 1.94\n"
+"POT-Creation-Date: 1996-09-08  3:45\n"
+"PO-Revision-Date: 1996-09-26 12:34+0900\n"
+"Last-Translator: Bang Jun-Young <bangjy@nownuri.nowcom.co.kr>\n"
 "Language-Team: Korean <ko@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=EUC-KR\n"
@@ -43,27 +43,31 @@ msgstr "       rpcinfo [ -n Æ÷Æ®¹øÈ£ ] -t È£½ºÆ® ÇÁ·Î±×·¥¹øÈ£ [ ¹öÀü¹øÈ£ ]\n"
 msgid "   program vers proto   port\n"
 msgstr "   ÇÁ·Î±×·¥ ¹öÀü ¿øÇü   Æ÷Æ®\n"
 
-#: time/zic.c:423
+#: time/zic.c:425
 #, c-format
 msgid " (rule from \"%s\", line %d)"
-msgstr ""
+msgstr " (\"%s\"¿¡ ÀÖ´Â ±ÔÄ¢, %d Çà)"
+
+#: locale/programs/ld-collate.c:360 locale/programs/ld-ctype.c:1233
+msgid " done\n"
+msgstr " ¿Ï·á\n"
 
-#: time/zic.c:420
+#: time/zic.c:422
 #, fuzzy, c-format
 msgid "\"%s\", line %d: %s"
 msgstr "%s, Çà %d: "
 
-#: time/zic.c:908
+#: time/zic.c:946
 #, c-format
 msgid "\"Zone %s\" line and -l option are mutually exclusive"
-msgstr ""
+msgstr "\"Áö¿ª %s\" Çà°ú -l ¿É¼ÇÀº ¼­·Î ¹èŸÀûÀÔ´Ï´Ù"
 
-#: time/zic.c:916
+#: time/zic.c:954
 #, c-format
 msgid "\"Zone %s\" line and -p option are mutually exclusive"
-msgstr ""
+msgstr "\"Áö¿ª %s\" Çà°ú -p ¿É¼ÇÀº ¼­·Î ¹èŸÀûÀÔ´Ï´Ù"
 
-#: time/zic.c:721
+#: time/zic.c:759
 #, c-format
 msgid "%s in ruleless zone"
 msgstr ""
@@ -86,98 +90,103 @@ msgstr "%s%s¾Ë ¼ö ¾ø´Â ½ÅÈ£ %d\n"
 #: sunrpc/rpc_util.c:258
 #, c-format
 msgid "%s, line %d: "
-msgstr "%s, Çà %d: "
+msgstr "%s, %d Çà: "
 
-#: time/zic.c:2035
+#: time/zic.c:2140
 #, c-format
 msgid "%s: %d did not sign extend correctly\n"
 msgstr ""
 
-#: time/zic.c:1339
+#: locale/programs/charmap.c:176
+#, c-format
+msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n"
+msgstr "%s: <mb_cur_max>´Â <mb_cur_min>º¸´Ù Ä¿¾ß ÇÕ´Ï´Ù\n"
+
+#: time/zic.c:1431
 #, c-format
 msgid "%s: Can't create %s: %s\n"
 msgstr "%s: %s¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù: %s\n"
 
-#: time/zic.c:2014
+#: time/zic.c:2119
 #, c-format
 msgid "%s: Can't create directory %s: %s\n"
 msgstr "%s: %s µð·ºÅ丮¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù: %s\n"
 
-#: time/zic.c:600
+#: time/zic.c:613
 #, c-format
 msgid "%s: Can't link from %s to %s: %s\n"
-msgstr ""
+msgstr "%s: %s¸¦ %s·Î ¿¬°áÇÒ ¼ö ¾ø½À´Ï´Ù: %s\n"
 
-#: time/zic.c:746
+#: time/zic.c:784
 #, c-format
 msgid "%s: Can't open %s: %s\n"
 msgstr "%s: %s¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù: %s\n"
 
-#: time/zic.c:814
+#: time/zic.c:852
 #, c-format
 msgid "%s: Error closing %s: %s\n"
 msgstr "%s: %s¸¦ ´Ý´Â µµÁß ¿À·ù ¹ß»ý: %s\n"
 
-#: time/zic.c:808
+#: time/zic.c:846
 #, c-format
 msgid "%s: Error reading %s\n"
 msgstr "%s: %s¸¦ Àд µµÁß ¿À·ù ¹ß»ý\n"
 
-#: time/zic.c:1404
+#: time/zic.c:1495
 #, c-format
 msgid "%s: Error writing %s\n"
 msgstr "%s: %s¸¦ ¾²´Â µµÁß ¿À·ù ¹ß»ý\n"
 
-#: time/zdump.c:257
+#: time/zdump.c:258
 #, c-format
 msgid "%s: Error writing standard output "
 msgstr "%s: Ç¥ÁØ Ãâ·Â¿¡ ¾²´Â µµÁß ¿À·ù ¹ß»ý "
 
-#: time/zic.c:793
+#: time/zic.c:831
 #, c-format
 msgid "%s: Leap line in non leap seconds file %s\n"
 msgstr ""
 
-#: time/zic.c:360
-#, fuzzy, c-format
+#: time/zic.c:362
+#, c-format
 msgid "%s: Memory exhausted: %s\n"
-msgstr "¸Þ¸ð¸®°¡ ¹Ù´Ú³²"
+msgstr "%s: ¸Þ¸ð¸®°¡ ¹Ù´Ú³²: %s\n"
 
-#: time/zic.c:515
+#: time/zic.c:528
 #, c-format
 msgid "%s: More than one -L option specified\n"
 msgstr "%s: Çϳª ÀÌ»óÀÇ -L ¿É¼ÇÀÌ ÁöÁ¤µÇ¾úÀ½\n"
 
-#: time/zic.c:475
+#: time/zic.c:488
 #, c-format
 msgid "%s: More than one -d option specified\n"
 msgstr "%s: Çϳª ÀÌ»óÀÇ -d ¿É¼ÇÀÌ ÁöÁ¤µÇ¾úÀ½\n"
 
-#: time/zic.c:485
+#: time/zic.c:498
 #, c-format
 msgid "%s: More than one -l option specified\n"
 msgstr "%s: Çϳª ÀÌ»óÀÇ -l ¿É¼ÇÀÌ ÁöÁ¤µÇ¾úÀ½\n"
 
-#: time/zic.c:495
+#: time/zic.c:508
 #, c-format
 msgid "%s: More than one -p option specified\n"
 msgstr "%s: Çϳª ÀÌ»óÀÇ -p ¿É¼ÇÀÌ ÁöÁ¤µÇ¾úÀ½\n"
 
-#: time/zic.c:505
+#: time/zic.c:518
 #, c-format
 msgid "%s: More than one -y option specified\n"
 msgstr "%s: Çϳª ÀÌ»óÀÇ -y ¿É¼ÇÀÌ ÁöÁ¤µÇ¾úÀ½\n"
 
-#: posix/getconf.c:149
-#, fuzzy, c-format
-msgid "%s: Unrecognized variable `%s'\n"
-msgstr "%s: ÀνÄÇÒ ¼ö ¾ø´Â ¿É¼Ç `%c%s'\n"
-
-#: time/zic.c:1741
+#: time/zic.c:1846
 #, c-format
 msgid "%s: command was '%s', result was %d\n"
 msgstr "%s: ¸í·ÉÀº '%s'¿´°í, °á°ú´Â %d¿´½À´Ï´Ù\n"
 
+#: locale/programs/charmap.c:593 locale/programs/locfile.c:878
+#, c-format
+msgid "%s: error in state machine"
+msgstr ""
+
 #: posix/getopt.c:686
 #, c-format
 msgid "%s: illegal option -- %c\n"
@@ -218,11 +227,16 @@ msgstr "%s: ÀÌ ¿É¼ÇÀº Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù -- %c\n"
 msgid "%s: output would overwrite %s\n"
 msgstr "%s: Ãâ·ÂÀÌ %s¸¦ µ¤¾î¾µ °ÍÀÔ´Ï´Ù\n"
 
-#: time/zic.c:800 zic.c:1212 zic.c:1232
+#: time/zic.c:838 time/zic.c:1249 time/zic.c:1269
 #, c-format
 msgid "%s: panic: Invalid l_value %d\n"
 msgstr "%s: panic: ºÎÀûÀýÇÑ ÁÂÇ×°ª %d\n"
 
+#: locale/programs/charmap.c:600
+#, fuzzy, c-format
+msgid "%s: premature end of file"
+msgstr "Á¤±Ô½ÄÀÌ ¿Ï°áµÇÁö ¾ÊÀº ä ³¡³²"
+
 #: sunrpc/rpc_main.c:152
 #, c-format
 msgid "%s: unable to open "
@@ -238,14 +252,16 @@ msgstr "%s: ÀνÄÇÒ ¼ö ¾ø´Â ¿É¼Ç `%c%s'\n"
 msgid "%s: unrecognized option `--%s'\n"
 msgstr "%s: ÀνÄÇÒ ¼ö ¾ø´Â ¿É¼Ç `--%s'\n"
 
-#: time/zic.c:432
+#: time/zic.c:447
 #, c-format
 msgid ""
-"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d directory ]\n"
+"%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] [ -d "
+"directory ]\n"
 "\t[ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"
 msgstr ""
-"%s: »ç¿ë¹ýÀº %s [ -s ] [ -v ] [ -l Áö¿ª½Ã°¢ ] [ -p Æ÷½Ä½º±ÔÄ¢ ] [ -d µð·ºÅ丮 ]\n"
-"\t[ -L leapseconds ] [ -y yearistype ] [ ÆÄÀÏÀ̸§ ... ]\n"
+"%s: »ç¿ë¹ýÀº %s [ -s ] [ -v ] [ -l Áö¿ª½Ã°¢ ] [ -p Æ÷½Ä½º±ÔÄ¢ ] [ -d "
+"µð·ºÅ丮 ]\n"
+"\t[ -L À±ÃÊ ] [ -y yearistype ] [ ÆÄÀÏÀ̸§ ... ]\n"
 
 #: time/zdump.c:165
 #, c-format
@@ -258,14 +274,17 @@ msgid "(unknown authentication error - %d)"
 msgstr "(¾Ë ¼ö ¾ø´Â ÀÎÁõ ¿À·ù - %d)"
 
 #: sunrpc/rpcinfo.c:555
-#, fuzzy
 msgid "(unknown)"
-msgstr "¾Ë ¼ö ¾ø´Â ½ÅÈ£"
+msgstr "(¾Ë ¼ö ¾øÀ½)"
 
-#: catgets/gencat.c:242
+#: catgets/gencat.c:244
 msgid "*standard input*"
 msgstr "*Ç¥ÁØ ÀÔ·Â*"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:766
+msgid ".lib section in a.out corrupted"
+msgstr "a.outÀÇ .lib ÀýÀÌ ¼Õ»óµÇ¾úÀ½"
+
 #: inet/rcmd.c:325
 msgid ".rhosts fstat failed"
 msgstr ".rhosts fstat ½ÇÆÐ"
@@ -282,7 +301,7 @@ msgstr ".rhosts´Â ÀÏ¹Ý ÆÄÀÏÀÌ ¾Æ´Ô"
 msgid ".rhosts writeable by other than owner"
 msgstr ".rhosts´Â ¼ÒÀ¯ÀÚ°¡ ¾Æ´Ñ »ç¶÷ÀÌ º¯°æÇÒ ¼ö ÀÖÀ½"
 
-#: clnt_perr.c:133 sunrpc/clnt_perr.c:112
+#: sunrpc/clnt_perr.c:112 sunrpc/clnt_perr.c:133
 #, c-format
 msgid "; low version = %lu, high version = %lu"
 msgstr "; ³·Àº ¹öÀü = %lu, ³ôÀº ¹öÀü = %lu"
@@ -291,41 +310,100 @@ msgstr "; ³·Àº ¹öÀü = %lu, ³ôÀº ¹öÀü = %lu"
 msgid "; why = "
 msgstr "; ÀÌÀ¯ = "
 
+#: locale/programs/ld-ctype.c:325
+#, c-format
+msgid "<SP> character must not be in class `%s'"
+msgstr "<SP> ¹®ÀÚ´Â `%s' Ŭ·¡½º¿¡ ÀÖÀ¸¸é ¾ÈµË´Ï´Ù"
+
+#: locale/programs/ld-ctype.c:316
+#, c-format
+msgid "<SP> character not in class `%s'"
+msgstr "<SP> ¹®ÀÚ´Â `%s' Ŭ·¡½º¿¡ ¾øÀ½"
+
+#. 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.
+#: stdio-common/../sysdeps/gnu/errlist.c:591
 msgid "?"
 msgstr "?"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:762
+msgid "Accessing a corrupted shared library"
+msgstr "¼Õ»óµÈ °øÀ¯ ¶óÀ̺귯¸®¿¡ Á¢±ÙÇÔ"
+
+#. TRANS The requested socket address is already in use.  @xref{Socket Addresses}.
+#: stdio-common/../sysdeps/gnu/errlist.c:354
 msgid "Address already in use"
-msgstr "ÁÖ¼Ò°¡ ÀÌ¹Ì »ç¿ëÁßÀÔ´Ï´Ù"
+msgstr "ÁÖ¼Ò°¡ ÀÌ¹Ì »ç¿ë ÁßÀÔ´Ï´Ù"
+
+#. TRANS The address family specified for a socket is not supported; it is
+#. TRANS inconsistent with the protocol being used on the socket.  @xref{Sockets}.
+#: stdio-common/../sysdeps/gnu/errlist.c:349
+msgid "Address family not supported by protocol"
+msgstr "ÁÖ¼Ò±ºÀÌ ±Ô¾à¿¡¼­ Áö¿øµÇÁö ¾ÊÀ½"
 
-msgid "Address family not supported by protocol family"
-msgstr "ÁÖ¼Ò±ºÀÌ ±Ô¾à±º¿¡¼­ Áö¿øµÇÁö ¾ÊÀ½"
+#: stdio-common/../sysdeps/gnu/errlist.c:714
+msgid "Advertise error"
+msgstr ""
 
 msgid "Alarm clock"
 msgstr "ÀÚ¸íÁ¾ ½Ã°è"
 
+#. TRANS Argument list too long; used when the arguments passed to a new program
+#. TRANS being executed with one of the @code{exec} functions (@pxref{Executing a
+#. TRANS File}) occupy too much memory space.  This condition never arises in the
+#. TRANS GNU system.
+#: stdio-common/../sysdeps/gnu/errlist.c:57
 msgid "Argument list too long"
 msgstr "Àμö ¸í´ÜÀÌ ³Ê¹« ±é´Ï´Ù"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:770
+msgid "Attempting to link in too many shared libraries"
+msgstr ""
+
 #: sunrpc/clnt_perr.c:276
 msgid "Authentication OK"
-msgstr "ÀÎÁõ ½ÂÀÎ"
+msgstr "ÀÎÁõ ½ÂÀεÊ"
 
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:549
 msgid "Authentication error"
 msgstr "ÀÎÁõ ¿À·ù"
 
+#. TRANS Bad address; an invalid pointer was detected.
+#. TRANS In the GNU system, this error never happens; you get a signal instead.
+#: stdio-common/../sysdeps/gnu/errlist.c:102
 msgid "Bad address"
 msgstr "À߸øµÈ ÁÖ¼Ò"
 
+#. TRANS Bad file descriptor; for example, I/O on a descriptor that has been
+#. TRANS closed or reading from a descriptor open only for writing (or vice
+#. TRANS versa).
+#: stdio-common/../sysdeps/gnu/errlist.c:70
 msgid "Bad file descriptor"
 msgstr "À߸øµÈ ÆÄÀÏ ±â¼úÀÚ"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:682
+msgid "Bad font file format"
+msgstr "À߸øµÈ ÆùÆ® ÆÄÀÏ Çü½Ä"
+
+#. TRANS A file that isn't a block special file was given in a situation that
+#. TRANS requires one.  For example, trying to mount an ordinary file as a file
+#. TRANS system in Unix gives this error.
+#: stdio-common/../sysdeps/gnu/errlist.c:109
 msgid "Block device required"
 msgstr "ºí·Ï ÀåÄ¡°¡ ÇÊ¿äÇÔ"
 
-#: sunrpc/pmap_rmt.c:336
+#: sunrpc/pmap_rmt.c:335
 msgid "Broadcast select problem"
 msgstr "ºê·Îµåij½ºÆ® ¼±Åà ¹®Á¦"
 
+#. TRANS Broken pipe; there is no process reading from the other end of a pipe.
+#. TRANS Every library function that returns this error code also generates a
+#. TRANS @code{SIGPIPE} signal; this signal terminates the program if not handled
+#. TRANS or blocked.  Thus, your program will never actually see @code{EPIPE}
+#. TRANS unless it has handled or blocked @code{SIGPIPE}.
+#: stdio-common/../sysdeps/gnu/errlist.c:222
 msgid "Broken pipe"
 msgstr "±ú¾îÁø ÆÄÀÌÇÁ"
 
@@ -335,20 +413,32 @@ msgstr "¹ö½º ¿À·ù"
 msgid "CPU time limit exceeded"
 msgstr "CPU ½Ã°£ Á¦ÇÑ ÃÊ°úÇÔ"
 
-msgid "Can't assign requested address"
-msgstr "¿äûµÈ ÁÖ¼Ò¸¦ ¹èÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù"
-
-msgid "Can't send after socket shutdown"
-msgstr "¼ÒÄÏÀÌ ´ÝÈù ÈÄ¿¡ º¸³¾ ¼ö ¾ø½À´Ï´Ù"
+#: stdio-common/../sysdeps/gnu/errlist.c:758
+msgid "Can not access a needed shared library"
+msgstr "ÇÊ¿äÇÑ °øÀ¯ ¶óÀ̺귯¸®¿¡ Á¢±ÙÇÒ ¼ö ¾ø½À´Ï´Ù"
 
+#. TRANS No memory available.  The system cannot allocate more virtual memory
+#. TRANS because its capacity is full.
+#: stdio-common/../sysdeps/gnu/errlist.c:91
 msgid "Cannot allocate memory"
 msgstr "¸Þ¸ð¸®¸¦ ÇÒ´çÇÒ ¼ö ¾ø½À´Ï´Ù"
 
-#: sunrpc/pmap_rmt.c:254
+#. TRANS The requested socket address is not available; for example, you tried
+#. TRANS to give a socket a name that doesn't match the local host name.
+#. TRANS @xref{Socket Addresses}.
+#: stdio-common/../sysdeps/gnu/errlist.c:361
+msgid "Cannot assign requested address"
+msgstr "¿äûµÈ ÁÖ¼Ò¸¦ ¹èÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù"
+
+#: sunrpc/pmap_rmt.c:253
 msgid "Cannot create socket for broadcast rpc"
 msgstr "ºê·Îµåij½ºÆ® rpc¸¦ À§ÇÑ ¼ÒÄÏÀ» ¸¸µé ¼ö ¾ø½À´Ï´Ù"
 
-#: sunrpc/pmap_rmt.c:348
+#: stdio-common/../sysdeps/gnu/errlist.c:774
+msgid "Cannot exec a shared library directly"
+msgstr "°øÀ¯ ¶óÀ̺귯¸®¸¦ Á÷Á¢ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù"
+
+#: sunrpc/pmap_rmt.c:347
 msgid "Cannot receive reply to broadcast"
 msgstr "ºê·Îµåij½ºÆ®¿¡ ´ëÇÑ ÀÀ´äÀ» ¹ÞÀ» ¼ö ¾ø½À´Ï´Ù"
 
@@ -356,14 +446,23 @@ msgstr "ºê·Îµåij½ºÆ®¿¡ ´ëÇÑ ÀÀ´äÀ» ¹ÞÀ» ¼ö ¾ø½À´Ï´Ù"
 msgid "Cannot register service"
 msgstr "¼­ºñ½º¸¦ µî·ÏÇÒ ¼ö ¾ø½À´Ï´Ù"
 
-#: sunrpc/pmap_rmt.c:312
+#. TRANS The socket has already been shut down.
+#: stdio-common/../sysdeps/gnu/errlist.c:422
+msgid "Cannot send after transport endpoint shutdown"
+msgstr "Àü¼Û Á¾·áÁöÁ¡ÀÌ Áö³­ ÈÄ¿¡ º¸³¾ ¼ö ¾ø½À´Ï´Ù"
+
+#: sunrpc/pmap_rmt.c:311
 msgid "Cannot send broadcast packet"
 msgstr "ºê·Îµåij½ºÆ® ÆÐŶÀ» º¸³¾ ¼ö ¾ø½À´Ï´Ù"
 
-#: sunrpc/pmap_rmt.c:260
+#: sunrpc/pmap_rmt.c:259
 msgid "Cannot set socket option SO_BROADCAST"
 msgstr "¼ÒÄÏ ¿É¼Ç SO_BROADCAST¸¦ ¼³Á¤ÇÒ ¼ö ¾ø½À´Ï´Ù"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:622
+msgid "Channel number out of range"
+msgstr "¹üÀ§¸¦ ¹þ¾î³­ ä³Î ¹øÈ£"
+
 msgid "Child exited"
 msgstr "ÀÚ½ÄÀÌ Á¾·áµÊ"
 
@@ -371,33 +470,81 @@ msgstr "ÀÚ½ÄÀÌ Á¾·áµÊ"
 msgid "Client credential too weak"
 msgstr "Ŭ¶óÀ̾ðÆ® ÀÚ°Ý ºÎ¿©°¡ ³Ê¹« ¾àÇÔ"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:722
+msgid "Communication error on send"
+msgstr "Àü¼Û Áß Åë½Å ¿À·ù"
+
+#. 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 "ÄÄÇ»ÅÍ°¡ ³óÀåÀ» »ò½À´Ï´Ù"
 
+#: locale/programs/ld-ctype.c:1196
+msgid "Computing table size for character classes might take a while..."
+msgstr "¹®ÀÚ Å¬·¡½ºÀÇ Ç¥ Å©±â °è»êÀº ½Ã°£ÀÌ ¾à°£ °É¸± ¼ö ÀÖ½À´Ï´Ù..."
+
+#: locale/programs/ld-collate.c:327
+msgid "Computing table size for collation information might take a while..."
+msgstr ""
+
+#. TRANS A remote host refused to allow the network connection (typically because
+#. TRANS it is not running the requested service).
+#: stdio-common/../sysdeps/gnu/errlist.c:439
 msgid "Connection refused"
 msgstr "¿¬°áÀÌ °ÅºÎµÊ"
 
+#. TRANS A network connection was closed for reasons outside the control of the
+#. TRANS local host, such as by the remote machine rebooting or an unrecoverable
+#. TRANS protocol violation.
+#: stdio-common/../sysdeps/gnu/errlist.c:389
 msgid "Connection reset by peer"
 msgstr ""
 
+#. TRANS A socket operation with a specified timeout received no response during
+#. TRANS the timeout period.
+#: stdio-common/../sysdeps/gnu/errlist.c:433
 msgid "Connection timed out"
 msgstr "¿¬°á ½Ã°£ ÃÊ°ú"
 
 msgid "Continued"
 msgstr "°è¼ÓµÊ"
 
+#. TRANS No default destination address was set for the socket.  You get this
+#. TRANS error when you try to transmit data over a connectionless socket,
+#. TRANS without first specifying a destination for the data with @code{connect}.
+#: stdio-common/../sysdeps/gnu/errlist.c:417
 msgid "Destination address required"
 msgstr "¸ñÀûÁö ÁÖ¼Ò°¡ ÇÊ¿äÇÔ"
 
-msgid "Device busy"
-msgstr "ÀåÄ¡ µ¿ÀÛÁß"
+#: stdio-common/../sysdeps/gnu/errlist.c:686
+msgid "Device not a stream"
+msgstr "ÀåÄ¡°¡ ½ºÆ®¸²ÀÌ ¾Æ´Ô"
 
+#. TRANS No such device or address.  The system tried to use the device
+#. TRANS represented by a file you specified, and it couldn't find the device.
+#. TRANS This can mean that the device file was installed incorrectly, or that
+#. TRANS the physical device is missing or not correctly attached to the
+#. TRANS computer.
+#: stdio-common/../sysdeps/gnu/errlist.c:49
 msgid "Device not configured"
 msgstr "ÀåÄ¡°¡ ¼³Á¤µÇÁö ¾Ê¾ÒÀ½"
 
+#. TRANS Resource busy; a system resource that can't be shared is already in use.
+#. TRANS For example, if you try to delete a file that is the root of a currently
+#. TRANS mounted filesystem, you get this error.
+#: stdio-common/../sysdeps/gnu/errlist.c:116
+#, fuzzy
+msgid "Device or resource busy"
+msgstr "ÀåÄ¡³ª ÀÚ¿øÀÌ µ¿ÀÛ Áß"
+
+#. TRANS Directory not empty, where an empty directory was expected.  Typically,
+#. TRANS this error occurs when you are trying to delete a directory.
+#: stdio-common/../sysdeps/gnu/errlist.c:468
 msgid "Directory not empty"
 msgstr "µð·ºÅ丮°¡ ºñ¾îÀÖÁö ¾ÊÀ½"
 
+#. TRANS The user's disk quota was exceeded.
+#: stdio-common/../sysdeps/gnu/errlist.c:486
 msgid "Disc quota exceeded"
 msgstr "µð½ºÅ© ÇÒ´ç·®ÀÌ ÃÊ°úµÊ"
 
@@ -410,41 +557,81 @@ msgstr "¿À·ù %d"
 msgid "Error in unknown error system: "
 msgstr "¾Ë ¼ö ¾ø´Â ¿À·ù ½Ã½ºÅÛ¿¡ ¿À·ù: "
 
+#: inet/ruserpass.c:156
+msgid "Error: .netrc file is readable by others."
+msgstr "¿À·ù: .netrc ÆÄÀÏÀ» ´Ù¸¥ »ç¶÷ÀÌ ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:662
+msgid "Exchange full"
+msgstr ""
+
+#. TRANS Invalid executable file format.  This condition is detected by the
+#. TRANS @code{exec} functions; see @ref{Executing a File}.
+#: stdio-common/../sysdeps/gnu/errlist.c:63
 msgid "Exec format error"
 msgstr "Exec Çü½Ä ¿À·ù"
 
+#: locale/programs/localedef.c:207
+msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'"
+msgstr ""
+
 #: sunrpc/clnt_perr.c:290
 msgid "Failed (unspecified error)"
 msgstr "½ÇÆÐ (ÁöÁ¤µÇÁö ¾ÊÀº ¿À·ù)"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:750
+msgid "File descriptor in bad state"
+msgstr ""
+
+#. 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 "ÆÄÀÏÀÌ Á¸ÀçÇÕ´Ï´Ù"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:678
+msgid "File locking deadlock error"
+msgstr ""
+
+#. TRANS Filename too long (longer than @code{PATH_MAX}; @pxref{Limits for
+#. TRANS Files}) or host name too long (in @code{gethostname} or
+#. TRANS @code{sethostname}; @pxref{Host Identification}).
+#: stdio-common/../sysdeps/gnu/errlist.c:452
 msgid "File name too long"
 msgstr "ÆÄÀÏ À̸§ÀÌ ³Ê¹« ±é´Ï´Ù"
 
 msgid "File size limit exceeded"
 msgstr "ÆÄÀÏ Å©±â Á¦ÇÑÀ» ÃÊ°úÇÔ"
 
+#. 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 "ÆÄÀÏÀÌ ³Ê¹« Å®´Ï´Ù"
 
 msgid "Floating point exception"
 msgstr "ºÎµ¿ ¼Ò¼öÁ¡ ¿¹¿Ü"
 
+#. TRANS Function not implemented.  Some functions have commands or options defined
+#. TRANS that might not be supported in all implementations, and this is the kind
+#. TRANS of error you get if you request them and they are not supported.
+#: stdio-common/../sysdeps/gnu/errlist.c:561
 msgid "Function not implemented"
 msgstr "ÇÔ¼ö°¡ ±¸ÇöµÇÁö ¾Ê¾ÒÀ½"
 
+#. TRANS This error code has no purpose.
+#: stdio-common/../sysdeps/gnu/errlist.c:606
 msgid "Gratuitous error"
 msgstr "ÀÌÀ¯¾ø´Â ¿À·ù"
 
 msgid "Hangup"
 msgstr "²÷¾îÁü"
 
+#. TRANS The remote host for a requested network connection is down.
+#: stdio-common/../sysdeps/gnu/errlist.c:457
 msgid "Host is down"
 msgstr "È£½ºÆ®°¡ Á×¾ú½À´Ï´Ù"
 
-#: resolv/herror.c:74
+#: resolv/herror.c:75
 msgid "Host name lookup failure"
 msgstr "È£½ºÆ® À̸§ Ž»ö ½ÇÆÐ"
 
@@ -454,30 +641,70 @@ msgstr "ÀÔÃâ·Â °¡´É"
 msgid "IOT trap"
 msgstr "IOT Æ®·¦"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:618
+msgid "Identifier removed"
+msgstr "½Äº°ÀÚ Á¦°ÅµÊ"
+
 msgid "Illegal Instruction"
-msgstr "À߸øµÈ ¸í·É"
+msgstr "À߸øµÈ ¸í·É¾î"
 
+#. TRANS Invalid seek operation (such as on a pipe).
+#: stdio-common/../sysdeps/gnu/errlist.c:201
 msgid "Illegal seek"
 msgstr "À߸øµÈ Ž»ö"
 
+#. TRANS Inappropriate file type or format.  The file was the wrong type for the
+#. TRANS operation, or a data file had the wrong format.
+#. TRANS
+#. TRANS On some systems @code{chmod} returns this error if you try to set the
+#. TRANS sticky bit on a non-directory file; @pxref{Setting Permissions}.
+#: stdio-common/../sysdeps/gnu/errlist.c:544
 msgid "Inappropriate file type or format"
 msgstr "ºÎÀûÀýÇÑ ÆÄÀÏ Å¸ÀÔ ¶Ç´Â Çü½Ä"
 
+#. TRANS Inappropriate I/O control operation, such as trying to set terminal
+#. TRANS modes on an ordinary file.
+#: stdio-common/../sysdeps/gnu/errlist.c:176
 msgid "Inappropriate ioctl for device"
 msgstr "ÀåÄ¡¿¡ ´ëÇØ ºÎÀûÀýÇÑ ioctl"
 
+#. TRANS In the GNU system, servers supporting the @code{term} protocol return
+#. TRANS this error for certain operations when the caller is not in the
+#. TRANS foreground process group of the terminal.  Users do not usually see this
+#. TRANS error because functions such as @code{read} and @code{write} translate
+#. TRANS it into a @code{SIGTTIN} or @code{SIGTTOU} signal.  @xref{Job Control},
+#. TRANS for information on process groups and these signals.
+#: stdio-common/../sysdeps/gnu/errlist.c:577
 msgid "Inappropriate operation for background process"
 msgstr "¹è°æ ÇÁ·Î¼¼½º·Î ºÎÀûÇÕÇÑ µ¿ÀÛ"
 
+#. TRANS Input/output error; usually used for physical read or write errors.
+#: stdio-common/../sysdeps/gnu/errlist.c:40
 msgid "Input/output error"
 msgstr "ÀÔ·Â/Ãâ·Â ¿À·ù"
 
 msgid "Interrupt"
 msgstr "ÀÎÅÍ·´Æ®"
 
+#. TRANS Interrupted function call; an asynchronous signal occured and prevented
+#. TRANS completion of the call.  When this happens, you should try the call
+#. TRANS again.
+#. TRANS
+#. TRANS You can choose to have functions resume after a signal that is handled,
+#. TRANS rather than failing with @code{EINTR}; see @ref{Interrupted
+#. TRANS Primitives}.
+#: stdio-common/../sysdeps/gnu/errlist.c:35
 msgid "Interrupted system call"
 msgstr "Áß´ÜµÈ ½Ã½ºÅÛ È£Ãâ"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:610
+#, fuzzy
+msgid "Interrupted system call should be restarted"
+msgstr "Áß´ÜµÈ ½Ã½ºÅÛ È£Ãâ"
+
+#. TRANS Invalid argument.  This is used to indicate various kinds of problems
+#. TRANS with passing the wrong argument to a library function.
+#: stdio-common/../sysdeps/gnu/errlist.c:152
 msgid "Invalid argument"
 msgstr "ºÎÀûÀýÇÑ Àμö"
 
@@ -505,9 +732,23 @@ msgstr "ºÎÀûÀýÇÑ ´ëÁ¶ ¹®ÀÚ"
 msgid "Invalid content of \\{\\}"
 msgstr "\\{\\}¿¡ ºÎÀûÀýÇÑ ³»¿ë¹°ÀÌ ÀÖÀ½"
 
+#. TRANS An attempt to make an improper link across file systems was detected.
+#. TRANS This happens not only when you use @code{link} (@pxref{Hard Links}) but
+#. TRANS also when you rename a file with @code{rename} (@pxref{Renaming Files}).
+#: stdio-common/../sysdeps/gnu/errlist.c:129
 msgid "Invalid cross-device link"
 msgstr "ÀåÄ¡°£ ¿¬°áÀÌ ºÎÀûÀýÇÔ"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:654
+msgid "Invalid exchange"
+msgstr "ºÎÀûÀýÇÑ ±³È¯"
+
+#. TRANS While decoding a multibyte character the function came along an invalid
+#. TRANS or an incomplete sequence of bytes or the given wide character is invalid.
+#: stdio-common/../sysdeps/gnu/errlist.c:567
+msgid "Invalid or incomplete multibyte or wide character"
+msgstr ""
+
 #: posix/regex.c:953
 msgid "Invalid preceding regular expression"
 msgstr "¾Õ¼± Á¤±Ô½ÄÀÌ ºÎÀûÀýÇÔ"
@@ -520,45 +761,141 @@ msgstr "ºÎÀûÀýÇÑ ¹üÀ§ ³¡"
 msgid "Invalid regular expression"
 msgstr "ºÎÀûÀýÇÑ Á¤±Ô½Ä"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:670
+msgid "Invalid request code"
+msgstr "ºÎÀûÀýÇÑ ¿äû ÄÚµå"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:658
+msgid "Invalid request descriptor"
+msgstr "À߸øµÈ ¿äû ±â¼úÀÚ"
+
 #: sunrpc/clnt_perr.c:288
 msgid "Invalid server verifier"
 msgstr "ºÎÀûÀýÇÑ ¼­¹ö °ËÁõ±â"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:674
+msgid "Invalid slot"
+msgstr "ºÎÀûÀýÇÑ ½½·Ô"
+
+#. TRANS File is a directory; you cannot open a directory for writing,
+#. TRANS or create or remove hard links to it.
+#: stdio-common/../sysdeps/gnu/errlist.c:146
 msgid "Is a directory"
 msgstr "µð·ºÅ丮ÀÔ´Ï´Ù"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:794
+msgid "Is a named type file"
+msgstr ""
+
 msgid "Killed"
 msgstr "Á×¾úÀ½"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:650
+msgid "Level 2 halted"
+msgstr "µî±Þ 2 ¸Ü¾úÀ½"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:626
+msgid "Level 2 not synchronized"
+msgstr "µî±Þ 2°¡ µ¿±âÈ­µÇÁö ¾ÊÀ½"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:630
+msgid "Level 3 halted"
+msgstr "µî±Þ 3 ¸Ü¾úÀ½"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:634
+msgid "Level 3 reset"
+msgstr "µî±Þ 3 ¸®¼Â"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:710
+msgid "Link has been severed"
+msgstr ""
+
+#: stdio-common/../sysdeps/gnu/errlist.c:638
+msgid "Link number out of range"
+msgstr "¹üÀ§¸¦ ¹þ¾î³­ ¸µÅ© ¹øÈ£"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:702
+msgid "Machine is not on the network"
+msgstr "±â±â°¡ ³×Æ®¿öÅ© »ó¿¡ ÀÖÁö ¾Ê½À´Ï´Ù"
+
 #: posix/regex.c:952
 msgid "Memory exhausted"
 msgstr "¸Þ¸ð¸®°¡ ¹Ù´Ú³²"
 
+#. TRANS The size of a message sent on a socket was larger than the supported
+#. TRANS maximum size.
+#: stdio-common/../sysdeps/gnu/errlist.c:305
 msgid "Message too long"
 msgstr "¸Þ½ÃÁö°¡ ³Ê¹« ±é´Ï´Ù"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:730
+msgid "Multihop attempted"
+msgstr ""
+
+#: stdio-common/../sysdeps/gnu/errlist.c:746
+msgid "Name not unique on network"
+msgstr "À̸§ÀÌ ³×Æ®¿öÅ© »ó¿¡¼­ ´ÜÀÏÇÏÁö ¾ÊÀ½"
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:554
 msgid "Need authenticator"
 msgstr "ÀÎÁõ±â°¡ ÇÊ¿äÇÔ"
 
+#. TRANS A network connection was reset because the remote host crashed.
+#: stdio-common/../sysdeps/gnu/errlist.c:377
 msgid "Network dropped connection on reset"
 msgstr ""
 
+#. TRANS A socket operation failed because the network was down.
+#: stdio-common/../sysdeps/gnu/errlist.c:366
 msgid "Network is down"
 msgstr "³×Æ®¿öÅ©°¡ Á×¾ú½À´Ï´Ù"
 
+#. 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 "³×Æ®¿öÅ©°¡ Á¢±Ù ºÒ°¡´ÉÇÕ´Ï´Ù"
 
-#: resolv/herror.c:76
+#: stdio-common/../sysdeps/gnu/errlist.c:646
+msgid "No CSI structure available"
+msgstr "»ç¿ë °¡´ÉÇÑ CSI ±¸Á¶°¡ ¾øÀ½"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:790
+msgid "No XENIX semaphores available"
+msgstr "»ç¿ë °¡´ÉÇÑ XENIX ¼¼¸¶Æ÷¾î°¡ ¾øÀ½"
+
+#: resolv/herror.c:77
 msgid "No address associated with name"
 msgstr "À̸§°ú ´ëÀÀµÇ´Â ÁÖ¼Ò°¡ ¾øÀ½"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:666
+msgid "No anode"
+msgstr ""
+
+#. TRANS The kernel's buffers for I/O operations are all in use.  In GNU, this
+#. TRANS error is always synonymous with @code{ENOMEM}; you may get one or the
+#. TRANS other from network operations.
+#: stdio-common/../sysdeps/gnu/errlist.c:396
 msgid "No buffer space available"
 msgstr "»ç¿ë °¡´ÉÇÑ ¹öÆÛ °ø°£ÀÌ ¾øÀ½"
 
+#. TRANS There are no child processes.  This error happens on operations that are
+#. TRANS supposed to manipulate child processes, when there aren't any processes
+#. TRANS to manipulate.
+#: stdio-common/../sysdeps/gnu/errlist.c:77
 msgid "No child processes"
 msgstr "ÀÚ½Ä ÇÁ·Î¼¼½º°¡ ¾øÀ½"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:690
+msgid "No data available"
+msgstr "»ç¿ë °¡´ÉÇÑ ÀÚ·á°¡ ¾øÀ½"
+
+#. TRANS No locks available.  This is used by the file locking facilities; see
+#. TRANS @ref{File Locks}.  This error is never generated by the GNU system, but
+#. TRANS it can result from an operation to an NFS server running another
+#. TRANS operating system.
+#: stdio-common/../sysdeps/gnu/errlist.c:535
 msgid "No locks available"
 msgstr "»ç¿ë°¡´ÉÇÑ Àá±ÝÀåÄ¡°¡ ¾øÀ½"
 
@@ -566,55 +903,137 @@ msgstr "»ç¿ë°¡´ÉÇÑ Àá±ÝÀåÄ¡°¡ ¾øÀ½"
 msgid "No match"
 msgstr "¸Â´Â ¦ ¾øÀ½"
 
-#: posix/regex.c:5200
+#: stdio-common/../sysdeps/gnu/errlist.c:614
+msgid "No message of desired type"
+msgstr "Àû´çÇÑ ÇüÀ» °¡Áø ¸Þ½ÃÁö°¡ ¾øÀ½"
+
+#: posix/regex.c:5202
 msgid "No previous regular expression"
 msgstr "ÀüÀÇ Á¤±Ô½ÄÀÌ ¾øÀ½"
 
 #: sunrpc/rpcinfo.c:515
-#, fuzzy
 msgid "No remote programs registered.\n"
-msgstr "RPC: ÇÁ·Î±×·¥ÀÌ µî·ÏµÇÁö ¾ÊÀ½"
+msgstr "¿ø°Ý ÇÁ·Î±×·¥ÀÌ µî·ÏµÇÁö ¾Ê¾ÒÀ½.\n"
 
+#. 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 ""
 
+#. TRANS No space left on device; write operation on a file failed because the
+#. TRANS disk is full.
+#: stdio-common/../sysdeps/gnu/errlist.c:196
 msgid "No space left on device"
 msgstr "µð¹ÙÀ̽º¿¡ ³²Àº °ø°£ÀÌ ¾øÀ½"
 
+#. TRANS No such file or directory.  This is a ``file doesn't exist'' error
+#. TRANS for ordinary files that are referenced in contexts where they are
+#. TRANS expected to already exist.
+#: stdio-common/../sysdeps/gnu/errlist.c:19
 msgid "No such file or directory"
 msgstr "±×·± ÆÄÀÏÀ̳ª µð·ºÅ丮°¡ ¾øÀ½"
 
+#. TRANS No process matches the specified process ID.
+#: stdio-common/../sysdeps/gnu/errlist.c:24
 msgid "No such process"
 msgstr "±×·± ÇÁ·Î¼¼½º°¡ ¾øÀ½"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:786
+msgid "Not a XENIX named type file"
+msgstr ""
+
+#: stdio-common/../sysdeps/gnu/errlist.c:738
+msgid "Not a data message"
+msgstr "ÀÚ·á ¸Þ½ÃÁö°¡ ¾Æ´Ô"
+
+#. 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"
 msgstr "µð·ºÅ丮°¡ ¾Æ´Õ´Ï´Ù"
 
+#. TRANS Domain error; used by mathematical functions when an argument value does
+#. TRANS not fall into the domain over which the function is defined.
+#: stdio-common/../sysdeps/gnu/errlist.c:228
 msgid "Numerical argument out of domain"
 msgstr "¿µ¿ªÀ» ¹þ¾î³­ ¼öÄ¡ Àμö"
 
+#. TRANS Range error; used by mathematical functions when the result value is
+#. TRANS not representable because of overflow or underflow.
+#: stdio-common/../sysdeps/gnu/errlist.c:234
 msgid "Numerical result out of range"
 msgstr "¹üÀ§¸¦ ¹þ¾î³­ ¼öÄ¡ °á°ú"
 
-#: time/zic.c:1835
+#. TRANS An attempt was made to NFS-mount a remote file system with a file name that
+#. TRANS already specifies an NFS-mounted file.
+#. TRANS (This is an error on some operating systems, but we expect it to work
+#. TRANS properly on the GNU system, making this error code impossible.)
+#: stdio-common/../sysdeps/gnu/errlist.c:502
+msgid "Object is remote"
+msgstr ""
+
+#: time/zic.c:1940
 msgid "Odd number of quotation marks"
 msgstr "µû¿ÈÇ¥°¡ Ȧ¼ö °³ÀÔ´Ï´Ù"
 
+#. TRANS An operation is already in progress on an object that has non-blocking
+#. TRANS mode selected.
+#: stdio-common/../sysdeps/gnu/errlist.c:294
 msgid "Operation already in progress"
-msgstr "ÀÌ¹Ì ÁøÇàÁßÀÎ ¸í·É"
+msgstr "ÀÌ¹Ì ÁøÇà ÁßÀÎ ¸í·É"
 
+#. TRANS Operation not permitted; only the owner of the file (or other resource)
+#. TRANS or processes with special privileges can perform the operation.
+#: stdio-common/../sysdeps/gnu/errlist.c:12
 msgid "Operation not permitted"
 msgstr "¸í·ÉÀÌ Çã¿ëµÇÁö ¾ÊÀ½"
 
+#. TRANS The operation you requested is not supported.  Some socket functions
+#. TRANS don't make sense for all types of sockets, and others may not be
+#. TRANS implemented for all communications protocols.  In the GNU system, this
+#. TRANS error can happen for many calls when the object does not support the
+#. TRANS particular operation; it is a generic indication that the server knows
+#. TRANS nothing to do for that call.
+#: stdio-common/../sysdeps/gnu/errlist.c:338
 msgid "Operation not supported"
 msgstr "¸í·ÉÀÌ Áö¿øµÇÁö ¾ÊÀ½"
 
+#. TRANS The wrong type of device was given to a function that expects a
+#. TRANS particular sort of device.
+#: stdio-common/../sysdeps/gnu/errlist.c:135
 msgid "Operation not supported by device"
 msgstr "ÀåÄ¡¿¡¼­ Áö¿øµÇÁö ¾Ê´Â ¸í·É"
 
+#. TRANS An operation that cannot complete immediately was initiated on an object
+#. TRANS that has non-blocking mode selected.  Some functions that must always
+#. TRANS block (such as @code{connect}; @pxref{Connecting}) never return
+#. TRANS @code{EAGAIN}.  Instead, they return @code{EINPROGRESS} to indicate that
+#. TRANS the operation has begun and will take some time.  Attempts to manipulate
+#. TRANS the object before the call completes return @code{EALREADY}.  You can
+#. TRANS use the @code{select} function to find out when the pending operation
+#. TRANS has completed; @pxref{Waiting for I/O}.
+#: stdio-common/../sysdeps/gnu/errlist.c:288
 msgid "Operation now in progress"
 msgstr "Áö±Ý ÁøÇàÁßÀÎ ¸í·É"
 
+#. TRANS In the GNU C library, this is another name for @code{EAGAIN} (above).
+#. TRANS The values are always the same, on every operating system.
+#. TRANS
+#. TRANS C libraries in many older Unix systems have @code{EWOULDBLOCK} as a
+#. TRANS separate error code.
+#: stdio-common/../sysdeps/gnu/errlist.c:276
+msgid "Operation would block"
+msgstr ""
+
+#: stdio-common/../sysdeps/gnu/errlist.c:698
+msgid "Out of streams resources"
+msgstr "½ºÆ®¸² ÀÚ¿ø ºÎÁ·"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:706
+msgid "Package not installed"
+msgstr ""
+
+#. TRANS Permission denied; the file permissions do not allow the attempted operation.
+#: stdio-common/../sysdeps/gnu/errlist.c:96
 msgid "Permission denied"
 msgstr "Çã°¡ °ÅºÎµÊ"
 
@@ -628,33 +1047,66 @@ msgstr "Á¤±Ô½ÄÀÌ ¿Ï°áµÇÁö ¾ÊÀº ä ³¡³²"
 msgid "Profiling timer expired"
 msgstr "ÇÁ·ÎÆÄÀϸµ ŸÀ̸ÓÀÇ ½Ã°£ÀÌ ÃÊ°úµÊ"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:642
+msgid "Protocol driver not attached"
+msgstr "±Ô¾à ±¸µ¿±â¿¡ ¿¬°áµÇÁö ¾ÊÀ½"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:726
+msgid "Protocol error"
+msgstr "±Ô¾à ¿À·ù"
+
+#. TRANS The socket communications protocol family you requested is not supported.
+#: stdio-common/../sysdeps/gnu/errlist.c:343
 msgid "Protocol family not supported"
 msgstr "±Ô¾à±ºÀÌ Áö¿øµÇÁö ¾ÊÀ½"
 
+#. TRANS You specified a socket option that doesn't make sense for the
+#. TRANS particular protocol being used by the socket.  @xref{Socket Options}.
+#: stdio-common/../sysdeps/gnu/errlist.c:316
 msgid "Protocol not available"
 msgstr "±Ô¾à »ç¿ë ºÒ°¡´É"
 
+#. TRANS The socket domain does not support the requested communications protocol
+#. TRANS (perhaps because the requested protocol is completely invalid.)
+#. TRANS @xref{Creating a Socket}.
+#: stdio-common/../sysdeps/gnu/errlist.c:323
 msgid "Protocol not supported"
 msgstr "±Ô¾àÀÌ Áö¿øµÇÁö ¾ÊÀ½"
 
+#. TRANS The socket type does not support the requested communications protocol.
+#: stdio-common/../sysdeps/gnu/errlist.c:310
 msgid "Protocol wrong type for socket"
 msgstr "¼ÒÄÏ¿¡ ´ëÇÑ ±Ô¾àÀÌ À߸øµÊ"
 
 msgid "Quit"
 msgstr "Á¾·á"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:734
+msgid "RFS specific error"
+msgstr "RFS¿¡ ±¹ÇÑµÈ ¿À·ù)"
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:527
 msgid "RPC bad procedure for program"
 msgstr "RPC ÇÁ·Î±×·¥ÀÇ ÇÁ·Î½ÃÁ®°¡ À߸øµÊ"
 
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:517
 msgid "RPC program not available"
 msgstr "RPC ÇÁ·Î±×·¥ »ç¿ë ºÒ°¡´É"
 
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:522
 msgid "RPC program version wrong"
 msgstr "RPC ÇÁ·Î±×·¥ ¹öÀüÀÌ À߸øµÊ"
 
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:507
 msgid "RPC struct is bad"
 msgstr "RPC ±¸Á¶°¡ À߸øµÇ¾ú½À´Ï´Ù"
 
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:512
 msgid "RPC version wrong"
 msgstr "RPC ¹öÀüÀÌ À߸øµÊ"
 
@@ -734,6 +1186,8 @@ msgstr "RPC: ¾Ë ¼ö ¾ø´Â È£½ºÆ®"
 msgid "RPC: Unknown protocol"
 msgstr "RPC: ¾Ë ¼ö ¾ø´Â ±Ô¾à"
 
+#. 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 "ÀбâÀü¿ë ÆÄÀÏ ½Ã½ºÅÛ"
 
@@ -741,71 +1195,64 @@ msgstr "ÀбâÀü¿ë ÆÄÀÏ ½Ã½ºÅÛ"
 msgid "Regular expression too big"
 msgstr "Á¤±Ô½ÄÀÌ ³Ê¹« Å®´Ï´Ù"
 
-msgid "Reserved error 82"
-msgstr "¿¹¾àµÈ ¿À·ù 82"
-
-msgid "Reserved error 83"
-msgstr "¿¹¾àµÈ ¿À·ù 83"
-
-msgid "Reserved error 84"
-msgstr "¿¹¾àµÈ ¿À·ù 84"
-
-msgid "Reserved error 85"
-msgstr "¿¹¾àµÈ ¿À·ù 85"
-
-msgid "Reserved error 86"
-msgstr "¿¹¾àµÈ ¿À·ù 86"
-
-msgid "Reserved error 87"
-msgstr "¿¹¾àµÈ ¿À·ù 87"
-
-msgid "Reserved error 88"
-msgstr "¿¹¾àµÈ ¿À·ù 88"
-
-msgid "Reserved error 89"
-msgstr "¿¹¾àµÈ ¿À·ù 89"
-
-msgid "Reserved error 90"
-msgstr "¿¹¾àµÈ ¿À·ù 90"
+#: stdio-common/../sysdeps/gnu/errlist.c:798
+msgid "Remote I/O error"
+msgstr "¿ø°Ý ÀÔÃâ·Â ¿À·ù"
 
-msgid "Reserved error 91"
-msgstr "¿¹¾àµÈ ¿À·ù 91"
+#: stdio-common/../sysdeps/gnu/errlist.c:754
+msgid "Remote address changed"
+msgstr "¿ø°Ý ÁÖ¼Ò°¡ ¹Ù²î¾úÀ½"
 
-msgid "Reserved error 92"
-msgstr "¿¹¾àµÈ ¿À·ù 92"
-
-msgid "Reserved error 93"
-msgstr "¿¹¾àµÈ ¿À·ù 93"
-
-msgid "Reserved error 94"
-msgstr "¿¹¾àµÈ ¿À·ù 94"
-
-msgid "Reserved error 95"
-msgstr "¿¹¾àµÈ ¿À·ù 95"
-
-msgid "Reserved error 96"
-msgstr "¿¹¾àµÈ ¿À·ù 96"
-
-msgid "Reserved error 97"
-msgstr "¿¹¾àµÈ ¿À·ù 97"
-
-msgid "Reserved error 98"
-msgstr "¿¹¾àµÈ ¿À·ù 98"
-
-msgid "Reserved error 99"
-msgstr "¿¹¾àµÈ ¿À·ù 99"
+#: inet/ruserpass.c:157
+msgid "Remove password or make file unreadable by others."
+msgstr ""
 
-#: resolv/herror.c:72
+#: resolv/herror.c:73
 msgid "Resolver Error 0 (no error)"
-msgstr "¸®Á¹¹ö ¿À·ù 0 (¿À·ù¾Æ´Ô)"
+msgstr "¸®¼Ö¹ö ¿À·ù 0 (¿À·ù¾Æ´Ô)"
 
-#: resolv/herror.c:114
+#: resolv/herror.c:115
 msgid "Resolver internal error"
-msgstr "¸®Á¹¹ö ³»ºÎ ¿À·ù"
+msgstr "¸®¼Ö¹ö ³»ºÎ ¿À·ù"
 
+#. TRANS Deadlock avoided; allocating a system resource would have resulted in a
+#. TRANS deadlock situation.  The system does not guarantee that it will notice
+#. TRANS all such situations.  This error means you got lucky and the system
+#. TRANS noticed; it might just hang.  @xref{File Locks}, for an example.
+#: stdio-common/../sysdeps/gnu/errlist.c:85
 msgid "Resource deadlock avoided"
 msgstr ""
 
+#. TRANS Resource temporarily unavailable; the call might work if you try again
+#. TRANS later.  The macro @code{EWOULDBLOCK} is another name for @code{EAGAIN};
+#. TRANS they are always the same in the GNU C library.
+#. TRANS
+#. TRANS This error can happen in a few different situations:
+#. TRANS
+#. TRANS @itemize @bullet
+#. TRANS @item
+#. TRANS An operation that would block was attempted on an object that has
+#. TRANS non-blocking mode selected.  Trying the same operation again will block
+#. TRANS until some external condition makes it possible to read, write, or
+#. TRANS connect (whatever the operation).  You can use @code{select} to find out
+#. TRANS when the operation will be possible; @pxref{Waiting for I/O}.
+#. TRANS
+#. TRANS @strong{Portability Note:} In older Unix many systems, this condition
+#. TRANS was indicated by @code{EWOULDBLOCK}, which was a distinct error code
+#. TRANS different from @code{EAGAIN}.  To make your program portable, you should
+#. TRANS check for both codes and treat them the same.
+#. TRANS
+#. TRANS @item
+#. TRANS A temporary resource shortage made an operation impossible.  @code{fork}
+#. TRANS can return this error.  It indicates that the shortage is expected to
+#. TRANS pass, so your program can try the call again later and it may succeed.
+#. TRANS It is probably a good idea to delay for a few seconds before trying it
+#. TRANS again, to allow time for other processes to release scarce resources.
+#. TRANS Such shortages are usually fairly serious and affect the whole system,
+#. TRANS so usually an interactive program should report the error to the user
+#. TRANS and return to its command loop.
+#. TRANS @end itemize
+#: stdio-common/../sysdeps/gnu/errlist.c:267
 msgid "Resource temporarily unavailable"
 msgstr "ÀÚ¿øÀÌ ÀϽÃÀûÀ¸·Î »ç¿ë ºÒ°¡´ÉÇÔ"
 
@@ -820,67 +1267,119 @@ msgstr "¼­¹ö°¡ ÀÚ°Ý ºÎ¿©¸¦ °ÅºÎÇß½À´Ï´Ù"
 msgid "Server rejected verifier"
 msgstr "¼­¹ö°¡ °ËÁõ±â¸¦ °ÅºÎÇß½À´Ï´Ù"
 
-msgid "Socket is already connected"
-msgstr "¼ÒÄÏÀÌ ÀÌ¹Ì ¿¬°áµÇ¾î ÀÖ½À´Ï´Ù"
-
-msgid "Socket is not connected"
-msgstr "¼ÒÄÏÀÌ ¿¬°áµÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù"
-
+#. 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"
 msgstr "ºñ¼ÒÄÏ»óÀÇ ¼ÒÄÏ µ¿ÀÛ"
 
+#. TRANS The socket type is not supported.
+#: stdio-common/../sysdeps/gnu/errlist.c:328
 msgid "Socket type not supported"
 msgstr "¼ÒÄÏ Å¸ÀÔÀÌ Áö¿øµÇÁö ¾Ê½À´Ï´Ù"
 
+#. TRANS A network connection was aborted locally.
+#: stdio-common/../sysdeps/gnu/errlist.c:382
 msgid "Software caused connection abort"
 msgstr "¼ÒÇÁÆ®¿þ¾î°¡ ¿¬°á Áß´ÜÀ» ÃÊ·¡Çß½À´Ï´Ù"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:718
+msgid "Srmount error"
+msgstr ""
+
+#. TRANS Stale NFS file handle.  This indicates an internal confusion in the NFS
+#. TRANS system which is due to file system rearrangements on the server host.
+#. TRANS Repairing this condition usually requires unmounting and remounting
+#. TRANS the NFS file system on the local host.
+#: stdio-common/../sysdeps/gnu/errlist.c:494
 msgid "Stale NFS file handle"
 msgstr "²÷¾îÁø NFS ÆÄÀÏ ÇÚµé"
 
 msgid "Stopped"
-msgstr "ÁßÁöµÊ"
+msgstr "Á¤ÁöµÊ"
 
 msgid "Stopped (signal)"
-msgstr "ÁßÁöµÊ (½ÅÈ£)"
+msgstr "Á¤ÁöµÊ (½ÅÈ£)"
 
 msgid "Stopped (tty input)"
-msgstr "ÁßÁöµÊ (tty ÀÔ·Â)"
+msgstr "Á¤ÁöµÊ (tty ÀÔ·Â)"
 
 msgid "Stopped (tty output)"
-msgstr "ÁßÁöµÊ (tty Ãâ·Â)"
+msgstr "Á¤ÁöµÊ (tty Ãâ·Â)"
+
+#: stdio-common/../sysdeps/gnu/errlist.c:778
+msgid "Streams pipe error"
+msgstr "½ºÆ®¸² ÆÄÀÌÇÁ ¿À·ù"
 
-#: posix/regex.c:940
+#: stdio-common/../sysdeps/gnu/errlist.c:782
+msgid "Structure needs cleaning"
+msgstr ""
+
+#: posix/regex.c:940 stdio-common/../sysdeps/gnu/errlist.c:7
 msgid "Success"
 msgstr "¼º°ø"
 
 msgid "Terminated"
 msgstr "Á¾·áµÊ"
 
+#. TRANS An attempt to execute a file that is currently open for writing, or
+#. TRANS write to a file that is currently being executed.  Often using a
+#. TRANS debugger to run a program is considered having it open for writing and
+#. TRANS will cause this error.  (The name stands for ``text file busy''.)  This
+#. TRANS is not an error in the GNU system; the text is copied as necessary.
+#: stdio-common/../sysdeps/gnu/errlist.c:185
 msgid "Text file busy"
 msgstr "¹®¼­ ÆÄÀÏ »ç¿ëÁß"
 
-msgid "Too many levels of remote in path"
-msgstr "¿ø°Ý °æ·ÎÀÇ ´Ü°è°¡ ³Ê¹« ¸¹À½"
+#: stdio-common/../sysdeps/gnu/errlist.c:694
+msgid "Timer expired"
+msgstr "ŸÀ̸ÓÀÇ ½Ã°£ÀÌ ÃÊ°úµÊ"
 
+#. TRANS Too many levels of symbolic links were encountered in looking up a file name.
+#. TRANS This often indicates a cycle of symbolic links.
+#: stdio-common/../sysdeps/gnu/errlist.c:445
 msgid "Too many levels of symbolic links"
 msgstr "±âÈ£ ¿¬°áÀÇ ´Ü°è°¡ ³Ê¹« ¸¹À½"
 
+#. TRANS Too many links; the link count of a single file would become too large.
+#. TRANS @code{rename} can cause this error if the file being renamed already has
+#. TRANS as many links as it can take (@pxref{Renaming Files}).
+#: stdio-common/../sysdeps/gnu/errlist.c:213
 msgid "Too many links"
 msgstr "¿¬°áÀÌ ³Ê¹« ¸¹À½"
 
+#. TRANS The current process has too many files open and can't open any more.
+#. TRANS Duplicate descriptors do count toward this limit.
+#. TRANS
+#. TRANS In BSD and GNU, the number of open files is controlled by a resource
+#. TRANS limit that can usually be increased.  If you get this error, you might
+#. TRANS want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited;
+#. TRANS @pxref{Limits on Resources}.
+#: stdio-common/../sysdeps/gnu/errlist.c:163
 msgid "Too many open files"
 msgstr "¿­¸° ÆÄÀÏÀÌ ³Ê¹« ¸¹À½"
 
+#. TRANS There are too many distinct file openings in the entire system.  Note
+#. TRANS that any number of linked channels count as just one file opening; see
+#. TRANS @ref{Linked Channels}.  This error never occurs in the GNU system.
+#: stdio-common/../sysdeps/gnu/errlist.c:170
 msgid "Too many open files in system"
 msgstr "½Ã½ºÅÛ¿¡ ¿­¸° ÆÄÀÏÀÌ ³Ê¹« ¸¹À½"
 
+#. TRANS This means that the per-user limit on new process would be exceeded by
+#. TRANS an attempted @code{fork}.  @xref{Limits on Resources}, for details on
+#. TRANS the @code{RLIMIT_NPROC} limit.
+#: stdio-common/../sysdeps/gnu/errlist.c:475
 msgid "Too many processes"
 msgstr "ÇÁ·Î¼¼½º°¡ ³Ê¹« ¸¹À½"
 
-msgid "Too many references: can't splice"
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:427
+msgid "Too many references: cannot splice"
 msgstr ""
 
+#. TRANS The file quota system is confused because there are too many users.
+#. TRANS @c This can probably happen in a GNU system when using NFS.
+#: stdio-common/../sysdeps/gnu/errlist.c:481
 msgid "Too many users"
 msgstr "»ç¿ëÀÚ°¡ ³Ê¹« ¸¹À½"
 
@@ -891,10 +1390,29 @@ msgstr "ÃßÀû/Áß´ÜÁ¡ ÇÔÁ¤"
 msgid "Trailing backslash"
 msgstr "µû¶óºÙ´Â ¿ª½½·¡½¬"
 
+#. TRANS In the GNU system, opening a file returns this error when the file is
+#. TRANS translated by a program and the translator program dies while starting
+#. TRANS up, before it has connected to the file.
+#: stdio-common/../sysdeps/gnu/errlist.c:584
 msgid "Translator died"
 msgstr "¹ø¿ª±â°¡ Á×¾úÀ½"
 
-#: catgets/gencat.c:201
+#. TRANS You tried to connect a socket that is already connected.
+#. TRANS @xref{Connecting}.
+#: stdio-common/../sysdeps/gnu/errlist.c:402
+msgid "Transport endpoint is already connected"
+msgstr "Àü¼Û Á¾·áÁöÁ¡ÀÌ ÀÌ¹Ì ¿¬°áµÇ¾î ÀÖ½À´Ï´Ù"
+
+#. TRANS The socket is not connected to anything.  You get this error when you
+#. TRANS try to transmit data over a socket, without first specifying a
+#. TRANS destination for the data.  For a connectionless socket (for datagram
+#. TRANS protocols, such as UDP), you get @code{EDESTADDRREQ} instead.
+#: stdio-common/../sysdeps/gnu/errlist.c:410
+msgid "Transport endpoint is not connected"
+msgstr "Àü¼Û Á¾·áÁöÁ¡ÀÌ ¿¬°áµÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù"
+
+#: catgets/gencat.c:202 db/makedb.c:197 locale/programs/locale.c:234
+#: locale/programs/localedef.c:383
 #, c-format
 msgid "Try `%s --help' for more information.\n"
 msgstr "´õ ¸¹Àº Á¤º¸¸¦ º¸·Á¸é `%s --help' ÇϽʽÿÀ.\n"
@@ -904,19 +1422,25 @@ msgstr "´õ ¸¹Àº Á¤º¸¸¦ º¸·Á¸é `%s --help' ÇϽʽÿÀ.\n"
 msgid "Trying %s...\n"
 msgstr "%s ½ÃµµÁß...\n"
 
-#: ../sysdeps/mach/_strerror.c:58 string/../sysdeps/generic/_strerror.c:36
+#: inet/ruserpass.c:241
+#, c-format
+msgid "Unknown .netrc keyword %s"
+msgstr "¾Ë ¼ö ¾ø´Â .netrc Å°¿öµå %s"
+
+#: string/../sysdeps/generic/_strerror.c:36
+#: string/../sysdeps/mach/_strerror.c:58
 msgid "Unknown error "
 msgstr "¾Ë ¼ö ¾ø´Â ¿À·ù"
 
-#: resolv/herror.c:73
+#: resolv/herror.c:74
 msgid "Unknown host"
 msgstr "¾Ë ¼ö ¾ø´Â È£½ºÆ®"
 
-#: resolv/herror.c:117
+#: resolv/herror.c:118
 msgid "Unknown resolver error"
-msgstr "¾Ë ¼ö ¾ø´Â ¸®Á¹¹ö ¿À·ù"
+msgstr "¾Ë ¼ö ¾ø´Â ¸®¼Ö¹ö ¿À·ù"
 
-#: resolv/herror.c:75
+#: resolv/herror.c:76
 msgid "Unknown server error"
 msgstr "¾Ë ¼ö ¾ø´Â ¼­¹ö ¿À·ù"
 
@@ -945,11 +1469,16 @@ msgstr "¦ÀÌ ¸ÂÁö ¾Ê´Â [ ¶Ç´Â [^"
 msgid "Unmatched \\{"
 msgstr "¦ÀÌ ¸ÂÁö ¾Ê´Â \\{"
 
+#: posix/getconf.c:184
+#, fuzzy, c-format
+msgid "Unrecognized variable `%s'"
+msgstr "%s: ÀνÄÇÒ ¼ö ¾ø´Â ¿É¼Ç `%c%s'\n"
+
 msgid "Urgent I/O condition"
 msgstr "½Ã±ÞÇÑ ÀÔÃâ·Â »óȲ"
 
-#: catgets/gencat.c:204
-#, c-format
+#: catgets/gencat.c:205
+#, fuzzy, c-format
 msgid ""
 "Usage: %s [OPTION]... -o OUTPUT-FILE [INPUT-FILE]...\n"
 "       %s [OPTION]... [OUTPUT-FILE [INPUT-FILE]...]\n"
@@ -961,19 +1490,86 @@ msgid ""
 "  -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 <bug-glibc@prep.ai.mit.edu>.\n"
 msgstr ""
 "»ç¿ë¹ý: %s [¿É¼Ç]... -o Ãâ·Â-ÆÄÀÏ [ÀÔ·Â-ÆÄÀÏ]...\n"
 "       %s [¿É¼Ç]... [Ãâ·Â-ÆÄÀÏ [ÀÔ·Â-ÆÄÀÏ]...]\n"
 "±ä ¿É¼Ç¿¡ ºÎ°¡µÇ´Â Àμö´Â ªÀº ¿É¼Ç¿¡µµ Àû¿ëµË´Ï´Ù.\n"
 "  -H, --header        ±âÈ£ Á¤ÀǸ¦ Æ÷ÇÔÇÏ´Â C Çì´õ ÆÄÀÏÀ» ¸¸µì´Ï´Ù\n"
 "  -h, --help          ÀÌ µµ¿ò¸»À» Ç¥½ÃÇÏ°í ¸¶Ä¨´Ï´Ù\n"
-"      --new           Á¸ÀçÇÏ´Â ¸ñ·ÏÀ» »ç¿ëÇÏÁö ¾Ê°í »õ Ãâ·Â ÆÄÀÏÀ» ¾²°Ô ÇÕ´Ï´Ù\n"
+"      --new           Á¸ÀçÇÏ´Â ¸ñ·ÏÀ» »ç¿ëÇÏÁö ¾Ê°í »õ Ãâ·Â ÆÄÀÏÀ» ¾²°Ô "
+"ÇÕ´Ï´Ù\n"
+"  -o, --output=NAME   ÆÄÀÏ NAMEÀ¸·Î Ãâ·ÂÀ» ±â·ÏÇÕ´Ï´Ù\n"
+"  -V, --version       ¹öÀü Á¤º¸¸¦ Ãâ·ÂÇÏ°í ¸¶Ä¨´Ï´Ù\n"
+"ÀÔ·Â-ÆÄÀÏÀÌ - À̸é Ç¥ÁØ ÀÔ·ÂÀ¸·ÎºÎÅÍ ÀÔ·ÂÀ» ÀÐ°Ô µË´Ï´Ù.  Ãâ·Â-ÆÄÀÏÀÌ\n"
+"- À̸é Ç¥ÁØ Ãâ·Â¿¡ Ãâ·ÂÀÌ ±â·ÏµË´Ï´Ù.\n"
+
+#: db/makedb.c:200
+#, fuzzy, c-format
+msgid ""
+"Usage: %s [OPTION]... INPUT-FILE OUTPUT-FILE\n"
+"       %s [OPTION]... -o OUTPUT-FILE INPUT-FILE\n"
+"       %s [OPTION]... -u INPUT-FILE\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"  -f, --fold-case     convert key to lower case\n"
+"  -h, --help          display this help and exit\n"
+"  -o, --output=NAME   write output to file NAME\n"
+"      --quiet         don't print messages while building database\n"
+"  -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 <bug-glibc@prep.ai.mit.edu>.\n"
+msgstr ""
+"»ç¿ë¹ý: %s [¿É¼Ç]... ÀÔ·Â-ÆÄÀÏ Ãâ·Â-ÆÄÀÏ\n"
+"        %s [¿É¼Ç]... -o Ãâ·Â-ÆÄÀÏ ÀÔ·Â-ÆÄÀÏ\n"
+"        %s [¿É¼Ç]... -u ÀÔ·Â-ÆÄÀÏ\n"
+"±ä ¿É¼Ç¿¡ ºÎ°¡µÇ´Â Àμö´Â ªÀº ¿É¼Ç¿¡µµ Àû¿ëµË´Ï´Ù.\n"
+"  -H, --header        ±âÈ£ Á¤ÀǸ¦ Æ÷ÇÔÇÏ´Â C Çì´õ ÆÄÀÏÀ» ¸¸µì´Ï´Ù\n"
+"  -h, --help          ÀÌ µµ¿ò¸»À» Ç¥½ÃÇÏ°í ¸¶Ä¨´Ï´Ù\n"
+"      --new           Á¸ÀçÇÏ´Â ¸ñ·ÏÀ» »ç¿ëÇÏÁö ¾Ê°í »õ Ãâ·Â ÆÄÀÏÀ» ¾²°Ô "
+"ÇÕ´Ï´Ù\n"
 "  -o, --output=NAME   ÆÄÀÏ NAMEÀ¸·Î Ãâ·ÂÀ» ±â·ÏÇÕ´Ï´Ù\n"
 "  -V, --version       ¹öÀü Á¤º¸¸¦ Ãâ·ÂÇÏ°í ¸¶Ä¨´Ï´Ù\n"
 "ÀÔ·Â-ÆÄÀÏÀÌ - À̸é Ç¥ÁØ ÀÔ·ÂÀ¸·ÎºÎÅÍ ÀÔ·ÂÀ» ÀÐ°Ô µË´Ï´Ù.  Ãâ·Â-ÆÄÀÏÀÌ\n"
 "- À̸é Ç¥ÁØ Ãâ·Â¿¡ Ãâ·ÂÀÌ ±â·ÏµË´Ï´Ù.\n"
 
-#: posix/getconf.c:81
+#: locale/programs/localedef.c:386
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... name\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"  -c, --force               create output even if warning messages were "
+"issued\n"
+"  -h, --help                display this help and exit\n"
+"  -f, --charmap=FILE        symbolic character names defined in FILE\n"
+"  -i, --inputfile=FILE      source definitions are found in FILE\n"
+"  -u, --code-set-name=NAME  specify code set for mapping ISO 10646 elements\n"
+"  -v, --verbose             print more messages\n"
+"  -V, --version             output version information and exit\n"
+"      --posix               be strictly POSIX conform\n"
+"\n"
+"System's directory for character maps: %s\n"
+"                       locale files  : %s\n"
+"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
+msgstr ""
+
+#: locale/programs/locale.c:237
+#, c-format
+msgid ""
+"Usage: %s [OPTION]... name\n"
+"Mandatory arguments to long options are mandatory for short options too.\n"
+"  -h, --help            display this help and exit\n"
+"  -V, --version         output version information and exit\n"
+"\n"
+"  -a, --all-locales     write names of available locales\n"
+"  -m, --charmaps        write names of available charmaps\n"
+"\n"
+"  -c, --category-name   write names of selected categories\n"
+"  -k, --keyword-name    write names of selected keywords\n"
+"Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
+msgstr ""
+
+#: posix/getconf.c:131
 #, c-format
 msgid "Usage: %s variable_name [pathname]\n"
 msgstr "»ç¿ë¹ý: %s º¯¼ö¸í [°æ·Î¸í]\n"
@@ -988,23 +1584,62 @@ msgstr "»ç¿ëÀÚ Á¤ÀÇ ½ÅÈ£ 1"
 msgid "User defined signal 2"
 msgstr "»ç¿ëÀÚ ½ÅÈ£ ½ÅÈ£ 2"
 
+#: stdio-common/../sysdeps/gnu/errlist.c:742
+msgid "Value too large for defined data type"
+msgstr ""
+
 msgid "Virtual timer expired"
 msgstr "°¡»ó ŸÀ̸ÓÀÇ ½Ã°£ÀÌ ÃÊ°úµÊ"
 
-#: time/zic.c:1740
+#: time/zic.c:1845
 msgid "Wild result from command execution"
 msgstr ""
 
 msgid "Window changed"
 msgstr "À©µµ¿ì º¯°æµÊ"
 
+#. TRANS You did @strong{what}?
+#: stdio-common/../sysdeps/gnu/errlist.c:596
 msgid "You really blew it this time"
 msgstr "À̹ø¿£ Á¤¸»·Î ³¯·Á¹ö·È½À´Ï´Ù"
 
-#: time/zic.c:1013
+#: time/zic.c:1051
 msgid "Zone continuation line end time is not after end time of previous line"
 msgstr ""
 
+#: locale/programs/charmap.c:397 locale/programs/locfile.c:341
+#, c-format
+msgid "`%1$s' definition does not end with `END %1$s'"
+msgstr ""
+
+#: locale/programs/ld-monetary.c:358 locale/programs/ld-numeric.c:190
+#, c-format
+msgid "`-1' must be last entry in `%s' field in `%s' category"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1651
+msgid "`...' must only be used in `...' and `UNDEFINED' entries"
+msgstr ""
+
+#: locale/programs/locfile.c:538
+msgid "`from' expected after first argument to `collating-element'"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1108
+msgid ""
+"`from' string in collation element declaration contains unknown character"
+msgstr ""
+
+#: locale/programs/charmap.c:267
+#, c-format
+msgid "argument to <%s> must be a single character"
+msgstr ""
+
+#: locale/programs/locfile.c:215
+#, c-format
+msgid "argument to `%s' must be a single character"
+msgstr ""
+
 #: sunrpc/rpc_parse.c:326
 msgid "array declaration expected"
 msgstr "¹è¿­ ¼±¾ðÀÌ ÀÖ¾î¾ß ÇÔ"
@@ -1017,19 +1652,23 @@ msgstr ""
 msgid "bad .rhosts owner"
 msgstr "À߸øµÈ .rhosts ¼ÒÀ¯ÀÚ"
 
-#: time/zic.c:1136
+#: locale/programs/charmap.c:212 locale/programs/locfile.c:209
+msgid "bad argument"
+msgstr "Àμö"
+
+#: time/zic.c:1173
 msgid "blank FROM field on Link line"
 msgstr ""
 
-#: time/zic.c:1140
+#: time/zic.c:1177
 msgid "blank TO field on Link line"
 msgstr ""
 
-#: malloc/mcheck.c:174
+#: malloc/mcheck.c:189
 msgid "block freed twice"
 msgstr "ºí·ÏÀÌ µÎ¹ø ºñ¿öÁ³À½"
 
-#: malloc/mcheck.c:177
+#: malloc/mcheck.c:192
 msgid "bogus mcheck_status, library is buggy"
 msgstr "¾ûÅ͸® mcheck_status, ¶óÀ̺귯¸®´Â ¹ö±×°¡ ¹ö±Û¹ö±ÛÇÕ´Ï´Ù"
 
@@ -1045,25 +1684,149 @@ msgstr ""
 msgid "cache_set: victim not found"
 msgstr "cache_set: ¹ö¸±°ÍÀ» ãÁö ¸øÇßÀ½"
 
+#: time/zic.c:1686
+msgid "can't determine time zone abbrevation to use just after until time"
+msgstr ""
+
 #: sunrpc/svc_simple.c:64
 #, c-format
 msgid "can't reassign procedure number %d\n"
 msgstr "ÇÁ·Î½ÃÁ® ¹øÈ£ %d¸¦ ÀçÁöÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù\n"
 
-#: catgets/gencat.c:248
+#: locale/programs/localedef.c:281
+#, fuzzy, c-format
+msgid "cannot `stat' locale file `%s'"
+msgstr "ÀÔ·Â ÆÄÀÏ `%s'¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
+
+#: locale/programs/ld-collate.c:1313
+#, c-format
+msgid "cannot insert collation element `%.*s'"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1492 locale/programs/ld-collate.c:1497
+msgid "cannot insert into result table"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1165 locale/programs/ld-collate.c:1207
+#, c-format
+msgid "cannot insert new collating symbol definition: %s"
+msgstr ""
+
+#: db/makedb.c:149
+#, fuzzy, c-format
+msgid "cannot open database file `%s': %s"
+msgstr "ÀÔ·Â ÆÄÀÏ `%s'¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
+
+#: catgets/gencat.c:250 db/makedb.c:168
 #, c-format
 msgid "cannot open input file `%s'"
 msgstr "ÀÔ·Â ÆÄÀÏ `%s'¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
 
-#: catgets/gencat.c:753 gencat.c:794
+#: locale/programs/localedef.c:215
+#, fuzzy, c-format
+msgid "cannot open locale definition file `%s'"
+msgstr "ÀÔ·Â ÆÄÀÏ `%s'¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
+
+#: catgets/gencat.c:755 catgets/gencat.c:796 db/makedb.c:177
 #, c-format
 msgid "cannot open output file `%s'"
 msgstr "Ãâ·Â ÆÄÀÏ `%s'¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
 
+#: locale/programs/locfile.c:986
+#, fuzzy, c-format
+msgid "cannot open output file `%s' for category `%s'"
+msgstr "Ãâ·Â ÆÄÀÏ `%s'¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
+
+#: locale/programs/ld-collate.c:1359
+msgid "cannot process order specification"
+msgstr ""
+
+#: locale/programs/locale.c:293
+#, c-format
+msgid "cannot read character map directory `%s'"
+msgstr ""
+
+#: locale/programs/locale.c:268
+#, fuzzy, c-format
+msgid "cannot read locale directory `%s'"
+msgstr "%s: %s µð·ºÅ丮¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù: %s\n"
+
+#: locale/programs/localedef.c:303
+#, fuzzy, c-format
+msgid "cannot read locale file `%s'"
+msgstr "Ãâ·Â ÆÄÀÏ `%s'¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
+
+#: locale/programs/localedef.c:328
+#, fuzzy, c-format
+msgid "cannot write output files to `%s'"
+msgstr "Ãâ·Â ÆÄÀÏ `%s'¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
+
+#: locale/programs/localedef.c:371
+msgid "category data requested more than once: should not happen"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:264
+#, c-format
+msgid "character %s'%s' in class `%s' must be in class `%s'"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:288
+#, c-format
+msgid "character %s'%s' in class `%s' must not be in class `%s'"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:309
+msgid "character <SP> not defined in character map"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:1140
+#, c-format
+msgid "character `%c' not defined while needed as default value"
+msgstr ""
+
+#: 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
+#, c-format
+msgid "character `%s' not defined while needed as default value"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:800
+#, c-format
+msgid "character class `%s' already defined"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:832
+#, c-format
+msgid "character map `%s' already defined"
+msgstr ""
+
+#: locale/programs/charmap.c:76
+#, c-format
+msgid "character map file `%s' not found"
+msgstr ""
+
 #: sunrpc/clnt_raw.c:106
 msgid "clnt_raw.c - Fatal header serialization error."
 msgstr ""
 
+#: locale/programs/ld-collate.c:1328
+#, c-format
+msgid "collation element `%.*s' appears more than once: ignore line"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1346
+msgid "collation symbol `.*s' appears more than once: ignore line"
+msgstr ""
+
+#: locale/programs/locfile.c:522
+#, c-format
+msgid "collation symbol expected after `%s'"
+msgstr ""
+
 #: inet/rcmd.c:112
 #, c-format
 msgid "connect to address %s: "
@@ -1077,42 +1840,68 @@ msgstr "»ó¼ö³ª ½Äº°ÀÚ°¡ ÀÖ¾î¾ß ÇÔ"
 msgid "couldn't create an rpc server\n"
 msgstr "rpc ¼­¹ö¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù\n"
 
-#: sunrpc/portmap.c:122
-#, fuzzy
+#: sunrpc/portmap.c:121
 msgid "couldn't do tcp_create\n"
-msgstr "rpc ¼­¹ö¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù\n"
+msgstr "tcp_create¸¦ ÇÒ ¼ö ¾ø½À´Ï´Ù\n"
 
-#: sunrpc/portmap.c:100
-#, fuzzy
+#: sunrpc/portmap.c:99
 msgid "couldn't do udp_create\n"
-msgstr "rpc ¼­¹ö¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù\n"
+msgstr "udp_create¸¦ ÇÒ ¼ö ¾ø½À´Ï´Ù\n"
 
 #: sunrpc/svc_simple.c:77
 #, c-format
 msgid "couldn't register prog %d vers %d\n"
 msgstr "ÇÁ·Î±×·¥ %d ¹öÀü %d¸¦ µî·ÏÇÒ ¼ö ¾ø½À´Ï´Ù\n"
 
+#: locale/programs/charmap.c:86
+#, c-format
+msgid "default character map file `%s' not found"
+msgstr ""
+
 #: sunrpc/rpc_parse.c:77
 msgid "definition keyword expected"
 msgstr "Á¤ÀÇ ¸í·É¾î°¡ ÀÖ¾î¾ß ÇÔ"
 
-#: catgets/gencat.c:367
+#: locale/programs/charset.c:87 locale/programs/charset.c:132
+#, c-format
+msgid "duplicate character name `%s'"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1140
+msgid "duplicate collating element definition"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1286
+#, c-format
+msgid "duplicate definition for character `%.*s'"
+msgstr ""
+
+#: db/makedb.c:295
+msgid "duplicate key"
+msgstr ""
+
+#: catgets/gencat.c:369
 msgid "duplicate set definition"
 msgstr ""
 
-#: time/zic.c:928
+#: time/zic.c:966
 #, c-format
 msgid "duplicate zone name %s (file \"%s\", line %d)"
 msgstr ""
 
-#: catgets/gencat.c:530
+#: catgets/gencat.c:532
 msgid "duplicated message identifier"
 msgstr "º¹»çµÈ ¸Þ½ÃÁö ½Äº°ÀÚ"
 
-#: catgets/gencat.c:503
+#: catgets/gencat.c:505
 msgid "duplicated message number"
 msgstr "º¹»çµÈ ¸Þ½ÃÁö ¹øÈ£"
 
+#: locale/programs/ld-collate.c:1695
+#, fuzzy
+msgid "empty weight name: line ignored"
+msgstr "À߸øµÈ ÇüŸ¦ °¡Áø ÇàÀº ¹«½ÃµÊ"
+
 #: sunrpc/svc_udp.c:344
 msgid "enablecache: cache already enabled"
 msgstr "enablecache: ij½¬°¡ ÀÌ¹Ì È°¼ºÈ­µÇ¾î ÀÖÀ½"
@@ -1129,6 +1918,22 @@ msgstr "enablecache: ij½¬ ÀڷḦ ÇÒ´çÇÒ ¼ö ¾ø½À´Ï´Ù"
 msgid "enablecache: could not allocate cache fifo"
 msgstr "enablecache: ij½¬ fifo¸¦ ÇÒ´çÇÒ ¼ö ¾ø½À´Ï´Ù"
 
+#: locale/programs/ld-collate.c:1418
+msgid "end point of ellipsis range is bigger then start"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1148
+msgid "error while inserting collation element into hash table"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1160
+msgid "error while inserting to hash table"
+msgstr ""
+
+#: locale/programs/locfile.c:465
+msgid "expect string argument for `copy'"
+msgstr ""
+
 #: sunrpc/rpc_util.c:300
 #, c-format
 msgid "expected '%s'"
@@ -1144,7 +1949,7 @@ msgstr "'%s'³ª '%s'°¡ ÀÖ¾î¾ß ÇÔ"
 msgid "expected '%s', '%s' or '%s'"
 msgstr "'%s', '%s' ¶Ç´Â '%s'°¡ ÀÖ¾î¾ß ÇÔ"
 
-#: time/zic.c:819
+#: time/zic.c:857
 msgid "expected continuation line not found"
 msgstr "¿¹»óÇß´ø ¿¬¼Ó ÇàÀ» ãÁö ¸øÇßÀ½"
 
@@ -1152,103 +1957,200 @@ msgstr "¿¹»óÇß´ø ¿¬¼Ó ÇàÀ» ãÁö ¸øÇßÀ½"
 msgid "expected type specifier"
 msgstr "Çü ½Äº°ÀÚ°¡ ÀÖ¾î¾ß ÇÔ"
 
+#: locale/programs/locfile.c:1010
+#, c-format
+msgid "failure while writing data for category `%s'"
+msgstr ""
+
+#: locale/programs/ld-monetary.c:154 locale/programs/ld-numeric.c:95
+#, c-format
+msgid "field `%s' in category `%s' not defined"
+msgstr ""
+
+#: locale/programs/ld-messages.c:81 locale/programs/ld-messages.c:102
+#, c-format
+msgid "field `%s' in category `%s' undefined"
+msgstr ""
+
+#: locale/programs/locfile.c:547
+msgid "from-value of `collating-element' must be a string"
+msgstr ""
+
+#: locale/programs/linereader.c:328
+msgid "garbage at end of character code specification"
+msgstr ""
+
+#: locale/programs/linereader.c:214
+msgid "garbage at end of digit"
+msgstr ""
+
 #: sunrpc/get_myaddr.c:73
 msgid "get_myaddress: ioctl (get interface configuration)"
 msgstr ""
 
-#: time/zic.c:1113
+#: time/zic.c:1150
 msgid "illegal CORRECTION field on Leap line"
 msgstr ""
 
-#: time/zic.c:1117
+#: time/zic.c:1154
 msgid "illegal Rolling/Stationary field on Leap line"
 msgstr ""
 
+#: locale/programs/ld-collate.c:1766
+#, fuzzy
+msgid "illegal character constant in string"
+msgstr "ÆÄÀÏ¿¡ À߸øµÈ ¹®ÀÚ°¡ ÀÖÀ½: "
+
 #: sunrpc/rpc_scan.c:281
 msgid "illegal character in file: "
 msgstr "ÆÄÀÏ¿¡ À߸øµÈ ¹®ÀÚ°¡ ÀÖÀ½: "
 
+#: locale/programs/ld-collate.c:1115
+#, fuzzy
+msgid "illegal collation element"
+msgstr "ÆÄÀÏ¿¡ À߸øµÈ ¹®ÀÚ°¡ ÀÖÀ½: "
+
+#: locale/programs/charmap.c:196
+msgid "illegal definition"
+msgstr "Á¤ÀÇ°¡ À߸øµÇ¾úÀ½"
+
+#: locale/programs/charmap.c:349
+msgid "illegal encoding given"
+msgstr "À߸øµÈ ºÎȣȭ°¡ ÁÖ¾îÁü"
+
+#: locale/programs/linereader.c:546
+msgid "illegal escape sequence at end of string"
+msgstr "¹®ÀÚ¿­ ³¡¿¡ À߸øµÈ À̽ºÄÉÀÌÇÁ ¿­ÀÌ ÀÖÀ½"
+
+#: locale/programs/charset.c:101
+msgid "illegal names for character range"
+msgstr "¹®ÀÚÀÇ ¹üÀ§·Î À߸øµÈ À̸§"
+
 #: sunrpc/rpc_parse.c:146
 msgid "illegal result type"
-msgstr "À߸øµÈ °á°ú ŸÀÔ"
+msgstr "°á°úÀÇ Á¾·ù°¡ À߸øµÇ¾úÀ½"
 
-#: catgets/gencat.c:340 gencat.c:417
-#, fuzzy
+#: catgets/gencat.c:342 catgets/gencat.c:419
 msgid "illegal set number"
-msgstr "À߸øµÈ Ž»ö"
+msgstr "ÁýÇÕ ¹øÈ£°¡ À߸øµÇ¾úÀ½"
+
+#: locale/programs/ld-ctype.c:806
+#, c-format
+msgid "implementation limit: no more than %d character classes allowed"
+msgstr ""
 
-#: time/zic.c:777
+#: locale/programs/ld-ctype.c:838
+#, c-format
+msgid "implementation limit: no more than %d character maps allowed"
+msgstr ""
+
+#: db/makedb.c:151
+msgid "incorrectly formatted file"
+msgstr "À߸øµÈ Çü½ÄÀ» °®Ãá ÆÄÀÏ"
+
+#: time/zic.c:815
 msgid "input line of unknown type"
 msgstr "¾Ë ¼ö ¾ø´Â ÇüÅÂÀÇ ÀÔ·ÂÇà"
 
-#: time/zic.c:984
+#: time/zic.c:1734
+msgid "internal error - addtype called with bad isdst"
+msgstr ""
+
+#: time/zic.c:1742
+msgid "internal error - addtype called with bad ttisgmt"
+msgstr ""
+
+#: time/zic.c:1738
+msgid "internal error - addtype called with bad ttisstd"
+msgstr ""
+
+#: locale/programs/ld-ctype.c:300
+#, c-format
+msgid "internal error in %s, line %u"
+msgstr "%s, Çà %u¿¡ ³»ºÎ ¿À·ù ¹ß»ý"
+
+#: time/zic.c:1022
 msgid "invalid GMT offset"
-msgstr "ºÎÀûÀýÇÑ GMT ¿É¼Â"
+msgstr "GMT ¿É¼ÂÀÌ ºÎÀûÀýÇÔ"
 
-#: time/zic.c:987
+#: time/zic.c:1025
 msgid "invalid abbreviation format"
-msgstr "ºÎÀûÀýÇÑ ¾à¾î Çü½Ä"
+msgstr "¾à¾î Çü½ÄÀÌ ºÎÀûÀýÇÔ"
 
-#: time/zic.c:1078 zic.c:1277 zic.c:1291
-#, fuzzy
+#: time/zic.c:1115 time/zic.c:1314 time/zic.c:1328
 msgid "invalid day of month"
-msgstr "ºÎÀûÀýÇÑ Àμö"
+msgstr "´ÞÀÇ ³¯Â¥ ¼ö°¡ ºÎÀûÀýÇÔ"
 
-#: time/zic.c:1236
-#, fuzzy
+#: time/zic.c:1273
 msgid "invalid ending year"
-msgstr "ºÎÀûÀýÇÑ ¹üÀ§ ³¡"
+msgstr "³¡³ª´Â ÇØ°¡ ºÎÀûÀýÇÔ"
 
-#: time/zic.c:1050
-#, fuzzy
+#: time/zic.c:1087
 msgid "invalid leaping year"
-msgstr "ºÎÀûÀýÇÑ ¹üÀ§ ³¡"
+msgstr "ºÎÀûÀýÇÑ À±³â"
 
-#: time/zic.c:1065 zic.c:1168
+#: time/zic.c:1102 time/zic.c:1205
 msgid "invalid month name"
-msgstr "ºÎÀûÀýÇÑ ´Þ À̸§"
+msgstr "´Þ À̸§ÀÌ ºÎÀûÀýÇÔ"
 
-#: time/zic.c:883
-#, fuzzy
+#: time/zic.c:921
 msgid "invalid saved time"
-msgstr "ºÎÀûÀýÇÑ ¼­¹ö °ËÁõ±â"
+msgstr "Àý¾à ½Ã°£ÀÌ ºÎÀûÀýÇÔ"
 
-#: time/zic.c:1216
-#, fuzzy
+#: time/zic.c:1253
 msgid "invalid starting year"
-msgstr "ºÎÀûÀýÇÑ ¹üÀ§ ³¡"
+msgstr "½ÃÀÛÇÏ´Â ÇØ°¡ ºÎÀûÀýÇÔ"
 
-#: time/zic.c:1094 zic.c:1196
-#, fuzzy
+#: time/zic.c:1131 time/zic.c:1233
 msgid "invalid time of day"
-msgstr "\\{\\}¿¡ ºÎÀûÀýÇÑ ³»¿ë¹°ÀÌ ÀÖÀ½"
+msgstr ""
 
-#: time/zic.c:1282
+#: time/zic.c:1319
 msgid "invalid weekday name"
-msgstr "ºÎÀûÀýÇÑ ÁÖ À̸§"
+msgstr "ºÎÀûÀýÇÑ ¿äÀÏ À̸§"
 
-#: time/zic.c:757
-#, fuzzy
+#: locale/programs/ld-collate.c:1411
+msgid "line after ellipsis must contain character definition"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1390
+msgid "line before ellipsis does not contain definition for character constant"
+msgstr ""
+
+#: time/zic.c:795
 msgid "line too long"
-msgstr "ÆÄÀÏ À̸§ÀÌ ³Ê¹« ±é´Ï´Ù"
+msgstr "ÇàÀÌ ³Ê¹« ±é´Ï´Ù"
 
-#: catgets/gencat.c:598
+#: locale/programs/localedef.c:275
+#, c-format
+msgid "locale file `%s', used in `copy' statement, not found"
+msgstr ""
+
+#: catgets/gencat.c:600
 msgid "malformed line ignored"
 msgstr "À߸øµÈ ÇüŸ¦ °¡Áø ÇàÀº ¹«½ÃµÊ"
 
-#: malloc/mcheck.c:168
+#: malloc/mcheck.c:183
 msgid "memory clobbered before allocated block"
 msgstr ""
 
-#: malloc/mcheck.c:171
+#: malloc/mcheck.c:186
 msgid "memory clobbered past end of allocated block"
 msgstr ""
 
-#: malloc/mcheck.c:165
+#: 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
+#, fuzzy
+msgid "memory exhausted"
+msgstr "¸Þ¸ð¸®°¡ ¹Ù´Ú³²"
+
+#: malloc/mcheck.c:180
 msgid "memory is consistent, library is buggy"
 msgstr "¸Þ¸ð¸®´Â °ß°íÇÏÁö¸¸, ¶óÀ̺귯¸®´Â ¹ö±×°¡ ¸¹½À´Ï´Ù"
 
-#: time/zic.c:878
+#: time/zic.c:916
 msgid "nameless rule"
 msgstr "À̸§¾ø´Â ±ÔÄ¢"
 
@@ -1257,40 +2159,81 @@ msgstr "À̸§¾ø´Â ±ÔÄ¢"
 msgid "never registered prog %d\n"
 msgstr "°áÄÚ µî·ÏµÇÁö ¾ÊÀº ÇÁ·Î±×·¥ %d\n"
 
-#: rpc_parse.c:313 sunrpc/rpc_parse.c:305
+#: sunrpc/rpc_parse.c:305 sunrpc/rpc_parse.c:313
 msgid "no array-of-pointer declarations -- use typedef"
 msgstr "Æ÷ÀÎÅÍ ¹è¿­ ¼±¾ðÀÌ ¾ø½À´Ï´Ù -- typedefÀ» »ç¿ëÇϼ¼¿ä"
 
-#: time/zic.c:1955
+#: 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 ""
+
+#: time/zic.c:2060
 msgid "no day in month matches rule"
 msgstr "±ÔÄ¢¿¡ ºÎÇյǴ ³¯ÀÌ ´Þ ¾È¿¡ ¾øÀ½"
 
-#: sunrpc/portmap.c:452
+#: locale/programs/ld-collate.c:259
+msgid "no definition of `UNDEFINED'"
+msgstr ""
+
+#: locale/programs/locfile.c:479
+msgid "no other keyword shall be specified when `copy' is used"
+msgstr ""
+
+#: locale/programs/localedef.c:334
+msgid "no output file produced because warning were issued"
+msgstr ""
+
+#: locale/programs/charmap.c:315 locale/programs/charmap.c:466
+#: locale/programs/charmap.c:545
+msgid "no symbolic name given"
+msgstr ""
+
+#: 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 ""
+
+#: locale/programs/ld-collate.c:244
+#, c-format
+msgid "no weight defined for symbol `%s'"
+msgstr ""
+
+#: locale/programs/charmap.c:430
+msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
+msgstr ""
+
+#: sunrpc/portmap.c:451
 msgid "portmap CALLIT: cannot fork.\n"
 msgstr ""
 
-#: portmap.c:117 sunrpc/portmap.c:95
+#: sunrpc/portmap.c:94 sunrpc/portmap.c:116
 msgid "portmap cannot bind"
 msgstr ""
 
-#: portmap.c:113 sunrpc/portmap.c:87
+#: sunrpc/portmap.c:86 sunrpc/portmap.c:112
 msgid "portmap cannot create socket"
 msgstr "Æ÷Æ®¸ÊÀÌ ¼ÒÄÏÀ» ¸¸µé ¼ö ¾ø½À´Ï´Ù"
 
-#: rpc_scan.c:464 sunrpc/rpc_scan.c:456
+#: sunrpc/rpc_scan.c:456 sunrpc/rpc_scan.c:464
 msgid "preprocessor error"
 msgstr "Àü󸮱⠿À·ù"
 
-#: rpcinfo.c:350 sunrpc/rpcinfo.c:222
-#, fuzzy, c-format
+#: db/makedb.c:311
+#, c-format
+msgid "problems while reading `%s'"
+msgstr ""
+
+#: sunrpc/rpcinfo.c:222 sunrpc/rpcinfo.c:350
+#, c-format
 msgid "program %lu is not available\n"
-msgstr "RPC ÇÁ·Î±×·¥ »ç¿ë ºÒ°¡´É"
+msgstr "ÇÁ·Î±×·¥ %lu´Â »ç¿ë ºÒ°¡´ÉÇÕ´Ï´Ù\n"
 
-#: rpcinfo.c:282 rpcinfo.c:371 rpcinfo.c:408 rpcinfo.c:429
-#: sunrpc/rpcinfo.c:245 sunrpc/rpcinfo.c:462
+#: sunrpc/rpcinfo.c:245 sunrpc/rpcinfo.c:282 sunrpc/rpcinfo.c:371
+#: sunrpc/rpcinfo.c:408 sunrpc/rpcinfo.c:429 sunrpc/rpcinfo.c:462
 #, fuzzy, c-format
 msgid "program %lu version %lu is not available\n"
-msgstr "RPC ÇÁ·Î±×·¥ »ç¿ë ºÒ°¡´É"
+msgstr "ÇÁ·Î±×·¥ %lu ¹öÀü %lu´Â »ç¿ë ºÒ°¡´ÉÇÕ´Ï´Ù\n"
 
 #: sunrpc/rpcinfo.c:466
 #, c-format
@@ -1315,7 +2258,7 @@ msgstr "rcmd: ¾²±â (Ç¥ÁØ¿À·ù ¼³Á¤): %s\n"
 msgid "registerrpc: out of memory\n"
 msgstr "registerrpc: ¸Þ¸ð¸® ºÎÁ·\n"
 
-#: time/zic.c:1690
+#: time/zic.c:1795
 msgid "repeated leap second moment"
 msgstr ""
 
@@ -1330,7 +2273,7 @@ msgid "rpcinfo: %s is unknown service\n"
 msgstr "rpcinfo: %s´Â ¾Ë ¼ö ¾ø´Â ¼­ºñ½ºÀÔ´Ï´Ù\n"
 
 #: sunrpc/rpcinfo.c:600
-#, fuzzy, c-format
+#, c-format
 msgid "rpcinfo: Could not delete registration for prog %s version %s\n"
 msgstr "rpcinfo: ÇÁ·Î±×·¥ %s ¹öÀü %sÀÇ µî·ÏÀ» Áö¿ï ¼ö ¾ø½À´Ï´Ù\n"
 
@@ -1341,16 +2284,20 @@ msgstr "rpcinfo: ºê·Îµåij½ºÆ® ½ÇÆÐÇÔ: %s\n"
 
 #: sunrpc/rpcinfo.c:505
 msgid "rpcinfo: can't contact portmapper"
-msgstr ""
+msgstr "rpcinfo: Æ÷Æ®¸ÅÆÛ¿¡ ¿¬°áÇÒ ¼ö ¾ø½À´Ï´Ù"
 
 #: sunrpc/rpcinfo.c:510
 msgid "rpcinfo: can't contact portmapper: "
-msgstr ""
+msgstr "rpcinfo: Æ÷Æ®¸ÅÆÛ¿¡ ¿¬°áÇÒ ¼ö ¾ø½À´Ï´Ù: "
 
-#: sunrpc/portmap.c:138
+#: sunrpc/portmap.c:137
 msgid "run_svc returned unexpectedly\n"
 msgstr ""
 
+#: time/zic.c:709 time/zic.c:711
+msgid "same rule name in multiple files"
+msgstr ""
+
 #: inet/rcmd.c:158
 msgid "select: protocol failure in circuit setup\n"
 msgstr "select: ȸ·Î ¼³Á¤Áß ±Ô¾àÀÌ ºÒÀÌÇàµÊ\n"
@@ -1359,19 +2306,28 @@ msgstr "select: ȸ·Î ¼³Á¤Áß ±Ô¾àÀÌ ºÒÀÌÇàµÊ\n"
 msgid "socket: protocol failure in circuit setup.\n"
 msgstr "socket: ȸ·Î ¼³Á¤Áß ±Ô¾àÀÌ ºÒÀÌÇàµÊ.\n"
 
-#: time/zic.c:742
+#: locale/programs/locfile.c:600
+msgid "sorting order `forward' and `backward' are mutually exclusive"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1567 locale/programs/ld-collate.c:1613
+msgid ""
+"specification of sorting weight for collation symbol does not make sense"
+msgstr ""
+
+#: time/zic.c:780
 msgid "standard input"
 msgstr "Ç¥ÁØ ÀÔ·Â"
 
-#: time/zdump.c:259
+#: time/zdump.c:260
 msgid "standard output"
 msgstr "Ç¥ÁØ Ãâ·Â"
 
-#: time/zic.c:1240
+#: time/zic.c:1277
 msgid "starting year greater than ending year"
 msgstr "½ÃÀÛÇÏ´Â ÇØ°¡ ³¡³ª´Â Çغ¸´Ù Å®´Ï´Ù"
 
-#: sunrpc/svc_tcp.c:199 svc_tcp.c:204
+#: sunrpc/svc_tcp.c:199 sunrpc/svc_tcp.c:204
 msgid "svc_tcp: makefd_xprt: out of memory\n"
 msgstr "svc_tcp: makefc_xprt: ¸Þ¸ð¸® ºÎÁ·\n"
 
@@ -1383,7 +2339,7 @@ msgstr ""
 msgid "svctcp_.c - udp socket creation problem"
 msgstr "svctcp_.c - udp ¼ÒÄÏ »ý¼º ¹®Á¦"
 
-#: sunrpc/svc_tcp.c:154 svc_tcp.c:161
+#: sunrpc/svc_tcp.c:154 sunrpc/svc_tcp.c:161
 msgid "svctcp_create: out of memory\n"
 msgstr "svctcp_create: ¸Þ¸ð¸® ºÎÁ·\n"
 
@@ -1395,83 +2351,285 @@ msgstr "svcudp_create - getsockname ºÒ°¡´É"
 msgid "svcudp_create: socket creation problem"
 msgstr "svcudp_create: ¼ÒÄÏ »ý¼º ¹®Á¦"
 
-#: catgets/gencat.c:369 gencat.c:505 gencat.c:532
+#: locale/programs/ld-collate.c:1190
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates element "
+"definition"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1063
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates other element "
+"definition"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1199
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates other symbol "
+"definition"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1072
+#, 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
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates symbolic name "
+"in charset"
+msgstr ""
+
+#: locale/programs/charmap.c:314 locale/programs/charmap.c:348
+#: locale/programs/charmap.c:378 locale/programs/charmap.c:465
+#: locale/programs/charmap.c:511 locale/programs/charmap.c:544
+#: locale/programs/charmap.c:576
+#, c-format
+msgid "syntax error in %s definition: %s"
+msgstr ""
+
+#: locale/programs/locfile.c:620
+msgid "syntax error in `order_start' directive"
+msgstr "`order_start' Áö½ÃÀÚ¿¡ ¹®¹ý ¿À·ù ÀÖÀ½"
+
+#: locale/programs/locfile.c:362
+msgid "syntax error in character class definition"
+msgstr "¹®ÀÚ Å¬·¡½º Á¤ÀÇ¿¡ ¹®¹ý ¿À·ù ÀÖÀ½"
+
+#: locale/programs/locfile.c:420
+msgid "syntax error in character conversion definition"
+msgstr "¹®ÀÚ º¯È¯ Á¤ÀÇ¿¡ ¹®¹ý ¿À·ù ÀÖÀ½"
+
+#: locale/programs/locfile.c:662
+msgid "syntax error in collating order definition"
+msgstr ""
+
+#: locale/programs/locfile.c:512
+msgid "syntax error in collation definition"
+msgstr ""
+
+#: locale/programs/locfile.c:335
+msgid "syntax error in definition of LC_CTYPE category"
+msgstr ""
+
+#: locale/programs/locfile.c:278
+msgid "syntax error in definition of new character class"
+msgstr ""
+
+#: locale/programs/locfile.c:288
+msgid "syntax error in definition of new character map"
+msgstr ""
+
+#: locale/programs/locfile.c:873
+msgid "syntax error in message locale definition"
+msgstr ""
+
+#: locale/programs/locfile.c:784
+msgid "syntax error in monetary locale definition"
+msgstr ""
+
+#: locale/programs/locfile.c:811
+msgid "syntax error in numeric locale definition"
+msgstr ""
+
+#: locale/programs/locfile.c:722
+msgid "syntax error in order specification"
+msgstr ""
+
+#: locale/programs/charmap.c:195 locale/programs/charmap.c:211
+#, c-format
+msgid "syntax error in prolog: %s"
+msgstr ""
+
+#: locale/programs/locfile.c:849
+msgid "syntax error in time locale definition"
+msgstr ""
+
+#: locale/programs/locfile.c:255
+msgid "syntax error: not inside a locale definition section"
+msgstr ""
+
+#: catgets/gencat.c:371 catgets/gencat.c:507 catgets/gencat.c:534
 msgid "this is the first definition"
 msgstr "ÀÌ°ÍÀº ù¹ø° Á¤ÀÇÀÔ´Ï´Ù"
 
-#: time/zic.c:1083
+#: time/zic.c:1120
 msgid "time before zero"
 msgstr ""
 
-#: time/zic.c:1091 zic.c:1855 zic.c:1874
+#: time/zic.c:1128 time/zic.c:1960 time/zic.c:1979
 msgid "time overflow"
 msgstr "½Ã°£ Èê·¯³Ñħ"
 
+#: locale/programs/charset.c:44
+msgid "too few bytes in character encoding"
+msgstr ""
+
+#: locale/programs/charset.c:46
+msgid "too many bytes in character encoding"
+msgstr ""
+
+#: locale/programs/locales.h:72
+#, fuzzy
+msgid "too many character classes defined"
+msgstr "ºÎÀûÀýÇÑ ¹®ÀÚ Å¬·¡½º À̸§"
+
 #: sunrpc/rpc_util.c:285
 msgid "too many files!\n"
 msgstr "ÆÄÀÏÀÌ ³Ê¹« ¸¹½À´Ï´Ù!\n"
 
-#: time/zic.c:1684
-#, fuzzy
+#: time/zic.c:1789
 msgid "too many leap seconds"
-msgstr ""
+msgstr "À±ÃÊ°¡ ³Ê¹« ¸¹½À´Ï´Ù"
 
-#: time/zic.c:1656
-#, fuzzy
+#: time/zic.c:1761
 msgid "too many local time types"
-msgstr "ÇÁ·Î¼¼½º°¡ ³Ê¹« ¸¹À½"
+msgstr "Áö¿ª½ÃÀÇ Á¾·ù°¡ ³Ê¹« ¸¹À½"
 
-#: time/zic.c:1622
-#, fuzzy
+#: time/zic.c:1715
 msgid "too many transitions?!"
-msgstr "ÆÄÀÏÀÌ ³Ê¹« ¸¹½À´Ï´Ù?!"
+msgstr ""
+
+#: locale/programs/ld-collate.c:1622
+msgid "too many weights"
+msgstr ""
 
-#: time/zic.c:1978
+#: time/zic.c:2083
 msgid "too many, or too long, time zone abbreviations"
 msgstr ""
 
+#: locale/programs/linereader.h:146
+msgid "trailing garbage at end of line"
+msgstr ""
+
 #: sunrpc/svc_simple.c:132
 #, c-format
 msgid "trouble replying to prog %d\n"
 msgstr "ÇÁ·Î±×·¥ %d¿¡ ÀÀ´äÇÏ´Â µ¥ ¹®Á¦°¡ ÀÖÀ½\n"
 
-#: time/zic.c:1247
+#: locale/programs/ld-collate.c:1382
+msgid "two lines in a row containing `...' are not allowed"
+msgstr ""
+
+#: time/zic.c:1284
 msgid "typed single year"
 msgstr ""
 
-#: catgets/gencat.c:466
+#: locale/programs/charmap.c:617 locale/programs/charmap.c:628
+#, c-format
+msgid "unknown character `%s'"
+msgstr "¾Ë ¼ö ¾ø´Â ¹®ÀÚ `%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
+#, c-format
+msgid "unknown character in field `%s' of category `%s'"
+msgstr ""
+
+#: locale/programs/locfile.c:585
+msgid "unknown collation directive"
+msgstr ""
+
+#: catgets/gencat.c:468
 #, c-format
 msgid "unknown directive `%s': line ignored"
 msgstr "¾Ë ¼ö ¾ø´Â Áö½ÃÀÚ `%s': Çà ¹«½ÃµÊ"
 
-#: catgets/gencat.c:445
-#, fuzzy, c-format
+#: catgets/gencat.c:447
+#, c-format
 msgid "unknown set `%s'"
 msgstr "¾Ë ¼ö ¾ø´Â ¼³Á¤ `%s'"
 
 msgid "unknown signal"
 msgstr "¾Ë ¼ö ¾ø´Â ½ÅÈ£"
 
-#: time/zic.c:714
+#: locale/programs/ld-collate.c:1366 locale/programs/ld-collate.c:1557
+#: locale/programs/ld-collate.c:1731
+#, c-format
+msgid "unknown symbol `%.*s': line ignored"
+msgstr "¾Ë ¼ö ¾ø´Â ±âÈ£ `%.*s': Çà ¹«½ÃµÊ"
+
+#: time/zic.c:752
 msgid "unruly zone"
 msgstr ""
 
-#: catgets/gencat.c:950
-#, fuzzy
+#: catgets/gencat.c:952
 msgid "unterminated message"
-msgstr "Á¾·áµÇÁö ¾ÊÀº ¹®ÀÚ¿­ »ó¼ö"
+msgstr "Á¾·áµÇÁö ¾ÊÀº ¸Þ½ÃÁö"
+
+#: locale/programs/linereader.c:515 locale/programs/linereader.c:550
+msgid "unterminated string"
+msgstr "Á¾·áµÇÁö ¾ÊÀº ¹®ÀÚ¿­"
 
 #: sunrpc/rpc_scan.c:319
 msgid "unterminated string constant"
 msgstr "Á¾·áµÇÁö ¾ÊÀº ¹®ÀÚ¿­ »ó¼ö"
 
+#: locale/programs/linereader.c:385
+msgid "unterminated symbolic name"
+msgstr "Á¾·áµÇÁö ¾ÊÀº ±âÈ£ À̸§"
+
+#: locale/programs/ld-collate.c:1684
+msgid "unterminated weight name"
+msgstr ""
+
+#: locale/programs/charset.c:119
+msgid "upper limit in range is not smaller then lower limit"
+msgstr ""
+
 #: sunrpc/rpc_main.c:78
 #, c-format
 msgid "usage: %s infile\n"
 msgstr "»ç¿ë¹ý: %s ÀÔ·ÂÆÄÀÏ\n"
 
-#: time/zic.c:1921
+#: time/zic.c:2026
 msgid "use of 2/29 in non leap-year"
+msgstr "Æò³â¿¡ 2¿ù 29ÀÏÀ» »ç¿ëÇÔ"
+
+#: locale/programs/charmap.c:438 locale/programs/charmap.c:492
+#, c-format
+msgid "value for %s must be an integer"
+msgstr "%s¿¡ ´ëÇÑ °ªÀº Á¤¼ö¿©¾ß ÇÕ´Ï´Ù"
+
+#: locale/programs/charmap.c:233
+#, c-format
+msgid "value for <%s> must lie between 1 and 4"
+msgstr "<%s>¿¡ ´ëÇÑ °ªÀº 1°ú 4 »çÀÌ¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù"
+
+#: locale/programs/ld-monetary.c:148 locale/programs/ld-numeric.c:89
+#, c-format
+msgid "value for field `%s' in category `%s' must not be the empty string"
+msgstr ""
+
+#: locale/programs/charmap.c:245
+msgid "value of <mb_cur_max> must be greater than the value of <mb_cur_min>"
+msgstr "<mb_cur_max>ÀÇ °ªÀº <mb_cur_min>ÀÇ °ªº¸´Ù Ä¿¾ß ÇÕ´Ï´Ù"
+
+#: locale/programs/ld-monetary.c:138
+msgid ""
+"value of field `int_curr_symbol' in category `LC_MONETARY' does not "
+"correspond to a valid name in ISO 4217"
+msgstr ""
+
+#: locale/programs/ld-monetary.c:133
+msgid ""
+"value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length"
+msgstr ""
+
+#: locale/programs/ld-monetary.c:370 locale/programs/ld-numeric.c:199
+#, c-format
+msgid "values for field `%s' in category `%s' must be smaller than 127"
+msgstr ""
+
+#: locale/programs/ld-monetary.c:366
+#, c-format
+msgid "values for field `%s' in category `%s' must not be zero"
 msgstr ""
 
 #: sunrpc/rpc_parse.c:330
@@ -1484,28 +2642,41 @@ msgstr "void´Â ¿ÀÁ÷ °ø¿ëü¿Í ÇÁ·Î±×·¥ Á¤ÀÇ ³»¿¡¼­¸¸ Çã¿ëµË´Ï´Ù"
 
 #: login/setutent_r.c:47
 msgid "while opening UTMP file"
-msgstr ""
+msgstr "UTMP ÆÄÀÏÀ» ¿©´Â µ¿¾È"
 
-#: catgets/gencat.c:977
+#: catgets/gencat.c:979
 msgid "while opening old catalog file"
 msgstr "¿À·¡µÈ ¸ñ·Ï ÆÄÀÏÀ» ¿©´Â µ¿¾È"
 
-#: time/zic.c:1041
+#: db/makedb.c:338
+msgid "while reading database"
+msgstr "µ¥ÀÌÅͺ£À̽º¸¦ Àд µ¿¾È"
+
+#: db/makedb.c:300
+msgid "while writing data base file"
+msgstr "µ¥ÀÌÅÍ º£À̽º ÆÄÀÏÀ» ¾²´Â µ¿¾È"
+
+#: db/makedb.c:130
+msgid "wrong number of arguments"
+msgstr "ÀμöÀÇ °³¼ö°¡ À߸øµÇ¾úÀ½"
+
+#: time/zic.c:1078
 msgid "wrong number of fields on Leap line"
 msgstr ""
 
-#: time/zic.c:1132
+#: time/zic.c:1169
 msgid "wrong number of fields on Link line"
 msgstr ""
 
-#: time/zic.c:874
+#: time/zic.c:912
 msgid "wrong number of fields on Rule line"
 msgstr ""
 
-#: time/zic.c:944
+#: time/zic.c:982
 msgid "wrong number of fields on Zone continuation line"
 msgstr ""
 
-#: time/zic.c:902
+#: time/zic.c:940
 msgid "wrong number of fields on Zone line"
 msgstr ""
+
diff --git a/posix/getopt.c b/posix/getopt.c
index 4f2d068271..7bd7e7181c 100644
--- a/posix/getopt.c
+++ b/posix/getopt.c
@@ -545,7 +545,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
       const struct option *pfound = NULL;
       int exact = 0;
       int ambig = 0;
-      int indfound;
+      int indfound = -1;
       int option_index;
 
       for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
@@ -556,7 +556,8 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
       for (p = longopts, option_index = 0; p->name; p++, option_index++)
 	if (!strncmp (p->name, nextchar, nameend - nextchar))
 	  {
-	    if (nameend - nextchar == strlen (p->name))
+	    if ((unsigned int) (nameend - nextchar)
+		== (unsigned int) strlen (p->name))
 	      {
 		/* Exact match found.  */
 		pfound = p;
diff --git a/posix/regex.c b/posix/regex.c
index fdfd102cdb..c277234684 100644
--- a/posix/regex.c
+++ b/posix/regex.c
@@ -1073,7 +1073,7 @@ typedef struct
    REGEX_REALLOCATE_STACK requires `destination' be declared.   */
 
 #define DOUBLE_FAIL_STACK(fail_stack)					\
-  ((fail_stack).size > re_max_failures * MAX_FAILURE_ITEMS		\
+  ((fail_stack).size > (unsigned) (re_max_failures * MAX_FAILURE_ITEMS)	\
    ? 0									\
    : ((fail_stack).stack = (fail_stack_elt_t *)				\
         REGEX_REALLOCATE_STACK ((fail_stack).stack, 			\
@@ -1430,7 +1430,7 @@ static reg_errcode_t compile_range ();
 
 /* Make sure we have at least N more bytes of space in buffer.  */
 #define GET_BUFFER_SPACE(n)						\
-    while (b - bufp->buffer + (n) > bufp->allocated)			\
+    while ((unsigned long) (b - bufp->buffer + (n)) > bufp->allocated)	\
       EXTEND_BUFFER ()
 
 /* Make sure we have one more byte of buffer space and then add C to it.  */
@@ -2859,7 +2859,7 @@ compile_range (p_ptr, pend, translate, syntax, b)
   unsigned this_char;
 
   const char *p = *p_ptr;
-  int range_start, range_end;
+  unsigned int range_start, range_end;
 
   if (p == pend)
     return REG_ERANGE;
@@ -3718,7 +3718,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
   /* Initialize subexpression text positions to -1 to mark ones that no
      start_memory/stop_memory has been seen for. Also initialize the
      register information struct.  */
-  for (mcnt = 1; mcnt < num_regs; mcnt++)
+  for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++)
     {
       regstart[mcnt] = regend[mcnt]
         = old_regstart[mcnt] = old_regend[mcnt] = REG_UNSET_VALUE;
@@ -3818,7 +3818,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 
                       DEBUG_PRINT1 ("\nSAVING match as best so far.\n");
 
-                      for (mcnt = 1; mcnt < num_regs; mcnt++)
+                      for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++)
                         {
                           best_regstart[mcnt] = regstart[mcnt];
                           best_regend[mcnt] = regend[mcnt];
@@ -3844,7 +3844,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                   dend = ((d >= string1 && d <= end1)
 		           ? end_match_1 : end_match_2);
 
-		  for (mcnt = 1; mcnt < num_regs; mcnt++)
+		  for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++)
 		    {
 		      regstart[mcnt] = best_regstart[mcnt];
 		      regend[mcnt] = best_regend[mcnt];
@@ -3909,7 +3909,8 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 
               /* Go through the first `min (num_regs, regs->num_regs)'
                  registers, since that is all we initialized.  */
-	      for (mcnt = 1; mcnt < MIN (num_regs, regs->num_regs); mcnt++)
+	      for (mcnt = 1; (unsigned) mcnt < MIN (num_regs, regs->num_regs);
+		   mcnt++)
 		{
                   if (REG_UNSET (regstart[mcnt]) || REG_UNSET (regend[mcnt]))
                     regs->start[mcnt] = regs->end[mcnt] = -1;
@@ -3927,7 +3928,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                  we (re)allocated the registers, this is the case,
                  because we always allocate enough to have at least one
                  -1 at the end.  */
-              for (mcnt = num_regs; mcnt < regs->num_regs; mcnt++)
+              for (mcnt = num_regs; (unsigned) mcnt < regs->num_regs; mcnt++)
                 regs->start[mcnt] = regs->end[mcnt] = -1;
 	    } /* regs && !bufp->no_sub */
 
@@ -4199,7 +4200,8 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                       EVER_MATCHED_SOMETHING (reg_info[*p]) = 0;
 
 		      /* Restore this and inner groups' (if any) registers.  */
-                      for (r = *p; r < *p + *(p + 1); r++)
+                      for (r = *p; r < (unsigned) *p + (unsigned) *(p + 1);
+			   r++)
                         {
                           regstart[r] = old_regstart[r];
 
diff --git a/posix/testfnm.c b/posix/testfnm.c
index 648dbd3961..3b3aa9730f 100644
--- a/posix/testfnm.c
+++ b/posix/testfnm.c
@@ -2,9 +2,7 @@
 #include "fnmatch.h"
 
 int
-main (c, v)
-     int c;
-     char **v;
+main (int c, char *v[])
 {
   printf ("%d\n", fnmatch (v[1], v[2], FNM_PERIOD));
   printf ("%d\n", fnmatch (v[1], v[2], FNM_CASEFOLD|FNM_PERIOD));
diff --git a/shlib-versions b/shlib-versions
index d592ab8ad8..b6d8201628 100644
--- a/shlib-versions
+++ b/shlib-versions
@@ -47,3 +47,6 @@ alpha-*-linux*		libc=6
 
 # We use libdb.so.2 for the interface in version 1.85 of the Berkeley DB code.
 *-*-*			libdb=2
+
+# This file defines the shared library version numbers we will install.
+*-*-*			libcrypt=1
diff --git a/stdio-common/xbug.c b/stdio-common/xbug.c
index ec648f5566..fc60c66be9 100644
--- a/stdio-common/xbug.c
+++ b/stdio-common/xbug.c
@@ -1,10 +1,19 @@
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
 
 typedef struct _Buffer {
   char *buff;
   int  room, used;
 } Buffer;
 
+#if __STDC__ - 0
+void InitBuffer (Buffer *b);
+void AppendToBuffer (register Buffer *b, const char *str, register int len);
+void ReadFile (register Buffer *buffer, FILE *input);
+#endif
+
 #define INIT_BUFFER_SIZE 10000
 
 void InitBuffer(b)
@@ -17,7 +26,7 @@ void InitBuffer(b)
 
 void AppendToBuffer(b, str, len)
      register Buffer *b;
-     char *str;
+     const char *str;
      register int len;
 {
   while (b->used + len > b->room) {
@@ -42,20 +51,21 @@ void ReadFile(buffer, input)
   AppendToBuffer(buffer, "", 1);
 }
 
-main() 
+int
+main(int argc, char *argv[])
 {
   char * filename = "xbug.c";
   FILE *input;
   Buffer buffer;
-  
+
   InitBuffer(&buffer);
-    
+
   if (!freopen (filename, "r", stdin))
     fprintf(stderr, "cannot open file\n");
-  
+
   if (!(input = popen("/bin/cat", "r")))
     fprintf(stderr, "cannot run \n");
-  
+
   ReadFile(&buffer, input);
   pclose(input);
 
diff --git a/sysdeps/alpha/Makefile b/sysdeps/alpha/Makefile
index 6aaedea6fb..45babb6c1c 100644
--- a/sysdeps/alpha/Makefile
+++ b/sysdeps/alpha/Makefile
@@ -21,17 +21,21 @@ sysdep_routines += _mcount
 endif
 
 ifeq ($(subdir),setjmp)
-sysdep_routines := $(sysdep_routines) setjmp_aux
+sysdep_routines += setjmp_aux
 endif
 
 ifeq ($(subdir),gnulib)
-routines = $(divrem)
-endif	# gnulib
+sysdep_routines += $(divrem)
+endif
+
+ifeq ($(subdir),string)
+sysdep_routines += stxcpy stxncpy
+endif
 
 ifeq ($(subdir),elf)
-# The ld.so code cannot use literals until it self-relocates.
+# The ld.so startup code cannot use literals until it self-relocates.
  ifeq ($(elf),yes)
-CFLAGS-rtld.c = -mbuild-constants
+  CFLAGS-rtld.c = -mbuild-constants
  endif
 # The rest of ld.so shouldn't use FP regs for block moves so
 # that the lazy link trampoline doesn't have to save them.
diff --git a/sysdeps/alpha/bzero.S b/sysdeps/alpha/bzero.S
new file mode 100644
index 0000000000..fffa53d7f1
--- /dev/null
+++ b/sysdeps/alpha/bzero.S
@@ -0,0 +1,113 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+   Contributed by Richard Henderson (rth@tamu.edu)
+
+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.  */
+
+/* Fill a block of memory with zeros.  Optimized for the Alpha architecture:
+
+   - memory accessed as aligned quadwords only
+   - destination memory not read unless needed for good cache behaviour
+   - basic blocks arranged to optimize branch prediction for full-quadword
+     aligned memory blocks.
+   - partial head and tail quadwords constructed with byte-mask instructions
+
+   This is generally scheduled for the EV5 (got to look out for my own
+   interests :-), but with EV4 needs in mind.  There *should* be no more
+   stalls for the EV4 than there are for the EV5.
+*/
+
+
+#include <sysdep.h>
+
+	.set noat
+	.set noreorder
+
+	.text
+
+/* There is a problem with either gdb (as of 4.16) or gas (as of 2.7) that
+   doesn't like putting the entry point for a procedure somewhere in the
+   middle of the procedure descriptor.  Work around this by putting the main
+   loop in its own procedure descriptor.  */
+
+	/* On entry to this basic block:
+	   t3 == loop counter
+	   t4 == bytes in partial final word
+	   a0 == possibly misaligned destination pointer  */
+
+	.ent bzero_loop
+	.align 3
+bzero_loop:
+	.frame sp, 0, ra, 0
+	.prologue 0
+
+	beq	t3, $tail	#
+	blbc	t3, 0f		# skip single store if count even
+
+	stq_u	zero, 0(a0)	# e0    : store one word
+	subq	t3, 1, t3	# .. e1 :
+	addq	a0, 8, a0	# e0    :
+	beq	t3, $tail	# .. e1 :
+
+0:	stq_u	zero, 0(a0)	# e0    : store two words
+	subq	t3, 2, t3	# .. e1 :
+	stq_u	zero, 8(a0)	# e0    :
+	addq	a0, 16, a0	# .. e1 :
+	bne	t3, 0b		# e1    :
+
+$tail:	bne	t4, 1f		# is there a tail to do?
+	ret			# no
+
+1:	ldq_u	t0, 0(a0)	# yes, load original data
+	mskqh	t0, t4, t0	#
+	stq_u	t0, 0(a0)	#
+	ret			#
+
+	.end bzero_loop
+
+ENTRY(bzero)
+	.prologue 0
+
+	mov	a0, v0		# e0    : move return value in place
+	beq	a1, $done	# .. e1 : early exit for zero-length store
+	and	a0, 7, t1	# e0    :
+	addq	a1, t1, a1	# e1    : add dest misalignment to count
+	srl	a1, 3, t3	# e0    : loop = count >> 3
+	and	a1, 7, t4	# .. e1 : find number of bytes in tail
+	unop			#       :
+	beq	t1, bzero_loop	# e1    : aligned head, jump right in
+
+	ldq_u	t0, 0(a0)	# e0    : load original data to mask into
+	cmpult	a1, 8, t2	# .. e1 : is this a sub-word set?
+	bne	t2, $oneq	# e1    :
+
+	mskql	t0, a0, t0	# e0    : we span words.  finish this partial
+	subq	t3, 1, t3	# e0    :
+	addq	a0, 8, a0	# .. e1 :
+	stq_u	t0, -8(a0)	# e0    :
+	br 	bzero_loop	# .. e1 :
+
+	.align 3
+$oneq:
+	mskql	t0, a0, t2	# e0    :
+	mskqh	t0, a1, t3	# e0    :
+	or	t2, t3, t0	# e1    :
+	stq_u	t0, 0(a0)	# e0    :
+
+$done:	ret
+
+	END(bzero)
diff --git a/sysdeps/alpha/memset.S b/sysdeps/alpha/memset.S
new file mode 100644
index 0000000000..55271f00ea
--- /dev/null
+++ b/sysdeps/alpha/memset.S
@@ -0,0 +1,130 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+   Contributed by Richard Henderson (rth@tamu.edu)
+
+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.  */
+
+/* Fill a block of memory with a character.  Optimized for the Alpha
+   architecture:
+
+   - memory accessed as aligned quadwords only
+   - destination memory not read unless needed for good cache behaviour
+   - basic blocks arranged to optimize branch prediction for full-quadword
+     aligned memory blocks.
+   - partial head and tail quadwords constructed with byte-mask instructions
+
+   This is generally scheduled for the EV5 (got to look out for my own
+   interests :-), but with EV4 needs in mind.  There *should* be no more
+   stalls for the EV4 than there are for the EV5.
+*/
+
+
+#include <sysdep.h>
+
+	.set noat
+	.set noreorder
+
+	.text
+
+/* There is a problem with either gdb (as of 4.16) or gas (as of 2.7) that
+   doesn't like putting the entry point for a procedure somewhere in the
+   middle of the procedure descriptor.  Work around this by putting the main
+   loop in its own procedure descriptor.  */
+
+	/* On entry to this basic block:
+	   t3 == loop counter
+	   t4 == bytes in partial final word
+	   a0 == possibly misaligned destination pointer
+	   a1 == replicated source character  */
+
+	.ent memset_loop
+	.align 3
+memset_loop:
+	.frame sp, 0, ra, 0
+	.prologue 0
+
+	beq	t3, $tail
+	blbc	t3, 0f		# skip single store if count even
+
+	stq_u	a1, 0(a0)	# e0    : store one word
+	subq	t3, 1, t3	# .. e1 :
+	addq	a0, 8, a0	# e0    :
+	beq	t3, $tail	# .. e1 :
+
+0:	stq_u	a1, 0(a0)	# e0    : store two words
+	subq	t3, 2, t3	# .. e1 :
+	stq_u	a1, 8(a0)	# e0    :
+	addq	a0, 16, a0	# .. e1 :
+	bne	t3, 0b		# e1    :
+
+$tail:	bne	t4, 1f		# is there a tail to do?
+	ret			# no
+
+	.align 3
+1:	ldq_u	t0, 0(a0)	# e1    : yes, load original data
+	mskql	a1, t4, t1	# .. e0 :
+	mskqh	t0, t4, t0	# e0    :
+	or	t0, t1, t0	# e1 (stall)
+	stq_u	t0, 0(a0)	# e0    :
+	ret			# .. e1 :
+
+	.end memset_loop
+
+ENTRY(memset)
+	.prologue 0
+
+	zapnot	a1, 1, a1	# e0    : zero extend input character
+	mov	a0, v0		# .. e1 : move return value in place
+	sll	a1, 8, t0	# e0    : begin replicating the char
+	beq	a2, $done	# .. e1 : early exit for zero-length store
+	or	t0, a1, a1	# e0    :
+	and	a0, 7, t1	# .. e1 : dest misalignment
+	sll	a1, 16, t0	# e0    :
+	addq	a2, t1, a2	# .. e1 : add dest misalignment to count
+	or	t0, a1, a1	# e0    :
+	srl	a2, 3, t3	# .. e1 : loop = count >> 3
+	sll	a1, 32, t0	# e0    :
+	and	a2, 7, t4	# .. e1 : find number of bytes in tail
+	or	t0, a1, a1	# e0    : character replication done
+
+	beq	t1, memset_loop	# .. e1 : aligned head, jump right in
+
+	ldq_u	t0, 0(a0)	# e1    : load original data to mask into
+	mskqh	a1, a0, t1	# .. e0 :
+
+	cmpult	a2, 8, t2	# e0    : is this a sub-word set?
+	bne	t2, $oneq	# .. e1 (zdb)
+
+	mskql	t0, a0, t0	# e0    : we span words.  finish this partial
+	subq	t3, 1, t3	# .. e1 :
+	addq	a0, 8, a0	# e0    :
+	or	t0, t1, t0	# .. e1 :
+	stq_u	t0, -8(a0)	# e0    :
+	br 	memset_loop	# .. e1 :
+
+	.align 3
+$oneq:
+	mskql	t1, a2, t1	# e0    : entire operation within one word
+	mskql	t0, a0, t2	# e0    :
+	mskqh	t0, a2, t3	# e0    :
+	or	t1, t2, t0	# .. e1 :
+	or	t0, t3, t0	# e1    :
+	stq_u	t0, 0(a0)	# e0 (stall)
+
+$done:	ret
+
+	END(memset)
diff --git a/sysdeps/alpha/stpcpy.S b/sysdeps/alpha/stpcpy.S
new file mode 100644
index 0000000000..0dc44d353a
--- /dev/null
+++ b/sysdeps/alpha/stpcpy.S
@@ -0,0 +1,49 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+   Contributed by Richard Henderson (rth@tamu.edu)
+
+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.  */
+
+/* Copy a null-terminated string from SRC to DST.  Return a pointer
+   to the null-terminator in the source.  */
+
+#include <sysdep.h>
+
+	.text
+
+ENTRY(__stpcpy)
+	ldgp	gp, 0(pv)
+	.prologue 1
+
+	jsr	t9, __stxcpy	# do the work of the copy
+
+	and	t8, 0xf0, t2	# binary search for byte offset of the
+	and	t8, 0xcc, t1	# last byte written.
+	and	t8, 0xaa, t0
+	andnot	a0, 7, a0
+	cmovne	t2, 4, t2
+	cmovne	t1, 2, t1
+	cmovne	t0, 1, t0
+	addq	a0, t2, v0
+	addq	t0, t1, t0
+	addq	v0, t0, v0
+
+	ret
+
+	END(__stpcpy)
+
+weak_alias (__stpcpy, stpcpy)
diff --git a/sysdeps/alpha/stpncpy.S b/sysdeps/alpha/stpncpy.S
new file mode 100644
index 0000000000..50cda2672e
--- /dev/null
+++ b/sysdeps/alpha/stpncpy.S
@@ -0,0 +1,103 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+   Contributed by Richard Henderson (rth@tamu.edu)
+
+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.  */
+
+/* Copy no more than COUNT bytes of the null-terminated string from 
+   SRC to DST.  If SRC does not cover all of COUNT, the balance is
+   zeroed.  Return the address of the terminating null in DEST, if
+   any, else DEST + COUNT.  */
+
+#include <sysdep.h>
+
+	.set noat
+	.set noreorder
+
+	.text
+
+ENTRY(__stpncpy)
+	ldgp	gp, 0(pv)
+	.prologue 1
+	
+	beq	a2, $zerocount
+	jsr	t9, __stxncpy	# do the work of the copy
+
+	and	t8, 0xf0, t3	# binary search for byte offset of the
+	and	t8, 0xcc, t2	# last byte written.
+	and	t8, 0xaa, t1
+	andnot	a0, 7, v0
+	cmovne	t3, 4, t3
+	cmovne	t2, 2, t2
+	cmovne	t1, 1, t1
+	addq	v0, t3, v0
+	addq	t1, t2, t1
+	addq	v0, t1, v0
+
+	bne	a2, $multiword	# do we have full words left?
+
+	.align 3
+	zapnot	t0, t8, t4	# e0    : was last byte a null?
+	subq	t8, 1, t2	# .. e1 :
+	addq	v0, 1, t5	# e0    :
+	subq	t10, 1, t3	# .. e1 :
+	or	t2, t8, t2	# e0    : clear the bits between the last
+	or	t3, t10, t3	# .. e1 : written byte and the last byte in
+	andnot	t3, t2, t3	# e0    : COUNT
+	cmovne	t4, t5, v0	# .. e1 : if last written wasnt null, inc v0
+	zap	t0, t3, t0	# e0    :
+	stq_u	t0, 0(a0)	# e1    :
+	ret			# .. e1 :
+
+	.align 3
+$multiword:
+	subq	t8, 1, t7	# e0    : clear the final bits in the prev
+	or	t7, t8, t7	# e1    : word
+	zapnot	t0, t7, t0	# e0    :
+	subq	a2, 1, a2	# .. e1 :
+	stq_u	t0, 0(a0)	# e0    :
+	addq	a0, 8, a0	# .. e1 :
+
+	beq	a2, 1f		# e1    :
+	blbc	a2, 0f		# e1    :
+
+	stq_u	zero, 0(a0)	# e0    : zero one word
+	subq	a2, 1, a2	# .. e1 :
+	addq	a0, 8, a0	# e0    :
+	beq	a2, 1f		# .. e1 :
+
+0:	stq_u	zero, 0(a0)	# e0    : zero two words
+	subq	a2, 2, a2	# .. e1 :
+	stq_u	zero, 8(a0)	# e0    :
+	addq	a0, 16, a0	# .. e1 :
+	bne	a2, 0b		# e1    :
+	unop
+
+1:	ldq_u	t0, 0(a0)	# e0    : clear the leading bits in the final
+	subq	t10, 1, t7	# .. e1 : word
+	or	t7, t10, t7	# e0    :
+	zap	t0, t7, t0	# e1 (stall)
+	stq_u	t0, 0(a0)	# e0    :
+	ret			# .. e1 :
+
+$zerocount:
+	mov	a0, v0
+	ret
+
+	END(__stpncpy)
+
+weak_alias (__stpncpy, stpncpy)
diff --git a/sysdeps/alpha/strcat.S b/sysdeps/alpha/strcat.S
new file mode 100644
index 0000000000..d3afff3c5f
--- /dev/null
+++ b/sysdeps/alpha/strcat.S
@@ -0,0 +1,66 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+   Contributed by Richard Henderson (rth@tamu.edu)
+
+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.  */
+
+/* Append a null-terminated string from SRC to DST.  */
+
+#include <sysdep.h>
+
+	.text
+
+ENTRY(strcat)
+	ldgp	gp, 0(pv)
+	.prologue 1
+
+	mov	a0, v0		# set up return value
+
+	/* Find the end of the string.  */
+
+	ldq_u   t0, 0(a0)	# load first quadword (a0 may be misaligned)
+	lda     t1, -1(zero)
+	insqh   t1, a0, t1
+	andnot  a0, 7, a0
+	or      t1, t0, t0
+	cmpbge  zero, t0, t1	# t1 <- bitmask: bit i == 1 <==> i-th byte == 0
+	bne     t1, $found
+
+$loop:	ldq     t0, 8(a0)
+	addq    a0, 8, a0	# addr += 8
+	cmpbge  zero, t0, t1
+	beq     t1, $loop
+
+$found:	negq    t1, t2		# clear all but least set bit
+	and     t1, t2, t1
+
+	and     t1, 0xf0, t2	# binary search for that set bit
+	and	t1, 0xcc, t3
+	and	t1, 0xaa, t4
+	cmovne	t2, 4, t2
+	cmovne	t3, 2, t3
+	cmovne	t4, 1, t4
+	addq	t2, t3, t2
+	addq	a0, t4, a0
+	addq	a0, t2, a0
+
+	/* Now do the append.  */
+	
+	jsr	t9, __stxcpy
+	ret
+
+	END(strcat)
diff --git a/sysdeps/alpha/strchr.S b/sysdeps/alpha/strchr.S
new file mode 100644
index 0000000000..c26a8431d2
--- /dev/null
+++ b/sysdeps/alpha/strchr.S
@@ -0,0 +1,88 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+   Contributed by Richard Henderson (rth@tamu.edu)
+
+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.  */
+
+/* Return the address of a given character within a null-terminated
+   string, or null if it is not found. 
+
+   This is generally scheduled for the EV5 (got to look out for my own
+   interests :-), but with EV4 needs in mind.  There *should* be no more
+   stalls for the EV4 than there are for the EV5.
+*/
+
+#include <sysdep.h>
+
+	.set noreorder
+	.set noat
+
+ENTRY(strchr)
+	.prologue 0
+
+	zapnot	a1, 1, a1	# e0    : zero extend the search character
+	ldq_u   t0, 0(a0)	# .. e1 : load first quadword
+	sll	a1, 8, t5	# e0    : replicate the search character
+	andnot  a0, 7, v0	# .. e1 : align our loop pointer
+	or	t5, a1, a1	# e0    :
+	lda	t4, -1		# .. e1 : build garbage mask
+	sll	a1, 16, t5	# e0    :
+	cmpbge  zero, t0, t2	# .. e1 : bits set iff byte == zero
+	mskqh	t4, a0, t4	# e0    :
+	or	t5, a1, a1	# .. e1 :
+	sll	a1, 32, t5	# e0    :
+	cmpbge	zero, t4, t4	# .. e1 : bits set iff byte is garbage
+	or	t5, a1, a1	# e0    :
+	xor	t0, a1, t1	# .. e1 : make bytes == c zero
+	cmpbge  zero, t1, t3	# e0    : bits set iff byte == c
+	or	t2, t3, t0	# e1    : bits set iff char match or zero match
+	andnot	t0, t4, t0	# e0    : clear garbage bits
+	bne	t0, $found	# .. e1 (zdb)
+
+$loop:	ldq	t0, 8(v0)	# e0    :
+	addq	v0, 8, v0	# .. e1 :
+	nop			# e0    :
+	xor	t0, a1, t1	# .. e1 (ev5 data stall)
+	cmpbge	zero, t0, t2	# e0    : bits set iff byte == 0
+	cmpbge	zero, t1, t3	# .. e1 : bits set iff byte == c
+	or	t2, t3, t0	# e0    :
+	beq	t0, $loop	# .. e1 (zdb)
+
+$found:	negq    t0, t1		# e0    : clear all but least set bit
+	and     t0, t1, t0	# e1 (stall)
+
+	and	t0, t3, t1	# e0    : bit set iff byte was the char
+	beq	t1, $retnull	# .. e1 (zdb)
+
+	and     t0, 0xf0, t2	# e0    : binary search for that set bit
+	and	t0, 0xcc, t3	# .. e1 :
+	and	t0, 0xaa, t4	# e0    :
+	cmovne	t2, 4, t2	# .. e1 :
+	cmovne	t3, 2, t3	# e0    :
+	cmovne	t4, 1, t4	# .. e1 :
+	addq	t2, t3, t2	# e0    :
+	addq	v0, t4, v0	# .. e1 :
+	addq	v0, t2, v0	# e0    :
+	ret			# .. e1 :
+
+$retnull:
+	mov	zero, v0	# e0    :
+	ret			# .. e1 :
+
+	END(strchr)
+
+weak_alias (strchr, index)
diff --git a/sysdeps/alpha/strcpy.S b/sysdeps/alpha/strcpy.S
new file mode 100644
index 0000000000..2975181919
--- /dev/null
+++ b/sysdeps/alpha/strcpy.S
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+   Contributed by Richard Henderson (rth@tamu.edu)
+
+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.  */
+
+/* Copy a null-terminated string from SRC to DST.  Return a pointer
+   to the null-terminator in the source.  */
+
+#include <sysdep.h>
+
+	.text
+
+ENTRY(strcpy)
+	ldgp	gp, 0(pv)
+	.prologue 1
+
+	mov	a0, v0		# set up return value
+	jsr	t9, __stxcpy	# do the copy
+	ret
+
+	END(strcpy)
diff --git a/sysdeps/alpha/strncat.S b/sysdeps/alpha/strncat.S
new file mode 100644
index 0000000000..d502037ace
--- /dev/null
+++ b/sysdeps/alpha/strncat.S
@@ -0,0 +1,90 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+   Contributed by Richard Henderson (rth@tamu.edu)
+
+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.  */
+
+/* Append no more than COUNT characters from the null-terminated string SRC
+   to the null-terminated string DST.  Always null-terminate the new DST.  */
+
+#include <sysdep.h>
+
+	.text
+
+ENTRY(strncat)
+	ldgp	gp, 0(pv)
+	.prologue 1
+
+	mov	a0, v0		# set up return value
+	beq	a2, $zerocount
+
+	/* Find the end of the string.  */
+
+	ldq_u   t0, 0(a0)	# load first quadword (a0 may be misaligned)
+	lda     t1, -1(zero)
+	insqh   t1, a0, t1
+	andnot  a0, 7, a0
+	or      t1, t0, t0
+	cmpbge  zero, t0, t1	# t1 <- bitmask: bit i == 1 <==> i-th byte == 0
+	bne     t1, $found
+
+$loop:	ldq     t0, 8(a0)
+	addq    a0, 8, a0	# addr += 8
+	cmpbge  zero, t0, t1
+	beq     t1, $loop
+
+$found:	negq    t1, t2		# clear all but least set bit
+	and     t1, t2, t1
+
+	and     t1, 0xf0, t2	# binary search for that set bit
+	and	t1, 0xcc, t3
+	and	t1, 0xaa, t4
+	cmovne	t2, 4, t2
+	cmovne	t3, 2, t3
+	cmovne	t4, 1, t4
+	addq	t2, t3, t2
+	addq	a0, t4, a0
+	addq	a0, t2, a0
+
+	/* Now do the append.  */
+
+	jsr	t9, __stxncpy
+
+	/* Worry about the null termination.  */
+
+	zapnot	t0, t8, t1	# was last byte a null?
+	bne	t1, 0f
+	ret
+
+0:	and	t10, 0x80, t1
+	bne	t1, 1f
+
+	/* Here there are bytes left in the current word.  Clear one.  */
+	addq	t10, t10, t10	# end-of-count bit <<= 1
+	zap	t0, t10, t0
+	stq_u	t0, 0(a0)
+	ret
+
+1:	/* Here we must read the next DST word and clear the first byte.  */
+	ldq_u	t0, 8(a0)
+	zap	t0, 1, t0
+	stq_u	t0, 8(a0)
+
+$zerocount:
+	ret
+
+	END(strncat)
diff --git a/sysdeps/alpha/strncpy.S b/sysdeps/alpha/strncpy.S
new file mode 100644
index 0000000000..e13769c5c3
--- /dev/null
+++ b/sysdeps/alpha/strncpy.S
@@ -0,0 +1,85 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+   Contributed by Richard Henderson (rth@tamu.edu)
+
+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.  */
+
+/* Copy no more than COUNT bytes of the null-terminated string from
+   SRC to DST.  If SRC does not cover all of COUNT, the balance is
+   zeroed.  */
+
+#include <sysdep.h>
+
+	.set noat
+	.set noreorder
+
+	.text
+
+ENTRY(strncpy)
+	ldgp	gp, 0(pv)
+	.prologue 1
+
+	mov	a0, v0		# set return value now
+	beq	a2, $zerocount
+	jsr	t9, __stxncpy	# do the work of the copy
+
+	bne	a2, $multiword	# do we have full words left?
+
+	.align 3
+	subq	t8, 1, t2	# e0    : guess not
+	subq	t10, 1, t3	# .. e1 :
+	or	t2, t8, t2	# e0    : clear the bits between the last
+	or	t3, t10, t3	# .. e1 : written byte and the last byte in
+	andnot	t3, t2, t3	# e0    : COUNT
+	zap	t0, t3, t0	# e1    :
+	stq_u	t0, 0(a0)	# e0    :
+	ret			# .. e1 :
+
+$multiword:
+
+	subq	t8, 1, t7	# e0    : clear the final bits in the prev
+	or	t7, t8, t7	# e1    : word
+	zapnot	t0, t7, t0	# e0    :
+	subq	a2, 1, a2	# .. e1 :
+	stq_u	t0, 0(a0)	# e0    :
+	addq	a0, 8, a0	# .. e1 :
+
+	beq	a2, 1f		# e1    :
+	blbc	a2, 0f		# e1    :
+
+	stq_u	zero, 0(a0)	# e0    : zero one word
+	subq	a2, 1, a2	# .. e1 :
+	addq	a0, 8, a0	# e0    :
+	beq	a2, 1f		# .. e1 :
+
+0:	stq_u	zero, 0(a0)	# e0    : zero two words
+	subq	a2, 2, a2	# .. e1 :
+	stq_u	zero, 8(a0)	# e0    :
+	addq	a0, 16, a0	# .. e1 :
+	bne	a2, 0b		# e1    :
+	unop
+
+1:	ldq_u	t0, 0(a0)	# e0    : clear the leading bits in the final
+	subq	t10, 1, t7	# .. e1 : word
+	or	t7, t10, t7	# e0    :
+	zap	t0, t7, t0	# e1 (stall)
+	stq_u	t0, 0(a0)	# e0    :
+
+$zerocount:
+	ret			# .. e1 :
+
+	END(strncpy)
diff --git a/sysdeps/alpha/strrchr.S b/sysdeps/alpha/strrchr.S
new file mode 100644
index 0000000000..464f754b20
--- /dev/null
+++ b/sysdeps/alpha/strrchr.S
@@ -0,0 +1,104 @@
+/* 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., 675 Mass Ave,
+Cambridge, MA 02139, USA.  */
+
+/* Return the address of the last occurrance of a given character
+   within a null-terminated string, or null if it is not found.
+
+   This is generally scheduled for the EV5 (got to look out for my own
+   interests :-), but with EV4 needs in mind.  There are, in fact, fewer
+   stalls on the EV4 than there are on the EV5.
+*/
+
+#include <sysdep.h>
+
+	.set noreorder
+	.set noat
+
+ENTRY(strrchr)
+	.prologue 0
+
+	zapnot	a1, 1, a1	# e0    : zero extend our test character
+	mov	zero, t6	# .. e1 : t6 is last match aligned addr
+	sll	a1, 8, t5	# e0    : replicate our test character
+	mov	zero, t7	# .. e1 : t7 is last match byte compare mask
+	or	t5, a1, a1	# e0    :
+	ldq_u   t0, 0(a0)	# .. e1 : load first quadword
+	sll	a1, 16, t5	# e0    :
+	andnot  a0, 7, v0	# .. e1 : align source addr
+	or	t5, a1, a1	# e0    :
+	lda	t4, -1		# .. e1 : build garbage mask
+	sll	a1, 32, t5	# e0    :
+	cmpbge  zero, t0, t1	# .. e1 : bits set iff byte == zero
+	mskqh	t4, a0, t4	# e0    :
+	or	t5, a1, a1	# .. e1 : character replication complete
+	xor	t0, a1, t2	# e0    : make bytes == c zero
+	cmpbge	zero, t4, t4	# .. e1 : bits set iff byte is garbage
+	cmpbge  zero, t2, t3	# e0    : bits set iff byte == c
+	andnot	t1, t4, t1	# .. e1 : clear garbage from null test
+	andnot	t3, t4, t3	# e0    : clear garbage from char test
+	bne	t1, $eos	# .. e1 : did we already hit the terminator?
+
+	/* Character search main loop */
+$loop:
+	ldq	t0, 8(v0)	# e0    : load next quadword
+	cmovne	t3, v0, t6	# .. e1 : save previous comparisons match
+	cmovne	t3, t3, t7	# e0    :
+	addq	v0, 8, v0	# .. e1 :
+	xor	t0, a1, t2	# e0    :
+	cmpbge	zero, t0, t1	# .. e1 : bits set iff byte == zero
+	cmpbge	zero, t2, t3	# e0    : bits set iff byte == c
+	beq	t1, $loop	# .. e1 : if we havnt seen a null, loop
+
+	/* Mask out character matches after terminator */
+$eos:
+	negq	t1, t4		# e0    : isolate first null byte match
+	and	t1, t4, t4	# e1    :
+	subq	t4, 1, t5	# e0    : build a mask of the bytes upto...
+	or	t4, t5, t4	# e1    : ... and including the null
+
+	and	t3, t4, t3	# e0    : mask out char matches after null
+	cmovne	t3, t3, t7	# .. e1 : save it, if match found
+	cmovne	t3, v0, t6	# e0    :
+
+	/* Locate the address of the last matched character */
+
+	/* Retain the early exit for the ev4 -- the ev5 mispredict penalty
+	   is 5 cycles -- the same as just falling through.  */
+	beq	t7, $retnull	# .. e1 :
+
+	and	t7, 0xf0, t2	# e0    : binary search for the high bit set
+	cmovne	t2, t2, t7	# .. e1 (zdb)
+	cmovne	t2, 4, t2	# e0    :
+	and	t7, 0xcc, t1	# .. e1 :
+	cmovne	t1, t1, t7	# e0    :
+	cmovne	t1, 2, t1	# .. e1 :
+	and	t7, 0xaa, t0	# e0    :
+	cmovne	t0, 1, t0	# .. e1 (zdb)
+	addq	t2, t1, t1	# e0    :
+	addq	t6, t0, v0	# .. e1 : add our aligned base ptr to the mix
+	addq	v0, t1, v0	# e0    :
+	ret			# .. e1 :
+
+$retnull:
+	mov	zero, v0	# e0    :
+	ret			# .. e1 :
+
+	END(strrchr)
+
+weak_alias (strrchr, rindex)
diff --git a/sysdeps/alpha/stxcpy.S b/sysdeps/alpha/stxcpy.S
new file mode 100644
index 0000000000..e381b704cd
--- /dev/null
+++ b/sysdeps/alpha/stxcpy.S
@@ -0,0 +1,307 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+   Contributed by Richard Henderson (rth@tamu.edu)
+
+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.  */
+
+/* Copy a null-terminated string from SRC to DST.
+
+   This is an internal routine used by strcpy, stpcpy, and strcat.
+   As such, it uses special linkage conventions to make implementation
+   of these public functions more efficient.
+
+   On input:
+	t9 = return address
+	a0 = DST
+	a1 = SRC
+
+   On output:
+	t8  = bitmask (with one bit set) indicating the last byte written
+	a0  = unaligned address of the last *word* written
+
+   Furthermore, v0, a3-a5, t11, and t12 are untouched.
+*/
+
+/* This is generally scheduled for the EV5, but should still be pretty 
+   good for the EV4 too.  */
+
+#include <sysdep.h>
+
+	.set noat
+	.set noreorder
+
+	.text
+
+/* There is a problem with either gdb (as of 4.16) or gas (as of 2.7) that
+   doesn't like putting the entry point for a procedure somewhere in the
+   middle of the procedure descriptor.  Work around this by putting the
+   aligned copy in its own procedure descriptor */
+
+	.ent stxcpy_aligned
+	.align 3
+stxcpy_aligned:
+	.frame sp, 0, t9
+	.prologue 0
+
+	/* On entry to this basic block:
+	   t0 == the first destination word for masking back in
+	   t1 == the first source word.  */
+
+	/* Create the 1st output word and detect 0's in the 1st input word.  */
+	lda	t2, -1		# e1    : build a mask against false zero
+	mskqh	t2, a1, t2	# e0    :   detection in the src word
+	mskqh	t1, a1, t3	# e0    :
+	ornot	t1, t2, t2	# .. e1 : 
+	mskql	t0, a1, t0	# e0    : assemble the first output word
+	cmpbge	zero, t2, t7	# .. e1 : bits set iff null found
+	or	t0, t3, t1	# e0    :
+	bne	t7, $a_eos	# .. e1 :
+
+	/* On entry to this basic block:
+	   t0 == the first destination word for masking back in
+	   t1 == a source word not containing a null.  */
+
+$a_loop:
+	stq_u	t1, 0(a0)	# e0    :
+	addq	a0, 8, a0	# .. e1 :
+	ldq_u	t1, 0(a1)	# e0    :
+	addq	a1, 8, a1	# .. e1 :
+	cmpbge	zero, t1, t7	# e0 (stall)
+	beq	t7, $a_loop	# .. e1 (zdb)
+
+	/* Take care of the final (partial) word store.
+	   On entry to this basic block we have:
+	   t1 == the source word containing the null
+	   t7 == the cmpbge mask that found it.  */
+$a_eos:
+	negq	t7, t6		# e0    : find low bit set
+	and	t7, t6, t8	# e1 (stall)
+
+	/* For the sake of the cache, don't read a destination word
+	   if we're not going to need it.  */
+	and	t8, 0x80, t6	# e0    :
+	bne	t6, 1f		# .. e1 (zdb)
+
+	/* We're doing a partial word store and so need to combine
+	   our source and original destination words.  */
+	ldq_u	t0, 0(a0)	# e0    :
+	subq	t8, 1, t6	# .. e1 : 
+	zapnot	t1, t6, t1	# e0    : clear src bytes >= null
+	or	t8, t6, t7	# .. e1 : 
+	zap	t0, t7, t0	# e0    : clear dst bytes <= null
+	or	t0, t1, t1	# e1    :
+
+1:	stq_u	t1, 0(a0)	# e0    :
+	ret	(t9)		# .. e1 :
+
+	.end stxcpy_aligned
+
+	.align 3
+	.ent __stxcpy
+	.globl __stxcpy
+__stxcpy:
+	.frame sp, 0, t9
+	.prologue 0
+
+	/* Are source and destination co-aligned?  */
+	xor	a0, a1, t0	# e0    :
+	unop			#       :
+	and	t0, 7, t0	# e0    :
+	bne	t0, $unaligned	# .. e1 :
+
+	/* We are co-aligned; take care of a partial first word.  */
+	ldq_u	t1, 0(a1)	# e0    : load first src word
+	and	a0, 7, t0	# .. e1 : take care not to load a word ...
+	addq	a1, 8, a1		# e0    :
+	beq	t0, stxcpy_aligned	# .. e1 : ... if we wont need it
+	ldq_u	t0, 0(a0)	# e0    :
+	br	stxcpy_aligned	# .. e1 :
+
+
+/* The source and destination are not co-aligned.  Align the destination
+   and cope.  We have to be very careful about not reading too much and
+   causing a SEGV.  */
+
+	.align 3
+$u_head:
+	/* We know just enough now to be able to assemble the first
+	   full source word.  We can still find a zero at the end of it
+	   that prevents us from outputting the whole thing.
+
+	   On entry to this basic block:
+	   t0 == the first dest word, for masking back in, if needed else 0
+	   t1 == the low bits of the first source word
+	   t6 == bytemask that is -1 in dest word bytes */
+
+	ldq_u	t2, 8(a1)	# e0    :
+	addq	a1, 8, a1	# .. e1 :
+
+	extql	t1, a1, t1	# e0    :
+	extqh	t2, a1, t4	# e0    :
+	mskql	t0, a0, t0	# e0    :
+	or	t1, t4, t1	# .. e1 :
+	mskqh	t1, a0, t1	# e0    :
+	or	t0, t1, t1	# e1    :
+	
+	or	t1, t6, t6	# e0    :
+	cmpbge	zero, t6, t7	# .. e1 :
+	lda	t6, -1		# e0    : for masking just below
+	bne	t7, $u_final	# .. e1 :
+
+	mskql	t6, a1, t6		# e0    : mask out the bits we have 
+	or	t6, t2, t2		# e1    :   already extracted before
+	cmpbge	zero, t2, t7		# e0    :   testing eos
+	bne	t7, $u_late_head_exit	# .. e1 (zdb)
+
+	/* Finally, we've got all the stupid leading edge cases taken care
+	   of and we can set up to enter the main loop.  */
+
+	stq_u	t1, 0(a0)	# e0    : store first output word
+	addq	a0, 8, a0	# .. e1 :
+	extql	t2, a1, t0	# e0    : position ho-bits of lo word
+	ldq_u	t2, 8(a1)	# .. e1 : read next high-order source word
+	addq	a1, 8, a1	# e0    :
+	cmpbge	zero, t2, t7	# .. e1 :
+	nop			# e0    :
+	bne	t7, $u_eos	# .. e1 :
+
+	/* Unaligned copy main loop.  In order to avoid reading too much,
+	   the loop is structured to detect zeros in aligned source words.
+	   This has, unfortunately, effectively pulled half of a loop 
+	   iteration out into the head and half into the tail, but it does
+	   prevent nastiness from accumulating in the very thing we want
+	   to run as fast as possible.
+
+	   On entry to this basic block:
+	   t0 == the shifted high-order bits from the previous source word
+	   t2 == the unshifted current source word
+
+	   We further know that t2 does not contain a null terminator.  */
+
+	.align 3
+$u_loop:
+	extqh	t2, a1, t1	# e0    : extract high bits for current word
+	addq	a1, 8, a1	# .. e1 :
+	extql	t2, a1, t3	# e0    : extract low bits for next time
+	addq	a0, 8, a0	# .. e1 :
+	or	t0, t1, t1	# e0    : current dst word now complete
+	ldq_u	t2, 0(a1)	# .. e1 : load high word for next time
+	stq_u	t1, -8(a0)	# e0    : save the current word
+	mov	t3, t0		# .. e1 :
+	cmpbge	zero, t2, t7	# e0    : test new word for eos
+	beq	t7, $u_loop	# .. e1 :
+
+	/* We've found a zero somewhere in the source word we just read.
+	   If it resides in the lower half, we have one (probably partial)
+	   word to write out, and if it resides in the upper half, we 
+	   have one full and one partial word left to write out.
+
+	   On entry to this basic block:
+	   t0 == the shifted high-order bits from the previous source word
+	   t2 == the unshifted current source word.  */
+$u_eos:
+	extqh	t2, a1, t1	# e0    :
+	or	t0, t1, t1	# e1    : first (partial) source word complete
+
+	cmpbge	zero, t1, t7	# e0    : is the null in this first bit?
+	bne	t7, $u_final	# .. e1 (zdb)
+
+$u_late_head_exit:
+	stq_u	t1, 0(a0)	# e0    : the null was in the high-order bits
+	addq	a0, 8, a0	# .. e1 :
+	extql	t2, a1, t1	# e0    :
+	cmpbge	zero, t1, t7	# .. e1 :
+
+	/* Take care of a final (probably partial) result word.
+	   On entry to this basic block:
+	   t1 == assembled source word
+	   t7 == cmpbge mask that found the null.  */
+$u_final:
+	negq	t7, t6		# e0    : isolate low bit set
+	and	t6, t7, t8	# e1    :
+
+	and	t8, 0x80, t6	# e0    : avoid dest word load if we can 
+	bne	t6, 1f		# .. e1 (zdb)
+
+	ldq_u	t0, 0(a0)	# e0    :
+	subq	t8, 1, t6	# .. e1 :
+	or	t6, t8, t7	# e0    :
+	zapnot	t1, t6, t1	# .. e1 : kill source bytes >= null
+	zap	t0, t7, t0	# e0    : kill dest bytes <= null
+	or	t0, t1, t1	# e1    :
+
+1:	stq_u	t1, 0(a0)	# e0    :
+	ret	(t9)		# .. e1 :
+
+	/* Unaligned copy entry point.  */
+	.align 3
+$unaligned:
+
+	ldq_u	t1, 0(a1)	# e0    : load first source word
+
+	and	a0, 7, t4	# .. e1 : find dest misalignment
+	and	a1, 7, t5	# e0    : find src misalignment
+
+	/* Conditionally load the first destination word and a bytemask 
+	   with 0xff indicating that the destination byte is sacrosanct.  */
+
+	mov	zero, t0	# .. e1 :
+	mov	zero, t6	# e0    :
+	beq	t4, 1f		# .. e1 :
+	ldq_u	t0, 0(a0)	# e0    :
+	lda	t6, -1		# .. e1 :
+	mskql	t6, a0, t6	# e0    :
+1:
+	subq	a1, t4, a1	# .. e1 : sub dest misalignment from src addr
+
+	/* If source misalignment is larger than dest misalignment, we need
+	   extra startup checks to avoid SEGV.  */
+
+	cmplt	t4, t5, t8	# e0    :
+	beq	t8, $u_head	# .. e1 (zdb)
+
+	lda	t2, -1		# e1    : mask out leading garbage in source
+	mskqh	t2, t5, t2	# e0    :
+	nop			# e0    :
+	ornot	t1, t2, t3	# .. e1 :
+	cmpbge	zero, t3, t7	# e0    : is there a zero?
+	beq	t7, $u_head	# .. e1 (zdb)
+
+	/* At this point we've found a zero in the first partial word of
+	   the source.  We need to isolate the valid source data and mask
+	   it into the original destination data.  (Incidentally, we know
+	   that we'll need at least one byte of that original dest word.) */
+
+	ldq_u	t0, 0(a0)	# e0    :
+
+	negq	t7, t6		# .. e1 : build bitmask of bytes <= zero
+	and	t6, t7, t8	# e0    :
+	nop			# .. e1 :
+	subq	t8, 1, t6	# e0    :
+	or	t6, t8, t7	# e1    :
+
+	zapnot	t2, t7, t2	# e0    : prepare source word; mirror changes
+	and	t1, t2, t1	# e1    : to source validity mask
+	extql	t2, a1, t2	# e0    :
+	extql	t1, a1, t1	# e0    :
+
+	andnot	t0, t2, t0	# e0    : zero place for source to reside
+	or	t0, t1, t1	# e1    : and put it there
+	stq_u	t1, 0(a0)	# e0    :
+	ret	(t9)		# .. e1 :
+
+	.end __stxcpy
diff --git a/sysdeps/alpha/stxncpy.S b/sysdeps/alpha/stxncpy.S
new file mode 100644
index 0000000000..8c5fcf6e67
--- /dev/null
+++ b/sysdeps/alpha/stxncpy.S
@@ -0,0 +1,350 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+   Contributed by Richard Henderson (rth@tamu.edu)
+
+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.  */
+
+/* Copy no more than COUNT bytes of the null-terminated string from
+   SRC to DST.
+
+   This is an internal routine used by strncpy, stpncpy, and strncat.
+   As such, it uses special linkage conventions to make implementation
+   of these public functions more efficient.
+
+   On input:
+	t9 = return address
+	a0 = DST
+	a1 = SRC
+	a2 = COUNT
+
+   Furthermore, COUNT may not be zero.
+
+   On output:
+	t0  = last word written
+	t8  = bitmask (with one bit set) indicating the last byte written
+	t10 = bitmask (with one bit set) indicating the byte position of
+	      the end of the range specified by COUNT
+	a0  = unaligned address of the last *word* written
+	a2  = the number of full words left in COUNT
+
+   Furthermore, v0, a3-a5, t11, and t12 are untouched.
+*/
+
+
+/* This is generally scheduled for the EV5, but should still be pretty
+   good for the EV4 too.  */
+
+#include <sysdep.h>
+
+	.set noat
+	.set noreorder
+
+	.text
+
+/* There is a problem with either gdb (as of 4.16) or gas (as of 2.7) that
+   doesn't like putting the entry point for a procedure somewhere in the
+   middle of the procedure descriptor.  Work around this by putting the
+   aligned copy in its own procedure descriptor */
+
+	.ent stxncpy_aligned
+	.align 3
+stxncpy_aligned:
+	.frame sp, 0, t9, 0
+	.prologue 0
+
+	/* On entry to this basic block:
+	   t0 == the first destination word for masking back in
+	   t1 == the first source word.  */
+
+	/* Create the 1st output word and detect 0's in the 1st input word.  */
+	lda	t2, -1		# e1    : build a mask against false zero
+	mskqh	t2, a1, t2	# e0    :   detection in the src word
+	mskqh	t1, a1, t3	# e0    :
+	ornot	t1, t2, t2	# .. e1 :
+	mskql	t0, a1, t0	# e0    : assemble the first output word
+	cmpbge	zero, t2, t7	# .. e1 : bits set iff null found
+	or	t0, t3, t0	# e0    :
+	beq	a2, $a_eoc	# .. e1 :
+	bne	t7, $a_eos	# .. e1 :
+
+	/* On entry to this basic block:
+	   t0 == a source word not containing a null.  */
+
+$a_loop:
+	stq_u	t0, 0(a0)	# e0    :
+	addq	a0, 8, a0	# .. e1 :
+	ldq_u	t0, 0(a1)	# e0    :
+	addq	a1, 8, a1	# .. e1 :
+	subq	a2, 1, a2	# e0    :
+	cmpbge	zero, t0, t7	# .. e1 (stall)
+	beq	a2, $a_eoc      # e1    :
+	beq	t7, $a_loop	# e1    :
+
+	/* Take care of the final (partial) word store.  At this point
+	   the end-of-count bit is set in t7 iff it applies.
+
+	   On entry to this basic block we have:
+	   t0 == the source word containing the null
+	   t7 == the cmpbge mask that found it.  */
+
+$a_eos:
+	negq	t7, t8		# e0    : find low bit set
+	and	t7, t8, t8	# e1 (stall)
+
+	/* For the sake of the cache, don't read a destination word
+	   if we're not going to need it.  */
+	and	t8, 0x80, t6	# e0    :
+	bne	t6, 1f		# .. e1 (zdb)
+
+	/* We're doing a partial word store and so need to combine
+	   our source and original destination words.  */
+	ldq_u	t1, 0(a0)	# e0    :
+	subq	t8, 1, t6	# .. e1 :
+	or	t8, t6, t7	# e0    :
+	unop			#
+	zapnot	t0, t7, t0	# e0    : clear src bytes > null
+	zap	t1, t7, t1	# .. e1 : clear dst bytes <= null
+	or	t0, t1, t0	# e1    :
+
+1:	stq_u	t0, 0(a0)	# e0    :
+	ret	(t9)		# e1    :
+
+	/* Add the end-of-count bit to the eos detection bitmask.  */
+$a_eoc:
+	or	t10, t7, t7
+	br	$a_eos
+
+	.end stxncpy_aligned
+
+	.align 3
+	.ent __stxncpy
+	.globl __stxncpy
+__stxncpy:
+	.frame sp, 0, t9, 0
+	.prologue 0
+
+	/* Are source and destination co-aligned?  */
+	xor	a0, a1, t1	# e0    :
+	and	a0, 7, t0	# .. e1 : find dest misalignment
+	and	t1, 7, t1	# e0    :
+	addq	a2, t0, a2	# .. e1 : bias count by dest misalignment
+	subq	a2, 1, a2	# e0    :
+	and	a2, 7, t2	# e1    :
+	srl	a2, 3, a2	# e0    : a2 = loop counter = (count - 1)/8
+	addq	zero, 1, t10	# .. e1 :
+	sll	t10, t2, t10	# e0    : t10 = bitmask of last count byte
+	bne	t1, $unaligned	# .. e1 :
+
+	/* We are co-aligned; take care of a partial first word.  */
+
+	ldq_u	t1, 0(a1)	# e0    : load first src word
+	addq	a1, 8, a1	# .. e1 :
+
+	beq	t0, stxncpy_aligned     # avoid loading dest word if not needed
+	ldq_u	t0, 0(a0)	# e0    :
+	br	stxncpy_aligned	# .. e1 :
+
+
+/* The source and destination are not co-aligned.  Align the destination
+   and cope.  We have to be very careful about not reading too much and
+   causing a SEGV.  */
+
+	.align 3
+$u_head:
+	/* We know just enough now to be able to assemble the first
+	   full source word.  We can still find a zero at the end of it
+	   that prevents us from outputting the whole thing.
+
+	   On entry to this basic block:
+	   t0 == the first dest word, unmasked
+	   t1 == the shifted low bits of the first source word
+	   t6 == bytemask that is -1 in dest word bytes */
+
+	ldq_u	t2, 8(a1)	# e0    : load second src word
+	addq	a1, 8, a1	# .. e1 :
+	mskql	t0, a0, t0	# e0    : mask trailing garbage in dst
+	extqh	t2, a1, t4	# e0    :
+	or	t1, t4, t1	# e1    : first aligned src word complete
+	mskqh	t1, a0, t1	# e0    : mask leading garbage in src
+	or	t0, t1, t0	# e0    : first output word complete
+	or	t0, t6, t6	# e1    : mask original data for zero test
+	cmpbge	zero, t6, t7	# e0    :
+	beq	a2, $u_eocfin	# .. e1 :
+	bne	t7, $u_final	# e1    :
+
+	lda	t6, -1			# e1    : mask out the bits we have
+	mskql	t6, a1, t6		# e0    :   already seen
+	stq_u	t0, 0(a0)		# e0    : store first output word
+	or      t6, t2, t2		# .. e1 :
+	cmpbge	zero, t2, t7		# e0    : find nulls in second partial
+	addq	a0, 8, a0		# .. e1 :
+	subq	a2, 1, a2		# e0    :
+	bne	t7, $u_late_head_exit	# .. e1 :
+
+	/* Finally, we've got all the stupid leading edge cases taken care
+	   of and we can set up to enter the main loop.  */
+
+	extql	t2, a1, t1	# e0    : position hi-bits of lo word
+	ldq_u	t2, 8(a1)	# .. e1 : read next high-order source word
+	addq	a1, 8, a1	# e0    :
+	cmpbge	zero, t2, t7	# e1 (stall)
+	beq	a2, $u_eoc	# e1    :
+	bne	t7, $u_eos	# e1    :
+
+	/* Unaligned copy main loop.  In order to avoid reading too much,
+	   the loop is structured to detect zeros in aligned source words.
+	   This has, unfortunately, effectively pulled half of a loop
+	   iteration out into the head and half into the tail, but it does
+	   prevent nastiness from accumulating in the very thing we want
+	   to run as fast as possible.
+
+	   On entry to this basic block:
+	   t1 == the shifted high-order bits from the previous source word
+	   t2 == the unshifted current source word
+
+	   We further know that t2 does not contain a null terminator.  */
+
+	.align 3
+$u_loop:
+	extqh	t2, a1, t0	# e0    : extract high bits for current word
+	addq	a1, 8, a1	# .. e1 :
+	extql	t2, a1, t3	# e0    : extract low bits for next time
+	addq	a0, 8, a0	# .. e1 :
+	or	t0, t1, t0	# e0    : current dst word now complete
+	ldq_u	t2, 0(a1)	# .. e1 : load high word for next time
+	stq_u	t0, -8(a0)	# e0    : save the current word
+	mov	t3, t1		# .. e1 :
+	subq	a2, 1, a2	# e0    :
+	cmpbge	zero, t2, t7	# .. e1 : test new word for eos
+	beq	a2, $u_eoc	# e1    :
+	beq	t7, $u_loop	# e1    :
+
+	/* We've found a zero somewhere in the source word we just read.
+	   If it resides in the lower half, we have one (probably partial)
+	   word to write out, and if it resides in the upper half, we
+	   have one full and one partial word left to write out.
+
+	   On entry to this basic block:
+	   t1 == the shifted high-order bits from the previous source word
+	   t2 == the unshifted current source word.  */
+$u_eos:
+	extqh	t2, a1, t0	# e0    :
+	or	t0, t1, t0	# e1    : first (partial) source word complete
+
+	cmpbge	zero, t0, t7	# e0    : is the null in this first bit?
+	bne	t7, $u_final	# .. e1 (zdb)
+
+	stq_u	t0, 0(a0)	# e0    : the null was in the high-order bits
+	addq	a0, 8, a0	# .. e1 :
+	subq	a2, 1, a2	# e1    :
+
+$u_late_head_exit:
+	extql	t2, a1, t0	# .. e0 :
+	cmpbge	zero, t0, t7	# e0    :
+	or	t7, t10, t6	# e1    :
+	cmoveq	a2, t6, t7	# e0    :
+	nop			# .. e1 :
+
+	/* Take care of a final (probably partial) result word.
+	   On entry to this basic block:
+	   t0 == assembled source word
+	   t7 == cmpbge mask that found the null.  */
+$u_final:
+	negq	t7, t6		# e0    : isolate low bit set
+	and	t6, t7, t8	# e1    :
+
+	and	t8, 0x80, t6	# e0    : avoid dest word load if we can
+	bne	t6, 1f		# .. e1 (zdb)
+
+	ldq_u	t1, 0(a0)	# e0    :
+	subq	t8, 1, t6	# .. e1 :
+	or	t6, t8, t7	# e0    :
+	zapnot	t0, t7, t0	# .. e1 : kill source bytes > null
+	zap	t1, t7, t1	# e0    : kill dest bytes <= null
+	or	t0, t1, t0	# e1    :
+
+1:	stq_u	t0, 0(a0)	# e0    :
+	ret	(t9)		# .. e1 :
+
+$u_eoc:				# end-of-count
+	extqh	t2, a1, t0
+	or	t0, t1, t0
+	cmpbge	zero, t0, t7
+
+$u_eocfin:			# end-of-count, final word
+	or	t10, t7, t7
+	br	$u_final
+
+	/* Unaligned copy entry point.  */
+	.align 3
+$unaligned:
+
+	ldq_u	t1, 0(a1)	# e0    : load first source word
+
+	and	a0, 7, t4	# .. e1 : find dest misalignment
+	and	a1, 7, t5	# e0    : find src misalignment
+
+	/* Conditionally load the first destination word and a bytemask
+	   with 0xff indicating that the destination byte is sacrosanct.  */
+
+	mov	zero, t0	# .. e1 :
+	mov	zero, t6	# e0    :
+	beq	t4, 1f		# .. e1 :
+	ldq_u	t0, 0(a0)	# e0    :
+	lda	t6, -1		# .. e1 :
+	mskql	t6, a0, t6	# e0    :
+1:
+	subq	a1, t4, a1	# .. e1 : sub dest misalignment from src addr
+
+	/* If source misalignment is larger than dest misalignment, we need
+	   extra startup checks to avoid SEGV.  */
+
+	cmplt	t4, t5, t8	# e1    :
+	extql	t1, a1, t1	# .. e0 : shift src into place
+	lda	t2, -1		# e0    : for creating masks later
+	beq	t8, $u_head	# e1    :
+
+	mskqh	t2, t5, t2	# e0    : begin src byte validity mask
+	cmpbge	zero, t1, t7	# .. e1 : is there a zero?
+	extql	t2, a1, t2	# e0    :
+	or	t7, t10, t6	# .. e1 : test for end-of-count too
+	cmpbge	zero, t2, t3	# e0    :
+	cmoveq	a2, t6, t7	# .. e1 :
+	andnot	t7, t3, t7	# e0    :
+	beq	t7, $u_head	# .. e1 (zdb)
+
+	/* At this point we've found a zero in the first partial word of
+	   the source.  We need to isolate the valid source data and mask
+	   it into the original destination data.  (Incidentally, we know
+	   that we'll need at least one byte of that original dest word.) */
+
+	ldq_u	t0, 0(a0)	# e0    :
+	negq	t7, t6		# .. e1 : build bitmask of bytes <= zero
+	mskqh	t1, t4, t1	# e0    :
+	and	t6, t7, t8	# .. e1 :
+	subq	t8, 1, t6	# e0    :
+	or	t6, t8, t7	# e1    :
+
+	zapnot	t2, t7, t2	# e0    : prepare source word; mirror changes
+	zapnot	t1, t7, t1	# .. e1 : to source validity mask
+
+	andnot	t0, t2, t0	# e0    : zero place for source to reside
+	or	t0, t1, t0	# e1    : and put it there
+	stq_u	t0, 0(a0)	# e0    :
+	ret	(t9)		# .. e1 :
+
+	.end __stxncpy
diff --git a/sysdeps/generic/crypt-entry.c b/sysdeps/generic/crypt-entry.c
new file mode 100644
index 0000000000..84c6974697
--- /dev/null
+++ b/sysdeps/generic/crypt-entry.c
@@ -0,0 +1,68 @@
+/* crypt - wrapper aroung MD5 sum replacement for crypt function.
+Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <crypt.h>
+#include <errno.h>
+#include <string.h>
+
+
+/* Define our magic string to mark salt for MD5 encryption
+   replacement.  This is meant to be the same as for other MD5 based
+   encryption implenentations.  */
+static const char md5_salt_prefix[] = "$1$";
+
+
+/* Prototypes for the MD5 encryption replacement functions.  */
+extern char *md5_crypt_r (const char *key, const char *salt, char *buffer,
+			  int buflen);
+extern char *md5_crpyt (const char *key, const char *salt);
+
+
+/* We recognize an intended call of the MD5 crypt replacement function
+   by the first 3 characters of the salt string.  If they match the
+   MD5 magic string we want MD5 encryption replacement.  */
+char *
+crypt_r (key, salt, data)
+     const char *key;
+     const char *salt;
+     struct crypt_data *data;
+{
+  if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
+    return md5_crypt_r (key, salt, (char *) data, sizeof (struct crypt_data));
+
+  /* We don't have DES encryption.  */
+  errno = ENOSYS;
+  return NULL;
+}
+
+
+/* The same here, only we call the non-reentrant version.  */
+char *
+crypt (key, salt)
+     const char *key;
+     const char *salt;
+{
+  if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
+    return md5_crypt (key, salt);
+
+  /* We don't have DES encryption.  */
+  errno = ENOSYS;
+  return NULL;
+}
diff --git a/sysdeps/generic/crypt.h b/sysdeps/generic/crypt.h
new file mode 100644
index 0000000000..c035e1e623
--- /dev/null
+++ b/sysdeps/generic/crypt.h
@@ -0,0 +1,58 @@
+/*
+ * UFC-crypt: ultra fast crypt(3) implementation
+ *
+ * Copyright (C) 1991, 1992, 1993, 1996 Free Software Foundation, Inc.
+ *
+ * This 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.
+ *
+ * This 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 this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * @(#)crypt.h	1.3 16 Sep 1996
+ *
+ */
+
+#ifndef _CRYPT_H
+
+#define _CRYPT_H	1
+#include <features.h>
+
+__BEGIN_DECLS
+
+struct crypt_data
+{
+  char keysched[(16 * 8) / sizeof (char)];
+  char sb0[32768 / sizeof (char)];
+  char sb1[32768 / sizeof (char)];
+  char sb2[32768 / sizeof (char)];
+  char sb3[32768 / sizeof (char)];
+  /* end-of-aligment-critical-data */
+  char crypt_3_buf[14];
+  char current_salt[2];
+  long current_saltbits;
+  int  direction, initialized;
+};
+
+/* Encrypt at most 8 characters from KEY using salt to perturb DES.  */
+extern char *crypt __P ((__const char *__key, __const char *__salt));
+
+
+#ifdef __USE_REENTRANT
+/* Reentrant versions of the functions above.  The additional argument
+   points to a structure where the results are placed in.  */
+extern char *crypt_r __P ((__const char *__key, __const char *__salt,
+			   struct crypt_data *__data));
+#endif /* reentrant */
+
+__END_DECLS
+
+#endif	/* crypt.h */
diff --git a/sysdeps/generic/strtok.c b/sysdeps/generic/strtok.c
index 4f89efa6f0..1e96fec01f 100644
--- a/sysdeps/generic/strtok.c
+++ b/sysdeps/generic/strtok.c
@@ -43,10 +43,7 @@ strtok (s, delim)
   /* Scan leading delimiters.  */
   s += strspn (s, delim);
   if (*s == '\0')
-    {
-      olds = NULL;
-      return NULL;
-    }
+    return NULL;
 
   /* Find the end of the token.  */
   token = s;
diff --git a/sysdeps/generic/strtok_r.c b/sysdeps/generic/strtok_r.c
index 870fb274eb..fb68ad8c98 100644
--- a/sysdeps/generic/strtok_r.c
+++ b/sysdeps/generic/strtok_r.c
@@ -44,10 +44,7 @@ strtok_r (s, delim, save_ptr)
   /* Scan leading delimiters.  */
   s += strspn (s, delim);
   if (*s == '\0')
-    {
-      *save_ptr = NULL;
-      return NULL;
-    }
+    return NULL;
 
   /* Find the end of the token.  */
   token = s;
diff --git a/sysdeps/i386/__longjmp.S b/sysdeps/i386/__longjmp.S
index 77916cdc38..fd0220526a 100644
--- a/sysdeps/i386/__longjmp.S
+++ b/sysdeps/i386/__longjmp.S
@@ -1,5 +1,5 @@
 /* longjmp for i386.
-Copyright (C) 1995 Free Software Foundation, Inc.
+Copyright (C) 1995, 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
@@ -33,3 +33,4 @@ ENTRY (__longjmp)
 	/* Jump to saved PC.  */
      	movl (JB_PC*4)(%ecx), %ecx
      	jmp *%ecx
+PSEUDO_END (__longjmp)
diff --git a/sysdeps/i386/bsd-_setjmp.S b/sysdeps/i386/bsd-_setjmp.S
index a606550f2e..b08a74fe53 100644
--- a/sysdeps/i386/bsd-_setjmp.S
+++ b/sysdeps/i386/bsd-_setjmp.S
@@ -1,5 +1,5 @@
 /* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'.  i386 version.
-Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+Copyright (C) 1994, 1995, 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
@@ -30,4 +30,4 @@ ENTRY (_setjmp)
 	pushl %ecx		/* Push back first argument.  */
 	pushl %eax		/* Push back return PC.  */
 	jmp JUMPTARGET (C_SYMBOL_NAME (__sigsetjmp))
-
+PSEUDO_END (_setjmp)
diff --git a/sysdeps/i386/bsd-setjmp.S b/sysdeps/i386/bsd-setjmp.S
index d9a39b9191..5c8dd673b0 100644
--- a/sysdeps/i386/bsd-setjmp.S
+++ b/sysdeps/i386/bsd-setjmp.S
@@ -1,5 +1,5 @@
 /* BSD `setjmp' entry point to `sigsetjmp (..., 1)'.  i386 version.
-Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+Copyright (C) 1994, 1995, 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
@@ -30,3 +30,4 @@ ENTRY (setjmp)
 	pushl %ecx		/* Push back first argument.  */
 	pushl %eax		/* Push back return PC.  */
 	jmp JUMPTARGET (C_SYMBOL_NAME (__sigsetjmp))
+PSEUDO_END (setjmp)
diff --git a/sysdeps/i386/i486/strcat.S b/sysdeps/i386/i486/strcat.S
index 081a797933..e82b1c40b2 100644
--- a/sysdeps/i386/i486/strcat.S
+++ b/sysdeps/i386/i486/strcat.S
@@ -258,3 +258,4 @@ L8:	movl 8(%esp), %eax	/* start address of destination is result */
 	popl %edi		/* restore saved register */
 
 	ret
+PSEUDO_END (strcat)
diff --git a/sysdeps/i386/i486/strlen.S b/sysdeps/i386/i486/strlen.S
index 276563b11a..1a7ab7a90e 100644
--- a/sysdeps/i386/i486/strlen.S
+++ b/sysdeps/i386/i486/strlen.S
@@ -1,6 +1,6 @@
 /* strlen(str) -- determine the length of the string STR.
 Optimized for Intel 80x86, x>=4.
-Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
 Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>.
 This file is part of the GNU C Library.
 
@@ -130,3 +130,4 @@ L3:	testb %cl, %cl		/* is first byte NUL? */
 L2:	subl 4(%esp), %eax	/* compute difference to string start */
 
 	ret
+PSEUDO_END (strlen)
diff --git a/sysdeps/i386/i586/memset.S b/sysdeps/i386/i586/memset.S
index 3a68fa16d1..0dabad2848 100644
--- a/sysdeps/i386/i586/memset.S
+++ b/sysdeps/i386/i586/memset.S
@@ -99,3 +99,4 @@ L2:	shrl	$2, %ecx	/* convert byte count to longword count */
 	popl	%edi
 
 	ret
+PSEUDO_END (memset)
diff --git a/sysdeps/i386/i586/strchr.S b/sysdeps/i386/i586/strchr.S
index 100cbbc706..bc435bfe0a 100644
--- a/sysdeps/i386/i586/strchr.S
+++ b/sysdeps/i386/i586/strchr.S
@@ -325,6 +325,7 @@ L3:	xorl %eax, %eax		/* set return value = NULL */
 	popl %edi
 
 	ret
+PSEUDO_END (strchr)
 
 #undef index
 weak_alias (strchr, index)
diff --git a/sysdeps/i386/i586/strlen.S b/sysdeps/i386/i586/strlen.S
index 1e17131389..12ea354b22 100644
--- a/sysdeps/i386/i586/strlen.S
+++ b/sysdeps/i386/i586/strlen.S
@@ -180,3 +180,4 @@ L2:	subl 4(%esp), %eax	/* now compute the length as difference
 				   character */
 
 	ret
+PSEUDO_END (strlen)
diff --git a/sysdeps/i386/memchr.S b/sysdeps/i386/memchr.S
index 9931f97241..7d2779b3f2 100644
--- a/sysdeps/i386/memchr.S
+++ b/sysdeps/i386/memchr.S
@@ -1,7 +1,7 @@
 /* memchr (str, ch, n) -- Return pointer to first occurrence of CH in STR less
    than N.
 For Intel 80x86, x>=3.
-Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
 Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
 Optimised a little by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
 This file is part of the GNU C Library.
@@ -313,3 +313,4 @@ L9:	popl %edi		/* pop saved registers */
 	popl %esi
 
 	ret
+PSEUDO_END (memchr)
diff --git a/sysdeps/i386/memcmp.S b/sysdeps/i386/memcmp.S
index 3917a329d6..4bf9b232e1 100644
--- a/sysdeps/i386/memcmp.S
+++ b/sysdeps/i386/memcmp.S
@@ -63,6 +63,7 @@ L1:	popl %esi		/* Restore registers.  */
 	movl %edx, %edi
 
 	ret
+PSEUDO_END (memcmp)
 
 #undef bcmp
 weak_alias (memcmp, bcmp)
diff --git a/sysdeps/i386/setjmp.S b/sysdeps/i386/setjmp.S
index 498a925b00..e877ae387e 100644
--- a/sysdeps/i386/setjmp.S
+++ b/sysdeps/i386/setjmp.S
@@ -53,3 +53,4 @@ here:	popl %ecx
 #else
 	jmp __sigjmp_save
 #endif
+PSEUDO_END (__sigsetjmp)
diff --git a/sysdeps/i386/stpcpy.S b/sysdeps/i386/stpcpy.S
index f38a9089bc..46f64b59f7 100644
--- a/sysdeps/i386/stpcpy.S
+++ b/sysdeps/i386/stpcpy.S
@@ -1,7 +1,7 @@
 /* stpcpy -- copy SRC to DEST returning the address of the terminating '\0'
 	     in DEST.
 For Intel 80x86, x>=3.
-Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
 Contributed by Ulrich Drepper (drepper@gnu.ai.mit.edu).
 This file is part of the GNU C Library.
 
@@ -83,5 +83,6 @@ L4:	incl %eax
 L3:	incl %eax
 L2:
 	ret
+PSEUDO_END (__stpcpy)
 
 weak_alias (__stpcpy, stpcpy)
diff --git a/sysdeps/i386/stpncpy.S b/sysdeps/i386/stpncpy.S
index 59192e66c9..7590e57b0b 100644
--- a/sysdeps/i386/stpncpy.S
+++ b/sysdeps/i386/stpncpy.S
@@ -1,7 +1,7 @@
 /* stpncpy -- copy no more then N bytes from SRC to DEST, returning the
 	      address of the terminating '\0' in DEST.
 For Intel 80x86, x>=3.
-Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
 Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
 Some bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
   - original wrote n+1 chars in some cases.
@@ -139,5 +139,6 @@ L3:	decl %ecx		/* all bytes written? */
 L9:	popl %esi		/* restore saved register content */
 
 	ret
+PSEUDO_END (__stpncpy)
 
 weak_alias (__stpncpy, stpncpy)
diff --git a/sysdeps/i386/strchr.S b/sysdeps/i386/strchr.S
index de947cd252..50c3d7bced 100644
--- a/sysdeps/i386/strchr.S
+++ b/sysdeps/i386/strchr.S
@@ -1,6 +1,6 @@
 /* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
 For Intel 80x86, x>=3.
-Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
 Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
 Some optimisations by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
 This file is part of the GNU C Library.
@@ -274,5 +274,6 @@ L7:	testb %cl, %cl		/* is first byte C? */
 L6:	popl %edi		/* restore saved register content */
 
 	ret
+PSEUDO_END (strchr)
 
 weak_alias (strchr, index)
diff --git a/sysdeps/i386/strcspn.S b/sysdeps/i386/strcspn.S
index b0e789b490..1e802251f6 100644
--- a/sysdeps/i386/strcspn.S
+++ b/sysdeps/i386/strcspn.S
@@ -1,7 +1,7 @@
 /* strcspn (str, ss) -- Return the length of the initial segement of STR
 			which contains no characters from SS.
 For Intel 80x86, x>=3.
-Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
 Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
 Bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
 This file is part of the GNU C Library.
@@ -174,3 +174,4 @@ L4:	subl %edx, %eax		/* we have to return the number of valid
 	addl $256, %esp		/* remove stopset */
 
 	ret
+PSEUDO_END (strcspn)
diff --git a/sysdeps/i386/strpbrk.S b/sysdeps/i386/strpbrk.S
index 245bf1a935..41769b0c69 100644
--- a/sysdeps/i386/strpbrk.S
+++ b/sysdeps/i386/strpbrk.S
@@ -1,7 +1,7 @@
 /* strcspn (str, ss) -- Return the length of the initial segement of STR
 			which contains no characters from SS.
 For Intel 80x86, x>=3.
-Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
 Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
 Bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
 This file is part of the GNU C Library.
@@ -175,3 +175,4 @@ L4:	addl $256, %esp		/* remove stopset */
 	xorl %eax, %eax		/* return NULL */
 
 L7:	ret
+PSEUDO_END (strpbrk)
diff --git a/sysdeps/i386/strrchr.S b/sysdeps/i386/strrchr.S
index 58058e1195..8cad7e5b5d 100644
--- a/sysdeps/i386/strrchr.S
+++ b/sysdeps/i386/strrchr.S
@@ -321,5 +321,6 @@ L2:	popl %esi		/* restore saved register content */
 	popl %edi
 
 	ret
+PSEUDO_END (strrchr)
 
 weak_alias (strrchr, rindex)
diff --git a/sysdeps/i386/strspn.S b/sysdeps/i386/strspn.S
index 1a02026285..fbba811c55 100644
--- a/sysdeps/i386/strspn.S
+++ b/sysdeps/i386/strspn.S
@@ -1,7 +1,7 @@
 /* strcspn (str, ss) -- Return the length of the initial segement of STR
 			which contains only characters from SS.
 For Intel 80x86, x>=3.
-Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
 Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
 Bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
 This file is part of the GNU C Library.
@@ -174,3 +174,4 @@ L4:	subl %edx, %eax		/* we have to return the number of valid
 	addl $256, %esp		/* remove stopset */
 
 	ret
+PSEUDO_END (strspn)
diff --git a/sysdeps/i386/strtok.S b/sysdeps/i386/strtok.S
index c38ebf90a2..a510e18955 100644
--- a/sysdeps/i386/strtok.S
+++ b/sysdeps/i386/strtok.S
@@ -282,3 +282,4 @@ LreturnNULL:
 # endif
 #endif
 	ret
+PSEUDO_END (FUNCTION)
diff --git a/sysdeps/i386/sysdep.h b/sysdeps/i386/sysdep.h
index 9c312b0d0c..9d21342423 100644
--- a/sysdeps/i386/sysdep.h
+++ b/sysdeps/i386/sysdep.h
@@ -29,6 +29,7 @@ Cambridge, MA 02139, USA.  */
 #define ALIGNARG(log2) 1<<log2
 /* For ELF we need the `.type' directive to make shared libs work right.  */
 #define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
+#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
 
 /* In ELF C symbols are asm symbols.  */
 #undef	NO_UNDERSCORES
@@ -37,7 +38,8 @@ Cambridge, MA 02139, USA.  */
 #else
 
 #define ALIGNARG(log2) log2
-#define ASM_TYPE_DIRECTIVE(name,type) /* Nothing is specified.  */
+#define ASM_TYPE_DIRECTIVE(name,type)	/* Nothing is specified.  */
+#define ASM_SIZE_DIRECTIVE(name)	/* Nothing is specified.  */
 
 #endif
 
@@ -76,6 +78,10 @@ lose: SYSCALL_PIC_SETUP							      \
   DO_CALL (syscall_name, args);						      \
   jb lose
 
+#undef	PSEUDO_END
+#define	PSEUDO_END(name)						      \
+  ASM_SIZE_DIRECTIVE(name)
+
 #ifdef PIC
 #define JUMPTARGET(name)	name##@PLT
 #define SYSCALL_PIC_SETUP \
diff --git a/sysdeps/libm-i387/e_acos.S b/sysdeps/libm-i387/e_acos.S
index 6ec7785363..c9fa81006c 100644
--- a/sysdeps/libm-i387/e_acos.S
+++ b/sysdeps/libm-i387/e_acos.S
@@ -12,9 +12,10 @@ ENTRY(__ieee754_acos)
 	fldl	4(%esp)			/* x */
 	fst	%st(1)
 	fmul	%st(0)			/* x^2 */
-	fld1				
+	fld1
 	fsubp				/* 1 - x^2 */
 	fsqrt				/* sqrt (1 - x^2) */
 	fxch	%st(1)
 	fpatan
 	ret
+PSEUDO_END (__ieee754_acos)
diff --git a/sysdeps/libm-i387/e_acosl.S b/sysdeps/libm-i387/e_acosl.S
index 3779fa7861..4cc56c0bb8 100644
--- a/sysdeps/libm-i387/e_acosl.S
+++ b/sysdeps/libm-i387/e_acosl.S
@@ -9,7 +9,7 @@
 
 
 /* acosl = atanl (sqrtl(1 - x^2) / x) */
-ENTRY(__ieee754_acos)
+ENTRY(__ieee754_acosl)
 	fldt	4(%esp)			/* x */
 	fst	%st(1)
 	fmul	%st(0)			/* x^2 */
@@ -19,3 +19,4 @@ ENTRY(__ieee754_acos)
 	fxch	%st(1)
 	fpatan
 	ret
+PSEUDO_END (__ieee754_acosl)
diff --git a/sysdeps/libm-i387/e_asin.S b/sysdeps/libm-i387/e_asin.S
index dfcd7bce95..cba41935d5 100644
--- a/sysdeps/libm-i387/e_asin.S
+++ b/sysdeps/libm-i387/e_asin.S
@@ -17,3 +17,4 @@ ENTRY(__ieee754_asin)
 	fsqrt				/* sqrt (1 - x^2) */
 	fpatan
 	ret
+PSEUDO_END (__ieee754_asin)
diff --git a/sysdeps/libm-i387/e_asinl.S b/sysdeps/libm-i387/e_asinl.S
index 7a90c3e63a..d4e254874e 100644
--- a/sysdeps/libm-i387/e_asinl.S
+++ b/sysdeps/libm-i387/e_asinl.S
@@ -19,3 +19,4 @@ ENTRY(__ieee754_asinl)
 	fsqrt				/* sqrt (1 - x^2) */
 	fpatan
 	ret
+PSEUDO_END (__ieee754_asinl)
diff --git a/sysdeps/libm-i387/e_atan2.S b/sysdeps/libm-i387/e_atan2.S
index da2e11925c..6f7fc74b65 100644
--- a/sysdeps/libm-i387/e_atan2.S
+++ b/sysdeps/libm-i387/e_atan2.S
@@ -12,3 +12,4 @@ ENTRY(__ieee754_atan2)
 	fldl	12(%esp)
 	fpatan
 	ret
+PSEUDO_END (__ieee754_atan2)
diff --git a/sysdeps/libm-i387/e_atan2f.S b/sysdeps/libm-i387/e_atan2f.S
index 21fc0d9a57..bb6d902172 100644
--- a/sysdeps/libm-i387/e_atan2f.S
+++ b/sysdeps/libm-i387/e_atan2f.S
@@ -12,3 +12,4 @@ ENTRY(__ieee754_atan2f)
 	flds	8(%esp)
 	fpatan
 	ret
+PSEUDO_END (__ieee754_atan2f)
diff --git a/sysdeps/libm-i387/e_atan2l.S b/sysdeps/libm-i387/e_atan2l.S
index 748571e38e..860885ced1 100644
--- a/sysdeps/libm-i387/e_atan2l.S
+++ b/sysdeps/libm-i387/e_atan2l.S
@@ -14,3 +14,4 @@ ENTRY(__ieee754_atan2l)
 	fldt	16(%esp)
 	fpatan
 	ret
+PSEUDO_END (__ieee754_atan2l)
diff --git a/sysdeps/libm-i387/e_exp.S b/sysdeps/libm-i387/e_exp.S
index 144748e820..dad201fb3f 100644
--- a/sysdeps/libm-i387/e_exp.S
+++ b/sysdeps/libm-i387/e_exp.S
@@ -12,6 +12,7 @@ ENTRY(__ieee754_exp)
 	fldl	4(%esp)
 /* I added the following ugly construct because exp(+-Inf) resulted
    in NaN.  The ugliness results from the bright minds at Intel.
+   For the i686 the code can be written better.
    -- drepper@cygnus.com.  */
 	fxam				/* Is NaN or +-Inf?  */
 	fstsw	%ax
@@ -36,3 +37,4 @@ ENTRY(__ieee754_exp)
 	jz	.LpInf			/* If positive, jump.  */
 	fldz				/* Set result to 0.  */
 .LpInf:	ret
+PSEUDO_END (__ieee754_exp)
diff --git a/sysdeps/libm-i387/e_expl.S b/sysdeps/libm-i387/e_expl.S
index d14089828d..2884efa6ce 100644
--- a/sysdeps/libm-i387/e_expl.S
+++ b/sysdeps/libm-i387/e_expl.S
@@ -14,6 +14,7 @@ ENTRY(__ieee754_expl)
 	fldt	4(%esp)
 /* I added the following ugly construct because expl(+-Inf) resulted
    in NaN.  The ugliness results from the bright minds at Intel.
+   For the i686 the code can be written better.
    -- drepper@cygnus.com.  */
 	fxam				/* Is NaN or +-Inf?  */
 	fstsw	%ax
@@ -38,3 +39,4 @@ ENTRY(__ieee754_expl)
 	jz	.LpInf			/* If positive, jump.  */
 	fldz				/* Set result to 0.  */
 .LpInf:	ret
+PSEUDO_END (__ieee754_expl)
diff --git a/sysdeps/libm-i387/e_fmod.S b/sysdeps/libm-i387/e_fmod.S
index c02df44e18..c4d7535a7c 100644
--- a/sysdeps/libm-i387/e_fmod.S
+++ b/sysdeps/libm-i387/e_fmod.S
@@ -16,3 +16,4 @@ ENTRY(__ieee754_fmod)
 	jp	1b
 	fstpl	%st(1)
 	ret
+PSEUDO_END (__ieee754_fmod)
diff --git a/sysdeps/libm-i387/e_fmodl.S b/sysdeps/libm-i387/e_fmodl.S
index 75ed17b9e5..8c2bd06b0a 100644
--- a/sysdeps/libm-i387/e_fmodl.S
+++ b/sysdeps/libm-i387/e_fmodl.S
@@ -18,3 +18,4 @@ ENTRY(__ieee754_fmodl)
 	jp	1b
 	fstpl	%st(1)
 	ret
+PSEUDO_END (__ieee754_fmodl)
diff --git a/sysdeps/libm-i387/e_log.S b/sysdeps/libm-i387/e_log.S
index 98d569ea43..2a51d7520c 100644
--- a/sysdeps/libm-i387/e_log.S
+++ b/sysdeps/libm-i387/e_log.S
@@ -12,3 +12,4 @@ ENTRY(__ieee754_log)
 	fldl	4(%esp)
 	fyl2x
 	ret
+PSEUDO_END (__ieee754_log)
diff --git a/sysdeps/libm-i387/e_log10.S b/sysdeps/libm-i387/e_log10.S
index 612344be56..17b3067de5 100644
--- a/sysdeps/libm-i387/e_log10.S
+++ b/sysdeps/libm-i387/e_log10.S
@@ -12,3 +12,4 @@ ENTRY(__ieee754_log10)
 	fldl	4(%esp)
 	fyl2x
 	ret
+PSEUDO_END (__ieee754_log10)
diff --git a/sysdeps/libm-i387/e_log10l.S b/sysdeps/libm-i387/e_log10l.S
index 0a19256933..cfddb5ce2a 100644
--- a/sysdeps/libm-i387/e_log10l.S
+++ b/sysdeps/libm-i387/e_log10l.S
@@ -14,3 +14,4 @@ ENTRY(__ieee754_log10l)
 	fldt	4(%esp)
 	fyl2x
 	ret
+PSEUDO_END(__ieee754_log10l)
diff --git a/sysdeps/libm-i387/e_logl.S b/sysdeps/libm-i387/e_logl.S
index 2575d6c6e8..4c1550e929 100644
--- a/sysdeps/libm-i387/e_logl.S
+++ b/sysdeps/libm-i387/e_logl.S
@@ -14,3 +14,4 @@ ENTRY(__ieee754_logl)
 	fldt	4(%esp)
 	fyl2x
 	ret
+PSEUDO_END(__ieee754_logl)
diff --git a/sysdeps/libm-i387/e_remainder.S b/sysdeps/libm-i387/e_remainder.S
index d14f2e82bd..287b616ff7 100644
--- a/sysdeps/libm-i387/e_remainder.S
+++ b/sysdeps/libm-i387/e_remainder.S
@@ -16,3 +16,4 @@ ENTRY(__ieee754_remainder)
 	jp	1b
 	fstpl	%st(1)
 	ret
+PSEUDO_END (__ieee754_remainder)
diff --git a/sysdeps/libm-i387/e_remainderf.S b/sysdeps/libm-i387/e_remainderf.S
index ed578ea542..cdc1ac8b6f 100644
--- a/sysdeps/libm-i387/e_remainderf.S
+++ b/sysdeps/libm-i387/e_remainderf.S
@@ -16,3 +16,4 @@ ENTRY(__ieee754_remainderf)
 	jp	1b
 	fstpl	%st(1)
 	ret
+PSEUDO_END (__ieee754_remainderf)
diff --git a/sysdeps/libm-i387/e_remainderl.S b/sysdeps/libm-i387/e_remainderl.S
index ce98515167..2c32550708 100644
--- a/sysdeps/libm-i387/e_remainderl.S
+++ b/sysdeps/libm-i387/e_remainderl.S
@@ -17,3 +17,4 @@ ENTRY(__ieee754_remainderl)
 	sahf
 	jp	1b
 	ret
+PSEUDO_END (__ieee754_remainderl)
diff --git a/sysdeps/libm-i387/e_scalb.S b/sysdeps/libm-i387/e_scalb.S
index 7d95f8e3b3..0aed96d1c5 100644
--- a/sysdeps/libm-i387/e_scalb.S
+++ b/sysdeps/libm-i387/e_scalb.S
@@ -12,3 +12,4 @@ ENTRY(__ieee754_scalb)
 	fldl	4(%esp)
 	fscale
 	ret
+PSEUDO_END(__ieee754_scalb)
diff --git a/sysdeps/libm-i387/e_scalbl.S b/sysdeps/libm-i387/e_scalbl.S
index 8d5cd3b429..40d6ff028f 100644
--- a/sysdeps/libm-i387/e_scalbl.S
+++ b/sysdeps/libm-i387/e_scalbl.S
@@ -14,3 +14,4 @@ ENTRY(__ieee754_scalbl)
 	fldt	4(%esp)
 	fscale
 	ret
+PSEUDO_END(__ieee754_scalbl)
diff --git a/sysdeps/libm-i387/e_sqrt.S b/sysdeps/libm-i387/e_sqrt.S
index 34fe9b7136..170363fa87 100644
--- a/sysdeps/libm-i387/e_sqrt.S
+++ b/sysdeps/libm-i387/e_sqrt.S
@@ -11,3 +11,4 @@ ENTRY(__ieee754_sqrt)
 	fldl	4(%esp)
 	fsqrt
 	ret
+PSEUDO_END (__ieee754_sqrt)
diff --git a/sysdeps/libm-i387/e_sqrtf.S b/sysdeps/libm-i387/e_sqrtf.S
index d20c4c1254..f13c129aa0 100644
--- a/sysdeps/libm-i387/e_sqrtf.S
+++ b/sysdeps/libm-i387/e_sqrtf.S
@@ -11,3 +11,4 @@ ENTRY(__ieee754_sqrtf)
 	flds	4(%esp)
 	fsqrt
 	ret
+PSEUDO_END (__ieee754_sqrtf)
diff --git a/sysdeps/libm-i387/e_sqrtl.S b/sysdeps/libm-i387/e_sqrtl.S
index 88e5f82a0c..56947e16f8 100644
--- a/sysdeps/libm-i387/e_sqrtl.S
+++ b/sysdeps/libm-i387/e_sqrtl.S
@@ -13,3 +13,4 @@ ENTRY(__ieee754_sqrtl)
 	fldt	4(%esp)
 	fsqrt
 	ret
+PSEUDO_END (__ieee754_sqrtl)
diff --git a/sysdeps/libm-i387/s_atan.S b/sysdeps/libm-i387/s_atan.S
index 4dcd54fdaf..f670031877 100644
--- a/sysdeps/libm-i387/s_atan.S
+++ b/sysdeps/libm-i387/s_atan.S
@@ -12,4 +12,5 @@ ENTRY(__atan)
 	fld1
 	fpatan
 	ret
+PSEUDO_END (__atan)
 weak_alias (__atan, atan)
diff --git a/sysdeps/libm-i387/s_atanf.S b/sysdeps/libm-i387/s_atanf.S
index d00593db7c..803b7f972d 100644
--- a/sysdeps/libm-i387/s_atanf.S
+++ b/sysdeps/libm-i387/s_atanf.S
@@ -12,4 +12,5 @@ ENTRY(__atanf)
 	fld1
 	fpatan
 	ret
+PSEUDO_END (__atanf)
 weak_alias (__atanf, atanf)
diff --git a/sysdeps/libm-i387/s_atanl.S b/sysdeps/libm-i387/s_atanl.S
index 867e60b1c2..59f139005a 100644
--- a/sysdeps/libm-i387/s_atanl.S
+++ b/sysdeps/libm-i387/s_atanl.S
@@ -14,4 +14,5 @@ ENTRY(__atanl)
 	fld1
 	fpatan
 	ret
+PSEUDO_END (__atanl)
 weak_alias (__atanl, atanl)
diff --git a/sysdeps/libm-i387/s_ceil.S b/sysdeps/libm-i387/s_ceil.S
index eabe662a6c..a500b07d31 100644
--- a/sysdeps/libm-i387/s_ceil.S
+++ b/sysdeps/libm-i387/s_ceil.S
@@ -13,10 +13,14 @@ ENTRY(__ceil)
 	subl	$8,%esp
 
 	fstcw	-4(%ebp)		/* store fpu control word */
-	movw	-4(%ebp),%dx
-	orw	$0x0800,%dx		/* round towards +oo */
-	andw	$0xfbff,%dx
-	movw	%dx,-8(%ebp)
+
+	/* We use here %edx although only the low 1 bits are defined.
+	   But none of the operations should care and they are faster
+	   than the 16 bit operations.  */
+	movl	-4(%ebp),%edx
+	orl	$0x0800,%edx		/* round towards +oo */
+	andl	$0xfbff,%edx
+	movl	%edx,-8(%ebp)
 	fldcw	-8(%ebp)		/* load modfied control word */
 
 	fldl	8(%ebp);		/* round */
@@ -26,4 +30,5 @@ ENTRY(__ceil)
 
 	leave
 	ret
+PSEUDO_END (__ceil)
 weak_alias (__ceil, ceil)
diff --git a/sysdeps/libm-i387/s_ceilf.S b/sysdeps/libm-i387/s_ceilf.S
index c2163abef1..4789b014d8 100644
--- a/sysdeps/libm-i387/s_ceilf.S
+++ b/sysdeps/libm-i387/s_ceilf.S
@@ -13,10 +13,14 @@ ENTRY(__ceilf)
 	subl	$8,%esp
 
 	fstcw	-4(%ebp)		/* store fpu control word */
-	movw	-4(%ebp),%dx
-	orw	$0x0800,%dx		/* round towards +oo */
-	andw	$0xfbff,%dx
-	movw	%dx,-8(%ebp)
+
+	/* We use here %edx although only the low 1 bits are defined.
+	   But none of the operations should care and they are faster
+	   than the 16 bit operations.  */
+	movl	-4(%ebp),%edx
+	orl	$0x0800,%edx		/* round towards +oo */
+	andl	$0xfbff,%edx
+	movl	%edx,-8(%ebp)
 	fldcw	-8(%ebp)		/* load modfied control word */
 
 	flds	8(%ebp);		/* round */
@@ -26,4 +30,5 @@ ENTRY(__ceilf)
 
 	leave
 	ret
+PSEUDO_END (__ceilf)
 weak_alias (__ceilf, ceilf)
diff --git a/sysdeps/libm-i387/s_ceill.S b/sysdeps/libm-i387/s_ceill.S
index fd7bd38752..a02a54768d 100644
--- a/sysdeps/libm-i387/s_ceill.S
+++ b/sysdeps/libm-i387/s_ceill.S
@@ -14,10 +14,14 @@ ENTRY(__ceill)
 	subl	$8,%esp
 
 	fstcw	-4(%ebp)		/* store fpu control word */
-	movw	-4(%ebp),%dx
-	orw	$0x0800,%dx		/* round towards +oo */
-	andw	$0xfbff,%dx
-	movw	%dx,-8(%ebp)
+
+	/* We use here %edx although only the low 1 bits are defined.
+	   But none of the operations should care and they are faster
+	   than the 16 bit operations.  */
+	movl	-4(%ebp),%edx
+	orl	$0x0800,%edx		/* round towards +oo */
+	andl	$0xfbff,%edx
+	movl	%edx,-8(%ebp)
 	fldcw	-8(%ebp)		/* load modfied control word */
 
 	fldt	8(%ebp);		/* round */
@@ -27,4 +31,5 @@ ENTRY(__ceill)
 
 	leave
 	ret
+PSEUDO_END (__ceill)
 weak_alias (__ceill, ceill)
diff --git a/sysdeps/libm-i387/s_copysign.S b/sysdeps/libm-i387/s_copysign.S
index 0de3affa46..45b86f58c8 100644
--- a/sysdeps/libm-i387/s_copysign.S
+++ b/sysdeps/libm-i387/s_copysign.S
@@ -9,11 +9,12 @@ RCSID("$NetBSD: s_copysign.S,v 1.4 1995/05/08 23:53:02 jtc Exp $")
 
 ENTRY(__copysign)
 	movl	16(%esp),%edx
-	andl	$0x80000000,%edx
 	movl	8(%esp),%eax
+	andl	$0x80000000,%edx
 	andl	$0x7fffffff,%eax
 	orl	%edx,%eax
 	movl	%eax,8(%esp)
 	fldl	4(%esp)
 	ret
+PSEUDO_END (__copysign)
 weak_alias (__copysign, copysign)
diff --git a/sysdeps/libm-i387/s_copysignf.S b/sysdeps/libm-i387/s_copysignf.S
index a55cd37444..4844a2b879 100644
--- a/sysdeps/libm-i387/s_copysignf.S
+++ b/sysdeps/libm-i387/s_copysignf.S
@@ -9,11 +9,12 @@ RCSID("$NetBSD: s_copysignf.S,v 1.3 1995/05/08 23:53:25 jtc Exp $")
 
 ENTRY(__copysignf)
 	movl	8(%esp),%edx
-	andl	$0x80000000,%edx
 	movl	4(%esp),%eax
+	andl	$0x80000000,%edx
 	andl	$0x7fffffff,%eax
 	orl	%edx,%eax
 	movl	%eax,4(%esp)
 	flds	4(%esp)
 	ret
+PSEUDO_END (__copysignf)
 weak_alias (__copysignf, copysignf)
diff --git a/sysdeps/libm-i387/s_copysignl.S b/sysdeps/libm-i387/s_copysignl.S
index f65f6842ea..37e34fe1b4 100644
--- a/sysdeps/libm-i387/s_copysignl.S
+++ b/sysdeps/libm-i387/s_copysignl.S
@@ -15,6 +15,7 @@ ENTRY(__copysignl)
 	andl	$0x7fff,%eax
 	orl	%edx,%eax
 	movl	%eax,12(%esp)
-	fldl	4(%esp)
+	fldt	4(%esp)
 	ret
+PSEUDO_END (__copysignl)
 weak_alias (__copysignl, copysignl)
diff --git a/sysdeps/libm-i387/s_cos.S b/sysdeps/libm-i387/s_cos.S
index 0ccf8bc6e6..6b47e80d2e 100644
--- a/sysdeps/libm-i387/s_cos.S
+++ b/sysdeps/libm-i387/s_cos.S
@@ -13,7 +13,7 @@ ENTRY(__cos)
 	fnstsw	%ax
 	andw	$0x400,%ax
 	jnz	1f
-	ret	
+	ret
 1:	fldpi
 	fadd	%st(0)
 	fxch	%st(1)
@@ -24,4 +24,5 @@ ENTRY(__cos)
 	fstp	%st(1)
 	fcos
 	ret
+PSEUDO_END (__cos)
 weak_alias (__cos, cos)
diff --git a/sysdeps/libm-i387/s_cosf.S b/sysdeps/libm-i387/s_cosf.S
index a200e04fbe..a2bd0e5fa9 100644
--- a/sysdeps/libm-i387/s_cosf.S
+++ b/sysdeps/libm-i387/s_cosf.S
@@ -11,5 +11,6 @@ RCSID("$NetBSD: s_cosf.S,v 1.3 1995/05/08 23:55:16 jtc Exp $")
 ENTRY(__cosf)
 	flds	4(%esp)
 	fcos
-	ret	
+	ret
+PSEUDO_END (__cosf)
 weak_alias (__cosf, cosf)
diff --git a/sysdeps/libm-i387/s_cosl.S b/sysdeps/libm-i387/s_cosl.S
index e2c22428b2..2ddb549b77 100644
--- a/sysdeps/libm-i387/s_cosl.S
+++ b/sysdeps/libm-i387/s_cosl.S
@@ -26,4 +26,5 @@ ENTRY(__cosl)
 	fstp	%st(1)
 	fcos
 	ret
+PSEUDO_END (__cosl)
 weak_alias (__cosl, cosl)
diff --git a/sysdeps/libm-i387/s_finite.S b/sysdeps/libm-i387/s_finite.S
index 233155e4d6..538fec94e1 100644
--- a/sysdeps/libm-i387/s_finite.S
+++ b/sysdeps/libm-i387/s_finite.S
@@ -14,4 +14,5 @@ ENTRY(__finite)
 	setne	%al
 	andl	$0x000000ff, %eax
 	ret
+PSEUDO_END (__finite)
 weak_alias (__finite, finite)
diff --git a/sysdeps/libm-i387/s_finitef.S b/sysdeps/libm-i387/s_finitef.S
index 28a0a40308..cb0caabf6f 100644
--- a/sysdeps/libm-i387/s_finitef.S
+++ b/sysdeps/libm-i387/s_finitef.S
@@ -14,4 +14,5 @@ ENTRY(__finitef)
 	setne	%al
 	andl	$0x000000ff, %eax
 	ret
+PSEUDO_END (__finitef)
 weak_alias (__finitef, finitef)
diff --git a/sysdeps/libm-i387/s_finitel.S b/sysdeps/libm-i387/s_finitel.S
index d163965c0d..7af80475ae 100644
--- a/sysdeps/libm-i387/s_finitel.S
+++ b/sysdeps/libm-i387/s_finitel.S
@@ -16,4 +16,5 @@ ENTRY(__finitel)
 	setne	%al
 	andl	$0x000000ff, %eax
 	ret
+PSEUDO_END (__finitel)
 weak_alias (__finitel, finitel)
diff --git a/sysdeps/libm-i387/s_floor.S b/sysdeps/libm-i387/s_floor.S
index 66e688f7f7..7599303f3d 100644
--- a/sysdeps/libm-i387/s_floor.S
+++ b/sysdeps/libm-i387/s_floor.S
@@ -26,4 +26,5 @@ ENTRY(__floor)
 
 	leave
 	ret
+PSEUDO_END (__floor)
 weak_alias (__floor, floor)
diff --git a/sysdeps/libm-i387/s_floorf.S b/sysdeps/libm-i387/s_floorf.S
index 4b10f74e4f..c45d82e302 100644
--- a/sysdeps/libm-i387/s_floorf.S
+++ b/sysdeps/libm-i387/s_floorf.S
@@ -26,4 +26,5 @@ ENTRY(__floorf)
 
 	leave
 	ret
+PSEUDO_END (__floorf)
 weak_alias (__floorf, floorf)
diff --git a/sysdeps/libm-i387/s_floorl.S b/sysdeps/libm-i387/s_floorl.S
index af52ffcacf..ae4ba2ea4d 100644
--- a/sysdeps/libm-i387/s_floorl.S
+++ b/sysdeps/libm-i387/s_floorl.S
@@ -27,4 +27,5 @@ ENTRY(__floorl)
 
 	leave
 	ret
+PSEUDO_END (__floorl)
 weak_alias (__floorl, floorl)
diff --git a/sysdeps/libm-i387/s_ilogb.S b/sysdeps/libm-i387/s_ilogb.S
index f11ed585c0..6fb51d913f 100644
--- a/sysdeps/libm-i387/s_ilogb.S
+++ b/sysdeps/libm-i387/s_ilogb.S
@@ -21,4 +21,5 @@ ENTRY(__ilogb)
 
 	leave
 	ret
+PSEUDO_END (__ilogb)
 weak_alias (__ilogb, ilogb)
diff --git a/sysdeps/libm-i387/s_ilogbf.S b/sysdeps/libm-i387/s_ilogbf.S
index 5a61d28630..71e4f42c9a 100644
--- a/sysdeps/libm-i387/s_ilogbf.S
+++ b/sysdeps/libm-i387/s_ilogbf.S
@@ -21,4 +21,5 @@ ENTRY(__ilogbf)
 
 	leave
 	ret
+PSEUDO_END (__ilogbf)
 weak_alias (__ilogbf, ilogbf)
diff --git a/sysdeps/libm-i387/s_ilogbl.S b/sysdeps/libm-i387/s_ilogbl.S
index 11c81011c6..2b841463df 100644
--- a/sysdeps/libm-i387/s_ilogbl.S
+++ b/sysdeps/libm-i387/s_ilogbl.S
@@ -21,4 +21,5 @@ ENTRY(__ilogbl)
 
 	leave
 	ret
+PSEUDO_END (__ilogbl)
 weak_alias (__ilogbl, ilogbl)
diff --git a/sysdeps/libm-i387/s_log1p.S b/sysdeps/libm-i387/s_log1p.S
index c4aee4aa9c..ce8665d3a5 100644
--- a/sysdeps/libm-i387/s_log1p.S
+++ b/sysdeps/libm-i387/s_log1p.S
@@ -10,7 +10,7 @@ RCSID("$NetBSD: s_log1p.S,v 1.7 1995/05/09 00:10:58 jtc Exp $")
 /*
  * Since the fyl2xp1 instruction has such a limited range:
  *	-(1 - (sqrt(2) / 2)) <= x <= sqrt(2) - 1
- * it's not worth trying to use it.  
+ * it's not worth trying to use it.
  */
 
 ENTRY(__log1p)
@@ -20,4 +20,5 @@ ENTRY(__log1p)
 	faddp
 	fyl2x
 	ret
+PSEUDO_END (__log1p)
 weak_alias (__log1p, log1p)
diff --git a/sysdeps/libm-i387/s_log1pf.S b/sysdeps/libm-i387/s_log1pf.S
index e268550ae8..7a161f26f9 100644
--- a/sysdeps/libm-i387/s_log1pf.S
+++ b/sysdeps/libm-i387/s_log1pf.S
@@ -10,7 +10,7 @@ RCSID("$NetBSD: s_log1pf.S,v 1.4 1995/05/09 00:13:05 jtc Exp $")
 /*
  * Since the fyl2xp1 instruction has such a limited range:
  *	-(1 - (sqrt(2) / 2)) <= x <= sqrt(2) - 1
- * it's not worth trying to use it.  
+ * it's not worth trying to use it.
  */
 
 ENTRY(__log1pf)
@@ -20,4 +20,5 @@ ENTRY(__log1pf)
 	faddp
 	fyl2x
 	ret
+PSEUDO_END (__log1pf)
 weak_alias (__log1pf, log1pf)
diff --git a/sysdeps/libm-i387/s_log1pl.S b/sysdeps/libm-i387/s_log1pl.S
index 4a9faf7ba4..647e136413 100644
--- a/sysdeps/libm-i387/s_log1pl.S
+++ b/sysdeps/libm-i387/s_log1pl.S
@@ -22,4 +22,5 @@ ENTRY(__log1pl)
 	faddp
 	fyl2x
 	ret
+PSEUDO_END (__log1pl)
 weak_alias (__log1pl, log1pl)
diff --git a/sysdeps/libm-i387/s_logb.S b/sysdeps/libm-i387/s_logb.S
index 4f071e0552..92d8fee85c 100644
--- a/sysdeps/libm-i387/s_logb.S
+++ b/sysdeps/libm-i387/s_logb.S
@@ -12,4 +12,5 @@ ENTRY(__logb)
 	fxtract
 	fstpl	%st
 	ret
+PSEUDO_END (__logb)
 weak_alias (__logb, logb)
diff --git a/sysdeps/libm-i387/s_logbf.S b/sysdeps/libm-i387/s_logbf.S
index ecdd0aea6f..b557974a82 100644
--- a/sysdeps/libm-i387/s_logbf.S
+++ b/sysdeps/libm-i387/s_logbf.S
@@ -12,4 +12,5 @@ ENTRY(__logbf)
 	fxtract
 	fstpl	%st
 	ret
+PSEUDO_END (__logbf)
 weak_alias (__logbf, logbf)
diff --git a/sysdeps/libm-i387/s_logbl.S b/sysdeps/libm-i387/s_logbl.S
index e72b1fb941..91bddb6b3a 100644
--- a/sysdeps/libm-i387/s_logbl.S
+++ b/sysdeps/libm-i387/s_logbl.S
@@ -12,4 +12,5 @@ ENTRY(__logbl)
 	fldt	4(%esp)
 	fxtract
 	ret
+PSEUDO_END (__logbl)
 weak_alias (__logbl, logbl)
diff --git a/sysdeps/libm-i387/s_rint.S b/sysdeps/libm-i387/s_rint.S
index 2f09a47b00..9231fef32d 100644
--- a/sysdeps/libm-i387/s_rint.S
+++ b/sysdeps/libm-i387/s_rint.S
@@ -11,4 +11,5 @@ ENTRY(__rint)
 	fldl	4(%esp)
 	frndint
 	ret
+PSEUDO_END (__rint)
 weak_alias (__rint, rint)
diff --git a/sysdeps/libm-i387/s_rintf.S b/sysdeps/libm-i387/s_rintf.S
index de64d7996a..3e35f2c822 100644
--- a/sysdeps/libm-i387/s_rintf.S
+++ b/sysdeps/libm-i387/s_rintf.S
@@ -11,4 +11,5 @@ ENTRY(__rintf)
 	flds	4(%esp)
 	frndint
 	ret
+PSEUDO_END (__rintf)
 weak_alias (__rintf, rintf)
diff --git a/sysdeps/libm-i387/s_rintl.S b/sysdeps/libm-i387/s_rintl.S
index aec09a6ec4..a8198d3d7f 100644
--- a/sysdeps/libm-i387/s_rintl.S
+++ b/sysdeps/libm-i387/s_rintl.S
@@ -12,4 +12,5 @@ ENTRY(__rintl)
 	fldt	4(%esp)
 	frndint
 	ret
+PSEUDO_END (__rintl)
 weak_alias (__rintl, rintl)
diff --git a/sysdeps/libm-i387/s_scalbn.S b/sysdeps/libm-i387/s_scalbn.S
index 99ecac63b5..4a4149500c 100644
--- a/sysdeps/libm-i387/s_scalbn.S
+++ b/sysdeps/libm-i387/s_scalbn.S
@@ -12,4 +12,5 @@ ENTRY(__scalbn)
 	fldl	4(%esp)
 	fscale
 	ret
+PSEUDO_END (__scalbn)
 weak_alias (__scalbn, scalbn)
diff --git a/sysdeps/libm-i387/s_scalbnf.S b/sysdeps/libm-i387/s_scalbnf.S
index 0203e91c55..080304d574 100644
--- a/sysdeps/libm-i387/s_scalbnf.S
+++ b/sysdeps/libm-i387/s_scalbnf.S
@@ -12,4 +12,5 @@ ENTRY(__scalbnf)
 	flds	4(%esp)
 	fscale
 	ret
+PSEUDO_END (__scalbnf)
 weak_alias (__scalbnf, scalbnf)
diff --git a/sysdeps/libm-i387/s_scalbnl.S b/sysdeps/libm-i387/s_scalbnl.S
index b5fdf820d3..adf1dea604 100644
--- a/sysdeps/libm-i387/s_scalbnl.S
+++ b/sysdeps/libm-i387/s_scalbnl.S
@@ -13,4 +13,5 @@ ENTRY(__scalbnl)
 	fldt	4(%esp)
 	fscale
 	ret
+PSEUDO_END (__scalbnl)
 weak_alias (__scalbnl, scalbnl)
diff --git a/sysdeps/libm-i387/s_significand.S b/sysdeps/libm-i387/s_significand.S
index 09f3a0a9f4..ff72b88560 100644
--- a/sysdeps/libm-i387/s_significand.S
+++ b/sysdeps/libm-i387/s_significand.S
@@ -12,4 +12,5 @@ ENTRY(__significand)
 	fxtract
 	fstpl	%st(1)
 	ret
+PSEUDO_END (__significand)
 weak_alias (__significand, significand)
diff --git a/sysdeps/libm-i387/s_significandf.S b/sysdeps/libm-i387/s_significandf.S
index b678bc524c..af92886501 100644
--- a/sysdeps/libm-i387/s_significandf.S
+++ b/sysdeps/libm-i387/s_significandf.S
@@ -12,4 +12,5 @@ ENTRY(__significandf)
 	fxtract
 	fstpl	%st(1)
 	ret
+PSEUDO_END (__significandf)
 weak_alias (__significandf, significandf)
diff --git a/sysdeps/libm-i387/s_significandl.S b/sysdeps/libm-i387/s_significandl.S
index e512f54fb2..1483a0dec2 100644
--- a/sysdeps/libm-i387/s_significandl.S
+++ b/sysdeps/libm-i387/s_significandl.S
@@ -11,6 +11,7 @@ RCSID("$NetBSD: $")
 ENTRY(__significandl)
 	fldt	4(%esp)
 	fxtract
-	fstpt	%st(1)
+	fincstp
 	ret
+PSEUDO_END (__significandl)
 weak_alias (__significandl, significandl)
diff --git a/sysdeps/libm-i387/s_sin.S b/sysdeps/libm-i387/s_sin.S
index 79284959a1..f06c9440ad 100644
--- a/sysdeps/libm-i387/s_sin.S
+++ b/sysdeps/libm-i387/s_sin.S
@@ -24,4 +24,5 @@ ENTRY(__sin)
 	fstp	%st(1)
 	fsin
 	ret
+PSEUDO_END (__sin)
 weak_alias (__sin, sin)
diff --git a/sysdeps/libm-i387/s_sinf.S b/sysdeps/libm-i387/s_sinf.S
index 03a42cbb26..464ccb2b8a 100644
--- a/sysdeps/libm-i387/s_sinf.S
+++ b/sysdeps/libm-i387/s_sinf.S
@@ -12,4 +12,5 @@ ENTRY(__sinf)
 	flds	4(%esp)
 	fsin
 	ret
+PSEUDO_END (__sinf)
 weak_alias (__sinf, sinf)
diff --git a/sysdeps/libm-i387/s_sinl.S b/sysdeps/libm-i387/s_sinl.S
index 03c9c874b9..2872334881 100644
--- a/sysdeps/libm-i387/s_sinl.S
+++ b/sysdeps/libm-i387/s_sinl.S
@@ -26,4 +26,5 @@ ENTRY(__sinl)
 	fstp	%st(1)
 	fsin
 	ret
+PSEUDO_END (__sinl)
 weak_alias (__sinl, sinl)
diff --git a/sysdeps/libm-i387/s_tan.S b/sysdeps/libm-i387/s_tan.S
index 9474c8cfc2..9333671873 100644
--- a/sysdeps/libm-i387/s_tan.S
+++ b/sysdeps/libm-i387/s_tan.S
@@ -26,4 +26,5 @@ ENTRY(__tan)
 	fptan
 	fstp	%st(0)
 	ret
+PSEUDO_END (__tan)
 weak_alias (__tan, tan)
diff --git a/sysdeps/libm-i387/s_tanf.S b/sysdeps/libm-i387/s_tanf.S
index 3296434174..cbf8dd8496 100644
--- a/sysdeps/libm-i387/s_tanf.S
+++ b/sysdeps/libm-i387/s_tanf.S
@@ -13,4 +13,5 @@ ENTRY(__tanf)
 	fptan
 	fstp	%st(0)
 	ret
+PSEUDO_END (__tanf)
 weak_alias (__tanf, tanf)
diff --git a/sysdeps/libm-i387/s_tanl.S b/sysdeps/libm-i387/s_tanl.S
index 6b1532af9e..c818e96f88 100644
--- a/sysdeps/libm-i387/s_tanl.S
+++ b/sysdeps/libm-i387/s_tanl.S
@@ -28,4 +28,5 @@ ENTRY(__tanl)
 	fptan
 	fstp	%st(0)
 	ret
+PSEUDO_END (__tanl)
 weak_alias (__tanl, tanl)
diff --git a/sysdeps/libm-ieee754/e_atanhl.c b/sysdeps/libm-ieee754/e_atanhl.c
index d74db481d0..0e6dadd602 100644
--- a/sysdeps/libm-ieee754/e_atanhl.c
+++ b/sysdeps/libm-ieee754/e_atanhl.c
@@ -40,9 +40,9 @@ static char rcsid[] = "$NetBSD: $";
 #include "math_private.h"
 
 #ifdef __STDC__
-static const long double one = 1.0, huge = 1e16380;
+static const long double one = 1.0, huge = 1e4900L;
 #else
-static long double one = 1.0, huge = 1e16380;
+static long double one = 1.0, huge = 1e4900L;
 #endif
 
 #ifdef __STDC__
@@ -61,7 +61,7 @@ static double long zero = 0.0;
 	long double t;
 	int32_t ix;
 	u_int32_t se,i0,i1;
-	EXTRACT_LDOUBLE_WORDS(se,i0,i1,x);
+	GET_LDOUBLE_WORDS(se,i0,i1,x);
 	ix = se&0x7fff;
 	if ((ix+((((i0&0x7fffffff)|i1)|(-((i0&0x7fffffff)|i1)))>>31))>0x3fff)
 	  /* |x|>1 */
diff --git a/sysdeps/libm-ieee754/e_coshl.c b/sysdeps/libm-ieee754/e_coshl.c
new file mode 100644
index 0000000000..6af846cb2d
--- /dev/null
+++ b/sysdeps/libm-ieee754/e_coshl.c
@@ -0,0 +1,94 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: e_cosh.c,v 1.7 1995/05/10 20:44:58 jtc Exp $";
+#endif
+
+/* __ieee754_coshl(x)
+ * Method :
+ * mathematically coshl(x) if defined to be (exp(x)+exp(-x))/2
+ *	1. Replace x by |x| (coshl(x) = coshl(-x)).
+ *	2.
+ *		                                        [ exp(x) - 1 ]^2
+ *	    0        <= x <= ln2/2  :  coshl(x) := 1 + -------------------
+ *			       			           2*exp(x)
+ *
+ *		                                   exp(x) +  1/exp(x)
+ *	    ln2/2    <= x <= 22     :  coshl(x) := -------------------
+ *			       			           2
+ *	    22       <= x <= lnovft :  coshl(x) := expl(x)/2
+ *	    lnovft   <= x <= ln2ovft:  coshl(x) := expl(x/2)/2 * expl(x/2)
+ *	    ln2ovft  <  x	    :  coshl(x) := huge*huge (overflow)
+ *
+ * Special cases:
+ *	coshl(x) is |x| if x is +INF, -INF, or NaN.
+ *	only coshl(0)=1 is exact for finite x.
+ */
+
+#include "math.h"
+#include "math_private.h"
+
+#ifdef __STDC__
+static const long double one = 1.0, half=0.5, huge = 1.0e4900L;
+#else
+static long double one = 1.0, half=0.5, huge = 1.0e4900L;
+#endif
+
+#ifdef __STDC__
+	long double __ieee754_coshl(long double x)
+#else
+	long double __ieee754_coshl(x)
+	long double x;
+#endif
+{
+	long double t,w;
+	int32_t ex;
+	u_int32_t mx,lx;
+
+    /* High word of |x|. */
+	GET_LDOUBLE_WORDS(ex,mx,lx,x);
+	ex &= 0x7fff;
+
+    /* x is INF or NaN */
+	if(ex==0x7fff) return x*x;
+
+    /* |x| in [0,0.5*ln2], return 1+expm1l(|x|)^2/(2*expl(|x|)) */
+	if(ex < 0x3ffd || (ex == 0x3ffd && mx < 0xb17217f7u)) {
+	    t = __expm1l(fabsl(x));
+	    w = one+t;
+	    if (ex<0x3fbc) return w;	/* cosh(tiny) = 1 */
+	    return one+(t*t)/(w+w);
+	}
+
+    /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
+	if (ex < 0x4003 || (ex == 0x4003 && mx < 0xb0000000u)) {
+		t = __ieee754_expl(fabsl(x));
+		return half*t+half/t;
+	}
+
+    /* |x| in [22, ln(maxdouble)] return half*exp(|x|) */
+	if (ex < 0x400c || (ex == 0x400c && mx < 0xb1700000u))
+		return half*__ieee754_expl(fabsl(x));
+
+    /* |x| in [log(maxdouble), overflowthresold] */
+	if (ex < 0x400d
+	    || (ex == 0x400d && (mx < 0xb170b513u
+				  || (mx == 0xb170b513u && lx < 0xa1dfd60cu))))
+	{
+	    w = __ieee754_expl(half*fabsl(x));
+	    t = half*w;
+	    return t*w;
+	}
+
+    /* |x| > overflowthresold, cosh(x) overflow */
+	return huge*huge;
+}
diff --git a/sysdeps/libm-ieee754/s_asinh.c b/sysdeps/libm-ieee754/s_asinh.c
index bb3c495dfc..985cfe32e1 100644
--- a/sysdeps/libm-ieee754/s_asinh.c
+++ b/sysdeps/libm-ieee754/s_asinh.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -16,7 +16,7 @@ static char rcsid[] = "$NetBSD: s_asinh.c,v 1.9 1995/05/12 04:57:37 jtc Exp $";
 
 /* asinh(x)
  * Method :
- *	Based
+ *	Based on
  *		asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ]
  *	we have
  *	asinh(x) := x  if  1+x*x=1,
diff --git a/sysdeps/libm-ieee754/s_asinhl.c b/sysdeps/libm-ieee754/s_asinhl.c
index 823288a1a0..865bc31052 100644
--- a/sysdeps/libm-ieee754/s_asinhl.c
+++ b/sysdeps/libm-ieee754/s_asinhl.c
@@ -39,7 +39,7 @@ static long double
 #endif
 one =  1.000000000000000000000e+00L, /* 0x3FFF, 0x00000000, 0x00000000 */
 ln2 =  6.931471805599453094287e-01L, /* 0x3FFE, 0xB17217F7, 0xD1CF79AC */
-huge=  1.000000000000000000e+16380L;
+huge=  1.000000000000000000e+4900L;
 
 #ifdef __STDC__
 	long double __asinhl(long double x)
diff --git a/sysdeps/libm-ieee754/s_atan.c b/sysdeps/libm-ieee754/s_atan.c
index 2f3c545a33..6657b15cda 100644
--- a/sysdeps/libm-ieee754/s_atan.c
+++ b/sysdeps/libm-ieee754/s_atan.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -28,9 +28,9 @@ static char rcsid[] = "$NetBSD: s_atan.c,v 1.8 1995/05/10 20:46:45 jtc Exp $";
  *      [39/16,INF]   atan(x) = atan(INF) + atan( -1/t )
  *
  * Constants:
- * The hexadecimal values are the intended ones for the following 
- * constants. The decimal values may be used, provided that the 
- * compiler will convert from decimal to binary accurately enough 
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
  * to produce the hexadecimal values shown.
  */
 
@@ -78,9 +78,9 @@ static double aT[] = {
 };
 
 #ifdef __STDC__
-	static const double 
+	static const double
 #else
-	static double 
+	static double
 #endif
 one   = 1.0,
 huge   = 1.0e300;
@@ -114,9 +114,9 @@ huge   = 1.0e300;
 	x = fabs(x);
 	if (ix < 0x3ff30000) {		/* |x| < 1.1875 */
 	    if (ix < 0x3fe60000) {	/* 7/16 <=|x|<11/16 */
-		id = 0; x = (2.0*x-one)/(2.0+x); 
+		id = 0; x = (2.0*x-one)/(2.0+x);
 	    } else {			/* 11/16<=|x|< 19/16 */
-		id = 1; x  = (x-one)/(x+one); 
+		id = 1; x  = (x-one)/(x+one);
 	    }
 	} else {
 	    if (ix < 0x40038000) {	/* |x| < 2.4375 */
@@ -138,3 +138,7 @@ huge   = 1.0e300;
 	}
 }
 weak_alias (__atan, atan)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__atan, __atanl)
+weak_alias (__atan, atanl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_cbrt.c b/sysdeps/libm-ieee754/s_cbrt.c
index cf72f4c2fa..24a9c9adbd 100644
--- a/sysdeps/libm-ieee754/s_cbrt.c
+++ b/sysdeps/libm-ieee754/s_cbrt.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -40,9 +40,9 @@ F =  1.60714285714285720630e+00, /* 45/28     = 0x3FF9B6DB, 0x6DB6DB6E */
 G =  3.57142857142857150787e-01; /* 5/14      = 0x3FD6DB6D, 0xB6DB6DB7 */
 
 #ifdef __STDC__
-	double __cbrt(double x) 
+	double __cbrt(double x)
 #else
-	double __cbrt(x) 
+	double __cbrt(x)
 	double x;
 #endif
 {
@@ -56,7 +56,7 @@ G =  3.57142857142857150787e-01; /* 5/14      = 0x3FD6DB6D, 0xB6DB6DB7 */
 	hx  ^=sign;
 	if(hx>=0x7ff00000) return(x+x); /* cbrt(NaN,INF) is itself */
 	GET_LOW_WORD(low,x);
-	if((hx|low)==0) 
+	if((hx|low)==0)
 	    return(x);		/* cbrt(0) is itself */
 
 	SET_HIGH_WORD(x,hx);	/* x <- |x| */
@@ -72,9 +72,9 @@ G =  3.57142857142857150787e-01; /* 5/14      = 0x3FD6DB6D, 0xB6DB6DB7 */
     /* new cbrt to 23 bits, may be implemented in single precision */
 	r=t*t/x;
 	s=C+r*t;
-	t*=G+F/(s+E+D/s);	
+	t*=G+F/(s+E+D/s);
 
-    /* chopped to 20 bits and make it larger than cbrt(x) */ 
+    /* chopped to 20 bits and make it larger than cbrt(x) */
 	GET_HIGH_WORD(high,t);
 	INSERT_WORDS(t,high+0x00000001,0);
 
@@ -92,3 +92,7 @@ G =  3.57142857142857150787e-01; /* 5/14      = 0x3FD6DB6D, 0xB6DB6DB7 */
 	return(t);
 }
 weak_alias (__cbrt, cbrt)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__cbrt, __cbrtl)
+weak_alias (__cbrt, cbrtl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_ceil.c b/sysdeps/libm-ieee754/s_ceil.c
index 9c878f74bd..1b352a679e 100644
--- a/sysdeps/libm-ieee754/s_ceil.c
+++ b/sysdeps/libm-ieee754/s_ceil.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -46,7 +46,7 @@ static double huge = 1.0e300;
 	if(j0<20) {
 	    if(j0<0) { 	/* raise inexact if x != 0 */
 		if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
-		    if(i0<0) {i0=0x80000000;i1=0;} 
+		    if(i0<0) {i0=0x80000000;i1=0;}
 		    else if((i0|i1)!=0) { i0=0x3ff00000;i1=0;}
 		}
 	    } else {
@@ -65,7 +65,7 @@ static double huge = 1.0e300;
 	    if((i1&i)==0) return x;	/* x is integral */
 	    if(huge+x>0.0) { 		/* raise inexact flag */
 		if(i0>0) {
-		    if(j0==20) i0+=1; 
+		    if(j0==20) i0+=1;
 		    else {
 			j = i1 + (1<<(52-j0));
 			if(j<i1) i0+=1;	/* got a carry */
@@ -79,3 +79,7 @@ static double huge = 1.0e300;
 	return x;
 }
 weak_alias (__ceil, ceil)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__ceil, __ceill)
+weak_alias (__ceil, ceill)
+#endif
diff --git a/sysdeps/libm-ieee754/s_copysign.c b/sysdeps/libm-ieee754/s_copysign.c
index b86ac76013..5e35e6943c 100644
--- a/sysdeps/libm-ieee754/s_copysign.c
+++ b/sysdeps/libm-ieee754/s_copysign.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -37,3 +37,7 @@ static char rcsid[] = "$NetBSD: s_copysign.c,v 1.8 1995/05/10 20:46:57 jtc Exp $
         return x;
 }
 weak_alias (__copysign, copysign)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__copysign, __copysignl)
+weak_alias (__copysign, copysignl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_cos.c b/sysdeps/libm-ieee754/s_cos.c
index 33a7316a02..7edb5deafe 100644
--- a/sysdeps/libm-ieee754/s_cos.c
+++ b/sysdeps/libm-ieee754/s_cos.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -23,8 +23,8 @@ static char rcsid[] = "$NetBSD: s_cos.c,v 1.7 1995/05/10 20:47:02 jtc Exp $";
  *	__ieee754_rem_pio2	... argument reduction routine
  *
  * Method.
- *      Let S,C and T denote the sin, cos and tan respectively on 
- *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
  *	in [-pi/4 , +pi/4], and let n = k mod 4.
  *	We have
  *
@@ -42,7 +42,7 @@ static char rcsid[] = "$NetBSD: s_cos.c,v 1.7 1995/05/10 20:47:02 jtc Exp $";
  *      trig(NaN)    is that NaN;
  *
  * Accuracy:
- *	TRIG(x) returns trig(x) nearly rounded 
+ *	TRIG(x) returns trig(x) nearly rounded
  */
 
 #include "math.h"
@@ -81,3 +81,7 @@ static char rcsid[] = "$NetBSD: s_cos.c,v 1.7 1995/05/10 20:47:02 jtc Exp $";
 	}
 }
 weak_alias (__cos, cos)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__cos, __cosl)
+weak_alias (__cos, cosl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_erf.c b/sysdeps/libm-ieee754/s_erf.c
index d3377a5036..022cf11abe 100644
--- a/sysdeps/libm-ieee754/s_erf.c
+++ b/sysdeps/libm-ieee754/s_erf.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -19,11 +19,11 @@ static char rcsid[] = "$NetBSD: s_erf.c,v 1.8 1995/05/10 20:47:05 jtc Exp $";
  *			     x
  *		      2      |\
  *     erf(x)  =  ---------  | exp(-t*t)dt
- *	 	   sqrt(pi) \| 
+ *	 	   sqrt(pi) \|
  *			     0
  *
  *     erfc(x) =  1-erf(x)
- *  Note that 
+ *  Note that
  *		erf(-x) = -erf(x)
  *		erfc(-x) = 2 - erfc(x)
  *
@@ -36,7 +36,7 @@ static char rcsid[] = "$NetBSD: s_erf.c,v 1.8 1995/05/10 20:47:05 jtc Exp $";
  *	   Q is an odd poly of degree 10.
  *						 -57.90
  *			| R - (erf(x)-x)/x | <= 2
- *	
+ *
  *
  *	   Remark. The formula is derived by noting
  *          erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....)
@@ -59,14 +59,14 @@ static char rcsid[] = "$NetBSD: s_erf.c,v 1.8 1995/05/10 20:47:05 jtc Exp $";
  *	   That is, we use rational approximation to approximate
  *			erf(1+s) - (c = (single)0.84506291151)
  *	   Note that |P1/Q1|< 0.078 for x in [0.84375,1.25]
- *	   where 
+ *	   where
  *		P1(s) = degree 6 poly in s
  *		Q1(s) = degree 6 poly in s
  *
- *      3. For x in [1.25,1/0.35(~2.857143)], 
+ *      3. For x in [1.25,1/0.35(~2.857143)],
  *         	erfc(x) = (1/x)*exp(-x*x-0.5625+R1/S1)
  *         	erf(x)  = 1 - erfc(x)
- *	   where 
+ *	   where
  *		R1(z) = degree 7 poly in z, (z=1/x^2)
  *		S1(z) = degree 8 poly in z
  *
@@ -84,7 +84,7 @@ static char rcsid[] = "$NetBSD: s_erf.c,v 1.8 1995/05/10 20:47:05 jtc Exp $";
  *	   To compute exp(-x*x-0.5625+R/S), let s be a single
  *	   precision number and s := x; then
  *		-x*x = -s*s + (s-x)*(s+x)
- *	        exp(-x*x-0.5626+R/S) = 
+ *	        exp(-x*x-0.5626+R/S) =
  *			exp(-s*s-0.5625)*exp((s-x)*(s+x)+R/S);
  *      Note2:
  *	   Here 4 and 5 make use of the asymptotic series
@@ -104,7 +104,7 @@ static char rcsid[] = "$NetBSD: s_erf.c,v 1.8 1995/05/10 20:47:05 jtc Exp $";
  *
  *      7. Special case:
  *         	erf(0)  = 0, erf(inf)  = 1, erf(-inf) = -1,
- *         	erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2, 
+ *         	erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2,
  *	   	erfc/erf(NaN) is NaN
  */
 
@@ -139,7 +139,7 @@ qq3  =  5.08130628187576562776e-03, /* 0x3F74D022, 0xC4D36B0F */
 qq4  =  1.32494738004321644526e-04, /* 0x3F215DC9, 0x221C1A10 */
 qq5  = -3.96022827877536812320e-06, /* 0xBED09C43, 0x42A26120 */
 /*
- * Coefficients for approximation to  erf  in [0.84375,1.25] 
+ * Coefficients for approximation to  erf  in [0.84375,1.25]
  */
 pa0  = -2.36211856075265944077e-03, /* 0xBF6359B8, 0xBEF77538 */
 pa1  =  4.14856118683748331666e-01, /* 0x3FDA8D00, 0xAD92B34D */
@@ -209,7 +209,7 @@ sb7  = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */
 
 	if(ix < 0x3feb0000) {		/* |x|<0.84375 */
 	    if(ix < 0x3e300000) { 	/* |x|<2**-28 */
-	        if (ix < 0x00800000) 
+	        if (ix < 0x00800000)
 		    return 0.125*(8.0*x+efx8*x);  /*avoid underflow */
 		return x + efx*x;
 	    }
@@ -241,7 +241,7 @@ sb7  = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */
 	    S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
 				sb5+s*(sb6+s*sb7))))));
 	}
-	z  = x;  
+	z  = x;
 	SET_LOW_WORD(z,0);
 	r  =  __ieee754_exp(-z*z-0.5625)*__ieee754_exp((z-x)*(z+x)+R/S);
 	if(hx>=0) return one-r/x; else return  r/x-one;
@@ -284,7 +284,7 @@ weak_alias (__erf, erf)
 	    P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
 	    Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
 	    if(hx>=0) {
-	        z  = one-erx; return z - P/Q; 
+	        z  = one-erx; return z - P/Q;
 	    } else {
 		z = erx+P/Q; return one+z;
 	    }
@@ -314,3 +314,7 @@ weak_alias (__erf, erf)
 	}
 }
 weak_alias (__erfc, erfc)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__erfc, __erfcl)
+weak_alias (__erfc, erfcl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_expm1.c b/sysdeps/libm-ieee754/s_expm1.c
index a88ec295d3..c8354b7262 100644
--- a/sysdeps/libm-ieee754/s_expm1.c
+++ b/sysdeps/libm-ieee754/s_expm1.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -21,9 +21,9 @@ static char rcsid[] = "$NetBSD: s_expm1.c,v 1.8 1995/05/10 20:47:09 jtc Exp $";
  *   1. Argument reduction:
  *	Given x, find r and integer k such that
  *
- *               x = k*ln2 + r,  |r| <= 0.5*ln2 ~ 0.34658  
+ *               x = k*ln2 + r,  |r| <= 0.5*ln2 ~ 0.34658
  *
- *      Here a correction term c will be computed to compensate 
+ *      Here a correction term c will be computed to compensate
  *	the error in r when rounded to a floating-point number.
  *
  *   2. Approximating expm1(r) by a special rational function on
@@ -36,9 +36,9 @@ static char rcsid[] = "$NetBSD: s_expm1.c,v 1.8 1995/05/10 20:47:09 jtc Exp $";
  *	    R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r)
  *		     = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r))
  *		     = 1 - r^2/60 + r^4/2520 - r^6/100800 + ...
- *      We use a special Reme algorithm on [0,0.347] to generate 
- * 	a polynomial of degree 5 in r*r to approximate R1. The 
- *	maximum error of this polynomial approximation is bounded 
+ *      We use a special Reme algorithm on [0,0.347] to generate
+ * 	a polynomial of degree 5 in r*r to approximate R1. The
+ *	maximum error of this polynomial approximation is bounded
  *	by 2**-61. In other words,
  *	    R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5
  *	where 	Q1  =  -1.6666666666666567384E-2,
@@ -49,28 +49,28 @@ static char rcsid[] = "$NetBSD: s_expm1.c,v 1.8 1995/05/10 20:47:09 jtc Exp $";
  *  	(where z=r*r, and the values of Q1 to Q5 are listed below)
  *	with error bounded by
  *	    |                  5           |     -61
- *	    | 1.0+Q1*z+...+Q5*z   -  R1(z) | <= 2 
+ *	    | 1.0+Q1*z+...+Q5*z   -  R1(z) | <= 2
  *	    |                              |
- *	
- *	expm1(r) = exp(r)-1 is then computed by the following 
- * 	specific way which minimize the accumulation rounding error: 
+ *
+ *	expm1(r) = exp(r)-1 is then computed by the following
+ * 	specific way which minimize the accumulation rounding error:
  *			       2     3
  *			      r     r    [ 3 - (R1 + R1*r/2)  ]
  *	      expm1(r) = r + --- + --- * [--------------------]
  *		              2     2    [ 6 - r*(3 - R1*r/2) ]
- *	
+ *
  *	To compensate the error in the argument reduction, we use
- *		expm1(r+c) = expm1(r) + c + expm1(r)*c 
- *			   ~ expm1(r) + c + r*c 
+ *		expm1(r+c) = expm1(r) + c + expm1(r)*c
+ *			   ~ expm1(r) + c + r*c
  *	Thus c+r*c will be added in as the correction terms for
- *	expm1(r+c). Now rearrange the term to avoid optimization 
+ *	expm1(r+c). Now rearrange the term to avoid optimization
  * 	screw up:
  *		        (      2                                    2 )
  *		        ({  ( r    [ R1 -  (3 - R1*r/2) ]  )  }    r  )
  *	 expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- )
  *	                ({  ( 2    [ 6 - r*(3 - R1*r/2) ]  )  }    2  )
  *                      (                                             )
- *    	
+ *
  *		   = r - E
  *   3. Scale back to obtain expm1(x):
  *	From step 1, we have
@@ -87,7 +87,7 @@ static char rcsid[] = "$NetBSD: s_expm1.c,v 1.8 1995/05/10 20:47:09 jtc Exp $";
  *	       	       else	     return  1.0+2.0*(r-E);
  *	  (v)   if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1)
  *	  (vi)  if k <= 20, return 2^k((1-2^-k)-(E-r)), else
- *	  (vii) return 2^k(1-((E+2^-k)-r)) 
+ *	  (vii) return 2^k(1-((E+2^-k)-r))
  *
  * Special cases:
  *	expm1(INF) is INF, expm1(NaN) is NaN;
@@ -99,12 +99,12 @@ static char rcsid[] = "$NetBSD: s_expm1.c,v 1.8 1995/05/10 20:47:09 jtc Exp $";
  *	1 ulp (unit in the last place).
  *
  * Misc. info.
- *	For IEEE double 
+ *	For IEEE double
  *	    if x >  7.09782712893383973096e+02 then expm1(x) overflow
  *
  * Constants:
- * The hexadecimal values are the intended ones for the following 
- * constants. The decimal values may be used, provided that the 
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
  * compiler will convert from decimal to binary accurately enough
  * to produce the hexadecimal values shown.
  */
@@ -153,7 +153,7 @@ Q5  =  -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
                 if(hx>=0x7ff00000) {
 		    u_int32_t low;
 		    GET_LOW_WORD(low,x);
-		    if(((hx&0xfffff)|low)!=0) 
+		    if(((hx&0xfffff)|low)!=0)
 		         return x+x; 	 /* NaN */
 		    else return (xsb==0)? x:-1.0;/* exp(+-inf)={inf,-1} */
 	        }
@@ -166,7 +166,7 @@ Q5  =  -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
 	}
 
     /* argument reduction */
-	if(hx > 0x3fd62e42) {		/* if  |x| > 0.5 ln2 */ 
+	if(hx > 0x3fd62e42) {		/* if  |x| > 0.5 ln2 */
 	    if(hx < 0x3FF0A2B2) {	/* and |x| < 1.5 ln2 */
 		if(xsb==0)
 		    {hi = x - ln2_hi; lo =  ln2_lo;  k =  1;}
@@ -180,10 +180,10 @@ Q5  =  -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
 	    }
 	    x  = hi - lo;
 	    c  = (hi-x)-lo;
-	} 
+	}
 	else if(hx < 0x3c900000) {  	/* when |x|<2**-54, return x */
 	    t = huge+x;	/* return x with inexact flags when x!=0 */
-	    return x - (t-(huge+x));	
+	    return x - (t-(huge+x));
 	}
 	else k = 0;
 
@@ -198,7 +198,7 @@ Q5  =  -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
 	    e  = (x*(e-c)-c);
 	    e -= hxs;
 	    if(k== -1) return 0.5*(x-e)-0.5;
-	    if(k==1) 
+	    if(k==1)
 	       	if(x < -0.25) return -2.0*(e-(x+0.5));
 	       	else 	      return  one+2.0*(x-e);
 	    if (k <= -2 || k>56) {   /* suffice to return exp(x)-1 */
@@ -227,3 +227,7 @@ Q5  =  -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
 	return y;
 }
 weak_alias (__expm1, expm1)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__expm1, __expm1l)
+weak_alias (__expm1, expm1l)
+#endif
diff --git a/sysdeps/libm-ieee754/s_fabs.c b/sysdeps/libm-ieee754/s_fabs.c
index 1b9437c66a..1abe9432a3 100644
--- a/sysdeps/libm-ieee754/s_fabs.c
+++ b/sysdeps/libm-ieee754/s_fabs.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -34,3 +34,7 @@ static char rcsid[] = "$NetBSD: s_fabs.c,v 1.7 1995/05/10 20:47:13 jtc Exp $";
         return x;
 }
 weak_alias (__fabs, fabs)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__fabs, __fabsl)
+weak_alias (__fabs, fabsl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_finite.c b/sysdeps/libm-ieee754/s_finite.c
index c2c428595c..b12ff42360 100644
--- a/sysdeps/libm-ieee754/s_finite.c
+++ b/sysdeps/libm-ieee754/s_finite.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -34,3 +34,7 @@ static char rcsid[] = "$NetBSD: s_finite.c,v 1.8 1995/05/10 20:47:17 jtc Exp $";
 	return (int)((u_int32_t)((hx&0x7fffffff)-0x7ff00000)>>31);
 }
 weak_alias (__finite, finite)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__finite, __finitel)
+weak_alias (__finite, finitel)
+#endif
diff --git a/sysdeps/libm-ieee754/s_floor.c b/sysdeps/libm-ieee754/s_floor.c
index 4dabc77a78..77db9ef392 100644
--- a/sysdeps/libm-ieee754/s_floor.c
+++ b/sysdeps/libm-ieee754/s_floor.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -46,7 +46,7 @@ static double huge = 1.0e300;
 	if(j0<20) {
 	    if(j0<0) { 	/* raise inexact if x != 0 */
 		if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
-		    if(i0>=0) {i0=i1=0;} 
+		    if(i0>=0) {i0=i1=0;}
 		    else if(((i0&0x7fffffff)|i1)!=0)
 			{ i0=0xbff00000;i1=0;}
 		}
@@ -66,7 +66,7 @@ static double huge = 1.0e300;
 	    if((i1&i)==0) return x;	/* x is integral */
 	    if(huge+x>0.0) { 		/* raise inexact flag */
 		if(i0<0) {
-		    if(j0==20) i0+=1; 
+		    if(j0==20) i0+=1;
 		    else {
 			j = i1+(1<<(52-j0));
 			if(j<i1) i0 +=1 ; 	/* got a carry */
@@ -80,3 +80,7 @@ static double huge = 1.0e300;
 	return x;
 }
 weak_alias (__floor, floor)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__floor, __floorl)
+weak_alias (__floor, floorl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_frexp.c b/sysdeps/libm-ieee754/s_frexp.c
index 1f3bfcef5b..7dbddfde06 100644
--- a/sysdeps/libm-ieee754/s_frexp.c
+++ b/sysdeps/libm-ieee754/s_frexp.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -15,13 +15,13 @@ static char rcsid[] = "$NetBSD: s_frexp.c,v 1.9 1995/05/10 20:47:24 jtc Exp $";
 #endif
 
 /*
- * for non-zero x 
+ * for non-zero x
  *	x = frexp(arg,&exp);
  * return a double fp quantity x such that 0.5 <= |x| <1.0
  * and the corresponding binary exponent "exp". That is
  *	arg = x*2^exp.
- * If arg is inf, 0.0, or NaN, then frexp(arg,&exp) returns arg 
- * with *exp=0. 
+ * If arg is inf, 0.0, or NaN, then frexp(arg,&exp) returns arg
+ * with *exp=0.
  */
 
 #include "math.h"
@@ -58,3 +58,7 @@ two54 =  1.80143985094819840000e+16; /* 0x43500000, 0x00000000 */
 	return x;
 }
 weak_alias (__frexp, frexp)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__frexp, __frexpl)
+weak_alias (__frexp, frexpl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_ilogb.c b/sysdeps/libm-ieee754/s_ilogb.c
index 9cdcdb7c3e..0c28b689b9 100644
--- a/sysdeps/libm-ieee754/s_ilogb.c
+++ b/sysdeps/libm-ieee754/s_ilogb.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -36,7 +36,7 @@ static char rcsid[] = "$NetBSD: s_ilogb.c,v 1.9 1995/05/10 20:47:28 jtc Exp $";
 	hx &= 0x7fffffff;
 	if(hx<0x00100000) {
 	    GET_LOW_WORD(lx,x);
-	    if((hx|lx)==0) 
+	    if((hx|lx)==0)
 		return 0x80000001;	/* ilogb(0) = 0x80000001 */
 	    else			/* subnormal x */
 		if(hx==0) {
@@ -50,3 +50,7 @@ static char rcsid[] = "$NetBSD: s_ilogb.c,v 1.9 1995/05/10 20:47:28 jtc Exp $";
 	else return 0x7fffffff;
 }
 weak_alias (__ilogb, ilogb)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__ilogb, __ilogbl)
+weak_alias (__ilogb, ilogbl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_ldexp.c b/sysdeps/libm-ieee754/s_ldexp.c
index 94a93fc063..12c336fad4 100644
--- a/sysdeps/libm-ieee754/s_ldexp.c
+++ b/sysdeps/libm-ieee754/s_ldexp.c
@@ -31,3 +31,7 @@ static char rcsid[] = "$NetBSD: s_ldexp.c,v 1.6 1995/05/10 20:47:40 jtc Exp $";
 	return value;
 }
 weak_alias (__ldexp, ldexp)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__ldexp, __ldexpl)
+weak_alias (__ldexp, ldexpl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_log1p.c b/sysdeps/libm-ieee754/s_log1p.c
index 1e58ccb039..cc380a1091 100644
--- a/sysdeps/libm-ieee754/s_log1p.c
+++ b/sysdeps/libm-ieee754/s_log1p.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -16,9 +16,9 @@ static char rcsid[] = "$NetBSD: s_log1p.c,v 1.8 1995/05/10 20:47:46 jtc Exp $";
 
 /* double log1p(double x)
  *
- * Method :                  
- *   1. Argument Reduction: find k and f such that 
- *			1+x = 2^k * (1+f), 
+ * Method :
+ *   1. Argument Reduction: find k and f such that
+ *			1+x = 2^k * (1+f),
  *	   where  sqrt(2)/2 < 1+f < sqrt(2) .
  *
  *      Note. If k=0, then f=x is exact. However, if k!=0, then f
@@ -32,8 +32,8 @@ static char rcsid[] = "$NetBSD: s_log1p.c,v 1.8 1995/05/10 20:47:46 jtc Exp $";
  *	Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
  *		 = 2s + 2/3 s**3 + 2/5 s**5 + .....,
  *	     	 = 2s + s*R
- *      We use a special Reme algorithm on [0,0.1716] to generate 
- * 	a polynomial of degree 14 to approximate R The maximum error 
+ *      We use a special Reme algorithm on [0,0.1716] to generate
+ * 	a polynomial of degree 14 to approximate R The maximum error
  *	of this polynomial approximation is bounded by 2**-58.45. In
  *	other words,
  *		        2      4      6      8      10      12      14
@@ -41,21 +41,21 @@ static char rcsid[] = "$NetBSD: s_log1p.c,v 1.8 1995/05/10 20:47:46 jtc Exp $";
  *  	(the values of Lp1 to Lp7 are listed in the program)
  *	and
  *	    |      2          14          |     -58.45
- *	    | Lp1*s +...+Lp7*s    -  R(z) | <= 2 
+ *	    | Lp1*s +...+Lp7*s    -  R(z) | <= 2
  *	    |                             |
  *	Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
  *	In order to guarantee error in log below 1ulp, we compute log
  *	by
  *		log1p(f) = f - (hfsq - s*(hfsq+R)).
- *	
- *	3. Finally, log1p(x) = k*ln2 + log1p(f).  
+ *
+ *	3. Finally, log1p(x) = k*ln2 + log1p(f).
  *		 	     = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo)))
- *	   Here ln2 is split into two floating point number: 
+ *	   Here ln2 is split into two floating point number:
  *			ln2_hi + ln2_lo,
  *	   where n*ln2_hi is always exact for |n| < 2000.
  *
  * Special cases:
- *	log1p(x) is NaN with signal if x < -1 (including -INF) ; 
+ *	log1p(x) is NaN with signal if x < -1 (including -INF) ;
  *	log1p(+INF) is +INF; log1p(-1) is -INF with signal;
  *	log1p(NaN) is that NaN with no signal.
  *
@@ -64,14 +64,14 @@ static char rcsid[] = "$NetBSD: s_log1p.c,v 1.8 1995/05/10 20:47:46 jtc Exp $";
  *	1 ulp (unit in the last place).
  *
  * Constants:
- * The hexadecimal values are the intended ones for the following 
- * constants. The decimal values may be used, provided that the 
- * compiler will convert from decimal to binary accurately enough 
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
  * to produce the hexadecimal values shown.
  *
  * Note: Assuming log() return accurate answer, the following
  * 	 algorithm can be used to compute log1p(x) to within a few ULP:
- *	
+ *
  *		u = 1+x;
  *		if(u==1.0) return x ; else
  *			   return log(u)*(x/(u-1.0));
@@ -132,11 +132,11 @@ static double zero = 0.0;
 	    }
 	    if(hx>0||hx<=((int32_t)0xbfd2bec3)) {
 		k=0;f=x;hu=1;}	/* -0.2929<x<0.41422 */
-	} 
+	}
 	if (hx >= 0x7ff00000) return x+x;
 	if(k!=0) {
 	    if(hx<0x43400000) {
-		u  = 1.0+x; 
+		u  = 1.0+x;
 		GET_HIGH_WORD(hu,u);
 	        k  = (hu>>20)-1023;
 	        c  = (k>0)? 1.0-(u-x):x-(u-1.0);/* correction term */
@@ -151,7 +151,7 @@ static double zero = 0.0;
 	    if(hu<0x6a09e) {
 	        SET_HIGH_WORD(u,hu|0x3ff00000);	/* normalize u */
 	    } else {
-	        k += 1; 
+	        k += 1;
 		SET_HIGH_WORD(u,hu|0x3fe00000);	/* normalize u/2 */
 	        hu = (0x00100000-hu)>>2;
 	    }
@@ -159,16 +159,20 @@ static double zero = 0.0;
 	}
 	hfsq=0.5*f*f;
 	if(hu==0) {	/* |f| < 2**-20 */
-	    if(f==zero) if(k==0) return zero;  
+	    if(f==zero) if(k==0) return zero;
 			else {c += k*ln2_lo; return k*ln2_hi+c;}
 	    R = hfsq*(1.0-0.66666666666666666*f);
 	    if(k==0) return f-R; else
 	    	     return k*ln2_hi-((R-(k*ln2_lo+c))-f);
 	}
- 	s = f/(2.0+f); 
+ 	s = f/(2.0+f);
 	z = s*s;
 	R = z*(Lp1+z*(Lp2+z*(Lp3+z*(Lp4+z*(Lp5+z*(Lp6+z*Lp7))))));
 	if(k==0) return f-(hfsq-s*(hfsq+R)); else
 		 return k*ln2_hi-((hfsq-(s*(hfsq+R)+(k*ln2_lo+c)))-f);
 }
 weak_alias (__log1p, log1p)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__log1p, __log1pl)
+weak_alias (__log1p, log1pl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_logb.c b/sysdeps/libm-ieee754/s_logb.c
index 4fd43fc5a6..4668cf78f8 100644
--- a/sysdeps/libm-ieee754/s_logb.c
+++ b/sysdeps/libm-ieee754/s_logb.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -36,8 +36,12 @@ static char rcsid[] = "$NetBSD: s_logb.c,v 1.8 1995/05/10 20:47:50 jtc Exp $";
 	if((ix|lx)==0) return -1.0/fabs(x);
 	if(ix>=0x7ff00000) return x*x;
 	if((ix>>=20)==0) 			/* IEEE 754 logb */
-		return -1022.0; 
+		return -1022.0;
 	else
-		return (double) (ix-1023); 
+		return (double) (ix-1023);
 }
 weak_alias (__logb, logb)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__logb, __logbl)
+weak_alias (__logb, logbl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_modf.c b/sysdeps/libm-ieee754/s_modf.c
index 8e09128cd7..8075c5f813 100644
--- a/sysdeps/libm-ieee754/s_modf.c
+++ b/sysdeps/libm-ieee754/s_modf.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -15,7 +15,7 @@ static char rcsid[] = "$NetBSD: s_modf.c,v 1.8 1995/05/10 20:47:55 jtc Exp $";
 #endif
 
 /*
- * modf(double x, double *iptr) 
+ * modf(double x, double *iptr)
  * return fraction part of x, and return x's integral part in *iptr.
  * Method:
  *	Bit twiddling.
@@ -82,3 +82,7 @@ static double one = 1.0;
 	}
 }
 weak_alias (__modf, modf)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__modf, __modfl)
+weak_alias (__modf, modfl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_nextafter.c b/sysdeps/libm-ieee754/s_nextafter.c
index 359ed8cc53..ee973bcee8 100644
--- a/sysdeps/libm-ieee754/s_nextafter.c
+++ b/sysdeps/libm-ieee754/s_nextafter.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -39,15 +39,15 @@ static char rcsid[] = "$NetBSD: s_nextafter.c,v 1.8 1995/05/10 20:47:58 jtc Exp
 	ix = hx&0x7fffffff;		/* |x| */
 	iy = hy&0x7fffffff;		/* |y| */
 
-	if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) ||   /* x is nan */ 
-	   ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0))     /* y is nan */ 
-	   return x+y;				
+	if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) ||   /* x is nan */
+	   ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0))     /* y is nan */
+	   return x+y;
 	if(x==y) return x;		/* x=y, return x */
 	if((ix|lx)==0) {			/* x == 0 */
 	    INSERT_WORDS(x,hy&0x80000000,1);	/* return +-minsubnormal */
 	    y = x*x;
 	    if(y==x) return y; else return x;	/* raise underflow flag */
-	} 
+	}
 	if(hx>=0) {				/* x > 0 */
 	    if(hx>hy||((hx==hy)&&(lx>ly))) {	/* x > y, x -= ulp */
 		if(lx==0) hx -= 1;
@@ -78,3 +78,7 @@ static char rcsid[] = "$NetBSD: s_nextafter.c,v 1.8 1995/05/10 20:47:58 jtc Exp
 	return x;
 }
 weak_alias (__nextafter, nextafter)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__nextafter, __nextafterl)
+weak_alias (__nextafter, nextafterl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_rint.c b/sysdeps/libm-ieee754/s_rint.c
index e24feaf1ac..e5f241291c 100644
--- a/sysdeps/libm-ieee754/s_rint.c
+++ b/sysdeps/libm-ieee754/s_rint.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -30,7 +30,7 @@ static char rcsid[] = "$NetBSD: s_rint.c,v 1.8 1995/05/10 20:48:04 jtc Exp $";
 #ifdef __STDC__
 static const double
 #else
-static double 
+static double
 #endif
 TWO52[2]={
   4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
@@ -51,7 +51,7 @@ TWO52[2]={
 	sx = (i0>>31)&1;
 	j0 = ((i0>>20)&0x7ff)-0x3ff;
 	if(j0<20) {
-	    if(j0<0) { 	
+	    if(j0<0) {
 		if(((i0&0x7fffffff)|i1)==0) return x;
 		i1 |= (i0&0x0fffff);
 		i0 &= 0xfffe0000;
@@ -85,3 +85,7 @@ TWO52[2]={
 	return w-TWO52[sx];
 }
 weak_alias (__rint, rint)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__rint, __rintl)
+weak_alias (__rint, rintl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_scalbn.c b/sysdeps/libm-ieee754/s_scalbn.c
index 6efaec07ac..439b966e69 100644
--- a/sysdeps/libm-ieee754/s_scalbn.c
+++ b/sysdeps/libm-ieee754/s_scalbn.c
@@ -65,3 +65,7 @@ tiny   = 1.0e-300;
         return x*twom54;
 }
 weak_alias (__scalbn, scalbn)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__scalbn, __scalbnl)
+weak_alias (__scalbn, scalbnl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_significand.c b/sysdeps/libm-ieee754/s_significand.c
index 72265d397f..4ab078c473 100644
--- a/sysdeps/libm-ieee754/s_significand.c
+++ b/sysdeps/libm-ieee754/s_significand.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -33,3 +33,7 @@ static char rcsid[] = "$NetBSD: s_significand.c,v 1.6 1995/05/10 20:48:11 jtc Ex
 	return __ieee754_scalb(x,(double) -ilogb(x));
 }
 weak_alias (__significand, significand)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__significand, __significandl)
+weak_alias (__significand, significandl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_sin.c b/sysdeps/libm-ieee754/s_sin.c
index efcf774158..376c69ed00 100644
--- a/sysdeps/libm-ieee754/s_sin.c
+++ b/sysdeps/libm-ieee754/s_sin.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -23,8 +23,8 @@ static char rcsid[] = "$NetBSD: s_sin.c,v 1.7 1995/05/10 20:48:15 jtc Exp $";
  *	__ieee754_rem_pio2	... argument reduction routine
  *
  * Method.
- *      Let S,C and T denote the sin, cos and tan respectively on 
- *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
  *	in [-pi/4 , +pi/4], and let n = k mod 4.
  *	We have
  *
@@ -42,7 +42,7 @@ static char rcsid[] = "$NetBSD: s_sin.c,v 1.7 1995/05/10 20:48:15 jtc Exp $";
  *      trig(NaN)    is that NaN;
  *
  * Accuracy:
- *	TRIG(x) returns trig(x) nearly rounded 
+ *	TRIG(x) returns trig(x) nearly rounded
  */
 
 #include "math.h"
@@ -81,3 +81,7 @@ static char rcsid[] = "$NetBSD: s_sin.c,v 1.7 1995/05/10 20:48:15 jtc Exp $";
 	}
 }
 weak_alias (__sin, sin)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__sin, __sinl)
+weak_alias (__sin, sinl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_tan.c b/sysdeps/libm-ieee754/s_tan.c
index dcd9d506a6..714cf27dd2 100644
--- a/sysdeps/libm-ieee754/s_tan.c
+++ b/sysdeps/libm-ieee754/s_tan.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -22,8 +22,8 @@ static char rcsid[] = "$NetBSD: s_tan.c,v 1.7 1995/05/10 20:48:18 jtc Exp $";
  *	__ieee754_rem_pio2	... argument reduction routine
  *
  * Method.
- *      Let S,C and T denote the sin, cos and tan respectively on 
- *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
  *	in [-pi/4 , +pi/4], and let n = k mod 4.
  *	We have
  *
@@ -41,7 +41,7 @@ static char rcsid[] = "$NetBSD: s_tan.c,v 1.7 1995/05/10 20:48:18 jtc Exp $";
  *      trig(NaN)    is that NaN;
  *
  * Accuracy:
- *	TRIG(x) returns trig(x) nearly rounded 
+ *	TRIG(x) returns trig(x) nearly rounded
  */
 
 #include "math.h"
@@ -75,3 +75,7 @@ static char rcsid[] = "$NetBSD: s_tan.c,v 1.7 1995/05/10 20:48:18 jtc Exp $";
 	}
 }
 weak_alias (__tan, tan)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__tan, __tanl)
+weak_alias (__tan, tanl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_tanh.c b/sysdeps/libm-ieee754/s_tanh.c
index 22d064bc5d..208b459b35 100644
--- a/sysdeps/libm-ieee754/s_tanh.c
+++ b/sysdeps/libm-ieee754/s_tanh.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -62,7 +62,7 @@ static double one=1.0, two=2.0, tiny = 1.0e-300;
 	ix = jx&0x7fffffff;
 
     /* x is INF or NaN */
-	if(ix>=0x7ff00000) { 
+	if(ix>=0x7ff00000) {
 	    if (jx>=0) return one/x+one;    /* tanh(+-inf)=+-1 */
 	    else       return one/x-one;    /* tanh(NaN) = NaN */
 	}
@@ -85,3 +85,7 @@ static double one=1.0, two=2.0, tiny = 1.0e-300;
 	return (jx>=0)? z: -z;
 }
 weak_alias (__tanh, tanh)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__tanh, __tanhl)
+weak_alias (__tanh, tanhl)
+#endif
diff --git a/sysdeps/libm-ieee754/s_tanhl.c b/sysdeps/libm-ieee754/s_tanhl.c
index 984f67108b..9863af62a5 100644
--- a/sysdeps/libm-ieee754/s_tanhl.c
+++ b/sysdeps/libm-ieee754/s_tanhl.c
@@ -46,9 +46,9 @@ static char rcsid[] = "$NetBSD: $";
 #include "math_private.h"
 
 #ifdef __STDC__
-static const long double one=1.0, two=2.0, tiny = 1.0e-16380L;
+static const long double one=1.0, two=2.0, tiny = 1.0e-4900L;
 #else
-static long double one=1.0, two=2.0, tiny = 1.0e-16380L;
+static long double one=1.0, two=2.0, tiny = 1.0e-4900L;
 #endif
 
 #ifdef __STDC__
@@ -59,7 +59,8 @@ static long double one=1.0, two=2.0, tiny = 1.0e-16380L;
 #endif
 {
 	long double t,z;
-	int32_t se,j0,j1,ix;
+	int32_t se;
+	u_int32_t j0,j1,ix;
 
     /* High word of |x|. */
 	GET_LDOUBLE_WORDS(se,j0,j1,x);
@@ -72,7 +73,7 @@ static long double one=1.0, two=2.0, tiny = 1.0e-16380L;
 	}
 
     /* |x| < 23 */
-	if (ix < 0x4003 || (ix == 0x4003 && j0 < 0xb8000000)) {	/* |x|<23 */
+	if (ix < 0x4003 || (ix == 0x4003 && j0 < 0xb8000000u)) {/* |x|<23 */
 	    if (ix<0x3fc8) 		/* |x|<2**-55 */
 		return x*(one+x);    	/* tanh(small) = small */
 	    if (ix>=0x3fff) {	/* |x|>=1  */
diff --git a/sysdeps/libm-ieee754/w_acos.c b/sysdeps/libm-ieee754/w_acos.c
index d60d1c3202..5a1158ea7a 100644
--- a/sysdeps/libm-ieee754/w_acos.c
+++ b/sysdeps/libm-ieee754/w_acos.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -42,3 +42,7 @@ static char rcsid[] = "$NetBSD: w_acos.c,v 1.6 1995/05/10 20:48:26 jtc Exp $";
 #endif
 }
 weak_alias (__acos, acos)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__acos, __acosl)
+weak_alias (__acos, acosl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_acosh.c b/sysdeps/libm-ieee754/w_acosh.c
index 46f9cf92fc..2b5d60f7ea 100644
--- a/sysdeps/libm-ieee754/w_acosh.c
+++ b/sysdeps/libm-ieee754/w_acosh.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_acosh.c,v 1.6 1995/05/10 20:48:31 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper acosh(x)
  */
 
@@ -41,3 +41,7 @@ static char rcsid[] = "$NetBSD: w_acosh.c,v 1.6 1995/05/10 20:48:31 jtc Exp $";
 #endif
 }
 weak_alias (__acosh, acosh)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__acosh, __acoshl)
+weak_alias (__acosh, acoshl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_asin.c b/sysdeps/libm-ieee754/w_asin.c
index 529dd59236..a7ca4ef9fd 100644
--- a/sysdeps/libm-ieee754/w_asin.c
+++ b/sysdeps/libm-ieee754/w_asin.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_asin.c,v 1.6 1995/05/10 20:48:35 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper asin(x)
  */
 
@@ -43,3 +43,7 @@ static char rcsid[] = "$NetBSD: w_asin.c,v 1.6 1995/05/10 20:48:35 jtc Exp $";
 #endif
 }
 weak_alias (__asin, asin)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__asin, __asinl)
+weak_alias (__asin, asinl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_atan2.c b/sysdeps/libm-ieee754/w_atan2.c
index abfe64ae61..ec29d55eb9 100644
--- a/sysdeps/libm-ieee754/w_atan2.c
+++ b/sysdeps/libm-ieee754/w_atan2.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_atan2.c,v 1.6 1995/05/10 20:48:39 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper atan2(y,x)
  */
 
@@ -42,3 +42,7 @@ static char rcsid[] = "$NetBSD: w_atan2.c,v 1.6 1995/05/10 20:48:39 jtc Exp $";
 #endif
 }
 weak_alias (__atan2, atan2)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__atan2, __atan2l)
+weak_alias (__atan2, atan2l)
+#endif
diff --git a/sysdeps/libm-ieee754/w_atanh.c b/sysdeps/libm-ieee754/w_atanh.c
index 43f5ff79fd..e7995b1830 100644
--- a/sysdeps/libm-ieee754/w_atanh.c
+++ b/sysdeps/libm-ieee754/w_atanh.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_atanh.c,v 1.6 1995/05/10 20:48:43 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper atanh(x)
  */
 
@@ -39,10 +39,14 @@ static char rcsid[] = "$NetBSD: w_atanh.c,v 1.6 1995/05/10 20:48:43 jtc Exp $";
 	if(y>=1.0) {
 	    if(y>1.0)
 	        return __kernel_standard(x,x,30); /* atanh(|x|>1) */
-	    else 
+	    else
 	        return __kernel_standard(x,x,31); /* atanh(|x|==1) */
 	} else
 	    return z;
 #endif
 }
 weak_alias (__atanh, atanh)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__atanh, __atanhl)
+weak_alias (__atanh, atanhl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_cabs.c b/sysdeps/libm-ieee754/w_cabs.c
index ccacf67363..6c67436c6a 100644
--- a/sysdeps/libm-ieee754/w_cabs.c
+++ b/sysdeps/libm-ieee754/w_cabs.c
@@ -1,6 +1,6 @@
 /*
  * cabs() wrapper for hypot().
- * 
+ *
  * Written by J.T. Conklin, <jtc@wimsey.com>
  * Placed into the Public Domain, 1994.
  */
@@ -14,3 +14,7 @@ __cabs(z)
 	return __hypot(z.x, z.y);
 }
 weak_alias (__cabs, cabs)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__cabs, __cabsl)
+weak_alias (__cabs, cabsl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_cosh.c b/sysdeps/libm-ieee754/w_cosh.c
index 651dee14d5..8db25c868c 100644
--- a/sysdeps/libm-ieee754/w_cosh.c
+++ b/sysdeps/libm-ieee754/w_cosh.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_cosh.c,v 1.6 1995/05/10 20:48:47 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper cosh(x)
  */
 
@@ -34,10 +34,14 @@ static char rcsid[] = "$NetBSD: w_cosh.c,v 1.6 1995/05/10 20:48:47 jtc Exp $";
 	double z;
 	z = __ieee754_cosh(x);
 	if(_LIB_VERSION == _IEEE_ || __isnan(x)) return z;
-	if(fabs(x)>7.10475860073943863426e+02) {	
+	if(fabs(x)>7.10475860073943863426e+02) {
 	        return __kernel_standard(x,x,5); /* cosh overflow */
 	} else
 	    return z;
 #endif
 }
 weak_alias (__cosh, cosh)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__cosh, __coshl)
+weak_alias (__cosh, coshl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_drem.c b/sysdeps/libm-ieee754/w_drem.c
index 203a7d1c9f..9e2b1e7472 100644
--- a/sysdeps/libm-ieee754/w_drem.c
+++ b/sysdeps/libm-ieee754/w_drem.c
@@ -1,6 +1,6 @@
 /*
  * drem() wrapper for remainder().
- * 
+ *
  * Written by J.T. Conklin, <jtc@wimsey.com>
  * Placed into the Public Domain, 1994.
  */
@@ -14,3 +14,7 @@ __drem(x, y)
 	return __remainder(x, y);
 }
 weak_alias (__drem, drem)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__drem, __dreml)
+weak_alias (__drem, dreml)
+#endif
diff --git a/sysdeps/libm-ieee754/w_exp.c b/sysdeps/libm-ieee754/w_exp.c
index cc39b9086e..445c5788d2 100644
--- a/sysdeps/libm-ieee754/w_exp.c
+++ b/sysdeps/libm-ieee754/w_exp.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_exp.c,v 1.6 1995/05/10 20:48:51 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper exp(x)
  */
 
@@ -47,8 +47,12 @@ u_threshold= -7.45133219101941108420e+02;  /* 0xc0874910, 0xD52D3051 */
 	        return __kernel_standard(x,x,6); /* exp overflow */
 	    else if(x<u_threshold)
 	        return __kernel_standard(x,x,7); /* exp underflow */
-	} 
+	}
 	return z;
 #endif
 }
 weak_alias (__exp, exp)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__exp, __expl)
+weak_alias (__exp, expl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_fmod.c b/sysdeps/libm-ieee754/w_fmod.c
index 2102ba215c..0ceeb98c55 100644
--- a/sysdeps/libm-ieee754/w_fmod.c
+++ b/sysdeps/libm-ieee754/w_fmod.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_fmod.c,v 1.6 1995/05/10 20:48:55 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper fmod(x,y)
  */
 
@@ -42,3 +42,7 @@ static char rcsid[] = "$NetBSD: w_fmod.c,v 1.6 1995/05/10 20:48:55 jtc Exp $";
 #endif
 }
 weak_alias (__fmod, fmod)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__fmod, __fmodl)
+weak_alias (__fmod, fmodl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_gamma.c b/sysdeps/libm-ieee754/w_gamma.c
index 8a0a18079a..49e4bcf3c3 100644
--- a/sysdeps/libm-ieee754/w_gamma.c
+++ b/sysdeps/libm-ieee754/w_gamma.c
@@ -48,3 +48,7 @@ extern int signgam;
 #endif
 }
 weak_alias (__gamma, gamma)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__gamma, __gammal)
+weak_alias (__gamma, gammal)
+#endif
diff --git a/sysdeps/libm-ieee754/w_gamma_r.c b/sysdeps/libm-ieee754/w_gamma_r.c
index 103dbabf63..f9efc8cf2e 100644
--- a/sysdeps/libm-ieee754/w_gamma_r.c
+++ b/sysdeps/libm-ieee754/w_gamma_r.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_gamma_r.c,v 1.7 1995/11/20 22:06:45 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper double gamma_r(double x, int *signgamp)
  */
 
@@ -43,5 +43,9 @@ static char rcsid[] = "$NetBSD: w_gamma_r.c,v 1.7 1995/11/20 22:06:45 jtc Exp $"
         } else
             return y;
 #endif
-}             
+}
 weak_alias (__gamma_r, gamma_r)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__gamma_r, __gammal_r)
+weak_alias (__gamma_r, gammal_r)
+#endif
diff --git a/sysdeps/libm-ieee754/w_hypot.c b/sysdeps/libm-ieee754/w_hypot.c
index 1fd8f12fa6..e91db17083 100644
--- a/sysdeps/libm-ieee754/w_hypot.c
+++ b/sysdeps/libm-ieee754/w_hypot.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -42,3 +42,7 @@ static char rcsid[] = "$NetBSD: w_hypot.c,v 1.6 1995/05/10 20:49:07 jtc Exp $";
 #endif
 }
 weak_alias (__hypot, hypot)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__hypot, __hypotl)
+weak_alias (__hypot, hypotl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_j0.c b/sysdeps/libm-ieee754/w_j0.c
index 1486c14cfd..c327e1c98f 100644
--- a/sysdeps/libm-ieee754/w_j0.c
+++ b/sysdeps/libm-ieee754/w_j0.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -40,6 +40,11 @@ static char rcsid[] = "$NetBSD: w_j0.c,v 1.6 1995/05/10 20:49:11 jtc Exp $";
 #endif
 }
 weak_alias (__j0, j0)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__j0, __j0l)
+weak_alias (__j0, j0l)
+#endif
+
 
 #ifdef __STDC__
 	double __y0(double x)		/* wrapper y0 */
@@ -69,3 +74,7 @@ weak_alias (__j0, j0)
 #endif
 }
 weak_alias (__y0, y0)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__y0, __y0l)
+weak_alias (__y0, y0l)
+#endif
diff --git a/sysdeps/libm-ieee754/w_j1.c b/sysdeps/libm-ieee754/w_j1.c
index 9d09f0d080..ae6e9b5537 100644
--- a/sysdeps/libm-ieee754/w_j1.c
+++ b/sysdeps/libm-ieee754/w_j1.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,8 +14,8 @@
 static char rcsid[] = "$NetBSD: w_j1.c,v 1.6 1995/05/10 20:49:15 jtc Exp $";
 #endif
 
-/* 
- * wrapper of j1,y1 
+/*
+ * wrapper of j1,y1
  */
 
 #include "math.h"
@@ -41,6 +41,11 @@ static char rcsid[] = "$NetBSD: w_j1.c,v 1.6 1995/05/10 20:49:15 jtc Exp $";
 #endif
 }
 weak_alias (__j1, j1)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__j1, __j1l)
+weak_alias (__j1, j1l)
+#endif
+
 
 #ifdef __STDC__
 	double __y1(double x)		/* wrapper y1 */
@@ -70,3 +75,7 @@ weak_alias (__j1, j1)
 #endif
 }
 weak_alias (__y1, y1)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__y1, __y1l)
+weak_alias (__y1, y1l)
+#endif
diff --git a/sysdeps/libm-ieee754/w_jn.c b/sysdeps/libm-ieee754/w_jn.c
index 9f5506b229..ecd86c0d8b 100644
--- a/sysdeps/libm-ieee754/w_jn.c
+++ b/sysdeps/libm-ieee754/w_jn.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -18,7 +18,7 @@ static char rcsid[] = "$NetBSD: w_jn.c,v 1.6 1995/05/10 20:49:19 jtc Exp $";
  * wrapper jn(int n, double x), yn(int n, double x)
  * floating point Bessel's function of the 1st and 2nd kind
  * of order n
- *          
+ *
  * Special cases:
  *	y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal;
  *	y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal.
@@ -37,7 +37,7 @@ static char rcsid[] = "$NetBSD: w_jn.c,v 1.6 1995/05/10 20:49:19 jtc Exp $";
  *	yn(n,x) is similar in all respects, except
  *	that forward recursion is used for all
  *	values of n>1.
- *	
+ *
  */
 
 #include "math.h"
@@ -63,6 +63,11 @@ static char rcsid[] = "$NetBSD: w_jn.c,v 1.6 1995/05/10 20:49:19 jtc Exp $";
 #endif
 }
 weak_alias (__jn, jn)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__jn, __jnl)
+weak_alias (__jn, jnl)
+#endif
+
 
 #ifdef __STDC__
 	double __yn(int n, double x)	/* wrapper yn */
@@ -92,3 +97,7 @@ weak_alias (__jn, jn)
 #endif
 }
 weak_alias (__yn, yn)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__yn, __ynl)
+weak_alias (__yn, ynl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_lgamma.c b/sysdeps/libm-ieee754/w_lgamma.c
index 2563d28f8d..be8a174742 100644
--- a/sysdeps/libm-ieee754/w_lgamma.c
+++ b/sysdeps/libm-ieee754/w_lgamma.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -46,5 +46,9 @@ extern int signgam;
         } else
             return y;
 #endif
-}             
+}
 weak_alias (__lgamma, lgamma)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__lgamma, __lgammal)
+weak_alias (__lgamma, lgammal)
+#endif
diff --git a/sysdeps/libm-ieee754/w_lgamma_r.c b/sysdeps/libm-ieee754/w_lgamma_r.c
index c5c5edc94a..f3e7d821e2 100644
--- a/sysdeps/libm-ieee754/w_lgamma_r.c
+++ b/sysdeps/libm-ieee754/w_lgamma_r.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_lgamma_r.c,v 1.6 1995/05/10 20:49:27 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper double lgamma_r(double x, int *signgamp)
  */
 
@@ -43,5 +43,9 @@ static char rcsid[] = "$NetBSD: w_lgamma_r.c,v 1.6 1995/05/10 20:49:27 jtc Exp $
         } else
             return y;
 #endif
-}             
+}
 weak_alias (__lgamma_r, lgamma_r)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__lgamma_r, __lgammal_r)
+weak_alias (__lgamma_r, lgammal_r)
+#endif
diff --git a/sysdeps/libm-ieee754/w_log.c b/sysdeps/libm-ieee754/w_log.c
index d1713eb398..5f0af79731 100644
--- a/sysdeps/libm-ieee754/w_log.c
+++ b/sysdeps/libm-ieee754/w_log.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -37,8 +37,12 @@ static char rcsid[] = "$NetBSD: w_log.c,v 1.6 1995/05/10 20:49:33 jtc Exp $";
 	if(_LIB_VERSION == _IEEE_ || __isnan(x) || x > 0.0) return z;
 	if(x==0.0)
 	    return __kernel_standard(x,x,16); /* log(0) */
-	else 
+	else
 	    return __kernel_standard(x,x,17); /* log(x<0) */
 #endif
 }
 weak_alias (__log, log)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__log, __logl)
+weak_alias (__log, logl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_log10.c b/sysdeps/libm-ieee754/w_log10.c
index 46334cefb9..fc35607644 100644
--- a/sysdeps/libm-ieee754/w_log10.c
+++ b/sysdeps/libm-ieee754/w_log10.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_log10.c,v 1.6 1995/05/10 20:49:35 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper log10(X)
  */
 
@@ -38,10 +38,14 @@ static char rcsid[] = "$NetBSD: w_log10.c,v 1.6 1995/05/10 20:49:35 jtc Exp $";
 	if(x<=0.0) {
 	    if(x==0.0)
 	        return __kernel_standard(x,x,18); /* log10(0) */
-	    else 
+	    else
 	        return __kernel_standard(x,x,19); /* log10(x<0) */
 	} else
 	    return z;
 #endif
 }
 weak_alias (__log10, log10)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__log10, __log10l)
+weak_alias (__log10, log10)
+#endif
diff --git a/sysdeps/libm-ieee754/w_pow.c b/sysdeps/libm-ieee754/w_pow.c
index adc1b2b0b7..ea19e1f554 100644
--- a/sysdeps/libm-ieee754/w_pow.c
+++ b/sysdeps/libm-ieee754/w_pow.c
@@ -7,12 +7,12 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
 
-/* 
+/*
  * wrapper pow(x,y) return x**y
  */
 
@@ -34,12 +34,12 @@
 	z=__ieee754_pow(x,y);
 	if(_LIB_VERSION == _IEEE_|| __isnan(y)) return z;
 	if(__isnan(x)) {
-	    if(y==0.0) 
+	    if(y==0.0)
 	        return __kernel_standard(x,y,42); /* pow(NaN,0.0) */
-	    else 
+	    else
 		return z;
 	}
-	if(x==0.0){ 
+	if(x==0.0){
 	    if(y==0.0)
 	        return __kernel_standard(x,y,20); /* pow(0.0,0.0) */
 	    if(__finite(y)&&y<0.0)
@@ -50,13 +50,17 @@
 	    if(__finite(x)&&__finite(y)) {
 	        if(__isnan(z))
 	            return __kernel_standard(x,y,24); /* pow neg**non-int */
-	        else 
+	        else
 	            return __kernel_standard(x,y,21); /* pow overflow */
 	    }
-	} 
+	}
 	if(z==0.0&&__finite(x)&&__finite(y))
 	    return __kernel_standard(x,y,22); /* pow underflow */
 	return z;
 #endif
 }
 weak_alias (__pow, pow)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__pow, __powl)
+weak_alias (__pow, powl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_remainder.c b/sysdeps/libm-ieee754/w_remainder.c
index 9fd2952033..d85a3febce 100644
--- a/sysdeps/libm-ieee754/w_remainder.c
+++ b/sysdeps/libm-ieee754/w_remainder.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_remainder.c,v 1.6 1995/05/10 20:49:44 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper remainder(x,p)
  */
 
@@ -34,10 +34,14 @@ static char rcsid[] = "$NetBSD: w_remainder.c,v 1.6 1995/05/10 20:49:44 jtc Exp
 	double z;
 	z = __ieee754_remainder(x,y);
 	if(_LIB_VERSION == _IEEE_ || __isnan(y)) return z;
-	if(y==0.0) 
+	if(y==0.0)
 	    return __kernel_standard(x,y,28); /* remainder(x,0) */
 	else
 	    return z;
 #endif
 }
 weak_alias (__remainder, remainder)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__remainder, __remainderl)
+weak_alias (__remainder, remainderl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_scalb.c b/sysdeps/libm-ieee754/w_scalb.c
index 53d41144d6..e5c407a435 100644
--- a/sysdeps/libm-ieee754/w_scalb.c
+++ b/sysdeps/libm-ieee754/w_scalb.c
@@ -59,3 +59,7 @@ static char rcsid[] = "$NetBSD: w_scalb.c,v 1.6 1995/05/10 20:49:48 jtc Exp $";
 #endif
 }
 weak_alias (__scalb, scalb)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__scalb, __scalbl)
+weak_alias (__scalb, scalbl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_sinh.c b/sysdeps/libm-ieee754/w_sinh.c
index 9ecc4c5ab7..9b34cd1873 100644
--- a/sysdeps/libm-ieee754/w_sinh.c
+++ b/sysdeps/libm-ieee754/w_sinh.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_sinh.c,v 1.6 1995/05/10 20:49:51 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper sinh(x)
  */
 
@@ -31,7 +31,7 @@ static char rcsid[] = "$NetBSD: w_sinh.c,v 1.6 1995/05/10 20:49:51 jtc Exp $";
 #ifdef _IEEE_LIBM
 	return __ieee754_sinh(x);
 #else
-	double z; 
+	double z;
 	z = __ieee754_sinh(x);
 	if(_LIB_VERSION == _IEEE_) return z;
 	if(!__finite(z)&&__finite(x)) {
@@ -41,3 +41,7 @@ static char rcsid[] = "$NetBSD: w_sinh.c,v 1.6 1995/05/10 20:49:51 jtc Exp $";
 #endif
 }
 weak_alias (__sinh, sinh)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__sinh, __sinhl)
+weak_alias (__sinh, sinhl)
+#endif
diff --git a/sysdeps/libm-ieee754/w_sqrt.c b/sysdeps/libm-ieee754/w_sqrt.c
index 6351732bf0..be15d959ea 100644
--- a/sysdeps/libm-ieee754/w_sqrt.c
+++ b/sysdeps/libm-ieee754/w_sqrt.c
@@ -5,7 +5,7 @@
  *
  * Developed at SunPro, a Sun Microsystems, Inc. business.
  * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice 
+ * software is freely granted, provided that this notice
  * is preserved.
  * ====================================================
  */
@@ -14,7 +14,7 @@
 static char rcsid[] = "$NetBSD: w_sqrt.c,v 1.6 1995/05/10 20:49:55 jtc Exp $";
 #endif
 
-/* 
+/*
  * wrapper sqrt(x)
  */
 
@@ -41,3 +41,7 @@ static char rcsid[] = "$NetBSD: w_sqrt.c,v 1.6 1995/05/10 20:49:55 jtc Exp $";
 #endif
 }
 weak_alias (__sqrt, sqrt)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__sqrt, __sqrtl)
+weak_alias (__sqrt, sqrtl)
+#endif
diff --git a/sysdeps/posix/cuserid.c b/sysdeps/posix/cuserid.c
index 2fe535ea1d..140442fdee 100644
--- a/sysdeps/posix/cuserid.c
+++ b/sysdeps/posix/cuserid.c
@@ -16,9 +16,11 @@ 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.  */
 
+#include <pwd.h>
 #include <stdio.h>
 #include <string.h>
-#include <pwd.h>
+#include <unistd.h>
+#include <sys/types.h>
 
 /* Return the username of the caller.
    If S is not NULL, it points to a buffer of at least L_cuserid bytes
diff --git a/sysdeps/stub/e_acoshl.c b/sysdeps/stub/e_acoshl.c
new file mode 100644
index 0000000000..6ec9a15d38
--- /dev/null
+++ b/sysdeps/stub/e_acoshl.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__ieee754_acoshl (long double x)
+{
+  fputs ("__ieee754_acoshl not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__ieee754_acoshl)
diff --git a/sysdeps/stub/e_hypotl.c b/sysdeps/stub/e_hypotl.c
new file mode 100644
index 0000000000..a7a6e124d3
--- /dev/null
+++ b/sysdeps/stub/e_hypotl.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__ieee754_hypotl (long double x, long double y)
+{
+  fputs ("__ieee754_hypotl not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__ieee754_hypotl)
diff --git a/sysdeps/stub/e_j0l.c b/sysdeps/stub/e_j0l.c
new file mode 100644
index 0000000000..90fa2c6ff1
--- /dev/null
+++ b/sysdeps/stub/e_j0l.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__ieee754_j0l (long double x)
+{
+  fputs ("__ieee754_j0l not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__ieee754_j0l)
diff --git a/sysdeps/stub/e_j1l.c b/sysdeps/stub/e_j1l.c
new file mode 100644
index 0000000000..d84e3cd1c2
--- /dev/null
+++ b/sysdeps/stub/e_j1l.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__ieee754_j1l (long double x)
+{
+  fputs ("__ieee754_j1l not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__ieee754_j1l)
diff --git a/sysdeps/stub/e_jnl.c b/sysdeps/stub/e_jnl.c
new file mode 100644
index 0000000000..b9f59004ea
--- /dev/null
+++ b/sysdeps/stub/e_jnl.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__ieee754_jnl (long double x)
+{
+  fputs ("__ieee754_jnl not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__ieee754_jnl)
diff --git a/sysdeps/stub/e_lgammal_r.c b/sysdeps/stub/e_lgammal_r.c
new file mode 100644
index 0000000000..015511818c
--- /dev/null
+++ b/sysdeps/stub/e_lgammal_r.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__ieee754_lgammal_r (long double x, int *signgamp)
+{
+  fputs ("__ieee754_lgammal_r not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__ieee754_lgammal_r)
diff --git a/sysdeps/stub/e_powl.c b/sysdeps/stub/e_powl.c
new file mode 100644
index 0000000000..2fa7862ea5
--- /dev/null
+++ b/sysdeps/stub/e_powl.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__ieee754_powl (long double x, long double y)
+{
+  fputs ("__ieee754_powl not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__ieee754_powl)
diff --git a/sysdeps/stub/e_rem_pio2l.c b/sysdeps/stub/e_rem_pio2l.c
new file mode 100644
index 0000000000..0a9ac79917
--- /dev/null
+++ b/sysdeps/stub/e_rem_pio2l.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__ieee754_rem_pio2l (long double x, long double *y)
+{
+  fputs ("__ieee754_rem_pio2l not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__ieee754_rem_pio2l)
diff --git a/sysdeps/stub/e_sinhl.c b/sysdeps/stub/e_sinhl.c
new file mode 100644
index 0000000000..8fe11d4ea9
--- /dev/null
+++ b/sysdeps/stub/e_sinhl.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__ieee754_sinhl (long double x)
+{
+  fputs ("__ieee754_sinhl not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__ieee754_sinhl)
diff --git a/sysdeps/stub/k_cosl.c b/sysdeps/stub/k_cosl.c
new file mode 100644
index 0000000000..3e6c9688f0
--- /dev/null
+++ b/sysdeps/stub/k_cosl.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__kernel_cosl (long double x, long double y)
+{
+  fputs ("__kernel_cosl not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__kernel_cosl)
diff --git a/sysdeps/stub/k_rem_pio2l.c b/sysdeps/stub/k_rem_pio2l.c
new file mode 100644
index 0000000000..a51c44546b
--- /dev/null
+++ b/sysdeps/stub/k_rem_pio2l.c
@@ -0,0 +1,13 @@
+#include <math.h>
+#include <math_private.h>
+#include <stdio.h>
+
+int
+__kernel_rem_pio2l (long double *x, long double *y, int e0, int nx, int prec,
+		    const int *ipio2)
+{
+  fputs ("__kernel_rem_pio2l not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__kernel_rem_pio2l)
diff --git a/sysdeps/stub/k_sinl.c b/sysdeps/stub/k_sinl.c
new file mode 100644
index 0000000000..2057bf8bff
--- /dev/null
+++ b/sysdeps/stub/k_sinl.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__kernel_sinl (long double x, long double y)
+{
+  fputs ("__kernel_sinl not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__kernel_sinl)
diff --git a/sysdeps/stub/k_tanl.c b/sysdeps/stub/k_tanl.c
new file mode 100644
index 0000000000..713c8cdfe6
--- /dev/null
+++ b/sysdeps/stub/k_tanl.c
@@ -0,0 +1,11 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__kernel_tanl (long double x, long double y, int iy)
+{
+  fputs ("__kernel_tanl not implemented\n", stderr);
+  return 0.0;
+}
+
+stub_warning (__kernel_tanl)
diff --git a/sysdeps/stub/s_erfl.c b/sysdeps/stub/s_erfl.c
new file mode 100644
index 0000000000..e01bad206d
--- /dev/null
+++ b/sysdeps/stub/s_erfl.c
@@ -0,0 +1,12 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__erfl (long double x)
+{
+  fputs ("__erfl not implemented\n", stderr);
+  return 0.0;
+}
+weak_alias (__erfl, erfl)
+
+stub_warning (erfl)
diff --git a/sysdeps/stub/s_expm1l.c b/sysdeps/stub/s_expm1l.c
new file mode 100644
index 0000000000..fb8bda5eca
--- /dev/null
+++ b/sysdeps/stub/s_expm1l.c
@@ -0,0 +1,12 @@
+#include <math.h>
+#include <stdio.h>
+
+long double
+__expm1l (long double x)
+{
+  fputs ("__expm1l not implemented\n", stderr);
+  return 0.0;
+}
+weak_alias (__expm1l, expm1l)
+
+stub_warning (expm1l)
diff --git a/sysdeps/unix/sysv/linux/i386/clone.S b/sysdeps/unix/sysv/linux/i386/clone.S
index b60bc8ed92..0afbf872d9 100644
--- a/sysdeps/unix/sysv/linux/i386/clone.S
+++ b/sysdeps/unix/sysv/linux/i386/clone.S
@@ -65,6 +65,7 @@ ENTRY(__clone)
 	jz	thread_start
 
 	ret
+	.size	__clone,.-__clone
 
 	SYSCALL_ERROR_HANDLER
 
diff --git a/sysdeps/unix/sysv/linux/i386/mmap.S b/sysdeps/unix/sysv/linux/i386/mmap.S
index 638d548e00..30b0f76a43 100644
--- a/sysdeps/unix/sysv/linux/i386/mmap.S
+++ b/sysdeps/unix/sysv/linux/i386/mmap.S
@@ -42,5 +42,6 @@ ENTRY (__mmap)
 
 	/* Successful; return the syscall's value.  */
 	ret
+	.size __mmap,.-__mmap
 
 weak_alias (__mmap, mmap)
diff --git a/sysdeps/unix/sysv/linux/i386/profil-counter.h b/sysdeps/unix/sysv/linux/i386/profil-counter.h
index 7de3faec0e..96b38e24c0 100644
--- a/sysdeps/unix/sysv/linux/i386/profil-counter.h
+++ b/sysdeps/unix/sysv/linux/i386/profil-counter.h
@@ -17,10 +17,10 @@ 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.  */
 
-#include <asm/sigcontext.h>
+#include <sigcontext.h>
 
 void
-profil_counter (int signo, struct sigcontext_struct sc)
+profil_counter (int signo, struct sigcontext sc)
 {
   profil_count ((void *) sc.eip);
 }
diff --git a/sysdeps/unix/sysv/linux/i386/sigcontext.h b/sysdeps/unix/sysv/linux/i386/sigcontext.h
new file mode 100644
index 0000000000..92733ab447
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/i386/sigcontext.h
@@ -0,0 +1,29 @@
+/* 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 _SIGCONTEXT_H
+#define _SIGCONTEXT_H 1
+
+/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but
+   we need sigcontext.  */
+#define sigcontext_struct sigcontext
+
+#include <asm/sigcontext.h>
+
+
+#endif /* sigcontext.h */
diff --git a/sysdeps/unix/sysv/linux/i386/socket.S b/sysdeps/unix/sysv/linux/i386/socket.S
index 39db6aa50a..0cf4bfdf9e 100644
--- a/sysdeps/unix/sysv/linux/i386/socket.S
+++ b/sysdeps/unix/sysv/linux/i386/socket.S
@@ -57,5 +57,6 @@ ENTRY (P(__,socket))
 
 	/* Successful; return the syscall's value.  */
 	ret
+	.size P(__,socket),.-P(__,socket)
 
 weak_alias (P(__,socket), socket)
diff --git a/sysdeps/unix/sysv/linux/i386/syscall.S b/sysdeps/unix/sysv/linux/i386/syscall.S
index b7b44e76da..e7839cd1c0 100644
--- a/sysdeps/unix/sysv/linux/i386/syscall.S
+++ b/sysdeps/unix/sysv/linux/i386/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 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
@@ -18,6 +18,9 @@ Cambridge, MA 02139, USA.  */
 
 #include <sysdep.h>
 
+/* Please consult the file sysdeps/unix/sysv/linux/i386/sysdep.h for
+   more information about the value -125 used below.*/
+
 	.text
 	SYSCALL_ERROR_HANDLER	/* Define error handler for PIC.  */
 ENTRY (syscall)
@@ -26,6 +29,7 @@ ENTRY (syscall)
 	movl 16(%esp), %eax	/* Load syscall number into %eax.  */
 	int $0x80		/* Do the system call.  */
 	POPARGS_5		/* Restore register contents.  */
-	testl %eax, %eax	/* Check %eax for error.  */
-	jl syscall_error	/* Jump to error handler if negative.  */
+	cmpl $-125, %eax	/* Check %eax for error.  */
+	jae syscall_error	/* Jump to error handler if error.  */
 	ret			/* Return to caller.  */
+	.size syscall,.-syscall
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.S b/sysdeps/unix/sysv/linux/i386/sysdep.S
index 213af51548..9727f8976f 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.S
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.S
@@ -67,5 +67,4 @@ ENTRY (__errno_location)
 	movl $errno, %eax
 #endif
 	ret
-.Lfe1:
-	.size	__errno_location, .Lfe1-__errno_location
+	.size	__errno_location, .-__errno_location
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 1bf20bd718..b00c976351 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -37,16 +37,25 @@ Cambridge, MA 02139, USA.  */
 
 #ifdef ASSEMBLER
 
-/* Linux uses a negative return value to indicate syscall errors, unlike
-   most Unices, which use the condition codes' carry flag.  */
+/* Linux uses a negative return value to indicate syscall errors,
+   unlike most Unices, which use the condition codes' carry flag.
+
+   Since version 2.1 the return value of a system call might be
+   negative even if the call succeeded.  E.g., the `lseek' system call
+   might return a large offset.  Therefore we must not anymore test
+   for < 0, but test for a real error by making sure the value in %eax
+   is a real error number.  For now (as of 2.1.1) 122 is the largest
+   defined error number.  Given a bit room for development, Linus
+   chose in <asm/unistd.h> to use the values -125 to -1 for error
+   values.  We follow him here.  */
 #undef	PSEUDO
 #define	PSEUDO(name, syscall_name, args)				      \
   .text;								      \
   SYSCALL_ERROR_HANDLER							      \
   ENTRY (name)								      \
     DO_CALL (args, syscall_name);					      \
-    testl %eax, %eax;							      \
-    jl syscall_error;
+    cmpl $-125, %eax;							      \
+    jae syscall_error;
 
 #ifndef PIC
 #define SYSCALL_ERROR_HANDLER	/* Nothing here; code in sysdep.S is used.  */
@@ -70,9 +79,10 @@ syscall_error:								      \
   popl %ebx;								      \
   movl %ecx, (%eax);							      \
   movl $-1, %eax;							      \
-  ret;
+  ret;									      \
+  .size syscall_error,.-syscall-error;
 /* A quick note: it is assumed that the call to `__errno_location' does
-   not modify the parameter value!  */
+   not modify the stack!  */
 #else
 #define SYSCALL_ERROR_HANDLER						      \
   .type syscall_error,@function;					      \
@@ -85,7 +95,8 @@ syscall_error:								      \
   movl errno@GOT(%ecx), %ecx;						      \
   movl %edx, (%ecx);							      \
   movl $-1, %eax;							      \
-  ret;
+  ret;									      \
+  .size syscall_error,.-syscall-error;
 #endif	/* _LIBC_REENTRANT */
 #endif	/* PIC */