summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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_entre]\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_entre]\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 [ hte ]\n"
+
+#: sunrpc/rpcinfo.c:610
+msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
+msgstr " rpcinfo [ -n no_de_port ] -t hte 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 " (rgles de \"%s\", ligne %d)"
+
+#: locale/programs/ld-collate.c:360 locale/programs/ld-ctype.c:1233
+msgid " done\n"
+msgstr " complt\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 rgle."
+
+#: 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 prvue: %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 signe\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 crer %s: %s\n"
+
+#: time/zic.c:2119
+#, c-format
+msgid "%s: Can't create directory %s: %s\n"
+msgstr "%s: ne peut crer le rpertoire %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 dlai en secondes %s\n"
+
+#: time/zic.c:362
+#, c-format
+msgid "%s: Memory exhausted: %s\n"
+msgstr "%s: mmoire puise: %s\n"
+
+#: time/zic.c:528
+#, c-format
+msgid "%s: More than one -L option specified\n"
+msgstr "%s: option -L spcifie plus d'une fois.\n"
+
+#: time/zic.c:488
+#, c-format
+msgid "%s: More than one -d option specified\n"
+msgstr "%s: option -d spcifie plus d'une fois.\n"
+
+#: time/zic.c:498
+#, c-format
+msgid "%s: More than one -l option specified\n"
+msgstr "%s: option -l spcifie plus d'une fois.\n"
+
+#: time/zic.c:508
+#, c-format
+msgid "%s: More than one -p option specified\n"
+msgstr "%s: option -p spcifie plus d'une fois.\n"
+
+#: time/zic.c:518
+#, c-format
+msgid "%s: More than one -y option specified\n"
+msgstr "%s: option -y spcifie 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 rsultat 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 illgale -- %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 paramtre.\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 paramtre.\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 paramtre.\n"
+
+#: posix/getopt.c:725
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: l'option requiert un paramtre -- %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 prmature 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 rgles_posix ]\n"
+"\t[ -d rpertoire ]\n"
+"\t[ -L secondes_coules ] [ -y type_anne ] [ 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 "*entre 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 rgulier."
+
+#: inet/rcmd.c:329
+msgid ".rhosts writeable by other than owner"
+msgstr ".rhosts accessible en criture par d'autres que le propritaire."
+
+#: 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 caractres <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 caractres <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 "Accs d'une librairie partage 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 dj utilise."
+
+#. 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 supporte 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 paramtres 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 partages."
+
+#: sunrpc/clnt_perr.c:276
+msgid "Authentication OK"
+msgstr "Succs 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 priphrique requis."
+
+#: sunrpc/pmap_rmt.c:335
+msgid "Broadcast select problem"
+msgstr "Problme de slection 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 accder la librairie partage demande."
+
+#. 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 mmoire."
+
+#. 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 demande."
+
+#: sunrpc/pmap_rmt.c:253
+msgid "Cannot create socket for broadcast rpc"
+msgstr "Ne peut crer 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 excuter une librairie partage directement."
+
+#: sunrpc/pmap_rmt.c:347
+msgid "Cannot receive reply to broadcast"
+msgstr "Ne peut recevoir l'accus rception la requte 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 aprs 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 "Numro 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 caractres\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 refuse."
+
+#. 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-initialise 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 termine par expiration du dlai 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 priphrique 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 "Priphrique 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 "Priphrique 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 rpertoire n'est pas vide."
+
+#. TRANS The user's disk quota was exceeded.
+#: stdio-common/../sysdeps/gnu/errlist.c:486
+msgid "Disc quota exceeded"
+msgstr "Dbordement 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 systme 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 systme ne peut dfinir `_POSIX2_LOCALEDEF'"
+
+#: sunrpc/clnt_perr.c:290
+msgid "Failed (unspecified error)"
+msgstr "chec (erreur non spcifie)."
+
+#: 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'accs 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 implante."
+
+#. 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'hte cible est arrt ou en panne."
+
+#: resolv/herror.c:75
+msgid "Host name lookup failure"
+msgstr "Erreur de reprage du nom de l'hte 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 "Reprage illgal"
+
+#. 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 priphrique."
+
+#. 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 "Opration inapproprie pour un processus d'arrire-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'entre/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 systme interrompu."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:610
+msgid "Interrupted system call should be restarted"
+msgstr "Appel systme 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 "Paramtre invalide."
+
+#: posix/regex.c:946
+msgid "Invalid back reference"
+msgstr "Rfrence arrire invalide."
+
+#: posix/regex.c:944
+msgid "Invalid character class name"
+msgstr "Nom de classe de caractres 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 "Vrificateur du client invalide."
+
+#: posix/regex.c:943
+msgid "Invalid collation character"
+msgstr "Caractre 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 priphque 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 "Chane multi-octets ou tendue de caractres invalide ou incomplte."
+
+#: posix/regex.c:953
+msgid "Invalid preceding regular expression"
+msgstr "Expression rgulire prcdente invalide."
+
+#: posix/regex.c:951
+msgid "Invalid range end"
+msgstr "Fin d'intervalle invalide."
+
+#: posix/regex.c:942
+msgid "Invalid regular expression"
+msgstr "Expression rgulire invalide."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:670
+msgid "Invalid request code"
+msgstr "Requte de code invalide."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:658
+msgid "Invalid request descriptor"
+msgstr "Descripteur de requte invalide"
+
+#: sunrpc/clnt_perr.c:288
+msgid "Invalid server verifier"
+msgstr "Vrificateur 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 rpertoire."
+
+#: 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 rinitialis."
+
+#: 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 "Numro 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 rseau."
+
+#: posix/regex.c:952
+msgid "Memory exhausted"
+msgstr "Mmoire puise."
+
+#. 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 tente."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:746
+msgid "Name not unique on network"
+msgstr "Le nom n'est pas unique sur le rseau."
+
+#. 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 rseau a bris la connexion lors de la rinitialisation."
+
+#. TRANS A socket operation failed because the network was down.
+#: stdio-common/../sysdeps/gnu/errlist.c:366
+msgid "Network is down"
+msgstr "Le rseau 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 rseau 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 smaphore XENIX disponible."
+
+#: resolv/herror.c:77
+msgid "No address associated with name"
+msgstr "Aucune adresse associe 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 donne 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 dsir."
+
+#: posix/regex.c:5202
+msgid "No previous regular expression"
+msgstr "Aucune expression rgulire ne prcde."
+
+#: sunrpc/rpcinfo.c:515
+msgid "No remote programs registered.\n"
+msgstr "Aucun programme enregistr sur l'hte 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'accs pour atteindre l'hte 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 priphrique."
+
+#. 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 rpertoire 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 donnes."
+
+#. 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 rpertoire."
+
+#. 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 paramtre numrique 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 rsultat numrique 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 tl-accessible."
+
+#: time/zic.c:1940
+msgid "Odd number of quotation marks"
+msgstr "Nombre impair de caractres 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 "Opration dj 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 "Opration 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 "Opration non supporte."
+
+#. 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 "Opration non supporte par ce priphrique."
+
+#. 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 "Opration 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'opration 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 accorde."
+
+#: posix/regex.c:954
+msgid "Premature end of regular expression"
+msgstr "Fin prmature de l'expression rgulire."
+
+#: 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 supporte."
+
+#. 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 spcifique RFS."
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:527
+msgid "RPC bad procedure for program"
+msgstr "Mauvaise procdure 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 errone."
+
+#. TRANS ???
+#: stdio-common/../sysdeps/gnu/errlist.c:507
+msgid "RPC struct is bad"
+msgstr "La dclaration struct RPC est errone."
+
+#. 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 dcoder le rsultat."
+
+#: sunrpc/clnt_perr.c:167
+msgid "RPC: Can't encode arguments"
+msgstr "RPC: ne peut encoder les paramtres."
+
+#: sunrpc/clnt_perr.c:199
+msgid "RPC: Failed (unspecified error)"
+msgstr "RPC: chec (erreur non spcifie)."
+
+#: 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 procdure 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 systme sur l'hte cible."
+
+#: sunrpc/clnt_perr.c:187
+msgid "RPC: Server can't decode arguments"
+msgstr "RPC: le serveur ne peut dcoder les paramtres."
+
+#: sunrpc/clnt_perr.c:165
+msgid "RPC: Success"
+msgstr "RPC: succs."
+
+#: sunrpc/clnt_perr.c:175
+msgid "RPC: Timed out"
+msgstr "RPC: expiration du dlai de la minuterie."
+
+#: sunrpc/clnt_perr.c:173
+msgid "RPC: Unable to receive"
+msgstr "RPC: incapable d'effectuer la rception."
+
+#: 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: hte 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 "Systme de fichiers accessible en lecture seulement."
+
+#: posix/regex.c:955
+msgid "Regular expression too big"
+msgstr "Expression rgulire trop grosse."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:798
+msgid "Remote I/O error"
+msgstr "Erreur d'entre/sortie sur l'hte cible."
+
+#: stdio-common/../sysdeps/gnu/errlist.c:754
+msgid "Remote address changed"
+msgstr "L'adresse de l'hte cible a t modifie."
+
+#: 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 accs 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 vrification."
+
+#. 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 "Opration 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'accs 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 "Succs."
+
+#. 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 systme."
+
+#. 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 rfrences: 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 dj 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 "Hte 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 systme 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_ENTRE]...\n"
+" %s [OPTION]... [FICHIER_DE_SORTIE [FICHIER_D_ENTRE]...]\n"
+"Les paramtres obligatoires pour les options de formes longues le sont\n"
+"aussi pour les options de forme courtes.\n"
+" -H, --header crer une en-tte de fichier C contenant\n"
+" les dfinitions des symboles\n"
+" -h, --help afficher l'aide-mmoire\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_ENTRE est -, la lecture se fait de l'entre 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_ENTRE FICHIER_DE_SORTIE\n"
+" %s [OPTION]... -o FICHIER_DE_SORTIE FICHIER_D_ENTRE\n"
+" %s [OPTION]... -u FICHIER_D_ENTRE\n"
+"Les paramtres obligatoires pour les options de formes longues le sont\n"
+"aussi pour les options de forme courtes.\n"
+" -f, --fold-case convertir les cls en minuscules\n"
+" -h, --help afficher l'aide-mmoire\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 donnes\n"
+" -u, --undo afficher le contenu du fichier de la base de donnes\n"
+" une entre par ligne\n"
+" -V, --version afficher le nom et la version du logiciel\n"
+"Si le FICHIER_D_ENTRE est -, la lecture se fait l'entre 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 paramtres obligatoires pour les options de formes longues le sont\n"
+"aussi pour les options de forme courtes.\n"
+" -c, --force poursuivre la gnration sur la sortie\n"
+" mme si des messages d'avertissements s'affichent\n"
+" -h, --help afficher l'aide-mmoire\n"
+" -f, --charmap=FICHIER utiliser les noms symboliques de caractres\n"
+" qui se trouvent dans le FICHIER\n"
+" -i, --inputfile=FICHIER utiliser les dfinitions sources qui se\n"
+" trouvent dans le FICHIER\n"
+" -u, --code-set-name=CODE spcifier un CODE d'ensemble pour la table des\n"
+" lments 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 faon stricte POSIX\n"
+"\n"
+"Rpertoire systme des tables de caractres: %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 paramtres obligatoires pour les options de formes longues le sont\n"
+"aussi pour les options de forme courtes.\n"
+" -h, --help afficher l'aide-mmoire\n"
+" -V, --version afficher le nom et la version du logiciel\n"
+"\n"
+" -a, --all-locales afficher les noms localiss disponibles\n"
+" -m, --charmaps afficher les noms des tables de caractres disponibles\n"
+"\n"
+" -c, --category-name afficher les noms des catgories slectionnes\n"
+" -k, --keyword-name afficher les noms des mots cls slectionns\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_accs]\n"
+
+#: sunrpc/rpcinfo.c:609
+msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n"
+msgstr "Usage: rpcinfo [ -n no_port ] -u hte 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 dfini de donnes."
+
+#: time/zic.c:1845
+msgid "Wild result from command execution"
+msgstr "Rsultat anarchique rsultant de l'excution 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 gcher 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 antrieur\n"
+"au temps final de la ligne prcdente."
+
+#: 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 dfinition 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 dernire entre du champ `%s' de catgorie `%s'"
+
+#: locale/programs/ld-collate.c:1651
+msgid "`...' must only be used in `...' and `UNDEFINED' entries"
+msgstr "`...' doit tre utilis seulement avec les entres `...' et `UNDEFINED'"
+
+#: locale/programs/locfile.c:538
+msgid "`from' expected after first argument to `collating-element'"
+msgstr "`from' attendu aprs le premier paramtre de `collating-element'"
+
+#: locale/programs/ld-collate.c:1108
+msgid ""
+"`from' string in collation element declaration contains unknown character"
+msgstr ""
+"La chane `from' dclarant un lment de fusionnement contient un caractre inconnu."
+
+#: locale/programs/charmap.c:267
+#, c-format
+msgid "argument to <%s> must be a single character"
+msgstr "Le paramtre de <%s> doit tre un caractre simple."
+
+#: locale/programs/locfile.c:215
+#, c-format
+msgid "argument to `%s' must be a single character"
+msgstr "Le paramtre de `%s' doit tre un caractre simple."
+
+#: sunrpc/rpc_parse.c:326
+msgid "array declaration expected"
+msgstr "Dclaration attendue de tableau."
+
+#: sunrpc/auth_unix.c:314
+msgid "auth_none.c - Fatal marshalling problem"
+msgstr "auth_none.c - problme fatal de mise en ordre."
+
+#: inet/rcmd.c:327
+msgid "bad .rhosts owner"
+msgstr "Mauvais propritaire du fichier .rhosts."
+
+#: locale/programs/charmap.c:212 locale/programs/locfile.c:209
+msgid "bad argument"
+msgstr "Mauvais paramtre."
+
+#: 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 libr deux fois."
+
+#: malloc/mcheck.c:192
+msgid "bogus mcheck_status, library is buggy"
+msgstr "Statut de `mcheck_status' erron, la librarie est errone."
+
+#: 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 repre."
+
+#: time/zic.c:1686
+msgid "can't determine time zone abbrevation to use just after until time"
+msgstr ""
+"Ne peut dterminer le nom abrg 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 rassigner le numro de procdure %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 insrer l'lment 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 rsultats."
+
+#: 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 insrer une nouvelle dfinition 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 donnes `%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'entre `%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 catgorie `%s'."
+
+#: locale/programs/ld-collate.c:1359
+msgid "cannot process order specification"
+msgstr "Ne peut traiter la spcification d'ordonnancement."
+
+#: locale/programs/locale.c:293
+#, c-format
+msgid "cannot read character map directory `%s'"
+msgstr "Ne peut lire via le rpertoire de la table des caractres `%s'."
+
+#: locale/programs/locale.c:268
+#, c-format
+msgid "cannot read locale directory `%s'"
+msgstr "Ne peut lire via le rpertoire des dfinitions localises `%s'."
+
+#: locale/programs/localedef.c:303
+#, c-format
+msgid "cannot read locale file `%s'"
+msgstr "Ne peut lire le fichier des dfinitions localises `%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 "Catgorie de donnes 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 "Caractre %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 "Caractre %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 "Caractre <SP> non dfini dans la table des caractres."
+
+#: locale/programs/ld-ctype.c:1140
+#, c-format
+msgid "character `%c' not defined while needed as default value"
+msgstr "Caractre `%c' non dfini alors qu'attendu comme valeur par dfaut."
+
+#: 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 "Caractre `%s' non dfini alors qu'attendu comme valeur par dfaut."
+
+#: locale/programs/ld-ctype.c:800
+#, c-format
+msgid "character class `%s' already defined"
+msgstr "Classe de caractres `%s' dj dfinie."
+
+#: locale/programs/ld-ctype.c:832
+#, c-format
+msgid "character map `%s' already defined"
+msgstr "Table de caractres `%s' dj dfinie."
+
+#: locale/programs/charmap.c:76
+#, c-format
+msgid "character map file `%s' not found"
+msgstr "Fichier de la table des caractres `%s' non reprable."
+
+#: sunrpc/clnt_raw.c:106
+msgid "clnt_raw.c - Fatal header serialization error."
+msgstr "clnt_raw.c - erreur fatale de srialisation d'en-tte."
+
+#: locale/programs/ld-collate.c:1328
+#, c-format
+msgid "collation element `%.*s' appears more than once: ignore line"
+msgstr "lment de fusionnement `%.*s' apparat plus d'une fois: ligne ignore."
+
+#: locale/programs/ld-collate.c:1346
+msgid "collation symbol `.*s' appears more than once: ignore line"
+msgstr "Symbole de fusionnement `.*s' apparat plus d'une fois: ligne ignore."
+
+#: locale/programs/locfile.c:522
+#, c-format
+msgid "collation symbol expected after `%s'"
+msgstr "Symbole de fusionnement attendu aprs `%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 crer un serveur rpc.\n"
+
+#: sunrpc/portmap.c:121
+msgid "couldn't do tcp_create\n"
+msgstr "Ne peut excuter tcp_create.\n"
+
+#: sunrpc/portmap.c:99
+msgid "couldn't do udp_create\n"
+msgstr "Ne peut excuter 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 caractres par dfaut `%s' non repr."
+
+#: sunrpc/rpc_parse.c:77
+msgid "definition keyword expected"
+msgstr "Dfinition 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 caractre `%s'."
+
+#: locale/programs/ld-collate.c:1140
+msgid "duplicate collating element definition"
+msgstr "Duplicit de la dfinition d'lment de fusionnement."
+
+#: locale/programs/ld-collate.c:1286
+#, c-format
+msgid "duplicate definition for character `%.*s'"
+msgstr "Duplicit de la dfinition du caractre `%.*s'."
+
+#: db/makedb.c:295
+msgid "duplicate key"
+msgstr "Duplicit de cl."
+
+#: catgets/gencat.c:369
+msgid "duplicate set definition"
+msgstr "Duplicit de la dfinition 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 numro de message"
+
+#: locale/programs/ld-collate.c:1695
+msgid "empty weight name: line ignored"
+msgstr "Nom du poids vide: ligne ignore."
+
+#: sunrpc/svc_udp.c:344
+msgid "enablecache: cache already enabled"
+msgstr "enablecache: cache dj active."
+
+#: 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 donnes."
+
+#: 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 lment 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 "Chane attendue pour le paramtre 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 repre."
+
+#: sunrpc/rpc_parse.c:384
+msgid "expected type specifier"
+msgstr "Spcification de type attendu."
+
+#: locale/programs/locfile.c:1010
+#, c-format
+msgid "failure while writing data for category `%s'"
+msgstr "chec durant l'criture des donnes de catgorie `%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 catgorie `%s' n'est pas dfini."
+
+#: 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 catgorie `%s' indfini."
+
+#: locale/programs/locfile.c:547
+msgid "from-value of `collating-element' must be a string"
+msgstr "La valeur de dpart de `collating-element' doit tre une chane."
+
+#: locale/programs/linereader.c:328
+msgid "garbage at end of character code specification"
+msgstr "Rebut la fin du caractre du code de spcification."
+
+#: 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 illgale du champ dans la ligne de type `Leap'."
+
+#: time/zic.c:1154
+msgid "illegal Rolling/Stationary field on Leap line"
+msgstr "Champ `Rolling/Stationary' illgal sur la ligne de type `Leap'."
+
+#: locale/programs/ld-collate.c:1766
+msgid "illegal character constant in string"
+msgstr "Caractre illgal de constante dans la chane."
+
+#: sunrpc/rpc_scan.c:281
+msgid "illegal character in file: "
+msgstr "Caractre illgal dans le fichier: "
+
+#: locale/programs/ld-collate.c:1115
+msgid "illegal collation element"
+msgstr "lment de fusionnement illgal."
+
+#: locale/programs/charmap.c:196
+msgid "illegal definition"
+msgstr "Dfinition illgale."
+
+#: locale/programs/charmap.c:349
+msgid "illegal encoding given"
+msgstr "Encodage fourni illgal."
+
+#: locale/programs/linereader.c:546
+msgid "illegal escape sequence at end of string"
+msgstr "Squence d'chappement illgale la fin de la chane."
+
+#: locale/programs/charset.c:101
+msgid "illegal names for character range"
+msgstr "Nom illgal pour un intervalle de caractres."
+
+#: sunrpc/rpc_parse.c:146
+msgid "illegal result type"
+msgstr "Rsultat de type illgal."
+
+#: catgets/gencat.c:342 catgets/gencat.c:419
+msgid "illegal set number"
+msgstr "Numro d'ensemble illgal."
+
+#: 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 caractres 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 caractres 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'entre 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 "Dcalage relatif GMT invalide."
+
+#: time/zic.c:1025
+msgid "invalid abbreviation format"
+msgstr "Format d'abrviation 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 "Anne finale invalide."
+
+#: time/zic.c:1087
+msgid "invalid leaping year"
+msgstr "Anne 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 "Anne 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 aprs l'ellipse doit contenir la dfinition d'un caractre."
+
+#: 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 dfinition d'une constante de caractres."
+
+#: 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 dclaration de `copy', non repr."
+
+#: catgets/gencat.c:600
+msgid "malformed line ignored"
+msgstr "Ligne malforme ignore."
+
+#: malloc/mcheck.c:183
+msgid "memory clobbered before allocated block"
+msgstr "Mmoire crase avant le bloc allou."
+
+#: malloc/mcheck.c:186
+msgid "memory clobbered past end of allocated block"
+msgstr "Mmoire crase aprs 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 "Mmoire puise."
+
+#: malloc/mcheck.c:180
+msgid "memory is consistent, library is buggy"
+msgstr "Mmoire consistente, la librairie est fautive."
+
+#: time/zic.c:916
+msgid "nameless rule"
+msgstr "Rgle 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 dclaration `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 catgorie `%s': %s"
+
+#: time/zic.c:2060
+msgid "no day in month matches rule"
+msgstr "Pas de jour dans les rgles de concordance."
+
+#: locale/programs/ld-collate.c:259
+msgid "no definition of `UNDEFINED'"
+msgstr "Pas de dfinition 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 spcifi lorsque `copy' est utilis."
+
+#: locale/programs/localedef.c:334
+msgid "no output file produced because warning were issued"
+msgstr "Aucun fichier de sortie gnr en raison d'un avertissement dj 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 dfini pour le symbole `%s'."
+
+#: locale/programs/charmap.c:430
+msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
+msgstr ""
+"Seules les dfinitions de type `WIDTH' sont autorises suivre\n"
+"la dfinition de `CHARMAP'."
+
+#: sunrpc/portmap.c:451
+msgid "portmap CALLIT: cannot fork.\n"
+msgstr "portmap CALLIT: ne peut procder 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 crer un socket"
+
+#: sunrpc/rpc_scan.c:456 sunrpc/rpc_scan.c:464
+msgid "preprocessor error"
+msgstr "Erreur du prprocesseur."
+
+#: db/makedb.c:311
+#, c-format
+msgid "problems while reading `%s'"
+msgstr "Problmes 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 prt et en attente.\n"
+
+#: inet/rcmd.c:154
+#, c-format
+msgid "rcmd: select (setting up stderr): %s\n"
+msgstr "rcmd: slection (configuration de stderr): %s.\n"
+
+#: inet/rcmd.c:86
+msgid "rcmd: socket: All ports in use\n"
+msgstr "rcmd: socket: tous les ports sont occups.\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: mmoire puise.\n"
+
+#: time/zic.c:1795
+msgid "repeated leap second moment"
+msgstr "Rptition du dlai une seconde fois."
+
+#: sunrpc/rpcinfo.c:659
+#, c-format
+msgid "rpcinfo: %s is unknown host\n"
+msgstr "rpcinfo: %s est un hte 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 faon imprvue.\n"
+
+#: time/zic.c:709 time/zic.c:711
+msgid "same rule name in multiple files"
+msgstr "Mme nom de rgle 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 spcification de tri par le poids des symboles de fusionnement n'a aucun sens."
+
+#: time/zic.c:780
+msgid "standard input"
+msgstr "entre standard"
+
+#: time/zdump.c:260
+msgid "standard output"
+msgstr "sortie standard"
+
+#: time/zic.c:1277
+msgid "starting year greater than ending year"
+msgstr "Anne initiale plus grande que l'anne 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: mmoire puise.\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 - problme de cration d'un socket udp."
+
+#: sunrpc/svc_tcp.c:154 sunrpc/svc_tcp.c:161
+msgid "svctcp_create: out of memory\n"
+msgstr "svctcp_create: mmoire puise.\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: problme de cration 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 lment de fusionnement multi-caractres `%.*s' \n"
+"provoque la duplication de la dfinition d'un lment."
+
+#: locale/programs/ld-collate.c:1063
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates other element "
+"definition"
+msgstr ""
+"Le symbole d'un lment de fusionnement multi-caractres `%.*s' \n"
+"provoque la duplication d'autres dfinitions d'lments."
+
+#: locale/programs/ld-collate.c:1199
+#, c-format
+msgid ""
+"symbol for multicharacter collating element `%.*s' duplicates other symbol "
+"definition"
+msgstr ""
+"Le symbole d'un lment de fusionnement multi-caractres `%.*s' \n"
+"provoque la duplication d'autres dfinitions 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 lment de fusionnement multi-caractres `%.*s' \n"
+"provoque la duplication de la dfinition 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 lment de fusionnement multi-caractres `%.*s' \n"
+"provoque la duplication d'un nom symbolique dans le jeu de caractres."
+
+#: 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 dfinition 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 dfinition de la classe de caractres."
+
+#: locale/programs/locfile.c:420
+msgid "syntax error in character conversion definition"
+msgstr "Erreur de syntaxe dans la dfinition du caractre de conversion."
+
+#: locale/programs/locfile.c:662
+msgid "syntax error in collating order definition"
+msgstr "Erreur de syntaxe dans l'ordre de la dfinition du fusionnement."
+
+#: locale/programs/locfile.c:512
+msgid "syntax error in collation definition"
+msgstr "Erreur de syntaxe dans la dfinition du fusionnement."
+
+#: locale/programs/locfile.c:335
+msgid "syntax error in definition of LC_CTYPE category"
+msgstr "Erreur de syntaxe dans la dfinition d'une catgorie de type `LC_CTYPE'."
+
+#: locale/programs/locfile.c:278
+msgid "syntax error in definition of new character class"
+msgstr "Erreur de syntaxe dans la dfinition d'une nouvelle classe de caractres."
+
+#: locale/programs/locfile.c:288
+msgid "syntax error in definition of new character map"
+msgstr "Erreur de syntaxe dans la dfinition d'une nouvelle table de caractres."
+
+#: locale/programs/locfile.c:873
+msgid "syntax error in message locale definition"
+msgstr "Erreur de syntaxe dans la dfinition localise du message."
+
+#: locale/programs/locfile.c:784
+msgid "syntax error in monetary locale definition"
+msgstr "Erreur de syntaxe dans la dfinition localise des valeurs montaires."
+
+#: locale/programs/locfile.c:811
+msgid "syntax error in numeric locale definition"
+msgstr "Erreur de syntaxe dans la dfinition localise de reprsentation numrique."
+
+#: locale/programs/locfile.c:722
+msgid "syntax error in order specification"
+msgstr "Erreur de syntaxe dans la spficication 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 dfinition localise de la reprsentation du temps."
+
+#: locale/programs/locfile.c:255
+msgid "syntax error: not inside a locale definition section"
+msgstr "Erreur de syntaxe: pas l'intrieur d'une section de dfinition localise."
+
+#: catgets/gencat.c:371 catgets/gencat.c:507 catgets/gencat.c:534
+msgid "this is the first definition"
+msgstr "Ceci est la premire dfinition."
+
+#: time/zic.c:1120A
+#: mro: investiguer dans le code source
+msgid "time before zero"
+msgstr "Temps dfini avant le zro."
+
+#: time/zic.c:1128 time/zic.c:1960 time/zic.c:1979
+msgid "time overflow"
+msgstr "Dbordement de temps."
+
+#: locale/programs/charset.c:44
+msgid "too few bytes in character encoding"
+msgstr "Trop peu d'octets pour l'encodage des caractres."
+
+#: locale/programs/charset.c:46
+msgid "too many bytes in character encoding"
+msgstr "Trop d'octets pour l'encodage des caractres."
+
+#: locale/programs/locales.h:72
+msgid "too many character classes defined"
+msgstr "Trop de dfinitions de classes de caractres."
+
+#: 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 dlai en secondes."
+
+#: time/zic.c:1761
+msgid "too many local time types"
+msgstr "Trop de types localiss pour la reprsentation du temps."
+
+#: time/zic.c:1715
+msgid "too many transitions?!"
+msgstr "Trop de transitions dfinies?!"
+
+#: locale/programs/ld-collate.c:1622
+msgid "too many weights"
+msgstr "Trop de poids dfinis."
+
+#: time/zic.c:2083
+msgid "too many, or too long, time zone abbreviations"
+msgstr "Trop ou de trop longues abrviations 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 "Problme rpondre au programme %d.\n"
+
+#: locale/programs/ld-collate.c:1382
+msgid "two lines in a row containing `...' are not allowed"
+msgstr "Deux lignes conscutives contenant `...' ne sont pas permises."
+
+#: time/zic.c:1284
+msgid "typed single year"
+msgstr "Une seule anne fournie."
+
+#: locale/programs/charmap.c:617 locale/programs/charmap.c:628
+#, c-format
+msgid "unknown character `%s'"
+msgstr "Caractre 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 "Caractre inconnu dans le champ `%s' de catgorie `%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 ignore."
+
+#: 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 ignore."
+
+#: time/zic.c:752
+msgid "unruly zone"
+msgstr "Zone sans rgle."
+
+#: catgets/gencat.c:952
+msgid "unterminated message"
+msgstr "Message incomplet."
+
+#: locale/programs/linereader.c:515 locale/programs/linereader.c:550
+msgid "unterminated string"
+msgstr "Chane incomplte."
+
+#: sunrpc/rpc_scan.c:319
+msgid "unterminated string constant"
+msgstr "Chane de constante incomplte."
+
+#: 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 suprieure de l'intervalle n'est pas plus petite que la limite infrieure."
+
+#: sunrpc/rpc_main.c:78
+#, c-format
+msgid "usage: %s infile\n"
+msgstr "Usage: %s fichier_d_entre\n"
+
+#: time/zic.c:2026
+msgid "use of 2/29 in non leap-year"
+msgstr "Utiliser 2/29 pour les annes 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 catgorie `%s' ne doit pas tre un chane 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 catgorie `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 catgorie `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 catgorie `%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 catgorie `%s' ne doivent pas tre gal zro."
+
+#: sunrpc/rpc_parse.c:330
+msgid "variable-length array declaration expected"
+msgstr "Dclaration attendue de tableau de type `variable-length'."
+
+#: sunrpc/rpc_parse.c:370
+msgid "voids allowed only inside union and program definitions"
+msgstr "Dclaration `voids' permises seulement l'intrieur d'une dfinition 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 donnes."
+
+#: db/makedb.c:300
+msgid "while writing data base file"
+msgstr "durant l'criture dans le fichier de la base de donnes."
+
+#: db/makedb.c:130
+msgid "wrong number of arguments"
+msgstr "Mauvais nombre de paramtres."
+
+#: 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 */