diff options
60 files changed, 2731 insertions, 1440 deletions
@@ -1,3 +1,164 @@ +1997-04-30 17:35 Ulrich Drepper <drepper@cygnus.com> + + * math/libm-test.c: Implement test for exceptions. + Partly due to Andreas Jaeger. + (csin_test): New function. + * sysdeps/libm-i387/s_cexp.S: Raise correct exceptions. + * sysdeps/libm-i387/s_cexpf.S: Likewise. + * sysdeps/libm-i387/s_cexpl.S: Likewise. + * sysdeps/libm-ieee754/s_ccos.c: Likewise. + * sysdeps/libm-ieee754/s_ccosf.c: Likewise. + * sysdeps/libm-ieee754/s_ccosl.c: Likewise. + * sysdeps/libm-ieee754/s_ccosh.c: Likewise. + * sysdeps/libm-ieee754/s_ccoshf.c: Likewise. + * sysdeps/libm-ieee754/s_ccoshl.c: Likewise. + * sysdeps/libm-ieee754/s_cexp.c: Likewise. + * sysdeps/libm-ieee754/s_cexpf.c: Likewise. + * sysdeps/libm-ieee754/s_cexpl.c: Likewise. + * sysdeps/libm-ieee754/s_csinh.c: Likewise. + * sysdeps/libm-ieee754/s_csinhf.c: Likewise. + * sysdeps/libm-ieee754/s_csinhl.c: Likewise. + * sysdeps/libm-ieee754/s_ctanh.c: Likewise. + * sysdeps/libm-ieee754/s_ctanhf.c: Likewise. + * sysdeps/libm-ieee754/s_ctanhl.c: Likewise. + + * sysdeps/libm-ieee754/s_ccosh.c: Correct computation. + * sysdeps/libm-ieee754/s_ccoshf.c: Likewise. + * sysdeps/libm-ieee754/s_ccoshl.c: Likewise. + * sysdeps/libm-ieee754/s_csinh.c: Likewise. + * sysdeps/libm-ieee754/s_csinhf.c: Likewise. + * sysdeps/libm-ieee754/s_csinhl.c: Likewise. + + * sysdeps/libm-ieee754/s_csin.c: Rewrite. + * sysdeps/libm-ieee754/s_csinf.c: Likewise. + * sysdeps/libm-ieee754/s_csinl.c: Likewise. + + * stdlib/random_r.c (__srandom_r): Don't use seed 0. Use 1 in this + case. + + * sysdeps/i386/dl-machine.h (elf_machine_load_address): Use notation + for local label. + + * time/strftime.c (add): Respect `0' padding flag. + Reported by Richard Stallman <rms@gnu.ai.mit.edu>. + +1997-04-30 15:46 Ulrich Drepper <drepper@cygnus.com> + + * Makeconfig (start-installed-name): Define here, not in csu/Makefile. + Use in +link macro. + * csu/Makefile (distribute): Add abi-note.S and abi-tag.h. + (start-installed-name): Don't define here. + When ELF generate file named by start-installed-name from start.o + and abi-note.o. + * csu/abi-note.S: New file. + * sysdeps/stub/abi-tag.h: New file. + * sysdpes/unix/sysv/linux/abi-tag.h: New file. + Patches by Roland McGrath <roland@gnu.ai.mit.edu>. + +1997-04-30 01:32 Ulrich Drepper <drepper@cygnus.com> + + * manual/stdio.texi: Use @vtable where possible. + Add TeX version of @multitable since texi2dvi cannot handle them + correct in the moment. + + * po/de.po: Update. + +1997-04-29 21:06 Ulrich Drepper <drepper@cygnus.com> + + * Makeconfig: Don't set cross-compiling based on $(BUILD_CC) != $(CC). + * config.make.in: Set cross-compiling from configure result. + * configure.in: Emit definition of `cross_compiling'. + Patches by Marcus G. Daniels <marcus@cathcart.sysc.pdx.edu>. + +1997-04-27 21:50 Philip Blundell <pjb27@cam.ac.uk> + + * sysdeps/unix/sysv/linux/net/route.h (struct in6_rtmsg): Use + correct `int' sizes for struct members. + +1997-04-29 19:14 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/libm-i387/e_powf.S Generate invalid exception correctly. + * sysdeps/libm-i387/e_pow.S: Likewise. + * sysdeps/libm-i387/e_powl.S: Likewise. + +1997-04-23 10:08 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * math/fenv.h: Correct typos. + +1997-04-28 10:04 Richard Henderson <rth@tamu.edu> + + * sysdeps/unix/sysv/linux/alpha/clone.S: Save the function argument + in t0 rather than a4 to avoid it being clobbered. + +1997-04-27 23:52 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * manual/summary.awk: Recognize @defmumblex. + + * manual/signal.texi (Miscellaneous Signals): Use @deftypevrx for + second description header. + +1997-04-27 23:29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * manual/arith.texi (Floating-Point Classes): Don't indent text, + makeinfo doesn't like that. + +1997-04-27 20:52 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * malloc/obstack.h (obstack_specify_allocation_with_arg, + obstack_chunkfun, obstack_freefun): Fix casts. + +1997-04-27 18:21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * manual/xtract-typefun.awk: Allow names with only one character. + +1997-04-26 14:16 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/unix/sysv/linux/netinet/ip_fw.h: Use <netinet/ip_icmp.h> + not <netinet/icmp.h>. + Reported by Michael Deutschmann <ldeutsch@mail.netshop.net>. + +1997-04-25 12:31 Ulrich Drepper <drepper@cygnus.com> + + * csu/Makefile ($(objpfx)initfini.s): Add CPPFLAGS, CFLAGS and -g0 + to command line of compiler. + Patch by Marcus G. Daniels <marcus@sysc.pdx.edu>. + + * sysdeps/generic/sigset.h (__sigandset, __sigorset): Fix typos. + Patch by Marcus G. Daniels <marcus@sysc.pdx.edu>. + + * signal/signal.h (_sys_siglist, sys_siglist): Use _NSIG, not NSIG + in declaration. + Patch by Michael Widenius <monty@tcx.se>. + + * time/strptime.c (strptime_internal): Fix %I format specifier + being off by one. + Patch by Mark Kettenis <kettenis@phys.uva.nl>. + +1997-04-24 12:18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * stdlib/lcong48_r.c: Include <limits.h>. + * stdlib/seed48_r.c: Likewise. + + * stdio-common/printf_size.c (printf_size): Correct type of + `units' and make robust against future changes. + +1997-04-23 18:58 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * sysdeps/libm-ieee754/s_cproj.c: Use isfinite instead of finite. + * sysdeps/libm-ieee754/s_cprojl.c: Likewise. + * sysdeps/libm-ieee754/s_cprojf.c: Likewise. + +1997-04-23 18:53 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * manual/arith.texi, manual/math.texi: Use @defmumblex for + additional description headers. + * manual/xtract-typefun.awk: Recognize them. + +1997-04-22 15:58 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * stdio-common/printf_size.c (printf_size): Correct size of array + units. + 1997-04-21 07:50 H.J. Lu <hjl@gnu.ai.mit.edu> * libgen.h: New file. @@ -195,9 +195,9 @@ dist.tar: README $(tardir) $(+tsrcs) $(tardir).tar: dist.tar subdir_dist @echo Files listed here have names exceeding 14 chars. - tar xfv $< -C /tmp | sed -n '/[^/]\{15,\}/p' - tar covf $@ -C /tmp $(tardir) - -rm -fr /tmp/$(tardir) dist.tar & + tar xfv $< -C $${TMPDIR-/tmp} | sed -n '/[^/]\{15,\}/p' + tar covf $@ -C $${TMPDIR-/tmp} $(tardir) + -rm -fr $${TMPDIR-/tmp}/$(tardir) dist.tar & %.Z: % compress -c $< > $@ diff --git a/Makeconfig b/Makeconfig index d026b46743..3d666ffbbc 100644 --- a/Makeconfig +++ b/Makeconfig @@ -318,13 +318,28 @@ ifndef asm-CPPFLAGS asm-CPPFLAGS = endif +# Installed name of the startup code. +ifneq ($(elf),yes) +# When not using ELF, there is just one startfile, called crt0.o. +start-installed-name = crt0.o +else +# In the ELF universe, crt0.o is called crt1.o, and there are +# some additional bizarre files. +start-installed-name = crt1.o +have-initfini = yes +endif + + # Command for linking programs with the C library. ifndef +link +link = $(CC) -nostdlib -nostartfiles -o $@ \ $(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) \ - $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+prector) \ - $(filter-out $(addprefix $(csu-objpfx),start.o) $(+preinit) \ - $(link-extra-libs) $(common-objpfx)libc% $(+postinit),$^) \ + $(addprefix $(csu-objpfx),$(start-installed-name)) \ + $(+preinit) $(+prector) \ + $(filter-out $(addprefix $(csu-objpfx),start.o \ + $(start-installed-name))\ + $(+preinit) $(link-extra-libs) \ + $(common-objpfx)libc% $(+postinit),$^) \ $(link-extra-libs) $(link-libc) $(+postctor) $(+postinit) endif ifndef config-LDFLAGS @@ -536,12 +551,6 @@ endif ifndef BUILD_CC BUILD_CC = $(CC) endif - -ifneq ($(BUILD_CC),$(CC)) -cross-compiling := yes -else -cross-compiling := no -endif # Figure out the version numbers from version.h. diff --git a/config.make.in b/config.make.in index 0a7d0379fd..e807a4cba2 100644 --- a/config.make.in +++ b/config.make.in @@ -42,6 +42,7 @@ build-omitfp = @omitfp@ build-bounded = @bounded@ stdio = @stdio@ add-ons = @subdirs@ +cross-compiling = @cross_compiling@ # Build tools. CC = @CC@ @@ -1345,8 +1345,9 @@ test -n "$BUILD_CC" && break done fi + echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1350: checking how to run the C preprocessor" >&5 +echo "configure:1351: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1361,13 +1362,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF -#line 1365 "configure" +#line 1366 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1372: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1378,13 +1379,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 1382 "configure" +#line 1383 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1388: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1389: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1415,7 +1416,7 @@ fi # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1419: checking for $ac_word" >&5 +echo "configure:1420: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1446,7 +1447,7 @@ fi # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1450: checking for $ac_word" >&5 +echo "configure:1451: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1477,7 +1478,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1481: checking for $ac_word" >&5 +echo "configure:1482: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1512,7 +1513,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1516: checking for $ac_word" >&5 +echo "configure:1517: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1553,7 +1554,7 @@ if test "$BASH" = no; then # Extract the first word of "ksh", so it can be a program name with args. set dummy ksh; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1557: checking for $ac_word" >&5 +echo "configure:1558: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1595,7 +1596,7 @@ fi echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6 -echo "configure:1599: checking for signed size_t type" >&5 +echo "configure:1600: checking for signed size_t type" >&5 if eval "test \"`echo '$''{'libc_cv_signed_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1619,12 +1620,12 @@ EOF fi echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6 -echo "configure:1623: checking for libc-friendly stddef.h" >&5 +echo "configure:1624: checking for libc-friendly stddef.h" >&5 if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1628 "configure" +#line 1629 "configure" #include "confdefs.h" #define __need_size_t #define __need_wchar_t @@ -1639,7 +1640,7 @@ size_t size; wchar_t wchar; if (&size == NULL || &wchar == NULL) abort (); ; return 0; } EOF -if { (eval echo configure:1643: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1644: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libc_cv_friendly_stddef=yes else @@ -1658,7 +1659,7 @@ override stddef.h = # The installed <stddef.h> seems to be libc-friendly." fi echo $ac_n "checking whether we need to use -P to assemble .S files""... $ac_c" 1>&6 -echo "configure:1662: checking whether we need to use -P to assemble .S files" >&5 +echo "configure:1663: checking whether we need to use -P to assemble .S files" >&5 if eval "test \"`echo '$''{'libc_cv_need_minus_P'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1681,7 +1682,7 @@ asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives." fi echo $ac_n "checking for assembler global-symbol directive""... $ac_c" 1>&6 -echo "configure:1685: checking for assembler global-symbol directive" >&5 +echo "configure:1686: checking for assembler global-symbol directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_global_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1711,7 +1712,7 @@ EOF fi echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6 -echo "configure:1715: checking for .set assembler directive" >&5 +echo "configure:1716: checking for .set assembler directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_set_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1745,7 +1746,7 @@ EOF fi echo $ac_n "checking for .symver assembler directive""... $ac_c" 1>&6 -echo "configure:1749: checking for .symver assembler directive" >&5 +echo "configure:1750: checking for .symver assembler directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_symver_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1764,7 +1765,7 @@ fi echo "$ac_t""$libc_cv_asm_symver_directive" 1>&6 echo $ac_n "checking for ld --version-script""... $ac_c" 1>&6 -echo "configure:1768: checking for ld --version-script" >&5 +echo "configure:1769: checking for ld --version-script" >&5 if eval "test \"`echo '$''{'libc_cv_ld_version_script_option'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1781,7 +1782,7 @@ VERS { EOF if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&5 2>&5; then if { ac_try='${CC-cc} $CFLAGS --shared -o conftest.so conftest.o - -Wl,--version-script,conftest.map'; { (eval echo configure:1785: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; + -Wl,--version-script,conftest.map'; { (eval echo configure:1786: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_ld_version_script_option=yes else @@ -1811,7 +1812,7 @@ fi if test $elf = yes; then echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6 -echo "configure:1815: checking for .previous assembler directive" >&5 +echo "configure:1816: checking for .previous assembler directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_previous_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1819,7 +1820,7 @@ else .section foo_section .previous EOF - if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1823: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1824: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_asm_previous_directive=yes else libc_cv_asm_previous_directive=no @@ -1835,7 +1836,7 @@ EOF else echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6 -echo "configure:1839: checking for .popsection assembler directive" >&5 +echo "configure:1840: checking for .popsection assembler directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_popsection_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1843,7 +1844,7 @@ else .pushsection foo_section .popsection EOF - if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1847: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1848: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_asm_popsection_directive=yes else libc_cv_asm_popsection_directive=no @@ -1863,12 +1864,12 @@ fi if test $elf != yes; then echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6 -echo "configure:1867: checking for .init and .fini sections" >&5 +echo "configure:1868: checking for .init and .fini sections" >&5 if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1872 "configure" +#line 1873 "configure" #include "confdefs.h" int main() { @@ -1877,7 +1878,7 @@ asm (".section .init"); asm (".text"); ; return 0; } EOF -if { (eval echo configure:1881: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1882: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libc_cv_have_initfini=yes else @@ -1902,19 +1903,19 @@ if test $elf = yes; then libc_cv_asm_underscores=no else echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6 -echo "configure:1906: checking for _ prefix on C symbol names" >&5 +echo "configure:1907: checking for _ prefix on C symbol names" >&5 if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1911 "configure" +#line 1912 "configure" #include "confdefs.h" asm ("_glibc_foobar:"); int main() { glibc_foobar (); ; return 0; } EOF -if { (eval echo configure:1918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1919: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* libc_cv_asm_underscores=yes else @@ -1941,7 +1942,7 @@ if test $elf = yes; then libc_cv_asm_weakext_directive=no else echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6 -echo "configure:1945: checking for assembler .weak directive" >&5 +echo "configure:1946: checking for assembler .weak directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1964,7 +1965,7 @@ echo "$ac_t""$libc_cv_asm_weak_directive" 1>&6 if test $libc_cv_asm_weak_directive = no; then echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&6 -echo "configure:1968: checking for assembler .weakext directive" >&5 +echo "configure:1969: checking for assembler .weakext directive" >&5 if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2001,7 +2002,7 @@ EOF fi echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6 -echo "configure:2005: checking for ld --no-whole-archive" >&5 +echo "configure:2006: checking for ld --no-whole-archive" >&5 if eval "test \"`echo '$''{'libc_cv_ld_no_whole_archive'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2012,7 +2013,7 @@ __throw () {} EOF if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles -Wl,--no-whole-archive - -o conftest conftest.c'; { (eval echo configure:2016: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c'; { (eval echo configure:2017: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_ld_no_whole_archive=yes else libc_cv_ld_no_whole_archive=no @@ -2023,7 +2024,7 @@ fi echo "$ac_t""$libc_cv_ld_no_whole_archive" 1>&6 echo $ac_n "checking for gcc -fno-exceptions""... $ac_c" 1>&6 -echo "configure:2027: checking for gcc -fno-exceptions" >&5 +echo "configure:2028: checking for gcc -fno-exceptions" >&5 if eval "test \"`echo '$''{'libc_cv_gcc_no_exceptions'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2034,7 +2035,7 @@ __throw () {} EOF if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles -fno-exceptions - -o conftest conftest.c'; { (eval echo configure:2038: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c'; { (eval echo configure:2039: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_gcc_no_exceptions=yes else libc_cv_gcc_no_exceptions=no @@ -2086,7 +2087,7 @@ if test "$uname" = generic; then fi echo $ac_n "checking OS release for uname""... $ac_c" 1>&6 -echo "configure:2090: checking OS release for uname" >&5 +echo "configure:2091: checking OS release for uname" >&5 if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2108,7 +2109,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>&6 uname_release="$libc_cv_uname_release" echo $ac_n "checking OS version for uname""... $ac_c" 1>&6 -echo "configure:2112: checking OS version for uname" >&5 +echo "configure:2113: checking OS version for uname" >&5 if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2130,7 +2131,7 @@ else fi echo $ac_n "checking stdio selection""... $ac_c" 1>&6 -echo "configure:2134: checking stdio selection" >&5 +echo "configure:2135: checking stdio selection" >&5 case $stdio in libio) cat >> confdefs.h <<\EOF @@ -2342,6 +2343,7 @@ s%@build_cpu@%$build_cpu%g s%@build_vendor@%$build_vendor%g s%@build_os@%$build_os%g s%@BUILD_CC@%$BUILD_CC%g +s%@cross_compiling@%$cross_compiling%g s%@CPP@%$CPP%g s%@AR@%$AR%g s%@RANLIB@%$RANLIB%g diff --git a/configure.in b/configure.in index 2d3265eb5b..81beeeaa6b 100644 --- a/configure.in +++ b/configure.in @@ -366,6 +366,7 @@ AC_CANONICAL_BUILD if test $host != $build; then AC_CHECK_PROGS(BUILD_CC, gcc cc) fi +AC_SUBST(cross_compiling) AC_PROG_CPP AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(RANLIB, ranlib, :) diff --git a/csu/Makefile b/csu/Makefile index cba8a4a5f5..9664821ec4 100644 --- a/csu/Makefile +++ b/csu/Makefile @@ -36,25 +36,12 @@ omit-deps = $(patsubst %.o,%,$(start-installed-name) g$(start-installed-name) \ $(csu-dummies)) install-lib = $(start-installed-name) g$(start-installed-name) \ $(csu-dummies) -distribute = initfini.c gmon-start.c start.c defs.awk +distribute = initfini.c gmon-start.c start.c defs.awk abi-note.S abi-tag.h all: # Make this the default target; it will be defined in Rules. include ../Makeconfig -ifneq ($(elf),yes) - -# When not using ELF, there is just one startfile, called crt0.o. -start-installed-name = crt0.o - -else - -# In the ELF universe, crt0.o is called crt1.o, and there are -# some additional bizarre files. -start-installed-name = crt1.o -have-initfini = yes - -endif ifeq ($(have-initfini),yes) @@ -75,7 +62,8 @@ $(objpfx)crt%.o: $(objpfx)crt%.S $(objpfx)defs.h $(CC) -c -fPIC -g0 -I$(..) -I$(common-objpfx) -DASSEMBLER $< -o $@ $(objpfx)initfini.s: initfini.c - $(CC) -S -fPIC -finhibit-size-directive $(no-exceptions) $< -o $@ + $(CC) $(CPPFLAGS) $(CFLAGS) -g0 -S -fPIC -finhibit-size-directive \ + $(no-exceptions) $< -o $@ $(objpfx)crti.S: $(objpfx)initfini.s sed -n -e '1,/@HEADER_ENDS/p' \ @@ -95,19 +83,31 @@ endif include ../Rules +define link-relocatable +$(CC) -nostdlib -nostartfiles -r -o $@ $^ +endef + ifndef start-installed-name-rule +ifeq (yes,$(elf)) +# We link the ELF startfile along with a SHT_NOTE section indicating +# the the kernel ABI the binaries linked with this library will require. +$(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o + $(link-relocatable) +else # The startfile is installed under different names, so we just call our # source file `start.c' and copy to the installed name after compiling. $(objpfx)$(start-installed-name): $(objpfx)start.o - -rm -f $@ + rm -f $@ ln $< $@ endif +endif # The profiling startfile is made by linking together the normal # startfile with gmon-start.o, which defines a constructor function # to turn on profiling code at startup. -$(objpfx)g$(start-installed-name): $(objpfx)start.o $(objpfx)gmon-start.o - $(CC) -nostdlib -nostartfiles -r -o $@ $^ +$(objpfx)g$(start-installed-name): $(objpfx)$(start-installed-name) \ + $(objpfx)gmon-start.o + $(link-relocatable) # These extra files are sometimes expected by system standard linking # procedures, but we have nothing for them to do. So compile empty files. diff --git a/csu/abi-note.S b/csu/abi-note.S new file mode 100644 index 0000000000..baa409de4d --- /dev/null +++ b/csu/abi-note.S @@ -0,0 +1,69 @@ +/* Special .init and .fini section support. + Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + In addition to the permissions in the GNU Library General Public + License, the Free Software Foundation gives you unlimited + permission to link the compiled version of this file with other + programs, and to distribute those programs without any restriction + coming from the use of this file. (The Library General Public + License restrictions do apply in other respects; for example, they + cover modification of the file, and distribution when not linked + into another program.) + + 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, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <sysdep.h> + +/* The basic layout of note sections is specified by the ELF format. */ + +#define ELF_NOTE_BEGIN(sectname, sectflags, type, name) \ + .section sectname, sectflags; \ + .align ALIGNARG(2); /* Notes are 4-byte aligned. */ \ + .long 1f - 0f; /* 32-bit word: length of name field */ \ + .long 3f - 2f; /* 32-bit word: length of desc field */ \ + .long (type); /* 32-bit word: vendor-defined type field */ \ +0: .asciz name; /* null-terminated string, any length: name */\ +1: .align ALIGNARG(2); /* Name data padded to 4-byte alignment. */ \ +2: /* Here follows the "note descriptor" data, whose format \ + is not specified by ELF. The vendor name and type field \ + indicate what sort of data is found here. */ + +#define ELF_NOTE_END \ +3: .align ALIGNARG(2) /* Pad to 4-byte align the next note. */ + + +/* The linker (GNU ld 2.8 and later) recognize an allocated section whose + name begins with `.note' and creates a PT_NOTE program header entry + pointing at it. + + Such a program header is the canonical way (at least in the free OS + community) to identify the OS environment ABI that the executable was + created for. The ELF note information identifies a particular OS or + coordinated development effort within which the ELF header's e_machine + value plus (for dynamically linked programs) the PT_INTERP dynamic + linker name and DT_NEEDED shared library names fully identify the + runtime environment required by an executable. + + The GNU project and cooperating development efforts (including the Linux + community) use a vendor name string of "GNU", and a note type field with + value 1 for a note descriptor that indicates ABI requirements. */ + +#include <abi-tag.h> /* OS-specific ABI tag value */ + +ELF_NOTE_BEGIN(".note.ABI-tag", "a", 1, "GNU") + .long ABI_TAG +ELF_NOTE_END diff --git a/malloc/obstack.h b/malloc/obstack.h index ea45664c02..b60828b6ae 100644 --- a/malloc/obstack.h +++ b/malloc/obstack.h @@ -307,13 +307,14 @@ extern int obstack_exit_failure; #define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \ _obstack_begin_1 ((h), (size), (alignment), \ - (void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun), (arg)) + (void *(*) (void *, long)) (chunkfun), \ + (void (*) (void *, void *)) (freefun), (arg)) #define obstack_chunkfun(h, newchunkfun) \ - ((h) -> chunkfun = (struct _obstack_chunk *(*)(long)) (newchunkfun)) + ((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun)) #define obstack_freefun(h, newfreefun) \ - ((h) -> freefun = (void (*)(void *)) (newfreefun)) + ((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun)) #else diff --git a/manual/arith.texi b/manual/arith.texi index 86fb2667a0..efe0489e40 100644 --- a/manual/arith.texi +++ b/manual/arith.texi @@ -149,10 +149,8 @@ functions, and thus are available if you define @code{_BSD_SOURCE} or @comment math.h @comment BSD @deftypefun int isinf (double @var{x}) -@end deftypefun -@deftypefun int isinff (float @var{x}) -@end deftypefun -@deftypefun int isinfl (long double @var{x}) +@deftypefunx int isinff (float @var{x}) +@deftypefunx int isinfl (long double @var{x}) This function returns @code{-1} if @var{x} represents negative infinity, @code{1} if @var{x} represents positive infinity, and @code{0} otherwise. @end deftypefun @@ -160,10 +158,8 @@ This function returns @code{-1} if @var{x} represents negative infinity, @comment math.h @comment BSD @deftypefun int isnan (double @var{x}) -@end deftypefun -@deftypefun int isnanf (float @var{x}) -@end deftypefun -@deftypefun int isnanl (long double @var{x}) +@deftypefunx int isnanf (float @var{x}) +@deftypefunx int isnanl (long double @var{x}) This function returns a nonzero value if @var{x} is a ``not a number'' value, and zero otherwise. (You can just as well use @code{@var{x} != @var{x}} to get the same result). @@ -172,10 +168,8 @@ value, and zero otherwise. (You can just as well use @code{@var{x} != @comment math.h @comment BSD @deftypefun int finite (double @var{x}) -@end deftypefun -@deftypefun int finitef (float @var{x}) -@end deftypefun -@deftypefun int finitel (long double @var{x}) +@deftypefunx int finitef (float @var{x}) +@deftypefunx int finitel (long double @var{x}) This function returns a nonzero value if @var{x} is finite or a ``not a number'' value, and zero otherwise. @end deftypefun @@ -213,21 +207,21 @@ which returns a value of type @code{int}. The possible values are: @vtable @code @item FP_NAN - The floating-point number @var{x} is ``Not a Number'' (@pxref{Not a Number}) +The floating-point number @var{x} is ``Not a Number'' (@pxref{Not a Number}) @item FP_INFINITE - The value of @var{x} is either plus or minus infinity (@pxref{Infinity}) +The value of @var{x} is either plus or minus infinity (@pxref{Infinity}) @item FP_ZERO - The value of @var{x} is zero. In floating-point formats like @w{IEEE - 754} where the zero value can be signed this value is also returned if - @var{x} is minus zero. +The value of @var{x} is zero. In floating-point formats like @w{IEEE +754} where the zero value can be signed this value is also returned if +@var{x} is minus zero. @item FP_SUBNORMAL - Some floating-point formats (such as @w{IEEE 754}) allow floating-point - numbers to be represented in a denormalized format. This happens if the - absolute value of the number is too small to be represented in the - normal format. @code{FP_SUBNORMAL} is returned for such values of @var{x}. +Some floating-point formats (such as @w{IEEE 754}) allow floating-point +numbers to be represented in a denormalized format. This happens if the +absolute value of the number is too small to be represented in the +normal format. @code{FP_SUBNORMAL} is returned for such values of @var{x}. @item FP_NORMAL - This value is returned for all other cases which means the number is a - plain floating-point number without special meaning. +This value is returned for all other cases which means the number is a +plain floating-point number without special meaning. @end vtable This macro is useful if more than property of a number must be @@ -319,20 +313,16 @@ functions. @comment complex.h @comment ISO @deftypefun double creal (complex double @var{z}) -@end deftypefun -@deftypefun float crealf (complex float @var{z}) -@end deftypefun -@deftypefun {long double} creall (complex long double @var{z}) +@deftypefunx float crealf (complex float @var{z}) +@deftypefunx {long double} creall (complex long double @var{z}) These functions return the real part of the complex number @var{z}. @end deftypefun @comment complex.h @comment ISO @deftypefun double cimag (complex double @var{z}) -@end deftypefun -@deftypefun float cimagf (complex float @var{z}) -@end deftypefun -@deftypefun {long double} cimagl (complex long double @var{z}) +@deftypefunx float cimagf (complex float @var{z}) +@deftypefunx {long double} cimagl (complex long double @var{z}) These functions return the imaginary part of the complex number @var{z}. @end deftypefun @@ -343,10 +333,8 @@ for the real part but the complex part is negated. @comment complex.h @comment ISO @deftypefun {complex double} conj (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} conjf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} conjl (complex long double @var{z}) +@deftypefunx {complex float} conjf (complex float @var{z}) +@deftypefunx {complex long double} conjl (complex long double @var{z}) These functions return the conjugate complex value of the complex number @var{z}. @end deftypefun @@ -354,10 +342,8 @@ These functions return the conjugate complex value of the complex number @comment complex.h @comment ISO @deftypefun double carg (complex double @var{z}) -@end deftypefun -@deftypefun float cargf (complex float @var{z}) -@end deftypefun -@deftypefun {long double} cargl (complex long double @var{z}) +@deftypefunx float cargf (complex float @var{z}) +@deftypefunx {long double} cargl (complex long double @var{z}) These functions return argument of the complex number @var{z}. Mathematically, the argument is the phase angle of @var{z} with a branch @@ -367,10 +353,8 @@ cut along the negative real axis. @comment complex.h @comment ISO @deftypefun {complex double} cproj (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} cprojf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} cprojl (complex long double @var{z}) +@deftypefunx {complex float} cprojf (complex float @var{z}) +@deftypefunx {complex long double} cprojl (complex long double @var{z}) Return the projection of the complex value @var{z} on the Riemann sphere. Values with a infinite complex part (even if the real part is NaN) are projected to positive infinte on the real axis. If the real part is infinite, the result is equivalent to @@ -418,10 +402,8 @@ are of type @code{long int} rather than @code{int}. @comment math.h @comment ISO @deftypefun double fabs (double @var{number}) -@end deftypefun -@deftypefun float fabsf (float @var{number}) -@end deftypefun -@deftypefun {long double} fabsl (long double @var{number}) +@deftypefunx float fabsf (float @var{number}) +@deftypefunx {long double} fabsl (long double @var{number}) This function returns the absolute value of the floating-point number @var{number}. @end deftypefun @@ -429,10 +411,8 @@ This function returns the absolute value of the floating-point number @comment complex.h @comment ISO @deftypefun double cabs (complex double @var{z}) -@end deftypefun -@deftypefun float cabsf (complex float @var{z}) -@end deftypefun -@deftypefun {long double} cabsl (complex long double @var{z}) +@deftypefunx float cabsf (complex float @var{z}) +@deftypefunx {long double} cabsl (complex long double @var{z}) These functions return the absolute value of the complex number @var{z}. The compiler must support complex numbers to use these functions. (See also the function @code{hypot} in @ref{Exponents and Logarithms}.) The @@ -461,10 +441,8 @@ All these functions are declared in @file{math.h}. @comment math.h @comment ISO @deftypefun double frexp (double @var{value}, int *@var{exponent}) -@end deftypefun -@deftypefun float frexpf (float @var{value}, int *@var{exponent}) -@end deftypefun -@deftypefun {long double} frexpl (long double @var{value}, int *@var{exponent}) +@deftypefunx float frexpf (float @var{value}, int *@var{exponent}) +@deftypefunx {long double} frexpl (long double @var{value}, int *@var{exponent}) These functions are used to split the number @var{value} into a normalized fraction and an exponent. @@ -484,10 +462,8 @@ zero is stored in @code{*@var{exponent}}. @comment math.h @comment ISO @deftypefun double ldexp (double @var{value}, int @var{exponent}) -@end deftypefun -@deftypefun float ldexpf (float @var{value}, int @var{exponent}) -@end deftypefun -@deftypefun {long double} ldexpl (long double @var{value}, int @var{exponent}) +@deftypefunx float ldexpf (float @var{value}, int @var{exponent}) +@deftypefunx {long double} ldexpl (long double @var{value}, int @var{exponent}) These functions return the result of multiplying the floating-point number @var{value} by 2 raised to the power @var{exponent}. (It can be used to reassemble floating-point numbers that were taken apart @@ -502,20 +478,16 @@ equivalent to those of @code{ldexp} and @code{frexp}: @comment math.h @comment BSD @deftypefun double scalb (double @var{value}, int @var{exponent}) -@end deftypefun -@deftypefun float scalbf (float @var{value}, int @var{exponent}) -@end deftypefun -@deftypefun {long double} scalbl (long double @var{value}, int @var{exponent}) +@deftypefunx float scalbf (float @var{value}, int @var{exponent}) +@deftypefunx {long double} scalbl (long double @var{value}, int @var{exponent}) The @code{scalb} function is the BSD name for @code{ldexp}. @end deftypefun @comment math.h @comment BSD @deftypefun double logb (double @var{x}) -@end deftypefun -@deftypefun float logbf (float @var{x}) -@end deftypefun -@deftypefun {long double} logbl (long double @var{x}) +@deftypefunx float logbf (float @var{x}) +@deftypefunx {long double} logbl (long double @var{x}) These BSD functions return the integer part of the base-2 logarithm of @var{x}, an integer value represented in type @code{double}. This is the highest integer power of @code{2} contained in @var{x}. The sign of @@ -536,10 +508,8 @@ The value returned by @code{logb} is one less than the value that @comment math.h @comment ISO @deftypefun double copysign (double @var{value}, double @var{sign}) -@end deftypefun -@deftypefun float copysignf (float @var{value}, float @var{sign}) -@end deftypefun -@deftypefun {long double} copysignl (long double @var{value}, long double @var{sign}) +@deftypefunx float copysignf (float @var{value}, float @var{sign}) +@deftypefunx {long double} copysignl (long double @var{value}, long double @var{sign}) These functions return a value whose absolute value is the same as that of @var{value}, and whose sign matches that of @var{sign}. This function appears in BSD and was standardized in @w{ISO C 9X}. @@ -580,10 +550,8 @@ result as a @code{double} instead to get around this problem. @comment math.h @comment ISO @deftypefun double ceil (double @var{x}) -@end deftypefun -@deftypefun float ceilf (float @var{x}) -@end deftypefun -@deftypefun {long double} ceill (long double @var{x}) +@deftypefunx float ceilf (float @var{x}) +@deftypefunx {long double} ceill (long double @var{x}) These functions round @var{x} upwards to the nearest integer, returning that value as a @code{double}. Thus, @code{ceil (1.5)} is @code{2.0}. @@ -592,10 +560,8 @@ is @code{2.0}. @comment math.h @comment ISO @deftypefun double floor (double @var{x}) -@end deftypefun -@deftypefun float floorf (float @var{x}) -@end deftypefun -@deftypefun {long double} floorl (long double @var{x}) +@deftypefunx float floorf (float @var{x}) +@deftypefunx {long double} floorl (long double @var{x}) These functions round @var{x} downwards to the nearest integer, returning that value as a @code{double}. Thus, @code{floor (1.5)} is @code{1.0} and @code{floor (-1.5)} is @code{-2.0}. @@ -604,10 +570,8 @@ integer, returning that value as a @code{double}. Thus, @code{floor @comment math.h @comment ISO @deftypefun double rint (double @var{x}) -@end deftypefun -@deftypefun float rintf (float @var{x}) -@end deftypefun -@deftypefun {long double} rintl (long double @var{x}) +@deftypefunx float rintf (float @var{x}) +@deftypefunx {long double} rintl (long double @var{x}) These functions round @var{x} to an integer value according to the current rounding mode. @xref{Floating Point Parameters}, for information about the various rounding modes. The default @@ -619,10 +583,8 @@ you explicit select another. @comment math.h @comment ISO @deftypefun double nearbyint (double @var{x}) -@end deftypefun -@deftypefun float nearbyintf (float @var{x}) -@end deftypefun -@deftypefun {long double} nearbyintl (long double @var{x}) +@deftypefunx float nearbyintf (float @var{x}) +@deftypefunx {long double} nearbyintl (long double @var{x}) These functions return the same value as the @code{rint} functions but even some rounding actually takes place @code{nearbyint} does @emph{not} raise the inexact exception. @@ -631,10 +593,8 @@ raise the inexact exception. @comment math.h @comment ISO @deftypefun double modf (double @var{value}, double *@var{integer-part}) -@end deftypefun -@deftypefun float modff (flaot @var{value}, float *@var{integer-part}) -@end deftypefun -@deftypefun {long double} modfl (long double @var{value}, long double *@var{integer-part}) +@deftypefunx float modff (flaot @var{value}, float *@var{integer-part}) +@deftypefunx {long double} modfl (long double @var{value}, long double *@var{integer-part}) These functions break the argument @var{value} into an integer part and a fractional part (between @code{-1} and @code{1}, exclusive). Their sum equals @var{value}. Each of the parts has the same sign as @var{value}, @@ -648,10 +608,8 @@ returns @code{0.5} and stores @code{2.0} into @code{intpart}. @comment math.h @comment ISO @deftypefun double fmod (double @var{numerator}, double @var{denominator}) -@end deftypefun -@deftypefun float fmodf (float @var{numerator}, float @var{denominator}) -@end deftypefun -@deftypefun {long double} fmodl (long double @var{numerator}, long double @var{denominator}) +@deftypefunx float fmodf (float @var{numerator}, float @var{denominator}) +@deftypefunx {long double} fmodl (long double @var{numerator}, long double @var{denominator}) These functions compute the remainder from the division of @var{numerator} by @var{denominator}. Specifically, the return value is @code{@var{numerator} - @w{@var{n} * @var{denominator}}}, where @var{n} @@ -669,10 +627,8 @@ If @var{denominator} is zero, @code{fmod} fails and sets @code{errno} to @comment math.h @comment BSD @deftypefun double drem (double @var{numerator}, double @var{denominator}) -@end deftypefun -@deftypefun float dremf (float @var{numerator}, float @var{denominator}) -@end deftypefun -@deftypefun {long double} dreml (long double @var{numerator}, long double @var{denominator}) +@deftypefunx float dremf (float @var{numerator}, float @var{denominator}) +@deftypefunx {long double} dreml (long double @var{numerator}, long double @var{denominator}) These functions are like @code{fmod} etc except that it rounds the internal quotient @var{n} to the nearest integer instead of towards zero to an integer. For example, @code{drem (6.5, 2.3)} returns @code{-0.4}, diff --git a/manual/libc.texinfo b/manual/libc.texinfo index 50d42b53d6..aa72be16e3 100644 --- a/manual/libc.texinfo +++ b/manual/libc.texinfo @@ -3,12 +3,15 @@ @setfilename libc.info @settitle The GNU C Library @setchapternewpage odd -@comment %**end of header (This is for running Texinfo on a region.) @c This tells texinfo.tex to use the real section titles in xrefs in @c place of the node name, when no section title is explicitly given. @set xref-automatic-section-title -@smallbook +@c @smallbook +@iftex +@afourpaper +@end iftex +@comment %**end of header (This is for running Texinfo on a region.) @c sold 0.06/1.09, print run out 21may96 @set EDITION 0.07 DRAFT diff --git a/manual/math.texi b/manual/math.texi index 78d567b367..e2adccddb3 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -146,10 +146,8 @@ You can also compute the value of pi with the expression @code{acos @comment math.h @comment ISO @deftypefun double sin (double @var{x}) -@end deftypefun -@deftypefun float sinf (float @var{x}) -@end deftypefun -@deftypefun {long double} sinl (long double @var{x}) +@deftypefunx float sinf (float @var{x}) +@deftypefunx {long double} sinl (long double @var{x}) These functions return the sine of @var{x}, where @var{x} is given in radians. The return value is in the range @code{-1} to @code{1}. @end deftypefun @@ -157,10 +155,8 @@ radians. The return value is in the range @code{-1} to @code{1}. @comment math.h @comment ISO @deftypefun double cos (double @var{x}) -@end deftypefun -@deftypefun float cosf (float @var{x}) -@end deftypefun -@deftypefun {long double} cosl (long double @var{x}) +@deftypefunx float cosf (float @var{x}) +@deftypefunx {long double} cosl (long double @var{x}) These functions return the cosine of @var{x}, where @var{x} is given in radians. The return value is in the range @code{-1} to @code{1}. @end deftypefun @@ -168,10 +164,8 @@ radians. The return value is in the range @code{-1} to @code{1}. @comment math.h @comment ISO @deftypefun double tan (double @var{x}) -@end deftypefun -@deftypefun float tanf (float @var{x}) -@end deftypefun -@deftypefun {long double} tanl (long double @var{x}) +@deftypefunx float tanf (float @var{x}) +@deftypefunx {long double} tanl (long double @var{x}) These functions return the tangent of @var{x}, where @var{x} is given in radians. @@ -189,16 +183,14 @@ either positive or negative @code{HUGE_VAL}. In many applications where @code{sin} and @code{cos} are used, the value for the same argument of both of these functions is used at the same time. Since the algorithm to compute these values is very similar for -both functions there is an additional function with computes both values +both functions there is an additional function which computes both values at the same time. @comment math.h @comment GNU @deftypefun void sincos (double @var{x}, double *@var{sinx}, double *@var{cosx}) -@end deftypefun -@deftypefun void sincosf (float @var{x}, float *@var{sinx}, float *@var{cosx}) -@end deftypefun -@deftypefun void sincosl (long double @var{x}, long double *@var{sinx}, long double *@var{cosx}) +@deftypefunx void sincosf (float @var{x}, float *@var{sinx}, float *@var{cosx}) +@deftypefunx void sincosl (long double @var{x}, long double *@var{sinx}, long double *@var{cosx}) These functions return the sine of @var{x} in @code{*@var{sinx}} and the cosine of @var{x} in @code{*@var{cos}}, where @var{x} is given in radians. Both values, @code{*@var{sinx}} and @code{*@var{cosx}}, are in @@ -207,53 +199,62 @@ the range of @code{-1} to @code{1}. @cindex complex trigonometric functions -The trigonometric functions are in mathematics not only on real numbers. -They can be extended to complex numbers and the @w{ISO C 9X} standard -introduces these variants in the standard math library. +The trigonometric functions are in mathematics not only defined on real +numbers. They can be extended to complex numbers and the @w{ISO C 9X} +standard introduces these variants in the standard math library. @comment complex.h @comment ISO @deftypefun {complex double} csin (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} csinf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} csinl (complex long double @var{z}) +@deftypefunx {complex float} csinf (complex float @var{z}) +@deftypefunx {complex long double} csinl (complex long double @var{z}) These functions return the complex sine of the complex value in @var{z}. The mathematical definition of the complex sine is -@smallexample -sin (z) = 1/(2*i) * (exp (z*i) - exp (-z*i)) -@end smallexample +@ifinfo +@math{sin (z) = 1/(2*i) * (exp (z*i) - exp (-z*i))}. +@end ifinfo +@iftex +@tex +$$\sin(z) = {1\over 2i} (e^{zi} - e^{-zi})$$ +@end tex +@end iftex @end deftypefun @comment complex.h @comment ISO @deftypefun {complex double} ccos (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} ccosf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} ccosl (complex long double @var{z}) +@deftypefunx {complex float} ccosf (complex float @var{z}) +@deftypefunx {complex long double} ccosl (complex long double @var{z}) These functions return the complex cosine of the complex value in @var{z}. The mathematical definition of the complex cosine is -@smallexample -cos (z) = 1/2 * (exp (z*i) + exp (-z*i)) -@end smallexample +@ifinfo +@math{cos (z) = 1/2 * (exp (z*i) + exp (-z*i))} +@end ifinfo +@iftex +@tex +$$\cos(z) = {1\over 2} (e^{zi} + e^{-zi})$$ +@end tex +@end iftex @end deftypefun @comment complex.h @comment ISO @deftypefun {complex double} ctan (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} ctanf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} ctanl (complex long double @var{z}) +@deftypefunx {complex float} ctanf (complex float @var{z}) +@deftypefunx {complex long double} ctanl (complex long double @var{z}) These functions return the complex tangent of the complex value in @var{z}. The mathematical definition of the complex tangent is -@smallexample -tan (z) = 1/i * (exp (z*i) - exp (-z*i)) / (exp (z*i) + exp (-z*i)) -@end smallexample +@ifinfo +@math{tan (z) = 1/i * (exp (z*i) - exp (-z*i)) / (exp (z*i) + exp (-z*i))} +@end ifinfo +@iftex +@tex +$$\tan(z) = {1\over i} {e^{zi} - e^{-zi}\over e^{zi} + e^{-zi}}$$ +@end tex +@end iftex @end deftypefun @@ -268,10 +269,8 @@ respectively. @comment math.h @comment ISO @deftypefun double asin (double @var{x}) -@end deftypefun -@deftypefun float asinf (float @var{x}) -@end deftypefun -@deftypefun {long double} asinl (long double @var{x}) +@deftypefunx float asinf (float @var{x}) +@deftypefunx {long double} asinl (long double @var{x}) These functions compute the arc sine of @var{x}---that is, the value whose sine is @var{x}. The value is in units of radians. Mathematically, there are infinitely many such values; the one actually returned is the @@ -285,10 +284,8 @@ over the domain @code{-1} to @code{1}. @comment math.h @comment ISO @deftypefun double acos (double @var{x}) -@end deftypefun -@deftypefun float acosf (float @var{x}) -@end deftypefun -@deftypefun {long double} acosl (long double @var{x}) +@deftypefunx float acosf (float @var{x}) +@deftypefunx {long double} acosl (long double @var{x}) These functions compute the arc cosine of @var{x}---that is, the value whose cosine is @var{x}. The value is in units of radians. Mathematically, there are infinitely many such values; the one actually @@ -303,10 +300,8 @@ over the domain @code{-1} to @code{1}. @comment math.h @comment ISO @deftypefun double atan (double @var{x}) -@end deftypefun -@deftypefun float atanf (float @var{x}) -@end deftypefun -@deftypefun {long double} atanl (long double @var{x}) +@deftypefunx float atanf (float @var{x}) +@deftypefunx {long double} atanl (long double @var{x}) These functions compute the arc tangent of @var{x}---that is, the value whose tangent is @var{x}. The value is in units of radians. Mathematically, there are infinitely many such values; the one actually @@ -317,10 +312,8 @@ returned is the one between @code{-pi/2} and @code{pi/2} @comment math.h @comment ISO @deftypefun double atan2 (double @var{y}, double @var{x}) -@end deftypefun -@deftypefun float atan2f (float @var{y}, float @var{x}) -@end deftypefun -@deftypefun {long double} atan2l (long double @var{y}, long double @var{x}) +@deftypefunx float atan2f (float @var{y}, float @var{x}) +@deftypefunx {long double} atan2l (long double @var{y}, long double @var{x}) This is the two argument arc tangent function. It is similar to computing the arc tangent of @var{y}/@var{x}, except that the signs of both arguments are used to determine the quadrant of the result, and @var{x} is @@ -347,10 +340,8 @@ which are usable with complex numbers. @comment complex.h @comment ISO @deftypefun {complex double} casin (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} casinf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} casinl (complex long double @var{z}) +@deftypefunx {complex float} casinf (complex float @var{z}) +@deftypefunx {complex long double} casinl (complex long double @var{z}) These functions compute the complex arc sine of @var{z}---that is, the value whose sine is @var{z}. The value is in units of radians. @@ -361,10 +352,8 @@ limitation on the argument @var{z}. @comment complex.h @comment ISO @deftypefun {complex double} cacos (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} cacosf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} cacosl (complex long double @var{z}) +@deftypefunx {complex float} cacosf (complex float @var{z}) +@deftypefunx {complex long double} cacosl (complex long double @var{z}) These functions compute the complex arc cosine of @var{z}---that is, the value whose cosine is @var{z}. The value is in units of radians. @@ -376,10 +365,8 @@ limitation on the argument @var{z}. @comment complex.h @comment ISO @deftypefun {complex double} catan (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} catanf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} catanl (complex long double @var{z}) +@deftypefunx {complex float} catanf (complex float @var{z}) +@deftypefunx {complex long double} catanl (complex long double @var{z}) These functions compute the complex arc tangent of @var{z}---that is, the value whose tangent is @var{z}. The value is in units of radians. @end deftypefun @@ -394,10 +381,8 @@ the value whose tangent is @var{z}. The value is in units of radians. @comment math.h @comment ISO @deftypefun double exp (double @var{x}) -@end deftypefun -@deftypefun float expf (float @var{x}) -@end deftypefun -@deftypefun {long double} expl (long double @var{x}) +@deftypefunx float expf (float @var{x}) +@deftypefunx {long double} expl (long double @var{x}) These functions return the value of @code{e} (the base of natural logarithms) raised to power @var{x}. @@ -408,10 +393,8 @@ magnitude of the result is too large to be representable. @comment math.h @comment ISO @deftypefun double exp10 (double @var{x}) -@end deftypefun -@deftypefun float exp10f (float @var{x}) -@end deftypefun -@deftypefun {long double} exp10l (long double @var{x}) +@deftypefunx float exp10f (float @var{x}) +@deftypefunx {long double} exp10l (long double @var{x}) These functions return the value of @code{10} raised to the power @var{x}. Mathematically, @code{exp10 (x)} is the same as @code{exp (x * log (10))}. @@ -422,10 +405,8 @@ magnitude of the result is too large to be representable. @comment math.h @comment ISO @deftypefun double exp2 (double @var{x}) -@end deftypefun -@deftypefun float exp2f (float @var{x}) -@end deftypefun -@deftypefun {long double} exp2l (long double @var{x}) +@deftypefunx float exp2f (float @var{x}) +@deftypefunx {long double} exp2l (long double @var{x}) These functions return the value of @code{2} raised to the power @var{x}. Mathematically, @code{exp2 (x)} is the same as @code{exp (x * log (2))}. @@ -437,10 +418,8 @@ magnitude of the result is too large to be representable. @comment math.h @comment ISO @deftypefun double log (double @var{x}) -@end deftypefun -@deftypefun float logf (floatdouble @var{x}) -@end deftypefun -@deftypefun {long double} logl (long double @var{x}) +@deftypefunx float logf (floatdouble @var{x}) +@deftypefunx {long double} logl (long double @var{x}) These functions return the natural logarithm of @var{x}. @code{exp (log (@var{x}))} equals @var{x}, exactly in mathematics and approximately in C. @@ -460,10 +439,8 @@ The argument is zero. The log of zero is not defined. @comment math.h @comment ISO @deftypefun double log10 (double @var{x}) -@end deftypefun -@deftypefun float log10f (float @var{x}) -@end deftypefun -@deftypefun {long double} log10l (long double @var{x}) +@deftypefunx float log10f (float @var{x}) +@deftypefunx {long double} log10l (long double @var{x}) These functions return the base-10 logarithm of @var{x}. Except for the different base, it is similar to the @code{log} function. In fact, @code{log10 (@var{x})} equals @code{log (@var{x}) / log (10)}. @@ -472,10 +449,8 @@ different base, it is similar to the @code{log} function. In fact, @comment math.h @comment ISO @deftypefun double log2 (double @var{x}) -@end deftypefun -@deftypefun float log2f (float @var{x}) -@end deftypefun -@deftypefun {long double} log2l (long double @var{x}) +@deftypefunx float log2f (float @var{x}) +@deftypefunx {long double} log2l (long double @var{x}) These functions return the base-2 logarithm of @var{x}. Except for the different base, it is similar to the @code{log} function. In fact, @code{log2 (@var{x})} equals @code{log (@var{x}) / log (2)}. @@ -484,10 +459,8 @@ different base, it is similar to the @code{log} function. In fact, @comment math.h @comment ISO @deftypefun double pow (double @var{base}, double @var{power}) -@end deftypefun -@deftypefun float powf (float @var{base}, float @var{power}) -@end deftypefun -@deftypefun {long double} powl (long double @var{base}, long double @var{power}) +@deftypefunx float powf (float @var{base}, float @var{power}) +@deftypefunx {long double} powl (long double @var{base}, long double @var{power}) These are general exponentiation functions, returning @var{base} raised to @var{power}. @@ -508,10 +481,8 @@ An underflow or overflow condition was detected in the result. @comment math.h @comment ISO @deftypefun double sqrt (double @var{x}) -@end deftypefun -@deftypefun float sqrtf (float @var{x}) -@end deftypefun -@deftypefun {long double} sqrtl (long double @var{x}) +@deftypefunx float sqrtf (float @var{x}) +@deftypefunx {long double} sqrtl (long double @var{x}) These functions return the nonnegative square root of @var{x}. The @code{sqrt} function fails, and sets @code{errno} to @code{EDOM}, if @@ -524,10 +495,8 @@ number. @comment math.h @comment BSD @deftypefun double cbrt (double @var{x}) -@end deftypefun -@deftypefun float cbrtf (float @var{x}) -@end deftypefun -@deftypefun {long double} cbrtl (long double @var{x}) +@deftypefunx float cbrtf (float @var{x}) +@deftypefunx {long double} cbrtl (long double @var{x}) These functions return the cube root of @var{x}. They cannot fail; every representable real value has a representable real cube root. @end deftypefun @@ -535,10 +504,8 @@ fail; every representable real value has a representable real cube root. @comment math.h @comment ISO @deftypefun double hypot (double @var{x}, double @var{y}) -@end deftypefun -@deftypefun float hypotf (float @var{x}, float @var{y}) -@end deftypefun -@deftypefun {long double} hypotl (long double @var{x}, long double @var{y}) +@deftypefunx float hypotf (float @var{x}, float @var{y}) +@deftypefunx {long double} hypotl (long double @var{x}, long double @var{y}) These functions return @code{sqrt (@var{x}*@var{x} + @var{y}*@var{y})}. (This is the length of the hypotenuse of a right triangle with sides of length @var{x} and @var{y}, or the distance @@ -550,10 +517,8 @@ much smaller. See also the function @code{cabs} in @ref{Absolute Value}. @comment math.h @comment ISO @deftypefun double expm1 (double @var{x}) -@end deftypefun -@deftypefun float expm1f (float @var{x}) -@end deftypefun -@deftypefun {long double} expm1l (long double @var{x}) +@deftypefunx float expm1f (float @var{x}) +@deftypefunx {long double} expm1l (long double @var{x}) These functions return a value equivalent to @code{exp (@var{x}) - 1}. It is computed in a way that is accurate even if the value of @var{x} is near zero---a case where @code{exp (@var{x}) - 1} would be inaccurate due @@ -563,10 +528,8 @@ to subtraction of two numbers that are nearly equal. @comment math.h @comment ISO @deftypefun double log1p (double @var{x}) -@end deftypefun -@deftypefun float log1pf (float @var{x}) -@end deftypefun -@deftypefun {long double} log1pl (long double @var{x}) +@deftypefunx float log1pf (float @var{x}) +@deftypefunx {long double} log1pl (long double @var{x}) This function returns a value equivalent to @w{@code{log (1 + @var{x})}}. It is computed in a way that is accurate even if the value of @var{x} is near zero. @@ -584,45 +547,51 @@ definition. @comment complex.h @comment ISO @deftypefun {complex double} cexp (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} cexpf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} cexpl (complex long double @var{z}) +@deftypefunx {complex float} cexpf (complex float @var{z}) +@deftypefunx {complex long double} cexpl (complex long double @var{z}) These functions return the value of @code{e} (the base of natural logarithms) raised to power of the complex value @var{z}. +@noindent Mathematically this corresponds to the value -@smallexample -exp (z) = exp (creal (z)) * (cos (cimag (z)) + I * sin (cimag (z))) -@end smallexample +@ifinfo +@math{exp (z) = exp (creal (z)) * (cos (cimag (z)) + I * sin (cimag (z)))} +@end ifinfo +@iftex +@tex +$$\exp(z) = e^z = e^{{\rm Re} z} (\cos ({\rm Im} z) + i \sin ({\rm Im} z))$$ +@end tex +@end iftex @end deftypefun @comment complex.h @comment ISO @deftypefun {complex double} clog (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} clogf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} clogl (complex long double @var{z}) +@deftypefunx {complex float} clogf (complex float @var{z}) +@deftypefunx {complex long double} clogl (complex long double @var{z}) These functions return the natural logarithm of the complex value @var{z}. Unlike the real value version @code{log} and its variants, @code{clog} has no limit for the range of its argument @var{z}. +@noindent Mathematically this corresponds to the value -@smallexample -log (z) = log (cabs (z)) + I * carg (z) -@end smallexample +@ifinfo +@math{log (z) = log (cabs (z)) + I * carg (z)} +@end ifinfo +@iftex +@tex +$$\log(z) = \log(|z|) + i \arg(z)$$ +@end tex +@end iftex @end deftypefun @comment complex.h @comment ISO @deftypefun {complex double} csqrt (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} csqrtf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} csqrtl (complex long double @var{z}) +@deftypefunx {complex float} csqrtf (complex float @var{z}) +@deftypefunx {complex long double} csqrtl (complex long double @var{z}) These functions return the complex root of the argument @var{z}. Unlike the @code{sqrt} function these functions do not have any restriction on the value of the argument. @@ -631,16 +600,19 @@ the value of the argument. @comment complex.h @comment ISO @deftypefun {complex double} cpow (complex double @var{base}, complex double @var{power}) -@end deftypefun -@deftypefun {complex float} cpowf (complex float @var{base}, complex float @var{power}) -@end deftypefun -@deftypefun {complex long double} cpowl (complex long double @var{base}, complex long double @var{power}) +@deftypefunx {complex float} cpowf (complex float @var{base}, complex float @var{power}) +@deftypefunx {complex long double} cpowl (complex long double @var{base}, complex long double @var{power}) These functions return the complex value @var{BASE} raised to the power of @var{power}. This is computed as -@smallexample -cpow (x, y) = cexp (y * clog (x)) -@end smallexample +@ifinfo +@math{cpow (x, y) = cexp (y * clog (x))} +@end ifinfo +@iftex +@tex +$${\rm cpow}(x, y) = e^{y \log(x)}$$ +@end tex +@end iftex @end deftypefun @@ -654,10 +626,8 @@ see @ref{Exponents and Logarithms}. @comment math.h @comment ISO @deftypefun double sinh (double @var{x}) -@end deftypefun -@deftypefun float sinhf (float @var{x}) -@end deftypefun -@deftypefun {long double} sinhl (long double @var{x}) +@deftypefunx float sinhf (float @var{x}) +@deftypefunx {long double} sinhl (long double @var{x}) These functions return the hyperbolic sine of @var{x}, defined mathematically as @w{@code{(exp (@var{x}) - exp (-@var{x})) / 2}}. The function fails, and sets @code{errno} to @code{ERANGE}, if the value of @@ -667,10 +637,8 @@ function fails, and sets @code{errno} to @code{ERANGE}, if the value of @comment math.h @comment ISO @deftypefun double cosh (double @var{x}) -@end deftypefun -@deftypefun float coshf (float @var{x}) -@end deftypefun -@deftypefun {long double} coshl (long double @var{x}) +@deftypefunx float coshf (float @var{x}) +@deftypefunx {long double} coshl (long double @var{x}) These function return the hyperbolic cosine of @var{x}, defined mathematically as @w{@code{(exp (@var{x}) + exp (-@var{x})) / 2}}. The function fails, and sets @code{errno} to @code{ERANGE}, if the value @@ -680,10 +648,8 @@ of @var{x} is too large; that is, if overflow occurs. @comment math.h @comment ISO @deftypefun double tanh (double @var{x}) -@end deftypefun -@deftypefun float tanhf (float @var{x}) -@end deftypefun -@deftypefun {long double} tanhl (long double @var{x}) +@deftypefunx float tanhf (float @var{x}) +@deftypefunx {long double} tanhl (long double @var{x}) These functions return the hyperbolic tangent of @var{x}, whose mathematical definition is @w{@code{sinh (@var{x}) / cosh (@var{x})}}. @end deftypefun @@ -698,10 +664,8 @@ library are optimized for accuracy and speed. @comment complex.h @comment ISO @deftypefun {complex double} csinh (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} csinhf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} csinhl (complex long double @var{z}) +@deftypefunx {complex float} csinhf (complex float @var{z}) +@deftypefunx {complex long double} csinhl (complex long double @var{z}) These functions return the complex hyperbolic sine of @var{z}, defined mathematically as @w{@code{(exp (@var{z}) - exp (-@var{z})) / 2}}. The function fails, and sets @code{errno} to @code{ERANGE}, if the value of @@ -711,10 +675,8 @@ result is too large. @comment complex.h @comment ISO @deftypefun {complex double} ccosh (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} ccoshf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} ccoshl (complex long double @var{z}) +@deftypefunx {complex float} ccoshf (complex float @var{z}) +@deftypefunx {complex long double} ccoshl (complex long double @var{z}) These functions return the complex hyperbolic cosine of @var{z}, defined mathematically as @w{@code{(exp (@var{z}) + exp (-@var{z})) / 2}}. The function fails, and sets @code{errno} to @code{ERANGE}, if the value of @@ -724,10 +686,8 @@ result is too large. @comment complex.h @comment ISO @deftypefun {complex double} ctanh (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} ctanhf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} ctanhl (complex long double @var{z}) +@deftypefunx {complex float} ctanhf (complex float @var{z}) +@deftypefunx {complex long double} ctanhl (complex long double @var{z}) These functions return the complex hyperbolic tangent of @var{z}, whose mathematical definition is @w{@code{csinh (@var{z}) / ccosh (@var{z})}}. @end deftypefun @@ -738,10 +698,8 @@ mathematical definition is @w{@code{csinh (@var{z}) / ccosh (@var{z})}}. @comment math.h @comment ISO @deftypefun double asinh (double @var{x}) -@end deftypefun -@deftypefun float asinhf (float @var{x}) -@end deftypefun -@deftypefun {long double} asinhl (long double @var{x}) +@deftypefunx float asinhf (float @var{x}) +@deftypefunx {long double} asinhl (long double @var{x}) These functions return the inverse hyperbolic sine of @var{x}---the value whose hyperbolic sine is @var{x}. @end deftypefun @@ -749,10 +707,8 @@ value whose hyperbolic sine is @var{x}. @comment math.h @comment ISO @deftypefun double acosh (double @var{x}) -@end deftypefun -@deftypefun float acoshf (float @var{x}) -@end deftypefun -@deftypefun {long double} acoshl (long double @var{x}) +@deftypefunx float acoshf (float @var{x}) +@deftypefunx {long double} acoshl (long double @var{x}) These functions return the inverse hyperbolic cosine of @var{x}---the value whose hyperbolic cosine is @var{x}. If @var{x} is less than @code{1}, @code{acosh} returns @code{HUGE_VAL}. @@ -761,10 +717,8 @@ value whose hyperbolic cosine is @var{x}. If @var{x} is less than @comment math.h @comment ISO @deftypefun double atanh (double @var{x}) -@end deftypefun -@deftypefun float atanhf (float @var{x}) -@end deftypefun -@deftypefun {long double} atanhl (long double @var{x}) +@deftypefunx float atanhf (float @var{x}) +@deftypefunx {long double} atanhl (long double @var{x}) These functions return the inverse hyperbolic tangent of @var{x}---the value whose hyperbolic tangent is @var{x}. If the absolute value of @var{x} is greater than or equal to @code{1}, @code{atanh} returns @@ -776,10 +730,8 @@ value whose hyperbolic tangent is @var{x}. If the absolute value of @comment complex.h @comment ISO @deftypefun {complex double} casinh (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} casinhf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} casinhl (complex long double @var{z}) +@deftypefunx {complex float} casinhf (complex float @var{z}) +@deftypefunx {complex long double} casinhl (complex long double @var{z}) These functions return the inverse complex hyperbolic sine of @var{z}---the value whose complex hyperbolic sine is @var{z}. @end deftypefun @@ -787,10 +739,8 @@ These functions return the inverse complex hyperbolic sine of @comment complex.h @comment ISO @deftypefun {complex double} cacosh (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} cacoshf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} cacoshl (complex long double @var{z}) +@deftypefunx {complex float} cacoshf (complex float @var{z}) +@deftypefunx {complex long double} cacoshl (complex long double @var{z}) These functions return the inverse complex hyperbolic cosine of @var{z}---the value whose complex hyperbolic cosine is @var{z}. Unlike the real valued function @code{acosh} there is not limit for the range @@ -800,10 +750,8 @@ of the argument. @comment complex.h @comment ISO @deftypefun {complex double} catanh (complex double @var{z}) -@end deftypefun -@deftypefun {complex float} catanhf (complex float @var{z}) -@end deftypefun -@deftypefun {complex long double} catanhl (complex long double @var{z}) +@deftypefunx {complex float} catanhf (complex float @var{z}) +@deftypefunx {complex long double} catanhl (complex long double @var{z}) These functions return the inverse complex hyperbolic tangent of @var{z}---the value whose complex hyperbolic tangent is @var{z}. Unlike the real valued function @code{atanh} there is not limit for the range diff --git a/manual/signal.texi b/manual/signal.texi index 767ddabb41..bc69019e63 100644 --- a/manual/signal.texi +++ b/manual/signal.texi @@ -833,10 +833,9 @@ will not affect your program unless it explicitly uses them for something. @comment signal.h @comment POSIX.1 @deftypevr Macro int SIGUSR1 -@end deftypevr @comment signal.h @comment POSIX.1 -@deftypevr Macro int SIGUSR2 +@deftypevrx Macro int SIGUSR2 @cindex user signals The @code{SIGUSR1} and @code{SIGUSR2} signals are set aside for you to use any way you want. They're useful for simple interprocess diff --git a/manual/stdio.texi b/manual/stdio.texi index 97c3f581d1..3e73155f4a 100644 --- a/manual/stdio.texi +++ b/manual/stdio.texi @@ -1765,47 +1765,40 @@ extract just the basic type code. Here are symbolic constants that represent the basic types; they stand for integer values. -@table @code +@vtable @code @comment printf.h @comment GNU @item PA_INT -@vindex PA_INT This specifies that the base type is @code{int}. @comment printf.h @comment GNU @item PA_CHAR -@vindex PA_CHAR This specifies that the base type is @code{int}, cast to @code{char}. @comment printf.h @comment GNU @item PA_STRING -@vindex PA_STRING This specifies that the base type is @code{char *}, a null-terminated string. @comment printf.h @comment GNU @item PA_POINTER -@vindex PA_POINTER This specifies that the base type is @code{void *}, an arbitrary pointer. @comment printf.h @comment GNU @item PA_FLOAT -@vindex PA_FLOAT This specifies that the base type is @code{float}. @comment printf.h @comment GNU @item PA_DOUBLE -@vindex PA_DOUBLE This specifies that the base type is @code{double}. @comment printf.h @comment GNU @item PA_LAST -@vindex PA_LAST You can define additional base types for your own programs as offsets from @code{PA_LAST}. For example, if you have data types @samp{foo} and @samp{bar} with their own specialized @code{printf} conversions, @@ -1815,16 +1808,15 @@ you could define encodings for these types as: #define PA_FOO PA_LAST #define PA_BAR (PA_LAST + 1) @end smallexample -@end table +@end vtable Here are the flag bits that modify a basic type. They are combined with the code for the basic type using inclusive-or. -@table @code +@vtable @code @comment printf.h @comment GNU @item PA_FLAG_PTR -@vindex PA_FLAG_PTR If this bit is set, it indicates that the encoded type is a pointer to the base type, rather than an immediate value. For example, @samp{PA_INT|PA_FLAG_PTR} represents the type @samp{int *}. @@ -1832,31 +1824,27 @@ For example, @samp{PA_INT|PA_FLAG_PTR} represents the type @samp{int *}. @comment printf.h @comment GNU @item PA_FLAG_SHORT -@vindex PA_FLAG_SHORT If this bit is set, it indicates that the base type is modified with @code{short}. (This corresponds to the @samp{h} type modifier.) @comment printf.h @comment GNU @item PA_FLAG_LONG -@vindex PA_FLAG_LONG If this bit is set, it indicates that the base type is modified with @code{long}. (This corresponds to the @samp{l} type modifier.) @comment printf.h @comment GNU @item PA_FLAG_LONG_LONG -@vindex PA_FLAG_LONG_LONG If this bit is set, it indicates that the base type is modified with @code{long long}. (This corresponds to the @samp{L} type modifier.) @comment printf.h @comment GNU @item PA_FLAG_LONG_DOUBLE -@vindex PA_FLAG_LONG_DOUBLE This is a synonym for @code{PA_FLAG_LONG_LONG}, used by convention with a base type of @code{PA_DOUBLE} to indicate a type of @code{long double}. -@end table +@end vtable @ifinfo For an example of using these facilities, see @ref{Example of Parsing}. @@ -2234,7 +2222,8 @@ character is of lower case, 1024 is used. For upper case characters, The postfix tag corresponds to bytes, kilobytes, megabytes, gigabytes, etc. The full table is: -@multitable {' '} {2^10 (1024)} {zetta} {Upper} {10^24 (1000)} +@ifinfo +@multitable @hsep @vsep {' '} {2^10 (1024)} {zetta} {Upper} {10^24 (1000)} @item low @tab Multiplier @tab From @tab Upper @tab Multiplier @item ' ' @tab 1 @tab @tab ' ' @tab 1 @item k @tab 2^10 (1024) @tab kilo @tab K @tab 10^3 (1000) @@ -2246,6 +2235,29 @@ etc. The full table is: @item z @tab 2^70 @tab zetta @tab Z @tab 10^21 @item y @tab 2^80 @tab yotta @tab Y @tab 10^24 @end multitable +@end ifinfo +@iftex +@tex +\hbox to\hsize{\hfil\vbox{\offinterlineskip +\hrule +\halign{\strut#& \vrule#\tabskip=1em plus2em& {\tt#}\hfil& \vrule#& #\hfil& \vrule#& #\hfil& \vrule#& {\tt#}\hfil& \vrule#& #\hfil& \vrule#\tabskip=0pt\cr +\noalign{\hrule} +\omit&height2pt&\omit&&\omit&&\omit&&\omit&&\omit&\cr +&& \omit low && Multiplier && From && \omit Upper && Multiplier &\cr +\omit&height2pt&\omit&&\omit&&\omit&&\omit&&\omit&\cr +\noalign{\hrule} +&& {\tt\char32} && 1 && && {\tt\char32} && 1 &\cr +&& k && $2^{10} = 1024$ && kilo && K && $10^3 = 1000$ &\cr +&& m && $2^{20}$ && mega && M && $10^6$ &\cr +&& g && $2^{30}$ && giga && G && $10^9$ &\cr +&& t && $2^{40}$ && tera && T && $10^{12}$ &\cr +&& p && $2^{50}$ && peta && P && $10^{15}$ &\cr +&& e && $2^{60}$ && exa && E && $10^{18}$ &\cr +&& z && $2^{70}$ && zetta && Z && $10^{21}$ &\cr +&& y && $2^{80}$ && yotta && Y && $10^{24}$ &\cr +\noalign{\hrule}}}\hfil} +@end tex +@end iftex The default precision is 3, i.e., 1024 is printed with a lower-case format character as if it were @code{%.3fk} and will yield @code{1.000k}. diff --git a/manual/summary.awk b/manual/summary.awk index 2eade0c20d..d997a2080f 100644 --- a/manual/summary.awk +++ b/manual/summary.awk @@ -25,29 +25,53 @@ BEGIN { header = 0; nameword["@defun"]=1 +nameword["@defunx"]=1 nameword["@defmac"]=1 +nameword["@defmacx"]=1 nameword["@defspec"]=1 +nameword["@defspecx"]=1 nameword["@defvar"]=1 +nameword["@defvarx"]=1 nameword["@defopt"]=1 +nameword["@defoptx"]=1 nameword["@deffn"]=2 +nameword["@deffnx"]=2 nameword["@defvr"]=2 +nameword["@defvrx"]=2 nameword["@deftp"]=2 +nameword["@deftpx"]=2 nameword["@deftypefun"]=2 +nameword["@deftypefunx"]=2 nameword["@deftypevar"]=2 +nameword["@deftypevarx"]=2 nameword["@deftypefn"]=3 +nameword["@deftypefnx"]=3 nameword["@deftypevr"]=3 +nameword["@deftypevrx"]=3 firstword["@defun"]=1 +firstword["@defunx"]=1 firstword["@defmac"]=1 +firstword["@defmacx"]=1 firstword["@defspec"]=1 +firstword["@defspecx"]=1 firstword["@defvar"]=1 +firstword["@defvarx"]=1 firstword["@defopt"]=1 +firstword["@defoptx"]=1 firstword["@deffn"]=2 +firstword["@deffnx"]=2 firstword["@defvr"]=2 +firstword["@defvrx"]=2 firstword["@deftp"]=2 +firstword["@deftpx"]=2 firstword["@deftypefun"]=1 +firstword["@deftypefunx"]=1 firstword["@deftypevar"]=1 +firstword["@deftypevarx"]=1 firstword["@deftypefn"]=2 +firstword["@deftypefnx"]=2 firstword["@deftypevr"]=2 +firstword["@deftypevrx"]=2 nameword["@item"]=1 firstword["@item"]=1 nameword["@itemx"]=1 diff --git a/manual/texinfo.tex b/manual/texinfo.tex index 37af9b68a6..4059d0a811 100644 --- a/manual/texinfo.tex +++ b/manual/texinfo.tex @@ -1,5 +1,5 @@ %% TeX macros to handle Texinfo files. -%% $Id: texinfo.tex,v 2.196 1997/01/04 19:24:13 karl Exp $ +%% $Id: texinfo.tex,v 2.197 1997/04/30 15:34:30 drepper Exp $ % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, % 94, 95, 96, 97 Free Software Foundation, Inc. @@ -36,7 +36,7 @@ % This automatically updates the version number based on RCS. \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}} -\deftexinfoversion$Revision: 2.196 $ +\deftexinfoversion$Revision: 2.197 $ \message{Loading texinfo package [Version \texinfoversion]:} % If in a .fmt file, print the version number @@ -118,33 +118,41 @@ \showboxbreadth\maxdimen\showboxdepth\maxdimen }% -%---------------------Begin change----------------------- +% For @cropmarks command. +% Do @cropmarks to get crop marks. +% +\newif\ifcropmarks +\let\cropmarks = \cropmarkstrue % -%%%% For @cropmarks command. -% Dimensions to add cropmarks at corners Added by P. A. MacKay, 12 Nov. 1986 +% Dimensions to add cropmarks at corners. +% Added by P. A. MacKay, 12 Nov. 1986 % \newdimen\cornerlong \newdimen\cornerthick -\newdimen \topandbottommargin -\newdimen \outerhsize \newdimen \outervsize +\newdimen\topandbottommargin +\newdimen\outerhsize \newdimen\outervsize \cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks \outerhsize=7in %\outervsize=9.5in % Alternative @smallbook page size is 9.25in \outervsize=9.25in \topandbottommargin=.75in -% -%---------------------End change----------------------- % Main output routine. \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} -\newbox\headlinebox \newbox\footlinebox +\newbox\headlinebox +\newbox\footlinebox % \onepageout takes a vbox as an argument. Note that \pagecontents % does insertions, but you have to call it yourself. \def\onepageout#1{% - \hoffset=\normaloffset + \ifcropmarks + \hoffset = 0pt + \else + \hoffset = \normaloffset + \fi + % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi % @@ -163,53 +171,41 @@ \normalturnoffactive % \ in index entries must not stay \, e.g., if % the page break happens to be in the middle of an example. \shipout\vbox{% + \ifcropmarks + \vbox to \outervsize\bgroup + \hsize = \outerhsize + \vbox{\line{\ewtop\hfill\ewtop}}% + \nointerlineskip + \line{% + \vbox{\moveleft\cornerthick\nstop}% + \hfill + \vbox{\moveright\cornerthick\nstop}% + }% + \vskip\topandbottommargin + \fi + % \unvbox\headlinebox \pagebody{#1}% \unvbox\footlinebox + % + \ifcropmarks + \vskip\topandbottommargin plus1fill minus1fill + \boxmaxdepth = \cornerthick + \line{% + \vbox{\moveleft\cornerthick\nsbot}% + \hfill + \vbox{\moveright\cornerthick\nsbot}% + }% + \nointerlineskip + \vbox{\line{\ewbot\hfill\ewbot}}% + \egroup % \vbox from first cropmarks clause + \fi }% }% \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } -%%%% For @cropmarks command %%%% - -% Here is a modification of the main output routine for Near East Publications -% This provides right-angle cropmarks at all four corners. -% The contents of the page are centerlined into the cropmarks, -% and any desired binding offset is added as an \hskip on either -% site of the centerlined box. (P. A. MacKay, 12 November, 1986) -% -\def\croppageout#1{\hoffset=0pt % make sure this doesn't mess things up -{\escapechar=`\\\relax % makes sure backslash is used in output files. - \shipout - \vbox to \outervsize{\hsize=\outerhsize - \vbox{\line{\ewtop\hfill\ewtop}} - \nointerlineskip - \line{\vbox{\moveleft\cornerthick\nstop} - \hfill - \vbox{\moveright\cornerthick\nstop}} - \vskip \topandbottommargin - \centerline{\ifodd\pageno\hskip\bindingoffset\fi - \vbox{ - {\let\hsize=\pagewidth \makeheadline} - \pagebody{#1} - {\let\hsize=\pagewidth \makefootline}} - \ifodd\pageno\else\hskip\bindingoffset\fi} - \vskip \topandbottommargin plus1fill minus1fill - \boxmaxdepth\cornerthick - \line{\vbox{\moveleft\cornerthick\nsbot} - \hfill - \vbox{\moveright\cornerthick\nsbot}} - \nointerlineskip - \vbox{\line{\ewbot\hfill\ewbot}} - }} - \advancepageno - \ifnum\outputpenalty>-20000 \else\dosupereject\fi} -% -% Do @cropmarks to get crop marks -\def\cropmarks{\let\onepageout=\croppageout } - \newinsert\margin \dimen\margin=\maxdimen \def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}} @@ -2240,6 +2236,7 @@ width0pt\relax} \fi \def\r##1{\realbackslash r {##1}}% \def\i##1{\realbackslash i {##1}}% \def\b##1{\realbackslash b {##1}}% +\def\sc##1{\realbackslash sc {##1}}% \def\cite##1{\realbackslash cite {##1}}% \def\key##1{\realbackslash key {##1}}% \def\file##1{\realbackslash file {##1}}% @@ -2774,7 +2771,8 @@ width0pt\relax} \fi % because we don't want its macros evaluated now. \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% {\chapternofonts% -\edef\temp{{\realbackslash chapentry {#1}{\the\chapno}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash chapentry{\the\toks0}{\the\chapno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \donoderef % @@ -2793,8 +2791,9 @@ width0pt\relax} \fi \gdef\thischaptername{#1}% \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% {\chapternofonts% -\edef\temp{{\realbackslash chapentry - {#1}{\putwordAppendix{} \appendixletter}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash chapentry{\the\toks0}% + {\putwordAppendix{} \appendixletter}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \appendixnoderef % @@ -2828,7 +2827,8 @@ width0pt\relax} \fi \unnumbchapmacro {#1}% \gdef\thischapter{#1}\gdef\thissection{#1}% {\chapternofonts% -\edef\temp{{\realbackslash unnumbchapentry {#1}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash unnumbchapentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \unnumbnoderef % @@ -2843,8 +2843,9 @@ width0pt\relax} \fi \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% {\chapternofonts% +\toks0 = {#1}% \edef\temp{{\realbackslash secentry % -{#1}{\the\chapno}{\the\secno}{\noexpand\folio}}}% +{\the\toks0}{\the\chapno}{\the\secno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \donoderef % @@ -2858,8 +2859,9 @@ width0pt\relax} \fi \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% {\chapternofonts% +\toks0 = {#1}% \edef\temp{{\realbackslash secentry % -{#1}{\appendixletter}{\the\secno}{\noexpand\folio}}}% +{\the\toks0}{\appendixletter}{\the\secno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \appendixnoderef % @@ -2871,7 +2873,8 @@ width0pt\relax} \fi \def\unnumberedseczzz #1{\seccheck{unnumberedsec}% \plainsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% -\edef\temp{{\realbackslash unnumbsecentry{#1}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash unnumbsecentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \unnumbnoderef % @@ -2884,8 +2887,9 @@ width0pt\relax} \fi \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% {\chapternofonts% +\toks0 = {#1}% \edef\temp{{\realbackslash subsecentry % -{#1}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% +{\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \donoderef % @@ -2898,8 +2902,9 @@ width0pt\relax} \fi \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% {\chapternofonts% +\toks0 = {#1}% \edef\temp{{\realbackslash subsecentry % -{#1}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% +{\the\toks0}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \appendixnoderef % @@ -2911,7 +2916,8 @@ width0pt\relax} \fi \def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}% \plainsubsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% -\edef\temp{{\realbackslash unnumbsubsecentry{#1}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash unnumbsubsecentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \unnumbnoderef % @@ -2925,8 +2931,8 @@ width0pt\relax} \fi \subsubsecheading {#1} {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% {\chapternofonts% -\edef\temp{{\realbackslash subsubsecentry % - {#1} +\toks0 = {#1}% +\edef\temp{{\realbackslash subsubsecentry{\the\toks0} {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno} {\noexpand\folio}}}% \escapechar=`\\% @@ -2942,7 +2948,8 @@ width0pt\relax} \fi \subsubsecheading {#1} {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% {\chapternofonts% -\edef\temp{{\realbackslash subsubsecentry{#1}% +\toks0 = {#1}% +\edef\temp{{\realbackslash subsubsecentry{\the\toks0}% {\appendixletter} {\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}% \escapechar=`\\% @@ -2956,7 +2963,8 @@ width0pt\relax} \fi \def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}% \plainsubsubsecheading {#1}\gdef\thissection{#1}% {\chapternofonts% -\edef\temp{{\realbackslash unnumbsubsubsecentry{#1}{\noexpand\folio}}}% +\toks0 = {#1}% +\edef\temp{{\realbackslash unnumbsubsubsecentry{\the\toks0}{\noexpand\folio}}}% \escapechar=`\\% \write \contentsfile \temp % \unnumbnoderef % diff --git a/manual/xtract-typefun.awk b/manual/xtract-typefun.awk index 6450ac10eb..2f0bbc748e 100644 --- a/manual/xtract-typefun.awk +++ b/manual/xtract-typefun.awk @@ -9,18 +9,18 @@ BEGIN { /^@deftypefun/ { printf ("* %s: (libc)%s.\n", - gensub (/@deftypefun +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]+).*/, "\\2", 1), + gensub (/@deftypefunx? +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]*).*/, "\\2", 1), last_node); } /^@deftypevr/ { printf ("* %s: (libc)%s.\n", - gensub (/@deftypevr +([^{ ]+|\{[^}]+\}) +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]+).*/, "\\3", 1), + gensub (/@deftypevrx? +([^{ ]+|\{[^}]+\}) +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]*).*/, "\\3", 1), last_node); } /^@deftypefn/ { printf ("* %s: (libc)%s.\n", - gensub (/@deftypefn +([^{ ]+|\{[^}]+\}) +[^{ ]*(\{[^}]+\})? +([[:alpha:]_][[:alnum:]_]+).*/, "\\3", 1), + gensub (/@deftypefnx? +([^{ ]+|\{[^}]+\}) +[^{ ]*(\{[^}]+\})? +([[:alpha:]_][[:alnum:]_]*).*/, "\\3", 1), last_node); } diff --git a/math/fenv.h b/math/fenv.h index c9a8a5c94b..c065d662e0 100644 --- a/math/fenv.h +++ b/math/fenv.h @@ -22,7 +22,7 @@ #ifndef _FENV_H -#define __FENV_H 1 +#define _FENV_H 1 #include <features.h> /* Get the architecture dependend definitions. The following definitions @@ -40,7 +40,7 @@ The following macros are defined iff the implementation supports this kind of exception. - FE_INEXACT inxeact result + FE_INEXACT inexact result FE_DIVBYZERO devision by zero FE_UNDERFLOW result not representable due to underflow FE_OVERFLOW result not representable due to overflow @@ -86,7 +86,7 @@ extern int fetestexcept __P ((int __excepts)); extern int fegetround __P ((void)); /* Establish the rounding direction represented by ROUND. */ -extern int fesetround __P ((int __round)); +extern int fesetround __P ((int __rounding_direction)); /* Floating-point environment. */ diff --git a/math/libm-test.c b/math/libm-test.c index 72c27b16ca..ccb8aa80d5 100644 --- a/math/libm-test.c +++ b/math/libm-test.c @@ -70,6 +70,7 @@ #include <complex.h> #include <math.h> #include <float.h> +#include <fenv.h> #include <errno.h> #include <stdlib.h> @@ -87,9 +88,6 @@ #define PRINT 1 #define NO_PRINT 0 -#define TEST_EXCEPTION(test) do {} while (0); -/* As long as no exception code is available prevent warnings. */ -#define UNUSED __attribute__ ((unused)) static int noErrors; @@ -155,6 +153,9 @@ random_value (MATHTYPE min_value, MATHTYPE max_value) if ((x <= min_value) || (x >= max_value) || !isfinite (x)) x = (max_value - min_value) / 2 + min_value; + /* Make sure the RNG has no influence on the exceptions. */ + feclearexcept (FE_ALL_EXCEPT); + return x; } @@ -173,6 +174,84 @@ random_less (MATHTYPE max_value) } +/* Test whether a given exception was raised. */ +static void +test_single_exception (const char *test_name, + short int exception, + short int exc_flag, + fexcept_t fe_flag, + const char *flag_name) +{ + if (exception & exc_flag) + { + if (fetestexcept (fe_flag)) + { + if (verbose > 2) + printf ("Pass: %s:\nException \"%s\" set\n", test_name, flag_name); + } + else + { + if (verbose) + printf ("Fail: %s:\nException \"%s\" not set\n", + test_name, flag_name); + ++noErrors; + } + } + else + { + if (fetestexcept (fe_flag)) + { + if (verbose) + printf ("Fail: %s:\nException \"%s\" set\n", + test_name, flag_name); + ++noErrors; + } + else + { + if (verbose > 2) + printf ("Pass: %s:\nException \"%s\" not set\n", + test_name, flag_name); + } + } +} + + +/* Test whether exception given by EXCEPTION are raised. */ +static void +test_not_exception (const char *test_name, short int exception) +{ +#ifdef FE_DIVBYZERO + if ((exception & FE_DIVBYZERO) == 0) + test_single_exception (test_name, exception, + DIVIDE_BY_ZERO_EXCEPTION, FE_DIVBYZERO, + "Divide by zero"); +#endif +#ifdef FE_INVALID + if ((exception & FE_INVALID) == 0) + test_single_exception (test_name, exception, INVALID_EXCEPTION, FE_INVALID, + "Invalid operation"); +#endif + feclearexcept (FE_ALL_EXCEPT); +} + + +/* Test whether exceptions given by EXCEPTION are raised. */ +static void +test_exceptions (const char *test_name, short int exception) +{ +#ifdef FE_DIVBYZERO + test_single_exception (test_name, exception, + DIVIDE_BY_ZERO_EXCEPTION, FE_DIVBYZERO, + "Divide by zero"); +#endif +#ifdef FE_INVALID + test_single_exception (test_name, exception, INVALID_EXCEPTION, FE_INVALID, + "Invalid operation"); +#endif + feclearexcept (FE_ALL_EXCEPT); +} + + /* Test if two floating point numbers are equal. */ static int check_equal (MATHTYPE computed, MATHTYPE supplied, MATHTYPE eps, MATHTYPE * diff) @@ -327,6 +406,7 @@ check (const char *test_name, MATHTYPE computed, MATHTYPE expected) MATHTYPE diff; int result; + test_exceptions (test_name, NO_EXCEPTION); result = check_equal (computed, expected, 0, &diff); output_result (test_name, result, computed, expected, diff, PRINT, PRINT); @@ -340,6 +420,7 @@ check_ext (const char *test_name, MATHTYPE computed, MATHTYPE expected, MATHTYPE diff; int result; + test_exceptions (test_name, NO_EXCEPTION); result = check_equal (computed, expected, 0, &diff); output_result_ext (test_name, result, computed, expected, diff, parameter, PRINT, PRINT); @@ -347,12 +428,27 @@ check_ext (const char *test_name, MATHTYPE computed, MATHTYPE expected, static void +check_exc (const char *test_name, MATHTYPE computed, MATHTYPE expected, + short exception) +{ + MATHTYPE diff; + int result; + + test_exceptions (test_name, exception); + result = check_equal (computed, expected, 0, &diff); + output_result (test_name, result, + computed, expected, diff, PRINT, PRINT); +} + + +static void check_eps (const char *test_name, MATHTYPE computed, MATHTYPE expected, MATHTYPE epsilon) { MATHTYPE diff; int result; + test_exceptions (test_name, NO_EXCEPTION); result = check_equal (computed, expected, epsilon, &diff); output_result (test_name, result, computed, expected, diff, PRINT, PRINT); @@ -362,6 +458,7 @@ check_eps (const char *test_name, MATHTYPE computed, MATHTYPE expected, static void check_bool (const char *test_name, int computed) { + test_exceptions (test_name, NO_EXCEPTION); output_result_bool (test_name, computed); } @@ -372,6 +469,8 @@ check_long (const char *test_name, long int computed, long int expected) long int diff = computed - expected; int result = diff == 0; + test_exceptions (test_name, NO_EXCEPTION); + if (result) { if (verbose > 2) @@ -401,6 +500,8 @@ check_longlong (const char *test_name, long long int computed, long long int diff = computed - expected; int result = diff == 0; + test_exceptions (test_name, NO_EXCEPTION); + if (result) { if (verbose > 2) @@ -426,14 +527,25 @@ check_longlong (const char *test_name, long long int computed, static void check_isnan (const char *test_name, MATHTYPE computed) { + test_exceptions (test_name, NO_EXCEPTION); output_isvalue (test_name, isnan (computed), computed); } static void check_isnan_exc (const char *test_name, MATHTYPE computed, - short exception UNUSED) + short exception) { + test_exceptions (test_name, exception); + output_isvalue (test_name, isnan (computed), computed); +} + + +static void +check_isnan_maybe_exc (const char *test_name, MATHTYPE computed, + short exception) +{ + test_not_exception (test_name, exception); output_isvalue (test_name, isnan (computed), computed); } @@ -442,6 +554,7 @@ static void check_isnan_ext (const char *test_name, MATHTYPE computed, MATHTYPE parameter) { + test_exceptions (test_name, NO_EXCEPTION); output_isvalue_ext (test_name, isnan (computed), computed, parameter); } @@ -450,6 +563,7 @@ check_isnan_ext (const char *test_name, MATHTYPE computed, static void check_isinfp (const char *test_name, MATHTYPE computed) { + test_exceptions (test_name, NO_EXCEPTION); output_isvalue (test_name, (ISINF (computed) == +1), computed); } @@ -458,6 +572,7 @@ static void check_isinfp_ext (const char *test_name, MATHTYPE computed, MATHTYPE parameter) { + test_exceptions (test_name, NO_EXCEPTION); output_isvalue_ext (test_name, (ISINF (computed) == +1), computed, parameter); } @@ -465,8 +580,9 @@ check_isinfp_ext (const char *test_name, MATHTYPE computed, /* Tests if computed is +Inf */ static void check_isinfp_exc (const char *test_name, MATHTYPE computed, - int exception UNUSED) + int exception) { + test_exceptions (test_name, exception); output_isvalue (test_name, (ISINF (computed) == +1), computed); } @@ -474,6 +590,7 @@ check_isinfp_exc (const char *test_name, MATHTYPE computed, static void check_isinfn (const char *test_name, MATHTYPE computed) { + test_exceptions (test_name, NO_EXCEPTION); output_isvalue (test_name, (ISINF (computed) == -1), computed); } @@ -482,6 +599,7 @@ static void check_isinfn_ext (const char *test_name, MATHTYPE computed, MATHTYPE parameter) { + test_exceptions (test_name, NO_EXCEPTION); output_isvalue_ext (test_name, (ISINF (computed) == -1), computed, parameter); } @@ -489,8 +607,9 @@ check_isinfn_ext (const char *test_name, MATHTYPE computed, /* Tests if computed is -Inf */ static void check_isinfn_exc (const char *test_name, MATHTYPE computed, - int exception UNUSED) + int exception) { + test_exceptions (test_name, exception); output_isvalue (test_name, (ISINF (computed) == -1), computed); } @@ -507,7 +626,7 @@ acos_test (void) check ("acos (1) == 0", FUNC(acos) (1), 0); x = random_greater (1); - check_isnan_exc ("acos (x) == NaN + invalid exception for |x| > 1", + check_isnan_exc ("acos (x) == NaN plus invalid exception for |x| > 1", FUNC(acos) (x), INVALID_EXCEPTION); } @@ -533,7 +652,7 @@ asin_test (void) check ("asin (0) == 0", FUNC(asin) (0), 0); x = random_greater (1); - check_isnan_exc ("asin x == NaN + invalid exception for |x| > 1", + check_isnan_exc ("asin x == NaN plus invalid exception for |x| > 1", FUNC(asin) (x), INVALID_EXCEPTION); } @@ -882,14 +1001,14 @@ ldexp_test (void) static void log_test (void) { - check_isinfn_exc ("log (+0) == -inf", FUNC(log) (0), - DIVIDE_BY_ZERO_EXCEPTION); - check_isinfn_exc ("log (-0) == -inf", FUNC(log) (minus_zero), - DIVIDE_BY_ZERO_EXCEPTION); + check_isinfn_exc ("log (+0) == -inf plus divide-by-zero exception", + FUNC(log) (0), DIVIDE_BY_ZERO_EXCEPTION); + check_isinfn_exc ("log (-0) == -inf plus divide-by-zero exception", + FUNC(log) (minus_zero), DIVIDE_BY_ZERO_EXCEPTION); check ("log (1) == 0", FUNC(log) (1), 0); - check_isnan_exc ("log (x) == NaN plus divide-by-zero exception if x < 0", + check_isnan_exc ("log (x) == NaN plus invalid exception if x < 0", FUNC(log) (-1), INVALID_EXCEPTION); check_isinfp ("log (+inf) == +inf", FUNC(log) (plus_infty)); @@ -905,14 +1024,14 @@ log_test (void) static void log10_test (void) { - check_isinfn_exc ("log10 (+0) == -inf", FUNC(log10) (0), - DIVIDE_BY_ZERO_EXCEPTION); - check_isinfn_exc ("log10 (-0) == -inf", FUNC(log10) (minus_zero), - DIVIDE_BY_ZERO_EXCEPTION); + check_isinfn_exc ("log10 (+0) == -inf plus divide-by-zero exception", + FUNC(log10) (0), DIVIDE_BY_ZERO_EXCEPTION); + check_isinfn_exc ("log10 (-0) == -inf plus divide-by-zero exception", + FUNC(log10) (minus_zero), DIVIDE_BY_ZERO_EXCEPTION); check ("log10 (1) == +0", FUNC(log10) (1), 0); - check_isnan_exc ("log10 (x) == NaN plus divide-by-zero exception if x < 0", + check_isnan_exc ("log10 (x) == NaN plus invalid exception if x < 0", FUNC(log10) (-1), INVALID_EXCEPTION); check_isinfp ("log10 (+inf) == +inf", FUNC(log10) (plus_infty)); @@ -935,9 +1054,9 @@ log1p_test (void) check ("log1p (+0) == +0", FUNC(log1p) (0), 0); check ("log1p (-0) == -0", FUNC(log1p) (minus_zero), minus_zero); - check_isinfn_exc ("log1p (-1) == -inf", FUNC(log1p) (-1), - DIVIDE_BY_ZERO_EXCEPTION); - check_isnan_exc ("log1p (x) == NaN plus divide-by-zero exception if x < -1", + check_isinfn_exc ("log1p (-1) == -inf plus divide-by-zero exception", + FUNC(log1p) (-1), DIVIDE_BY_ZERO_EXCEPTION); + check_isnan_exc ("log1p (x) == NaN plus invalid exception if x < -1", FUNC(log1p) (-2), INVALID_EXCEPTION); check_isinfp ("log1p (+inf) == +inf", FUNC(log1p) (plus_infty)); @@ -951,14 +1070,14 @@ log1p_test (void) static void log2_test (void) { - check_isinfn_exc ("log2 (+0) == -inf", FUNC(log2) (0), - DIVIDE_BY_ZERO_EXCEPTION); - check_isinfn_exc ("log2 (-0) == -inf", FUNC(log2) (minus_zero), - DIVIDE_BY_ZERO_EXCEPTION); + check_isinfn_exc ("log2 (+0) == -inf plus divide-by-zero exception", + FUNC(log2) (0), DIVIDE_BY_ZERO_EXCEPTION); + check_isinfn_exc ("log2 (-0) == -inf plus divide-by-zero exception", + FUNC(log2) (minus_zero), DIVIDE_BY_ZERO_EXCEPTION); check ("log2 (1) == +0", FUNC(log2) (1), 0); - check_isnan_exc ("log2 (x) == NaN plus divide-by-zero exception if x < 0", + check_isnan_exc ("log2 (x) == NaN plus invalid exception if x < 0", FUNC(log2) (-1), INVALID_EXCEPTION); check_isinfp ("log2 (+inf) == +inf", FUNC(log2) (plus_infty)); @@ -1254,41 +1373,41 @@ pow_test (void) x = random_greater (0.0); check_isnan_ext ("pow (x, NaN) == NaN", FUNC(pow) (x, nan_value), x); - check_isnan_exc ("pow (+1, +inf) == NaN", FUNC(pow) (1, plus_infty), - INVALID_EXCEPTION); - check_isnan_exc ("pow (-1, +inf) == NaN", FUNC(pow) (-1, plus_infty), - INVALID_EXCEPTION); - check_isnan_exc ("pow (+1, -inf) == NaN", FUNC(pow) (1, minus_infty), - INVALID_EXCEPTION); - check_isnan_exc ("pow (-1, -inf) == NaN", FUNC(pow) (-1, minus_infty), - INVALID_EXCEPTION); - - check_isnan_exc ("pow (-0.1, 1.1) == NaN", FUNC(pow) (-0.1, 1.1), - INVALID_EXCEPTION); - check_isnan_exc ("pow (-0.1, -1.1) == NaN", FUNC(pow) (-0.1, -1.1), - INVALID_EXCEPTION); - check_isnan_exc ("pow (-10.1, 1.1) == NaN", FUNC(pow) (-10.1, 1.1), - INVALID_EXCEPTION); - check_isnan_exc ("pow (-10.1, -1.1) == NaN", FUNC(pow) (-10.1, -1.1), - INVALID_EXCEPTION); - - check_isinfp_exc ("pow (+0, -1) == +inf", FUNC(pow) (0, -1), - DIVIDE_BY_ZERO_EXCEPTION); - check_isinfp_exc ("pow (+0, -11) == +inf", FUNC(pow) (0, -11), - DIVIDE_BY_ZERO_EXCEPTION); - check_isinfn_exc ("pow (-0, -1) == -inf", FUNC(pow) (minus_zero, -1), - DIVIDE_BY_ZERO_EXCEPTION); - check_isinfn_exc ("pow (-0, -11) == -inf", FUNC(pow) (minus_zero, -11), - DIVIDE_BY_ZERO_EXCEPTION); - - check_isinfp_exc ("pow (+0, -2) == +inf", FUNC(pow) (0, -2), - DIVIDE_BY_ZERO_EXCEPTION); - check_isinfp_exc ("pow (+0, -11.1) == +inf", FUNC(pow) (0, -11.1), - DIVIDE_BY_ZERO_EXCEPTION); - check_isinfp_exc ("pow (-0, -2) == +inf", FUNC(pow) (minus_zero, -2), - DIVIDE_BY_ZERO_EXCEPTION); - check_isinfp_exc ("pow (-0, -11.1) == +inf", FUNC(pow) (minus_zero, -11.1), - DIVIDE_BY_ZERO_EXCEPTION); + check_isnan_exc ("pow (+1, +inf) == NaN plus invalid exception", + FUNC(pow) (1, plus_infty), INVALID_EXCEPTION); + check_isnan_exc ("pow (-1, +inf) == NaN plus invalid exception", + FUNC(pow) (-1, plus_infty), INVALID_EXCEPTION); + check_isnan_exc ("pow (+1, -inf) == NaN plus invalid exception", + FUNC(pow) (1, minus_infty), INVALID_EXCEPTION); + check_isnan_exc ("pow (-1, -inf) == NaN plus invalid exception", + FUNC(pow) (-1, minus_infty), INVALID_EXCEPTION); + + check_isnan_exc ("pow (-0.1, 1.1) == NaN plus invalid exception", + FUNC(pow) (-0.1, 1.1), INVALID_EXCEPTION); + check_isnan_exc ("pow (-0.1, -1.1) == NaN plus invalid exception", + FUNC(pow) (-0.1, -1.1), INVALID_EXCEPTION); + check_isnan_exc ("pow (-10.1, 1.1) == NaN plus invalid exception", + FUNC(pow) (-10.1, 1.1), INVALID_EXCEPTION); + check_isnan_exc ("pow (-10.1, -1.1) == NaN plus invalid exception", + FUNC(pow) (-10.1, -1.1), INVALID_EXCEPTION); + + check_isinfp_exc ("pow (+0, -1) == +inf plus divide-by-zero exception", + FUNC(pow) (0, -1), DIVIDE_BY_ZERO_EXCEPTION); + check_isinfp_exc ("pow (+0, -11) == +inf plus divide-by-zero exception", + FUNC(pow) (0, -11), DIVIDE_BY_ZERO_EXCEPTION); + check_isinfn_exc ("pow (-0, -1) == -inf plus divide-by-zero exception", + FUNC(pow) (minus_zero, -1), DIVIDE_BY_ZERO_EXCEPTION); + check_isinfn_exc ("pow (-0, -11) == -inf plus divide-by-zero exception", + FUNC(pow) (minus_zero, -11), DIVIDE_BY_ZERO_EXCEPTION); + + check_isinfp_exc ("pow (+0, -2) == +inf plus divide-by-zero exception", + FUNC(pow) (0, -2), DIVIDE_BY_ZERO_EXCEPTION); + check_isinfp_exc ("pow (+0, -11.1) == +inf plus divide-by-zero exception", + FUNC(pow) (0, -11.1), DIVIDE_BY_ZERO_EXCEPTION); + check_isinfp_exc ("pow (-0, -2) == +inf plus divide-by-zero exception", + FUNC(pow) (minus_zero, -2), DIVIDE_BY_ZERO_EXCEPTION); + check_isinfp_exc ("pow (-0, -11.1) == +inf plus divide-by-zero exception", + FUNC(pow) (minus_zero, -11.1), DIVIDE_BY_ZERO_EXCEPTION); check ("pow (+0, 1) == +0", FUNC(pow) (0, 1), 0); check ("pow (+0, 11) == +0", FUNC(pow) (0, 11), 0); @@ -1622,12 +1741,46 @@ cexp_test (void) check ("real(cexp(-inf - 0i)) = 0", __real__ result, 0); check ("imag(cexp(-inf - 0i)) = -0", __imag__ result, minus_zero); + result = FUNC(cexp) (BUILD_COMPLEX (0.0, plus_infty)); + check_isnan_exc ("real(cexp(0 + i inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(0 + i inf)) = NaN plus invalid exception", + __imag__ result); + result = FUNC(cexp) (BUILD_COMPLEX (minus_zero, plus_infty)); + check_isnan_exc ("real(cexp(-0 + i inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(-0 + i inf)) = NaN plus invalid exception", + __imag__ result); + result = FUNC(cexp) (BUILD_COMPLEX (0.0, minus_infty)); + check_isnan_exc ("real(cexp(0 - i inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(0 - i inf)) = NaN plus invalid exception", + __imag__ result); + result = FUNC(cexp) (BUILD_COMPLEX (minus_zero, minus_infty)); + check_isnan_exc ("real(cexp(-0 - i inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(-0 - i inf)) = NaN plus invalid exception", + __imag__ result); + result = FUNC(cexp) (BUILD_COMPLEX (100.0, plus_infty)); - check_isnan ("real(cexp(x + i inf)) = NaN", __real__ result); - check_isnan ("imag(cexp(x + i inf)) = NaN", __imag__ result); + check_isnan_exc ("real(cexp(100.0 + i inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(100.0 + i inf)) = NaN plus invalid exception", + __imag__ result); + result = FUNC(cexp) (BUILD_COMPLEX (-100.0, plus_infty)); + check_isnan_exc ("real(cexp(-100.0 + i inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(-100.0 + i inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(cexp) (BUILD_COMPLEX (100.0, minus_infty)); - check_isnan ("real(cexp(x - i inf)) = NaN", __real__ result); - check_isnan ("imag(cexp(x - i inf)) = NaN", __imag__ result); + check_isnan_exc ("real(cexp(100.0 - i inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(100.0 - i inf)) = NaN plus invalid exception", + __imag__ result); + result = FUNC(cexp) (BUILD_COMPLEX (-100.0, minus_infty)); + check_isnan_exc ("real(cexp(-100.0 - i inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(-100.0 - i inf)) = NaN", __imag__ result); result = FUNC(cexp) (BUILD_COMPLEX (minus_infty, 2.0)); check ("real(cexp(-inf + 2.0i)) = -0", __real__ result, minus_zero); @@ -1644,11 +1797,15 @@ cexp_test (void) check_isinfn ("imag(cexp(+inf + 4.0i)) = -inf", __imag__ result); result = FUNC(cexp) (BUILD_COMPLEX (plus_infty, plus_infty)); - check_isinfp ("real(cexp(+inf + i inf)) = +inf", __real__ result); - check_isnan ("imag(cexp(+inf + i inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(cexp(+inf + i inf)) = +inf plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(+inf + i inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(cexp) (BUILD_COMPLEX (plus_infty, minus_infty)); - check_isinfp ("real(cexp(+inf - i inf)) = +inf", __real__ result); - check_isnan ("imag(cexp(+inf - i inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(cexp(+inf - i inf)) = +inf plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(+inf - i inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(cexp) (BUILD_COMPLEX (minus_infty, plus_infty)); check ("real(cexp(-inf + i inf)) = 0", __real__ result, 0); @@ -1665,22 +1822,201 @@ cexp_test (void) check_isinfp ("real(cexp(+inf + i NaN)) = +inf", __real__ result); check_isnan ("imag(cexp(+inf + i NaN)) = NaN", __imag__ result); + result = FUNC(cexp) (BUILD_COMPLEX (nan_value, 0.0)); + check_isnan_maybe_exc ("real(cexp(NaN + i0)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(NaN + i0)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(cexp) (BUILD_COMPLEX (nan_value, 1.0)); - check_isnan ("real(cexp(NaN + 1i)) = NaN", __real__ result); - check_isnan ("imag(cexp(NaN + 1i)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(cexp(NaN + 1i)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(NaN + 1i)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(cexp) (BUILD_COMPLEX (nan_value, plus_infty)); - check_isnan ("real(cexp(NaN + i inf)) = NaN", __real__ result); - check_isnan ("imag(cexp(NaN + i inf)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(cexp(NaN + i inf)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(NaN + i inf)) = NaN plus maybe invalid exception", + __imag__ result); + + result = FUNC(cexp) (BUILD_COMPLEX (0, nan_value)); + check_isnan_maybe_exc ("real(cexp(0 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(0 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); + result = FUNC(cexp) (BUILD_COMPLEX (1, nan_value)); + check_isnan_maybe_exc ("real(cexp(1 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cexp(1 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); + result = FUNC(cexp) (BUILD_COMPLEX (nan_value, nan_value)); check_isnan ("real(cexp(NaN + i NaN)) = NaN", __real__ result); check_isnan ("imag(cexp(NaN + i NaN)) = NaN", __imag__ result); +} - result = FUNC(cexp) (BUILD_COMPLEX (0, nan_value)); - check_isnan ("real(cexp(0 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(cexp(0 + i NaN)) = NaN", __imag__ result); - result = FUNC(cexp) (BUILD_COMPLEX (1, nan_value)); - check_isnan ("real(cexp(1 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(cexp(1 + i NaN)) = NaN", __imag__ result); + +static void +csin_test (void) +{ + __complex__ MATHTYPE result; + + result = FUNC(csin) (BUILD_COMPLEX (0.0, 0.0)); + check ("real(csin(0 + 0i)) = 0", __real__ result, 0); + check ("imag(csin(0 + 0i)) = 0", __imag__ result, 0); + result = FUNC(csin) (BUILD_COMPLEX (minus_zero, 0.0)); + check ("real(csin(-0 + 0i)) = -0", __real__ result, minus_zero); + check ("imag(csin(-0 + 0i)) = 0", __imag__ result, 0); + result = FUNC(csin) (BUILD_COMPLEX (0.0, minus_zero)); + check ("real(csin(0 - 0i)) = 0", __real__ result, 0); + check ("imag(csin(0 - 0i)) = -0", __imag__ result, minus_zero); + result = FUNC(csin) (BUILD_COMPLEX (minus_zero, minus_zero)); + check ("real(csin(-0 - 0i)) = -0", __real__ result, minus_zero); + check ("imag(csin(-0 - 0i)) = -0", __imag__ result, minus_zero); + + result = FUNC(csin) (BUILD_COMPLEX (0.0, plus_infty)); + check ("real(csin(0 + i Inf)) = 0", __real__ result, 0); + check_isinfp ("imag(csin(0 + i Inf)) = +Inf", __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (minus_zero, plus_infty)); + check ("real(csin(-0 + i Inf)) = -0", __real__ result, minus_zero); + check_isinfp ("imag(csin(-0 + i Inf)) = +Inf", __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (0.0, minus_infty)); + check ("real(csin(0 - i Inf)) = 0", __real__ result, 0); + check_isinfn ("imag(csin(0 - i Inf)) = -Inf", __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (minus_zero, minus_infty)); + check ("real(csin(-0 - i Inf)) = -0", __real__ result, minus_zero); + check_isinfn("imag(csin(-0 - i Inf)) = -Inf", __imag__ result); + + result = FUNC(csin) (BUILD_COMPLEX (plus_infty, 0.0)); + check_isnan_exc ("real(csin(+Inf + 0i)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check ("imag(csin(+Inf + 0i)) = +-0 plus invalid exception", + FUNC(fabs) (__imag__ result), 0); + result = FUNC(csin) (BUILD_COMPLEX (minus_infty, 0.0)); + check_isnan_exc ("real(csin(-Inf + 0i)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check ("imag(csin(-Inf + 0i)) = +-0 plus invalid exception", + FUNC(fabs) (__imag__ result), 0); + result = FUNC(csin) (BUILD_COMPLEX (plus_infty, minus_zero)); + check_isnan_exc ("real(csin(+Inf - 0i)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check ("imag(csin(+Inf - 0i)) = +-0 plus invalid exception", + FUNC(fabs) (__imag__ result), 0.0); + result = FUNC(csin) (BUILD_COMPLEX (minus_infty, minus_zero)); + check_isnan_exc ("real(csin(-Inf - 0i)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check ("imag(csin(-Inf - 0i)) = +-0 plus invalid exception", + FUNC(fabs) (__imag__ result), 0.0); + + result = FUNC(csin) (BUILD_COMPLEX (plus_infty, plus_infty)); + check_isnan_exc ("real(csin(+Inf + i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isinfp ("imag(csin(+Inf + i Inf)) = +-Inf plus invalid exception", + FUNC(fabs) (__imag__ result)); + result = FUNC(csin) (BUILD_COMPLEX (minus_infty, plus_infty)); + check_isnan_exc ("real(csin(-Inf + i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isinfp ("imag(csin(-Inf + i Inf)) = +-Inf plus invalid exception", + FUNC(fabs) (__imag__ result)); + result = FUNC(csin) (BUILD_COMPLEX (plus_infty, minus_infty)); + check_isnan_exc ("real(csin(Inf - i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isinfp ("imag(csin(Inf - i Inf)) = +-Inf plus invalid exception", + FUNC(fabs) (__imag__ result)); + result = FUNC(csin) (BUILD_COMPLEX (minus_infty, minus_infty)); + check_isnan_exc ("real(csin(-Inf - i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isinfp ("imag(csin(-Inf - i Inf)) = +-Inf plus invalid exception", + FUNC(fabs) (__imag__ result)); + + result = FUNC(csin) (BUILD_COMPLEX (plus_infty, 6.75)); + check_isnan_exc ("real(csin(+Inf + i 6.75)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csin(+Inf + i6.75)) = NaN plus invalid exception", + __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (plus_infty, -6.75)); + check_isnan_exc ("real(csin(+Inf - i 6.75)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csin(+Inf - i6.75)) = NaN plus invalid exception", + __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (minus_infty, 6.75)); + check_isnan_exc ("real(csin(-Inf + i6.75)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csin(-Inf + i6.75)) = NaN plus invalid exception", + __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (minus_infty, -6.75)); + check_isnan_exc ("real(csin(-Inf - i6.75)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csin(-Inf - i6.75)) = NaN plus invalid exception", + __imag__ result); + + result = FUNC(csin) (BUILD_COMPLEX (4.625, plus_infty)); + check_isinfn ("real(csin(4.625 + i Inf)) = -Inf", __real__ result); + check_isinfn ("imag(csin(4.625 + i Inf)) = -Inf", __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (4.625, minus_infty)); + check_isinfn ("real(csin(4.625 - i Inf)) = -Inf", __real__ result); + check_isinfp ("imag(csin(4.625 - i Inf)) = +Inf", __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (-4.625, plus_infty)); + check_isinfp ("real(csin(-4.625 + i Inf)) = +Inf", __real__ result); + check_isinfn ("imag(csin(-4.625 + i Inf)) = -Inf", __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (-4.625, minus_infty)); + check_isinfp ("real(csin(-4.625 - i Inf)) = +Inf", __real__ result); + check_isinfp ("imag(csin(-4.625 - i Inf)) = +Inf", __imag__ result); + + result = FUNC(csin) (BUILD_COMPLEX (nan_value, 0.0)); + check_isnan ("real(csin(NaN + i0)) = NaN", __real__ result); + check ("imag(csin(NaN + i0)) = +-0", FUNC(fabs) (__imag__ result), 0); + result = FUNC(csin) (BUILD_COMPLEX (nan_value, minus_zero)); + check_isnan ("real(csin(NaN - i0)) = NaN", __real__ result); + check ("imag(csin(NaN - i0)) = +-0", FUNC(fabs) (__imag__ result), 0); + + result = FUNC(csin) (BUILD_COMPLEX (nan_value, plus_infty)); + check_isnan ("real(csin(NaN + i Inf)) = NaN", __real__ result); + check_isinfp ("imag(csin(NaN + i Inf)) = +-Inf", + FUNC(fabs) (__imag__ result)); + result = FUNC(csin) (BUILD_COMPLEX (nan_value, minus_infty)); + check_isnan ("real(csin(NaN - i Inf)) = NaN", __real__ result); + check_isinfp ("real(csin(NaN - i Inf)) = +-Inf", + FUNC(fabs) (__imag__ result)); + + result = FUNC(csin) (BUILD_COMPLEX (nan_value, 9.0)); + check_isnan_maybe_exc ("real(csin(NaN + i9.0)) = NaN plus maybeinvalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csin(NaN + i9.0)) = NaN plus maybeinvalid exception", + __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (nan_value, -9.0)); + check_isnan_maybe_exc ("real(csin(NaN - i9.0)) = NaN plus maybeinvalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csin(NaN - i9.0)) = NaN plus maybeinvalid exception", + __imag__ result); + + result = FUNC(csin) (BUILD_COMPLEX (0.0, nan_value)); + check ("real(csin(0 + i NaN))", __real__ result, 0.0); + check_isnan ("imag(csin(0 + i NaN)) = NaN", __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (minus_zero, nan_value)); + check ("real(csin(-0 + i NaN)) = -0", __real__ result, minus_zero); + check_isnan ("imag(csin(-0 + NaN)) = NaN", __imag__ result); + + result = FUNC(csin) (BUILD_COMPLEX (10.0, nan_value)); + check_isnan_maybe_exc ("real(csin(10 + i NaN)) = NaN plus maybeinvalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csin(10 + i NaN)) = NaN plus maybeinvalid exception", + __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (nan_value, -10.0)); + check_isnan_maybe_exc ("real(csin(-10 + i NaN)) = NaN plus maybeinvalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csin(-10 + i NaN)) = NaN plus maybeinvalid exception", + __imag__ result); + + result = FUNC(csin) (BUILD_COMPLEX (plus_infty, nan_value)); + check_isnan ("real(csin(+Inf + i NaN)) = NaN", __real__ result); + check_isnan ("imag(csin(+Inf + i NaN)) = NaN", __imag__ result); + result = FUNC(csin) (BUILD_COMPLEX (minus_infty, nan_value)); + check_isnan ("real(csin(-Inf + i NaN)) = NaN", __real__ result); + check_isnan ("imag(csin(-Inf + i NaN)) = NaN", __imag__ result); + + result = FUNC(csin) (BUILD_COMPLEX (nan_value, nan_value)); + check_isnan ("real(csin(NaN + i NaN)) = NaN", __real__ result); + check_isnan ("imag(csin(NaN + i NaN)) = NaN", __imag__ result); } @@ -1703,17 +2039,25 @@ csinh_test (void) check ("imag(csinh(-0 - 0i)) = -0", __imag__ result, minus_zero); result = FUNC(csinh) (BUILD_COMPLEX (0.0, plus_infty)); - check ("real(csinh(0 + i Inf)) = +-0", FUNC(fabs) (__real__ result), 0); - check_isnan ("imag(csinh(0 + i Inf)) = NaN", __imag__ result); + check_exc ("real(csinh(0 + i Inf)) = +-0 plus invalid exception", + FUNC(fabs) (__real__ result), 0, FE_INVALID); + check_isnan ("imag(csinh(0 + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (minus_zero, plus_infty)); - check ("real(csinh(-0 + i Inf)) = +-0", FUNC(fabs) (__real__ result), 0); - check_isnan ("imag(csinh(-0 + i Inf)) = NaN", __imag__ result); + check_exc ("real(csinh(-0 + i Inf)) = +-0 plus invalid exception", + FUNC(fabs) (__real__ result), 0, FE_INVALID); + check_isnan ("imag(csinh(-0 + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (0.0, minus_infty)); - check ("real(csinh(0 - i Inf)) = +-0", FUNC(fabs) (__real__ result), 0); - check_isnan ("imag(csinh(0 - i Inf)) = NaN", __imag__ result); + check_exc ("real(csinh(0 - i Inf)) = +-0 plus invalid exception", + FUNC(fabs) (__real__ result), 0, FE_INVALID); + check_isnan ("imag(csinh(0 - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (minus_zero, minus_infty)); - check ("real(csinh(-0 - i Inf)) = +-0", FUNC(fabs) (__real__ result), 0); - check_isnan ("imag(csinh(-0 - i Inf)) = NaN", __imag__ result); + check_exc ("real(csinh(-0 - i Inf)) = +-0 plus invalid exception", + FUNC(fabs) (__real__ result), 0, FE_INVALID); + check_isnan ("imag(csinh(-0 - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (plus_infty, 0.0)); check_isinfp ("real(csinh(+Inf + 0i)) = +Inf", __real__ result); @@ -1729,21 +2073,25 @@ csinh_test (void) check ("imag(csinh(-Inf - 0i)) = -0", __imag__ result, minus_zero); result = FUNC(csinh) (BUILD_COMPLEX (plus_infty, plus_infty)); - check_isinfp ("real(csinh(+Inf + i Inf)) = +-Inf", - FUNC(fabs) (__real__ result)); - check_isnan ("imag(csinh(+Inf + i Inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(csinh(+Inf + i Inf)) = +-Inf plus invalid exception", + FUNC(fabs) (__real__ result), FE_INVALID); + check_isnan ("imag(csinh(+Inf + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (minus_infty, plus_infty)); - check_isinfp ("real(csinh(-Inf + i Inf)) = +-Inf", - FUNC(fabs) (__real__ result)); - check_isnan ("imag(csinh(-Inf + i Inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(csinh(-Inf + i Inf)) = +-Inf plus invalid exception", + FUNC(fabs) (__real__ result), FE_INVALID); + check_isnan ("imag(csinh(-Inf + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (plus_infty, minus_infty)); - check_isinfp ("real(csinh(Inf - i Inf)) = +-Inf", - FUNC(fabs) (__real__ result)); - check_isnan ("imag(csinh(Inf - i Inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(csinh(Inf - i Inf)) = +-Inf plus invalid exception", + FUNC(fabs) (__real__ result), FE_INVALID); + check_isnan ("imag(csinh(Inf - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (minus_infty, minus_infty)); - check_isinfp ("real(csinh(-Inf - i Inf)) = +-Inf", - FUNC(fabs) (__real__ result)); - check_isnan ("imag(csinh(-Inf - i Inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(csinh(-Inf - i Inf)) = +-Inf plus invalid exception", + FUNC(fabs) (__real__ result), FE_INVALID); + check_isnan ("imag(csinh(-Inf - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (plus_infty, 4.625)); check_isinfn ("real(csinh(+Inf + i4.625)) = -Inf", __real__ result); @@ -1759,17 +2107,25 @@ csinh_test (void) check_isinfp ("imag(csinh(-Inf - i4.625)) = +Inf", __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (6.75, plus_infty)); - check_isnan ("real(csinh(6.75 + i Inf)) = NaN", __real__ result); - check_isnan ("imag(csinh(6.75 + i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(csinh(6.75 + i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csinh(6.75 + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (-6.75, plus_infty)); - check_isnan ("real(csinh(-6.75 + i Inf)) = NaN", __real__ result); - check_isnan ("imag(csinh(-6.75 + i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(csinh(-6.75 + i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csinh(-6.75 + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (6.75, minus_infty)); - check_isnan ("real(csinh(6.75 - i Inf)) = NaN", __real__ result); - check_isnan ("imag(csinh(6.75 - i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(csinh(6.75 - i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csinh(6.75 - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (-6.75, minus_infty)); - check_isnan ("real(csinh(-6.75 - i Inf)) = NaN", __real__ result); - check_isnan ("imag(csinh(-6.75 - i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(csinh(-6.75 - i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csinh(-6.75 - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (0.0, nan_value)); check ("real(csinh(0 + i NaN)) = +-0", FUNC(fabs) (__real__ result), 0); @@ -1788,11 +2144,15 @@ csinh_test (void) check_isnan ("imag(csinh(-Inf + i NaN)) = NaN", __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (9.0, nan_value)); - check_isnan ("real(csinh(9.0 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(csinh(9.0 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(csinh(9.0 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csinh(9.0 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (-9.0, nan_value)); - check_isnan ("real(csinh(-9.0 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(csinh(-9.0 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(csinh(-9.0 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csinh(-9.0 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (nan_value, 0.0)); check_isnan ("real(csinh(NaN + i0)) = NaN", __real__ result); @@ -1802,11 +2162,15 @@ csinh_test (void) check ("imag(csinh(NaN - i0)) = -0", __imag__ result, minus_zero); result = FUNC(csinh) (BUILD_COMPLEX (nan_value, 10.0)); - check_isnan ("real(csinh(NaN + i10)) = NaN", __real__ result); - check_isnan ("imag(csinh(NaN + i10)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(csinh(NaN + i10)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csinh(NaN + i10)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (nan_value, -10.0)); - check_isnan ("real(csinh(NaN - i10)) = NaN", __real__ result); - check_isnan ("imag(csinh(NaN - i10)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(csinh(NaN - i10)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csinh(NaN - i10)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(csinh) (BUILD_COMPLEX (nan_value, plus_infty)); check_isnan ("real(csinh(NaN + i Inf)) = NaN", __real__ result); @@ -1840,17 +2204,25 @@ ccos_test (void) check ("imag(ccos(-0 - 0i)) = -0", __imag__ result, minus_zero); result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, 0.0)); - check_isnan ("real(ccos(+Inf + i0)) = NaN", __real__ result); - check ("imag(ccos(Inf + i0)) = +-0", FUNC(fabs) (__imag__ result), 0); + check_isnan_exc ("real(ccos(+Inf + i0)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check ("imag(ccos(Inf + i0)) = +-0 plus invalid exception", + FUNC(fabs) (__imag__ result), 0); result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, minus_zero)); - check_isnan ("real(ccos(Inf - i0)) = NaN", __real__ result); - check ("imag(ccos(Inf - i0)) = +-0", FUNC(fabs) (__imag__ result), 0); + check_isnan_exc ("real(ccos(Inf - i0)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check ("imag(ccos(Inf - i0)) = +-0 plus invalid exception", + FUNC(fabs) (__imag__ result), 0); result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, 0.0)); - check_isnan ("real(ccos(-Inf + i0)) = NaN", __real__ result); - check ("imag(ccos(-Inf + i0)) = +-0", FUNC(fabs) (__imag__ result), 0); + check_isnan_exc ("real(ccos(-Inf + i0)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check ("imag(ccos(-Inf + i0)) = +-0 plus invalid exception", + FUNC(fabs) (__imag__ result), 0); result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, minus_zero)); - check_isnan ("real(ccos(-Inf - i0)) = NaN", __real__ result); - check ("imag(ccos(-Inf - i0)) = +-0", FUNC(fabs) (__imag__ result), 0); + check_isnan_exc ("real(ccos(-Inf - i0)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check ("imag(ccos(-Inf - i0)) = +-0 plus invalid exception", + FUNC(fabs) (__imag__ result), 0); result = FUNC(ccos) (BUILD_COMPLEX (0.0, plus_infty)); check_isinfp ("real(ccos(0 + i Inf)) = +Inf", __real__ result); @@ -1866,17 +2238,25 @@ ccos_test (void) check ("imag(ccos(-0 - i Inf)) = -0", __imag__ result, minus_zero); result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, plus_infty)); - check_isinfp ("real(ccos(+Inf + i Inf)) = +Inf", __real__ result); - check_isnan ("imag(ccos(+Inf + i Inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(ccos(+Inf + i Inf)) = +Inf plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(+Inf + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, plus_infty)); - check_isinfp ("real(ccos(-Inf + i Inf)) = +Inf", __real__ result); - check_isnan ("imag(ccos(-Inf + i Inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(ccos(-Inf + i Inf)) = +Inf plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(-Inf + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, minus_infty)); - check_isinfp ("real(ccos(Inf - i Inf)) = +Inf", __real__ result); - check_isnan ("imag(ccos(Inf - i Inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(ccos(Inf - i Inf)) = +Inf plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(Inf - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, minus_infty)); - check_isinfp ("real(ccos(-Inf - i Inf)) = +Inf", __real__ result); - check_isnan ("imag(ccos(-Inf - i Inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(ccos(-Inf - i Inf)) = +Inf plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(-Inf - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (4.625, plus_infty)); check_isinfn ("real(ccos(4.625 + i Inf)) = -Inf", __real__ result); @@ -1892,17 +2272,25 @@ ccos_test (void) check_isinfp ("imag(ccos(-4.625 - i Inf)) = +Inf", __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, 6.75)); - check_isnan ("real(ccos(+Inf + i6.75)) = NaN", __real__ result); - check_isnan ("imag(ccos(+Inf + i6.75)) = NaN", __imag__ result); + check_isnan_exc ("real(ccos(+Inf + i6.75)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(+Inf + i6.75)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, -6.75)); - check_isnan ("real(ccos(+Inf - i6.75)) = NaN", __real__ result); - check_isnan ("imag(ccos(+Inf - i6.75)) = NaN", __imag__ result); + check_isnan_exc ("real(ccos(+Inf - i6.75)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(+Inf - i6.75)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, 6.75)); - check_isnan ("real(ccos(-Inf + i6.75)) = NaN", __real__ result); - check_isnan ("imag(ccos(-Inf + i6.75)) = NaN", __imag__ result); + check_isnan_exc ("real(ccos(-Inf + i6.75)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(-Inf + i6.75)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, -6.75)); - check_isnan ("real(ccos(-Inf - i6.75)) = NaN", __real__ result); - check_isnan ("imag(ccos(-Inf - i6.75)) = NaN", __imag__ result); + check_isnan_exc ("real(ccos(-Inf - i6.75)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(-Inf - i6.75)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (nan_value, 0.0)); check_isnan ("real(ccos(NaN + i0)) = NaN", __real__ result); @@ -1919,11 +2307,15 @@ ccos_test (void) check_isnan ("imag(ccos(NaN - i Inf)) = NaN", __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (nan_value, 9.0)); - check_isnan ("real(ccos(NaN + i9.0)) = NaN", __real__ result); - check_isnan ("imag(ccos(NaN + i9.0)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ccos(NaN + i9.0)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(NaN + i9.0)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (nan_value, -9.0)); - check_isnan ("real(ccos(NaN - i9.0)) = NaN", __real__ result); - check_isnan ("imag(ccos(NaN - i9.0)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ccos(NaN - i9.0)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(NaN - i9.0)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (0.0, nan_value)); check_isnan ("real(ccos(0 + i NaN)) = NaN", __real__ result); @@ -1933,18 +2325,26 @@ ccos_test (void) check ("imag(ccos(-0 + i NaN)) = +-0", FUNC(fabs) (__imag__ result), 0.0); result = FUNC(ccos) (BUILD_COMPLEX (10.0, nan_value)); - check_isnan ("real(ccos(10 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(ccos(10 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ccos(10 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(10 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (-10.0, nan_value)); - check_isnan ("real(ccos(-10 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(ccos(-10 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ccos(-10 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(-10 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (plus_infty, nan_value)); - check_isnan ("real(ccos(+Inf + i NaN)) = NaN", __real__ result); - check_isnan ("imag(ccos(+Inf + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ccos(+Inf + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(+Inf + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (minus_infty, nan_value)); - check_isnan ("real(ccos(-Inf + i NaN)) = NaN", __real__ result); - check_isnan ("imag(ccos(-Inf + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ccos(-Inf + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccos(-Inf + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ccos) (BUILD_COMPLEX (nan_value, nan_value)); check_isnan ("real(ccos(NaN + i NaN)) = NaN", __real__ result); @@ -1971,17 +2371,25 @@ ccosh_test (void) check ("imag(ccosh(-0 - 0i)) = -0", __imag__ result, minus_zero); result = FUNC(ccosh) (BUILD_COMPLEX (0.0, plus_infty)); - check_isnan ("real(ccosh(0 + i Inf)) = NaN", __real__ result); - check ("imag(ccosh(0 + i Inf)) = +-0", FUNC(fabs) (__imag__ result), 0); + check_isnan_exc ("real(ccosh(0 + i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check ("imag(ccosh(0 + i Inf)) = +-0 plus invalid exception", + FUNC(fabs) (__imag__ result), 0); result = FUNC(ccosh) (BUILD_COMPLEX (minus_zero, plus_infty)); - check_isnan ("real(ccosh(-0 + i Inf)) = NaN", __real__ result); - check ("imag(ccosh(-0 + i Inf)) = +-0", FUNC(fabs) (__imag__ result), 0); + check_isnan_exc ("real(ccosh(-0 + i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check ("imag(ccosh(-0 + i Inf)) = +-0 plus invalid exception", + FUNC(fabs) (__imag__ result), 0); result = FUNC(ccosh) (BUILD_COMPLEX (0.0, minus_infty)); - check_isnan ("real(ccosh(0 - i Inf)) = NaN", __real__ result); - check ("imag(ccosh(0 - i Inf)) = +-0", FUNC(fabs) (__imag__ result), 0); + check_isnan_exc ("real(ccosh(0 - i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check ("imag(ccosh(0 - i Inf)) = +-0 plus invalid exception", + FUNC(fabs) (__imag__ result), 0); result = FUNC(ccosh) (BUILD_COMPLEX (minus_zero, minus_infty)); - check_isnan ("real(ccosh(-0 - i Inf)) = NaN", __real__ result); - check ("imag(ccosh(-0 - i Inf)) = +-0", FUNC(fabs) (__imag__ result), 0); + check_isnan_exc ("real(ccosh(-0 - i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check ("imag(ccosh(-0 - i Inf)) = +-0 plus invalid exception", + FUNC(fabs) (__imag__ result), 0); result = FUNC(ccosh) (BUILD_COMPLEX (plus_infty, 0.0)); check_isinfp ("real(ccosh(+Inf + 0i)) = +Inf", __real__ result); @@ -1997,17 +2405,25 @@ ccosh_test (void) check ("imag(ccosh(-Inf - 0i)) = -0", __imag__ result, minus_zero); result = FUNC(ccosh) (BUILD_COMPLEX (plus_infty, plus_infty)); - check_isinfp ("real(ccosh(+Inf + i Inf)) = +Inf", __real__ result); - check_isnan ("imag(ccosh(+Inf + i Inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(ccosh(+Inf + i Inf)) = +Inf plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(+Inf + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (minus_infty, plus_infty)); - check_isinfp ("real(ccosh(-Inf + i Inf)) = +Inf", __real__ result); - check_isnan ("imag(ccosh(-Inf + i Inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(ccosh(-Inf + i Inf)) = +Inf plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(-Inf + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (plus_infty, minus_infty)); - check_isinfp ("real(ccosh(Inf - i Inf)) = +Inf", __real__ result); - check_isnan ("imag(ccosh(Inf - i Inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(ccosh(Inf - i Inf)) = +Inf plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(Inf - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (minus_infty, minus_infty)); - check_isinfp ("real(ccosh(-Inf - i Inf)) = +Inf", __real__ result); - check_isnan ("imag(ccosh(-Inf - i Inf)) = NaN", __imag__ result); + check_isinfp_exc ("real(ccosh(-Inf - i Inf)) = +Inf plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(-Inf - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (plus_infty, 4.625)); check_isinfn ("real(ccosh(+Inf + i4.625)) = -Inf", __real__ result); @@ -2023,17 +2439,25 @@ ccosh_test (void) check_isinfp ("imag(ccosh(-Inf - i4.625)) = +Inf", __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (6.75, plus_infty)); - check_isnan ("real(ccosh(6.75 + i Inf)) = NaN", __real__ result); - check_isnan ("imag(ccosh(6.75 + i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(ccosh(6.75 + i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(6.75 + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (-6.75, plus_infty)); - check_isnan ("real(ccosh(-6.75 + i Inf)) = NaN", __real__ result); - check_isnan ("imag(ccosh(-6.75 + i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(ccosh(-6.75 + i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(-6.75 + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (6.75, minus_infty)); - check_isnan ("real(ccosh(6.75 - i Inf)) = NaN", __real__ result); - check_isnan ("imag(ccosh(6.75 - i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(ccosh(6.75 - i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(6.75 - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (-6.75, minus_infty)); - check_isnan ("real(ccosh(-6.75 - i Inf)) = NaN", __real__ result); - check_isnan ("imag(ccosh(-6.75 - i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(ccosh(-6.75 - i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(-6.75 - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (0.0, nan_value)); check_isnan ("real(ccosh(0 + i NaN)) = NaN", __real__ result); @@ -2050,11 +2474,15 @@ ccosh_test (void) check_isnan ("imag(ccosh(-Inf + i NaN)) = NaN", __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (9.0, nan_value)); - check_isnan ("real(ccosh(9.0 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(ccosh(9.0 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ccosh(9.0 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(9.0 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (-9.0, nan_value)); - check_isnan ("real(ccosh(-9.0 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(ccosh(-9.0 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ccosh(-9.0 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(-9.0 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (nan_value, 0.0)); check_isnan ("real(ccosh(NaN + i0)) = NaN", __real__ result); @@ -2064,18 +2492,26 @@ ccosh_test (void) check ("imag(ccosh(NaN - i0)) = +-0", FUNC(fabs) (__imag__ result), 0.0); result = FUNC(ccosh) (BUILD_COMPLEX (nan_value, 10.0)); - check_isnan ("real(ccosh(NaN + i10)) = NaN", __real__ result); - check_isnan ("imag(ccosh(NaN + i10)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ccosh(NaN + i10)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(NaN + i10)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (nan_value, -10.0)); - check_isnan ("real(ccosh(NaN - i10)) = NaN", __real__ result); - check_isnan ("imag(ccosh(NaN - i10)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ccosh(NaN - i10)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(NaN - i10)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (nan_value, plus_infty)); - check_isnan ("real(ccosh(NaN + i Inf)) = NaN", __real__ result); - check_isnan ("imag(ccosh(NaN + i Inf)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ccosh(NaN + i Inf)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(NaN + i Inf)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (nan_value, minus_infty)); - check_isnan ("real(ccosh(NaN - i Inf)) = NaN", __real__ result); - check_isnan ("imag(ccosh(NaN - i Inf)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ccosh(NaN - i Inf)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ccosh(NaN - i Inf)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ccosh) (BUILD_COMPLEX (nan_value, nan_value)); check_isnan ("real(ccosh(NaN + i NaN)) = NaN", __real__ result); @@ -2184,18 +2620,26 @@ cacos_test (void) check_isinfp ("imag(cacos(NaN - i Inf)) = +Inf", __imag__ result); result = FUNC(cacos) (BUILD_COMPLEX (10.5, nan_value)); - check_isnan ("real(cacos(10.5 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(cacos(10.5 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(cacos(10.5 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cacos(10.5 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(cacos) (BUILD_COMPLEX (-10.5, nan_value)); - check_isnan ("real(cacos(-10.5 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(cacos(-10.5 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(cacos(-10.5 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cacos(-10.5 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(cacos) (BUILD_COMPLEX (nan_value, 0.75)); - check_isnan ("real(cacos(NaN + i0.75)) = NaN", __real__ result); - check_isnan ("imag(cacos(NaN + i0.75)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(cacos(NaN + i0.75)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cacos(NaN + i0.75)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(cacos) (BUILD_COMPLEX (-10.5, nan_value)); - check_isnan ("real(cacos(NaN - i0.75)) = NaN", __real__ result); - check_isnan ("imag(cacos(NaN - i0.75)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(cacos(NaN - i0.75)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cacos(NaN - i0.75)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(cacos) (BUILD_COMPLEX (nan_value, nan_value)); check_isnan ("real(cacos(NaN + i NaN)) = NaN", __real__ result); @@ -2304,18 +2748,26 @@ cacosh_test (void) check_isnan ("imag(cacosh(NaN - i Inf)) = NaN", __imag__ result); result = FUNC(cacosh) (BUILD_COMPLEX (10.5, nan_value)); - check_isnan ("real(cacosh(10.5 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(cacosh(10.5 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(cacosh(10.5 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cacosh(10.5 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(cacosh) (BUILD_COMPLEX (-10.5, nan_value)); - check_isnan ("real(cacosh(-10.5 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(cacosh(-10.5 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(cacosh(-10.5 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cacosh(-10.5 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(cacosh) (BUILD_COMPLEX (nan_value, 0.75)); - check_isnan ("real(cacosh(NaN + i0.75)) = NaN", __real__ result); - check_isnan ("imag(cacosh(NaN + i0.75)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(cacosh(NaN + i0.75)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cacosh(NaN + i0.75)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(cacosh) (BUILD_COMPLEX (-10.5, nan_value)); - check_isnan ("real(cacosh(NaN - i0.75)) = NaN", __real__ result); - check_isnan ("imag(cacosh(NaN - i0.75)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(cacosh(NaN - i0.75)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(cacosh(NaN - i0.75)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(cacosh) (BUILD_COMPLEX (nan_value, nan_value)); check_isnan ("real(cacosh(NaN + i NaN)) = NaN", __real__ result); @@ -2429,18 +2881,26 @@ casin_test (void) FUNC(fabs) (__imag__ result)); result = FUNC(casin) (BUILD_COMPLEX (nan_value, 10.5)); - check_isnan ("real(casin(NaN + i10.5)) = NaN", __real__ result); - check_isnan ("imag(casin(NaN + i10.5)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(casin(NaN + i10.5)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(casin(NaN + i10.5)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(casin) (BUILD_COMPLEX (nan_value, -10.5)); - check_isnan ("real(casin(NaN - i10.5)) = NaN", __real__ result); - check_isnan ("imag(casin(NaN - i10.5)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(casin(NaN - i10.5)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(casin(NaN - i10.5)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(casin) (BUILD_COMPLEX (0.75, nan_value)); - check_isnan ("real(casin(0.75 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(casin(0.75 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(casin(0.75 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(casin(0.75 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(casin) (BUILD_COMPLEX (-0.75, nan_value)); - check_isnan ("real(casin(-0.75 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(casin(-0.75 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(casin(-0.75 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(casin(-0.75 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(casin) (BUILD_COMPLEX (nan_value, nan_value)); check_isnan ("real(casin(NaN + i NaN)) = NaN", __real__ result); @@ -2554,18 +3014,26 @@ casinh_test (void) check_isnan ("imag(casinh(NaN - i Inf)) = NaN", __imag__ result); result = FUNC(casinh) (BUILD_COMPLEX (10.5, nan_value)); - check_isnan ("real(casinh(10.5 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(casinh(10.5 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(casinh(10.5 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(casinh(10.5 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(casinh) (BUILD_COMPLEX (-10.5, nan_value)); - check_isnan ("real(casinh(-10.5 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(casinh(-10.5 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(casinh(-10.5 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(casinh(-10.5 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(casinh) (BUILD_COMPLEX (nan_value, 0.75)); - check_isnan ("real(casinh(NaN + i0.75)) = NaN", __real__ result); - check_isnan ("imag(casinh(NaN + i0.75)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(casinh(NaN + i0.75)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(casinh(NaN + i0.75)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(casinh) (BUILD_COMPLEX (-0.75, nan_value)); - check_isnan ("real(casinh(NaN - i0.75)) = NaN", __real__ result); - check_isnan ("imag(casinh(NaN - i0.75)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(casinh(NaN - i0.75)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(casinh(NaN - i0.75)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(casinh) (BUILD_COMPLEX (nan_value, nan_value)); check_isnan ("real(casinh(NaN + i NaN)) = NaN", __real__ result); @@ -2684,18 +3152,26 @@ catan_test (void) check ("imag(catan(-Inf + i NaN)) = +-0", FUNC(fabs) (__imag__ result), 0); result = FUNC(catan) (BUILD_COMPLEX (nan_value, 10.5)); - check_isnan ("real(catan(NaN + i10.5)) = NaN", __real__ result); - check_isnan ("imag(catan(NaN + i10.5)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(catan(NaN + i10.5)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(catan(NaN + i10.5)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(catan) (BUILD_COMPLEX (nan_value, -10.5)); - check_isnan ("real(catan(NaN - i10.5)) = NaN", __real__ result); - check_isnan ("imag(catan(NaN - i10.5)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(catan(NaN - i10.5)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(catan(NaN - i10.5)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(catan) (BUILD_COMPLEX (0.75, nan_value)); - check_isnan ("real(catan(0.75 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(catan(0.75 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(catan(0.75 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(catan(0.75 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(catan) (BUILD_COMPLEX (-0.75, nan_value)); - check_isnan ("real(catan(-0.75 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(catan(-0.75 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(catan(-0.75 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(catan(-0.75 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(catan) (BUILD_COMPLEX (nan_value, nan_value)); check_isnan ("real(catan(NaN + i NaN)) = NaN", __real__ result); @@ -2814,18 +3290,26 @@ catanh_test (void) check ("imag(catanh(NaN - i Inf)) = -pi/2", __imag__ result, -M_PI_2); result = FUNC(catanh) (BUILD_COMPLEX (10.5, nan_value)); - check_isnan ("real(catanh(10.5 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(catanh(10.5 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(catanh(10.5 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(catanh(10.5 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(catanh) (BUILD_COMPLEX (-10.5, nan_value)); - check_isnan ("real(catanh(-10.5 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(catanh(-10.5 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(catanh(-10.5 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(catanh(-10.5 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(catanh) (BUILD_COMPLEX (nan_value, 0.75)); - check_isnan ("real(catanh(NaN + i0.75)) = NaN", __real__ result); - check_isnan ("imag(catanh(NaN + i0.75)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(catanh(NaN + i0.75)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(catanh(NaN + i0.75)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(catanh) (BUILD_COMPLEX (nan_value, -0.75)); - check_isnan ("real(catanh(NaN - i0.75)) = NaN", __real__ result); - check_isnan ("imag(catanh(NaN - i0.75)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(catanh(NaN - i0.75)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(catanh(NaN - i0.75)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(catanh) (BUILD_COMPLEX (nan_value, nan_value)); check_isnan ("real(catanh(NaN + i NaN)) = NaN", __real__ result); @@ -2877,29 +3361,45 @@ ctanh_test (void) check ("imag(ctanh(-Inf - i1)) = -0", __imag__ result, minus_zero); result = FUNC(ctanh) (BUILD_COMPLEX (0, plus_infty)); - check_isnan ("real(ctanh(0 + i Inf)) = NaN", __real__ result); - check_isnan ("imag(ctanh(0 + i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(ctanh(0 + i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(0 + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (2, plus_infty)); - check_isnan ("real(ctanh(2 + i Inf)) = NaN", __real__ result); - check_isnan ("imag(ctanh(2 + i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(ctanh(2 + i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(2 + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (0, minus_infty)); - check_isnan ("real(ctanh(0 - i Inf)) = NaN", __real__ result); - check_isnan ("imag(ctanh(0 - i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(ctanh(0 - i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(0 - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (2, minus_infty)); - check_isnan ("real(ctanh(2 - i Inf)) = NaN", __real__ result); - check_isnan ("imag(ctanh(2 - i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(ctanh(2 - i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(2 - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (minus_zero, plus_infty)); - check_isnan ("real(ctanh(-0 + i Inf)) = NaN", __real__ result); - check_isnan ("imag(ctanh(-0 + i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(ctanh(-0 + i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(-0 + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (-2, plus_infty)); - check_isnan ("real(ctanh(-2 + i Inf)) = NaN", __real__ result); - check_isnan ("imag(ctanh(-2 + i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(ctanh(-2 + i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(-2 + i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (minus_zero, minus_infty)); - check_isnan ("real(ctanh(-0 - i Inf)) = NaN", __real__ result); - check_isnan ("imag(ctanh(-0 - i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(ctanh(-0 - i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(-0 - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (-2, minus_infty)); - check_isnan ("real(ctanh(-2 - i Inf)) = NaN", __real__ result); - check_isnan ("imag(ctanh(-2 - i Inf)) = NaN", __imag__ result); + check_isnan_exc ("real(ctanh(-2 - i Inf)) = NaN plus invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(-2 - i Inf)) = NaN plus invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (plus_infty, nan_value)); check ("real(ctanh(+Inf + i NaN)) = 1", __real__ result, 1); @@ -2916,24 +3416,36 @@ ctanh_test (void) check ("imag(ctanh(NaN - i0)) = -0", __imag__ result, minus_zero); result = FUNC(ctanh) (BUILD_COMPLEX (nan_value, 0.5)); - check_isnan ("real(ctanh(NaN + i0.5)) = NaN", __real__ result); - check_isnan ("imag(ctanh(NaN + i0.5)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ctanh(NaN + i0.5)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(NaN + i0.5)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (nan_value, -4.5)); - check_isnan ("real(ctanh(NaN - i4.5)) = NaN", __real__ result); - check_isnan ("imag(ctanh(NaN - i4.5)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ctanh(NaN - i4.5)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(NaN - i4.5)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (0, nan_value)); - check_isnan ("real(ctanh(0 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(ctanh(0 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ctanh(0 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(0 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (5, nan_value)); - check_isnan ("real(ctanh(5 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(ctanh(5 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ctanh(5 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(5 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (minus_zero, nan_value)); - check_isnan ("real(ctanh(-0 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(ctanh(-0 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ctanh(-0 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(-0 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (-0.25, nan_value)); - check_isnan ("real(ctanh(-0.25 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(ctanh(-0.25 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(ctanh(-0.25 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(ctanh(-0.25 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(ctanh) (BUILD_COMPLEX (nan_value, nan_value)); check_isnan ("real(ctanh(NaN + i NaN)) = NaN", __real__ result); @@ -2947,18 +3459,26 @@ clog_test (void) __complex__ MATHTYPE result; result = FUNC(clog) (BUILD_COMPLEX (minus_zero, 0)); - check_isinfn ("real(clog(-0 + i0)) = -Inf", __real__ result); - check ("imag(clog(-0 + i0)) = pi", __imag__ result, M_PI); + check_isinfn_exc ("real(clog(-0 + i0)) = -Inf plus divide-by-zero exception", + __real__ result, DIVIDE_BY_ZERO_EXCEPTION); + check ("imag(clog(-0 + i0)) = pi plus divide-by-zero exception", + __imag__ result, M_PI); result = FUNC(clog) (BUILD_COMPLEX (minus_zero, minus_zero)); - check_isinfn ("real(clog(-0 - i0)) = -Inf", __real__ result); - check ("imag(clog(-0 - i0)) = -pi", __imag__ result, -M_PI); + check_isinfn_exc ("real(clog(-0 - i0)) = -Inf plus divide-by-zero exception", + __real__ result, DIVIDE_BY_ZERO_EXCEPTION); + check ("imag(clog(-0 - i0)) = -pi plus divide-by-zero exception", + __imag__ result, -M_PI); result = FUNC(clog) (BUILD_COMPLEX (0, 0)); - check_isinfn ("real(clog(0 + i0)) = -Inf", __real__ result); - check ("imag(clog(0 + i0)) = 0", __imag__ result, 0); + check_isinfn_exc ("real(clog(0 + i0)) = -Inf plus divide-by-zero exception", + __real__ result, DIVIDE_BY_ZERO_EXCEPTION); + check ("imag(clog(0 + i0)) = 0 plus divide-by-zero exception", + __imag__ result, 0); result = FUNC(clog) (BUILD_COMPLEX (0, minus_zero)); - check_isinfn ("real(clog(0 - i0)) = -Inf", __real__ result); - check ("imag(clog(0 - i0)) = -0", __imag__ result, minus_zero); + check_isinfn_exc ("real(clog(0 - i0)) = -Inf plus divide-by-zero exception", + __real__ result, DIVIDE_BY_ZERO_EXCEPTION); + check ("imag(clog(0 - i0)) = -0 plus divide-by-zero exception", + __imag__ result, minus_zero); result = FUNC(clog) (BUILD_COMPLEX (minus_infty, plus_infty)); check_isinfp ("real(clog(-Inf + i Inf)) = +Inf", __real__ result); @@ -3040,30 +3560,46 @@ clog_test (void) check_isnan ("imag(clog(NaN - i Inf)) = NaN", __imag__ result); result = FUNC(clog) (BUILD_COMPLEX (0, nan_value)); - check_isnan ("real(clog(0 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(clog(0 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(clog(0 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(clog(0 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(clog) (BUILD_COMPLEX (3, nan_value)); - check_isnan ("real(clog(3 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(clog(3 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(clog(3 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(clog(3 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(clog) (BUILD_COMPLEX (minus_zero, nan_value)); - check_isnan ("real(clog(-0 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(clog(-0 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(clog(-0 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(clog(-0 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(clog) (BUILD_COMPLEX (-3, nan_value)); - check_isnan ("real(clog(-3 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(clog(-3 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(clog(-3 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(clog(-3 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(clog) (BUILD_COMPLEX (nan_value, 0)); - check_isnan ("real(clog(NaN + i0)) = NaN", __real__ result); - check_isnan ("imag(clog(NaN + i0)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(clog(NaN + i0)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(clog(NaN + i0)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(clog) (BUILD_COMPLEX (nan_value, 5)); - check_isnan ("real(clog(NaN + i5)) = NaN", __real__ result); - check_isnan ("imag(clog(NaN + i5)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(clog(NaN + i5)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(clog(NaN + i5)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(clog) (BUILD_COMPLEX (nan_value, minus_zero)); - check_isnan ("real(clog(NaN - i0)) = NaN", __real__ result); - check_isnan ("imag(clog(NaN - i0)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(clog(NaN - i0)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(clog(NaN - i0)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(clog) (BUILD_COMPLEX (nan_value, -5)); - check_isnan ("real(clog(NaN - i5)) = NaN", __real__ result); - check_isnan ("imag(clog(NaN - i5)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(clog(NaN - i5)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(clog(NaN - i5)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(clog) (BUILD_COMPLEX (nan_value, nan_value)); check_isnan ("real(clog(NaN + i NaN)) = NaN", __real__ result); @@ -3162,30 +3698,46 @@ csqrt_test (void) check_isnan ("imag(csqrt(+Inf + i NaN)) = NaN", __imag__ result); result = FUNC(csqrt) (BUILD_COMPLEX (0, nan_value)); - check_isnan ("real(csqrt(0 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(csqrt(0 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(csqrt(0 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csqrt(0 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(csqrt) (BUILD_COMPLEX (1, nan_value)); - check_isnan ("real(csqrt(1 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(csqrt(1 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(csqrt(1 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csqrt(1 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(csqrt) (BUILD_COMPLEX (minus_zero, nan_value)); - check_isnan ("real(csqrt(-0 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(csqrt(-0 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(csqrt(-0 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csqrt(-0 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(csqrt) (BUILD_COMPLEX (-1, nan_value)); - check_isnan ("real(csqrt(-1 + i NaN)) = NaN", __real__ result); - check_isnan ("imag(csqrt(-1 + i NaN)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(csqrt(-1 + i NaN)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csqrt(-1 + i NaN)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(csqrt) (BUILD_COMPLEX (nan_value, 0)); - check_isnan ("real(csqrt(NaN + i0)) = NaN", __real__ result); - check_isnan ("imag(csqrt(NaN + i0)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(csqrt(NaN + i0)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csqrt(NaN + i0)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(csqrt) (BUILD_COMPLEX (nan_value, 8)); - check_isnan ("real(csqrt(NaN + i8)) = NaN", __real__ result); - check_isnan ("imag(csqrt(NaN + i8)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(csqrt(NaN + i8)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csqrt(NaN + i8)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(csqrt) (BUILD_COMPLEX (nan_value, minus_zero)); - check_isnan ("real(csqrt(NaN - i0)) = NaN", __real__ result); - check_isnan ("imag(csqrt(NaN - i0)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(csqrt(NaN - i0)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csqrt(NaN - i0)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(csqrt) (BUILD_COMPLEX (nan_value, -8)); - check_isnan ("real(csqrt(NaN - i8)) = NaN", __real__ result); - check_isnan ("imag(csqrt(NaN - i8)) = NaN", __imag__ result); + check_isnan_maybe_exc ("real(csqrt(NaN - i8)) = NaN plus maybe invalid exception", + __real__ result, FE_INVALID); + check_isnan ("imag(csqrt(NaN - i8)) = NaN plus maybe invalid exception", + __imag__ result); result = FUNC(csqrt) (BUILD_COMPLEX (nan_value, nan_value)); check_isnan ("real(csqrt(NaN + i NaN)) = NaN", __real__ result); @@ -3471,6 +4023,9 @@ basic_tests (void) (void) &NaN_var; (void) &Inf_var; + /* Clear all exceptions. The previous computations raised exceptions. */ + feclearexcept (FE_ALL_EXCEPT); + check_isinfp ("isinf (inf) == +1", Inf_var); check_isinfn ("isinf (-inf) == -1", -Inf_var); check_bool ("!isinf (1)", !(FUNC(isinf) (one_var))); @@ -3540,6 +4095,9 @@ initialize (void) (void) &plus_infty; (void) &minus_infty; + /* Clear all exceptions. From now on we must not get random exceptions. */ + feclearexcept (FE_ALL_EXCEPT); + /* Test to make sure we start correctly. */ fpstack_test ("end *init*"); } @@ -3642,6 +4200,7 @@ main (int argc, char *argv[]) remquo_test (); #endif cexp_test (); + csin_test (); csinh_test (); ccos_test (); ccosh_test (); @@ -3671,6 +4230,6 @@ main (int argc, char *argv[]) printf ("\n%d errors occured.\n", noErrors); exit (1); } - printf ("\n All tests passed sucessfully.\n"); + printf ("\n All tests passed successfully.\n"); exit (0); } @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: GNU libc 1.98\n" -"POT-Creation-Date: 1996-12-03 13:50+0100\n" -"PO-Revision-Date: 1997-01-01 17:42 MET\n" +"Project-Id-Version: GNU libc 2.0.3\n" +"POT-Creation-Date: 1997-03-30 19:08+0200\n" +"PO-Revision-Date: 1997-04-27 21:16 MET DST\n" "Last-Translator: Jochen Hein <jochen.hein@delphi.central.de>\n" "Language-Team: German <de@li.org>\n" "MIME-Version: 1.0\n" @@ -27,37 +27,39 @@ msgstr " rpcinfo -p [ Rechner ]\n" #: sunrpc/rpcinfo.c:610 msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n" -msgstr " rpcinfo [ -n Port-Nummer ] -t Rechner Programm-Nummer [Versions-Nummer]\n" +msgstr "" +" rpcinfo [ -n Port-Nummer ] -t Rechner Programm-Nummer " +"[Versions-Nummer]\n" #: sunrpc/rpcinfo.c:517 msgid " program vers proto port\n" -msgstr " program vers proto port\n" +msgstr " Program Vers Proto Port\n" -#: time/zic.c:424 +#: time/zic.c:419 #, c-format msgid " (rule from \"%s\", line %d)" msgstr " (Regel aus Datei »%s«, Zeile %d)" -#: locale/programs/ld-collate.c:360 locale/programs/ld-ctype.c:1234 +#: locale/programs/ld-collate.c:363 locale/programs/ld-ctype.c:1242 msgid " done\n" -msgstr " Fertig\n" +msgstr " fertig\n" -#: time/zic.c:421 +#: time/zic.c:416 #, c-format msgid "\"%s\", line %d: %s" msgstr "»%s«, Zeile %d: %s" -#: time/zic.c:945 +#: time/zic.c:943 #, c-format msgid "\"Zone %s\" line and -l option are mutually exclusive" -msgstr "»Zone %s«-Zeile und die Option -l schliessen sich aus" +msgstr "»Zone %s«-Zeile und die Option »-l« schliessen sich aus" -#: time/zic.c:953 +#: time/zic.c:951 #, c-format msgid "\"Zone %s\" line and -p option are mutually exclusive" -msgstr "»Zone %s«-Zeile und die Option -p schliessen sich aus" +msgstr "»Zone %s«-Zeile und die Option »-p« schliessen sich aus" -#: time/zic.c:758 +#: time/zic.c:754 #, c-format msgid "%s in ruleless zone" msgstr "%s in einer regellosen Zone" @@ -77,7 +79,8 @@ msgstr "%s%s%s:%u: %s%sNicht erwarteter Fehler: %s.\n" msgid "%s%sUnknown signal %d\n" msgstr "%s%sUnbekanntes Signal %d\n" -#: time/zic.c:2139 +# Ob diese Übersetzung so korrekt ist? - jh +#: time/zic.c:2172 #, c-format msgid "%s: %d did not sign extend correctly\n" msgstr "%s: %d Das Vorzeichen der extended-Zahl ist nicht korrekt\n" @@ -87,169 +90,176 @@ msgstr "%s: %d Das Vorzeichen der extended-Zahl ist nicht korrekt\n" msgid "%s: <mb_cur_max> must be greater than <mb_cur_min>\n" msgstr "%s: »<mb_cur_max>« muß größer als »<mb_cur_min>« sein\n" -#: time/zic.c:1430 +#: time/zic.c:1443 #, c-format msgid "%s: Can't create %s: %s\n" msgstr "%s: Kann »%s« nicht erzeugen: %s\n" -#: time/zic.c:2118 +#: time/zic.c:2150 #, c-format msgid "%s: Can't create directory %s: %s\n" msgstr "%s: Kann das Verzeichnis »%s« nicht erzeugen: %s\n" -#: time/zic.c:612 +#: time/zic.c:608 #, c-format msgid "%s: Can't link from %s to %s: %s\n" msgstr "%s: Kann nicht von »%s« nach »%s« linken: %s\n" -#: time/zic.c:783 +#: time/zic.c:780 #, c-format msgid "%s: Can't open %s: %s\n" msgstr "%s: Kann die Datei »%s« nicht öffnen: %s\n" -#: time/zic.c:851 +#: time/zic.c:1433 +#, c-format +msgid "%s: Can't remove %s: %s\n" +msgstr "%s: Kann »%s« nicht löschen: %s\n" + +#: time/zic.c:849 #, c-format msgid "%s: Error closing %s: %s\n" msgstr "%s: Fehler beim Schliessen der Datei »%s«: %s\n" -#: time/zic.c:845 +#: time/zic.c:842 #, c-format msgid "%s: Error reading %s\n" msgstr "%s: Fehler beim Lesen der Datei »%s«\n" -#: time/zic.c:1494 +#: time/zic.c:1507 #, c-format msgid "%s: Error writing %s\n" msgstr "%s: Fehler beim Schreiben der Datei »%s«\n" -#: time/zdump.c:258 +#: time/zdump.c:266 #, c-format msgid "%s: Error writing standard output " msgstr "%s: Fehler beim Schreiben auf die Standardausgabe " -#: time/zic.c:830 +#: time/zic.c:827 #, c-format msgid "%s: Leap line in non leap seconds file %s\n" msgstr "%s: Schalt-Zeile in einer nicht-Schalt-Sekunden-Datei »%s«\n" -#: time/zic.c:362 +#: time/zic.c:357 #, c-format msgid "%s: Memory exhausted: %s\n" msgstr "%s: Kein Hauptspeicher mehr verfügbar: %s\n" -#: time/zic.c:527 +#: time/zic.c:522 #, c-format msgid "%s: More than one -L option specified\n" -msgstr "%s: Mehr als eine -L Option angegeben\n" +msgstr "%s: Mehr als eine »-L« Option angegeben\n" -#: time/zic.c:487 +#: time/zic.c:482 #, c-format msgid "%s: More than one -d option specified\n" -msgstr "%s: Mehr als eine -d Option angegeben\n" +msgstr "%s: Mehr als eine »-d« Option angegeben\n" -#: time/zic.c:497 +#: time/zic.c:492 #, c-format msgid "%s: More than one -l option specified\n" -msgstr "%s: Mehr als eine -l Option angegeben\n" +msgstr "%s: Mehr als eine »-l« Option angegeben\n" -#: time/zic.c:507 +#: time/zic.c:502 #, c-format msgid "%s: More than one -p option specified\n" -msgstr "%s: Mehr als eine -p Option angegeben\n" +msgstr "%s: Mehr als eine »-p« Option angegeben\n" -#: time/zic.c:517 +#: time/zic.c:512 #, c-format msgid "%s: More than one -y option specified\n" -msgstr "%s: Mehr als eine -y Option angegeben\n" +msgstr "%s: Mehr als eine »-y« Option angegeben\n" -#: time/zic.c:1845 +#: time/zic.c:1872 #, c-format msgid "%s: command was '%s', result was %d\n" msgstr "%s: Das Kommando war »%s«, das Ergebnis war %d\n" -#: locale/programs/charmap.c:593 locale/programs/locfile.c:878 +#: locale/programs/charmap.c:593 locale/programs/locfile.c:900 #, c-format msgid "%s: error in state machine" msgstr "%s: Fehler im (intern verwendeten) endlichen Automaten" -#: posix/getopt.c:687 +#: posix/getopt.c:783 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: Die Option ist nicht erlaubt -- »%c«\n" -#: posix/getopt.c:690 +#: posix/getopt.c:786 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: Ungültige option -- »%c«\n" -#: posix/getopt.c:611 +#: posix/getopt.c:707 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: Die Option »%c%s« erlaubt keine Argumente\n" +msgstr "%s: Die Option »%c%s« erlaubt kein Argument\n" -#: posix/getopt.c:582 +#: posix/getopt.c:678 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: Die Option »%s« ist nicht eindeutig\n" -#: posix/getopt.c:628 posix/getopt.c:801 +#: posix/getopt.c:724 posix/getopt.c:897 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: Die Option »%s« erfordert ein Argument\n" -#: posix/getopt.c:606 +#: posix/getopt.c:702 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: Die Option »--%s« erlaubt kein Argument\n" -#: posix/getopt.c:786 +#: posix/getopt.c:881 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: Die Option »-W %s« erlaubt keine Argumente\n" +msgstr "%s: Die Option »-W %s« erlaubt kein Argument\n" -#: posix/getopt.c:767 +#: posix/getopt.c:863 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: Die Option »-W %s« ist nicht eindeutig\n" -#: posix/getopt.c:721 posix/getopt.c:850 +#: posix/getopt.c:816 posix/getopt.c:946 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: Diese Option benötigt ein Argument -- »%c«\n" -#: time/zic.c:837 time/zic.c:1248 time/zic.c:1268 +#: time/zic.c:834 time/zic.c:1246 time/zic.c:1266 #, c-format msgid "%s: panic: Invalid l_value %d\n" -msgstr "%s: Panik: ungültiger l_value %d\n" +msgstr "%s: Panik: ungültiger »l_value« %d\n" #: locale/programs/charmap.c:600 #, c-format msgid "%s: premature end of file" msgstr "%s: Unerwartetes Ende der Datei" -#: posix/getopt.c:661 +#: posix/getopt.c:757 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: Unbekannte Option »%c%s«\n" -#: posix/getopt.c:657 +#: posix/getopt.c:753 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: Unbekannte Option »--%s«\n" -#: time/zic.c:446 +#: time/zic.c:441 #, 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: Syntax ist %s [ -s ] [ -v ] [ -l Lokale-Zeit ] [ -p Posix-Regeln ] [ -d Verzeichnis ]\n" +"%s: Syntax ist %s [ -s ] [ -v ] [ -l Lokale-Zeit ] [ -p Posix-Regeln ] [ -d " +"Verzeichnis ]\n" "\t[ -L Schaltsekunden ] [ -y Jahrestyp ] [ Dateiname ... ]\n" -#: time/zdump.c:165 +#: time/zdump.c:174 #, c-format msgid "%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n" -msgstr "%s: Syntax %s [ -v ] [ -c cutoff ] Zonen-Name ...\n" +msgstr "%s: Syntax: %s [ -v ] [ -c cutoff ] Zonen-Name ...\n" #: sunrpc/clnt_perr.c:125 #, c-format @@ -260,29 +270,30 @@ msgstr "(unbekannter Fehler bei der Authentifizierung - %d)" msgid "(unknown)" msgstr "Unbekanntes Signal" -#: catgets/gencat.c:253 +#: catgets/gencat.c:254 msgid "*standard input*" msgstr "*Standard-Eingabe*" #: stdio-common/../sysdeps/gnu/errlist.c:766 msgid ".lib section in a.out corrupted" -msgstr "».lib«-Sektion in der a.out-Datei ist beschädigt" +msgstr "».lib«-Sektion in der »a.out«-Datei ist beschädigt" -#: inet/rcmd.c:358 +#: inet/rcmd.c:363 msgid ".rhosts fstat failed" msgstr "Fehler beim Holen des Status der Datei ».rhosts«" -#: inet/rcmd.c:354 +#: inet/rcmd.c:359 msgid ".rhosts lstat failed" msgstr "Fehler beim Holen des Link-Status von ».rhosts«" -#: inet/rcmd.c:356 +#: inet/rcmd.c:361 msgid ".rhosts not regular file" msgstr "».rhosts« ist keine reguläre Datei" -#: inet/rcmd.c:362 +#: inet/rcmd.c:367 msgid ".rhosts writeable by other than owner" -msgstr "».rhosts« ist auch für andere Benutzer als den Dateieigentümer beschreibbar" +msgstr "" +"».rhosts« ist auch für andere Benutzer als den Dateieigentümer beschreibbar" #: sunrpc/clnt_perr.c:112 sunrpc/clnt_perr.c:133 #, c-format @@ -293,12 +304,12 @@ msgstr "; untere Version = %lu, obere Version = %lu" msgid "; why = " msgstr "; Ursache = " -#: locale/programs/ld-ctype.c:326 +#: locale/programs/ld-ctype.c:331 #, c-format msgid "<SP> character must not be in class `%s'" msgstr "Das Zeichen »<SP>« darf nicht in der Klasse »%s« enthalten sein" -#: locale/programs/ld-ctype.c:317 +#: locale/programs/ld-ctype.c:321 #, c-format msgid "<SP> character not in class `%s'" msgstr "Das Zeichen »<SP>« ist nicht in der Klasse »%s« enthalten" @@ -310,6 +321,10 @@ msgstr "Das Zeichen »<SP>« ist nicht in der Klasse »%s« enthalten" msgid "?" msgstr "?" +#: sysdeps/unix/sysv/linux/siglist.h:27 +msgid "Aborted" +msgstr "Abgebrochen" + #: stdio-common/../sysdeps/gnu/errlist.c:762 msgid "Accessing a corrupted shared library" msgstr "Zugriff auf eine fehlerhafte oder defekte Shared-Library" @@ -325,10 +340,13 @@ msgstr "Die Adresse wird bereits verwendet" msgid "Address family not supported by protocol" msgstr "Die Adress-Familie wird von der Protokoll-Familie nicht unterstützt" +# Diese Übersetzung macht eigentlich keinen Sinn - jh #: stdio-common/../sysdeps/gnu/errlist.c:730 msgid "Advertise error" msgstr "Fehler bei der Werbung" +#: stdio-common/../sysdeps/unix/siglist.c:43 +#: sysdeps/unix/sysv/linux/siglist.h:33 msgid "Alarm clock" msgstr "Der Wecker klingelt" @@ -374,6 +392,11 @@ msgstr "Ungültiges Font-Datei-Format" msgid "Bad message" msgstr "Ungültige Nachricht" +#: stdio-common/../sysdeps/unix/siglist.c:41 +#: sysdeps/unix/sysv/linux/siglist.h:56 +msgid "Bad system call" +msgstr "Ungültiger Betriebssystemaufruf" + #. 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. @@ -381,7 +404,7 @@ msgstr "Ungültige Nachricht" msgid "Block device required" msgstr "Es ist ein Block-Device notwendig" -#: sunrpc/pmap_rmt.c:337 +#: sunrpc/pmap_rmt.c:338 msgid "Broadcast select problem" msgstr "Select-Problem beim Broadcast" @@ -391,12 +414,18 @@ msgstr "Select-Problem beim Broadcast" #. TRANS or blocked. Thus, your program will never actually see @code{EPIPE} #. TRANS unless it has handled or blocked @code{SIGPIPE}. #: stdio-common/../sysdeps/gnu/errlist.c:222 +#: stdio-common/../sysdeps/unix/siglist.c:42 +#: sysdeps/unix/sysv/linux/siglist.h:32 msgid "Broken pipe" msgstr "Datenübergabe unterbrochen (broken pipe)" +# Ungültige Adressierung? - jh +#: stdio-common/../sysdeps/unix/siglist.c:39 +#: sysdeps/unix/sysv/linux/siglist.h:30 msgid "Bus error" msgstr "Bus-Zugriffsfehler" +#: sysdeps/unix/sysv/linux/siglist.h:43 msgid "CPU time limit exceeded" msgstr "Rechenzeitbegrenzung überschritten" @@ -404,19 +433,19 @@ msgstr "Rechenzeitbegrenzung überschritten" msgid "Can not access a needed shared library" msgstr "Auf eine benötigte Shared-Library kann nicht zugegriffen werden" -#: nis/ypclnt.c:637 +#: nis/ypclnt.c:695 msgid "Can't bind to server which serves this domain" msgstr "Kein Server für diese NIS-Domain gefunden" -#: nis/ypclnt.c:649 +#: nis/ypclnt.c:707 msgid "Can't communicate with portmapper" msgstr "Keine Kommunikation mit dem Portmapper möglich" -#: nis/ypclnt.c:651 +#: nis/ypclnt.c:709 msgid "Can't communicate with ypbind" msgstr "Keine Kommunikation mit »ypbind« möglich" -#: nis/ypclnt.c:653 +#: nis/ypclnt.c:711 msgid "Can't communicate with ypserv" msgstr "Keine Kommunikation mit »ypserv« möglich" @@ -441,7 +470,7 @@ msgstr "Kann den Socket für den Broadcast-RPC nicht erstellen" msgid "Cannot exec a shared library directly" msgstr "Eine Shared-Library kann nicht direkt ausgeführt werden" -#: sunrpc/pmap_rmt.c:349 +#: sunrpc/pmap_rmt.c:350 msgid "Cannot receive reply to broadcast" msgstr "Kann die Antwort auf den Broadcast nicht empfangen" @@ -466,6 +495,8 @@ msgstr "Kann die Option »SO_BROADCAST« nicht beim Socket setzen" msgid "Channel number out of range" msgstr "Das numerische Ergebnis ist außerhalb des gültigen Bereiches" +#: stdio-common/../sysdeps/unix/siglist.c:49 +#: sysdeps/unix/sysv/linux/siglist.h:39 msgid "Child exited" msgstr "Der Kind-Prozeß ist beendet" @@ -475,20 +506,24 @@ msgstr "Die Bestätigung des Clients ist zu unsicher" #: stdio-common/../sysdeps/gnu/errlist.c:738 msgid "Communication error on send" -msgstr "Fehler bei der Authentifizierung" +msgstr "Kommunikationsfehler beim Senden" #. 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 "Der Computer hat den Bauernhof erworben" -#: locale/programs/ld-ctype.c:1197 +#: locale/programs/ld-ctype.c:1204 msgid "Computing table size for character classes might take a while..." -msgstr "Berechnung der Größe der Zeichentabelle: Dies kann einige Zeit dauern" +msgstr "" +"Berechnung der Größe der Tabelle der Zeichenklassen: Dies kann einige Zeit " +"dauern..." -#: locale/programs/ld-collate.c:327 +#: locale/programs/ld-collate.c:329 msgid "Computing table size for collation information might take a while..." -msgstr "Berechnung der Größe der Zeichentabelle: Dies kann einige Zeit dauern" +msgstr "" +"Berechnung der Größe der Tabelle der Sortierinformationen: Dies kann einige " +"Zeit dauern..." #. TRANS A remote host refused to allow the network connection (typically because #. TRANS it is not running the requested service). @@ -507,13 +542,15 @@ msgstr "Die Verbindung wurde vom Kommunikationspartner zurückgesetzt" #. TRANS the timeout period. #: stdio-common/../sysdeps/gnu/errlist.c:433 msgid "Connection timed out" -msgstr "Die Wartezeit beim Verbindungsaufbau ist abgelaufen" +msgstr "Die Wartezeit für die Verbindung ist abgelaufen" +#: stdio-common/../sysdeps/unix/siglist.c:48 +#: sysdeps/unix/sysv/linux/siglist.h:38 msgid "Continued" msgstr "Fortgesetzt" #: catgets/gencat.c:169 db/makedb.c:120 locale/programs/locale.c:187 -#: locale/programs/localedef.c:177 +#: locale/programs/localedef.c:180 #, c-format msgid "" "Copyright (C) %s Free Software Foundation, Inc.\n" @@ -521,11 +558,16 @@ msgid "" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Copyright © %s Free Software Foundation, Inc.\n" -"Dies ist freie Software; in den Quellen befinden sich die Lizenzbedingungen.\n" +"Dies ist freie Software; in den Quellen befinden sich die " +"Lizenzbedingungen.\n" "Es gibt KEINERLEI Garantie; nicht einmal für die TAUGLICHKEIT oder\n" "VERWENDBARKEIT FÜR EINEN ANGEGEBENEN ZWECK.\n" -#: nis/ypclnt.c:663 +#: stdio-common/../sysdeps/unix/siglist.c:53 +msgid "Cputime limit exceeded" +msgstr "Rechenzeitbegrenzung überschritten" + +#: nis/ypclnt.c:721 msgid "Database is busy" msgstr "Die Databank ist belegt" @@ -538,7 +580,7 @@ msgstr "Es ist eine Zieladresse notwendig" #: stdio-common/../sysdeps/gnu/errlist.c:638 msgid "Device not a stream" -msgstr "Das Gerät ist nicht konfiguriert" +msgstr "Das Gerät ist kein 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. @@ -554,7 +596,7 @@ msgstr "Das Gerät ist nicht konfiguriert" #. TRANS mounted filesystem, you get this error. #: stdio-common/../sysdeps/gnu/errlist.c:116 msgid "Device or resource busy" -msgstr "Das Gerät ist bereits belegt" +msgstr "Das Gerät oder die Resource ist belegt" #. TRANS Directory not empty, where an empty directory was expected. Typically, #. TRANS this error occurs when you are trying to delete a directory. @@ -567,9 +609,14 @@ msgstr "Das Verzeichnis ist nicht leer" msgid "Disc quota exceeded" msgstr "Der zugewiesene Plattenplatz (Quota) ist überschritten" -#: nis/ypclnt.c:709 +#: nis/ypclnt.c:767 msgid "Domain not bound" -msgstr "Die Domain wurde nicht gefunden" +msgstr "Die Domain wurde nicht zugewiesen" + +#: stdio-common/../sysdeps/unix/siglist.c:36 +#: sysdeps/unix/sysv/linux/siglist.h:53 +msgid "EMT trap" +msgstr "EMT-Trap" #: sunrpc/clnt_perr.c:254 #, c-format @@ -594,9 +641,10 @@ msgstr "Umsteigebahnhof ist überfüllt" msgid "Exec format error" msgstr "Fehler im Format der Programmdatei" -#: locale/programs/localedef.c:213 +#: locale/programs/localedef.c:216 msgid "FATAL: system does not define `_POSIX2_LOCALEDEF'" -msgstr "Fataler Fehler: Das System definiert das Symbol »_POSIX2_LOCALEDEF« nicht" +msgstr "" +"Fataler Fehler: Das System definiert das Symbol »_POSIX2_LOCALEDEF« nicht" #: sunrpc/clnt_perr.c:290 msgid "Failed (unspecified error)" @@ -623,14 +671,21 @@ msgstr "Verklemmung beim Datei-Locking" msgid "File name too long" msgstr "Der Dateiname ist zu lang" +#: sysdeps/unix/sysv/linux/siglist.h:44 msgid "File size limit exceeded" -msgstr "Die maximale Länge eines Dateinamens ist überschritten" +msgstr "Die maximale Dateigröße ist überschritten" #. 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 "Die Datei ist zu groß" +#: stdio-common/../sysdeps/unix/siglist.c:54 +msgid "Filesize limit exceeded" +msgstr "Die maximale Dateigröße ist überschritten" + +#: stdio-common/../sysdeps/unix/siglist.c:37 +#: sysdeps/unix/sysv/linux/siglist.h:28 msgid "Floating point exception" msgstr "Gleitkomma-Ausnahme" @@ -646,6 +701,8 @@ msgstr "Die angeforderte Funktion ist nicht implementiert" msgid "Gratuitous error" msgstr "Irgendein Fehler" +#: stdio-common/../sysdeps/unix/siglist.c:30 +#: sysdeps/unix/sysv/linux/siglist.h:22 msgid "Hangup" msgstr "Aufgelegt" @@ -658,9 +715,12 @@ msgstr "Der Rechner ist nicht aktiv" msgid "Host name lookup failure" msgstr "Fehler beim Auflösen des Hostnamens" +#: stdio-common/../sysdeps/unix/siglist.c:52 +#: sysdeps/unix/sysv/linux/siglist.h:42 msgid "I/O possible" msgstr "Ein-/Ausgabe ist möglich" +#: stdio-common/../sysdeps/unix/siglist.c:35 msgid "IOT trap" msgstr "Ein-/Ausgabe-Trap (IOT)" @@ -668,9 +728,14 @@ msgstr "Ein-/Ausgabe-Trap (IOT)" msgid "Identifier removed" msgstr "Bezeichner wurde entfernt" +#: sysdeps/unix/sysv/linux/siglist.h:25 msgid "Illegal Instruction" msgstr "Ungültiger Maschinenbefehl" +#: stdio-common/../sysdeps/unix/siglist.c:33 +msgid "Illegal instruction" +msgstr "Ungültiger Maschinenbefehl" + #. TRANS Invalid seek operation (such as on a pipe). #: stdio-common/../sysdeps/gnu/errlist.c:201 msgid "Illegal seek" @@ -701,23 +766,29 @@ msgstr "Unpassender IOCTL (I/O-Control) für das Gerät" msgid "Inappropriate operation for background process" msgstr "Unpassende Operation für den Hintergrundprozeß" +#: sysdeps/unix/sysv/linux/siglist.h:62 +msgid "Information request" +msgstr "Informationsanfrage" + #. TRANS Input/output error; usually used for physical read or write errors. #: stdio-common/../sysdeps/gnu/errlist.c:40 msgid "Input/output error" msgstr "Eingabe-/Ausgabe-Fehler" -#: nis/ypclnt.c:643 +#: nis/ypclnt.c:701 msgid "Internal NIS error" msgstr "Interner NIS-Fehler" -#: nis/ypclnt.c:707 +#: nis/ypclnt.c:765 msgid "Internal ypbind error" msgstr "Interner Fehler in »ypbind«" +#: stdio-common/../sysdeps/unix/siglist.c:31 +#: sysdeps/unix/sysv/linux/siglist.h:23 msgid "Interrupt" msgstr "Unterbrechung" -#. TRANS Interrupted function call; an asynchronous signal occured and prevented +#. TRANS Interrupted function call; an asynchronous signal occurred and prevented #. TRANS completion of the call. When this happens, you should try the call #. TRANS again. #. TRANS @@ -726,11 +797,11 @@ msgstr "Unterbrechung" #. TRANS Primitives}. #: stdio-common/../sysdeps/gnu/errlist.c:35 msgid "Interrupted system call" -msgstr "Unterbrechung während Betriebssystemaufruf" +msgstr "Unterbrechung während des Betriebssystemaufrufs" #: stdio-common/../sysdeps/gnu/errlist.c:654 msgid "Interrupted system call should be restarted" -msgstr "Unterbrechung während Betriebssystemaufruf" +msgstr "Der unterbrochene Betriebssystemaufruf sollte neu gestartet werden" #. TRANS Invalid argument. This is used to indicate various kinds of problems #. TRANS with passing the wrong argument to a library function. @@ -738,11 +809,11 @@ msgstr "Unterbrechung während Betriebssystemaufruf" msgid "Invalid argument" msgstr "Das Argument ist ungültig" -#: posix/regex.c:946 +#: posix/regex.c:960 msgid "Invalid back reference" msgstr "Ungültiger Verweis zurück" -#: posix/regex.c:944 +#: posix/regex.c:958 msgid "Invalid character class name" msgstr "Ungültiger Name für eine Zeichenklasse" @@ -754,11 +825,11 @@ msgstr "Die Bestätigung des Clients ist ungültig" msgid "Invalid client verifier" msgstr "Ungültige Überprüfung des Clients" -#: posix/regex.c:943 +#: posix/regex.c:957 msgid "Invalid collation character" msgstr "Ungültiges Sortierzeichen" -#: posix/regex.c:950 +#: posix/regex.c:964 msgid "Invalid content of \\{\\}" msgstr "Ungültiger Inhalt von »\\{\\}«" @@ -771,33 +842,33 @@ msgstr "Ungültiger Link über Gerätegrenzen hinweg" #: stdio-common/../sysdeps/gnu/errlist.c:690 msgid "Invalid exchange" -msgstr "Das Ende des angegebenen Intervalls ist nicht gültig" +msgstr "Ungültiger Austausch" #. 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 "Ungültiges Sortierzeichen" +msgstr "Ungültiges oder unvollständiges Multi-Byte oder Wide-Zeichen" -#: posix/regex.c:953 +#: posix/regex.c:967 msgid "Invalid preceding regular expression" msgstr "Der vorherige reguläre Ausdruck ist nicht korrekt." -#: posix/regex.c:951 +#: posix/regex.c:965 msgid "Invalid range end" msgstr "Das Ende des angegebenen Intervalls ist nicht gültig" -#: posix/regex.c:942 +#: posix/regex.c:956 msgid "Invalid regular expression" msgstr "Ungültiger regulärer Ausdruck" #: stdio-common/../sysdeps/gnu/errlist.c:706 msgid "Invalid request code" -msgstr "Das Argument ist ungültig" +msgstr "Ungültiger Aufruf-Code" #: stdio-common/../sysdeps/gnu/errlist.c:694 msgid "Invalid request descriptor" -msgstr "Ungültiger Datei-Deskriptor" +msgstr "Ungültiger Aufruf-Deskriptor" #: sunrpc/clnt_perr.c:288 msgid "Invalid server verifier" @@ -805,7 +876,7 @@ msgstr "Ungültige Überprüfung des Servers" #: stdio-common/../sysdeps/gnu/errlist.c:710 msgid "Invalid slot" -msgstr "Das Argument ist ungültig" +msgstr "Ungültiger Slot" #. TRANS File is a directory; you cannot open a directory for writing, #. TRANS or create or remove hard links to it. @@ -815,8 +886,10 @@ msgstr "Ist ein Verzeichnis" #: stdio-common/../sysdeps/gnu/errlist.c:794 msgid "Is a named type file" -msgstr "Ist eine 'named type file'" +msgstr "Ist eine »named type file«" +#: stdio-common/../sysdeps/unix/siglist.c:38 +#: sysdeps/unix/sysv/linux/siglist.h:29 msgid "Killed" msgstr "Getötet" @@ -826,7 +899,7 @@ msgstr "Level 2 angehalten" #: stdio-common/../sysdeps/gnu/errlist.c:662 msgid "Level 2 not synchronized" -msgstr "Das Gerät ist nicht konfiguriert" +msgstr "Level 2 ist nicht synchronisiert" #: stdio-common/../sysdeps/gnu/errlist.c:666 msgid "Level 3 halted" @@ -842,13 +915,13 @@ msgstr "Der Link wurde beschädigt" #: stdio-common/../sysdeps/gnu/errlist.c:674 msgid "Link number out of range" -msgstr "Das numerische Ergebnis ist außerhalb des gültigen Bereiches" +msgstr "Die Link-Nummer ist außerhalb des gültigen Bereiches" -#: nis/ypclnt.c:655 +#: nis/ypclnt.c:713 msgid "Local domain name not set" msgstr "Der lokale Domain-Name ist nicht eingetragen" -#: nis/ypclnt.c:645 +#: nis/ypclnt.c:703 msgid "Local resource allocation failure" msgstr "Lokaler Fehler bei der Resourcen-Beschaffung" @@ -856,7 +929,7 @@ msgstr "Lokaler Fehler bei der Resourcen-Beschaffung" msgid "Machine is not on the network" msgstr "Die Maschine ist nicht an das Netzwerk angeschlossen" -#: posix/regex.c:952 +#: posix/regex.c:966 msgid "Memory exhausted" msgstr "Kein Hauptspeicher mehr verfügbar" @@ -868,13 +941,14 @@ msgstr "Die Nachricht ist zu lang" #: stdio-common/../sysdeps/gnu/errlist.c:618 msgid "Multihop attempted" -msgstr "Ein 'Multihop' wurde versucht" +msgstr "Ein »Multihop« wurde versucht" -#: nis/ypclnt.c:659 +#: nis/ypclnt.c:717 msgid "NIS client/server version mismatch - can't supply service" -msgstr "NIS Client/Server Versionen passen nicht zusammen - kein Service möglich" +msgstr "" +"NIS Client/Server Versionen passen nicht zusammen - kein Service möglich" -#: nis/ypclnt.c:657 +#: nis/ypclnt.c:715 msgid "NIS map data base is bad" msgstr "Die Datenbank mit der NIS-Map ist ungültig" @@ -931,11 +1005,11 @@ msgstr "Kein Hauptspeicher für den Puffer verfügbar" #. TRANS to manipulate. #: stdio-common/../sysdeps/gnu/errlist.c:77 msgid "No child processes" -msgstr "Kein Kind-Prozeß" +msgstr "Keine Kind-Prozesse" #: stdio-common/../sysdeps/gnu/errlist.c:622 msgid "No data available" -msgstr "Keine Sperren verfügbar" +msgstr "Keine Daten verfügbar" #. 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 @@ -945,7 +1019,7 @@ msgstr "Keine Sperren verfügbar" msgid "No locks available" msgstr "Keine Sperren verfügbar" -#: posix/regex.c:941 +#: posix/regex.c:955 msgid "No match" msgstr "Keine Übereinstimmung gefunden" @@ -953,11 +1027,11 @@ msgstr "Keine Übereinstimmung gefunden" msgid "No message of desired type" msgstr "Keine Nachricht des gewünschten Typs" -#: nis/ypclnt.c:647 +#: nis/ypclnt.c:705 msgid "No more records in map database" msgstr "Keine weiteren Sätze in der Map-Datenbank" -#: posix/regex.c:5204 +#: posix/regex.c:5324 msgid "No previous regular expression" msgstr "Es wurde bisher noch kein regulärer Ausdruck definiert" @@ -983,11 +1057,11 @@ msgstr "Auf dem Gerät ist kein Speicherplatz mehr verfügbar" msgid "No such file or directory" msgstr "Datei oder Verzeichnis nicht gefunden" -#: nis/ypclnt.c:641 +#: nis/ypclnt.c:699 msgid "No such key in map" msgstr "Kein passender Schlüssel in der Map" -#: nis/ypclnt.c:639 +#: nis/ypclnt.c:697 msgid "No such map in server's domain" msgstr "Keine passende Map in der Domain des Servers" @@ -998,7 +1072,7 @@ msgstr "Kein passender Prozeß gefunden" #: stdio-common/../sysdeps/gnu/errlist.c:786 msgid "Not a XENIX named type file" -msgstr "Keine XENIX 'named type' Datei" +msgstr "Keine XENIX »named type« Datei" #. TRANS A file that isn't a directory was specified when a directory is required. #: stdio-common/../sysdeps/gnu/errlist.c:140 @@ -1025,7 +1099,7 @@ msgstr "Das numerische Ergebnis ist außerhalb des gültigen Bereiches" msgid "Object is remote" msgstr "Das Objekt ist remote" -#: time/zic.c:1939 +#: time/zic.c:1966 msgid "Odd number of quotation marks" msgstr "Ungerade Anzahl von Anführungszeichen" @@ -1055,7 +1129,7 @@ msgstr "Die Operation wird nicht unterstützt" #. TRANS particular sort of device. #: stdio-common/../sysdeps/gnu/errlist.c:135 msgid "Operation not supported by device" -msgstr "Die Operation wird von dem Gerät nicht unterstützt" +msgstr "Die Operation wird von diesem Gerät nicht unterstützt" #. TRANS An operation that cannot complete immediately was initiated on an object #. TRANS that has non-blocking mode selected. Some functions that must always @@ -1087,17 +1161,20 @@ msgid "Package not installed" msgstr "Das Zusatzpacket ist nicht installiert" #. TRANS Permission denied; the file permissions do not allow the attempted operation. -#: nis/ypclnt.c:661 stdio-common/../sysdeps/gnu/errlist.c:96 +#: nis/ypclnt.c:719 stdio-common/../sysdeps/gnu/errlist.c:96 msgid "Permission denied" msgstr "Keine Berechtigung" +#: sysdeps/unix/sysv/linux/siglist.h:64 msgid "Power failure" msgstr "Fehler in der Stromversorgung" -#: posix/regex.c:954 +#: posix/regex.c:968 msgid "Premature end of regular expression" msgstr "Unerwartetes Ende des regulären Ausdruckes" +#: stdio-common/../sysdeps/unix/siglist.c:56 +#: sysdeps/unix/sysv/linux/siglist.h:46 msgid "Profiling timer expired" msgstr "Zeitnehmer zur Laufzeitbestimmung ist abgelaufen" @@ -1107,7 +1184,7 @@ msgstr "Das Protokoll ist nicht verfügbar" #: stdio-common/../sysdeps/gnu/errlist.c:646 msgid "Protocol error" -msgstr "Fehler des Präprozessors" +msgstr "Protokoll-Fehler" #. TRANS The socket communications protocol family you requested is not supported. #: stdio-common/../sysdeps/gnu/errlist.c:343 @@ -1132,6 +1209,8 @@ msgstr "Das Protokoll wird nicht unterstützt" msgid "Protocol wrong type for socket" msgstr "Das Protokoll paßt nicht zu dem Socket" +#: stdio-common/../sysdeps/unix/siglist.c:32 +#: sysdeps/unix/sysv/linux/siglist.h:24 msgid "Quit" msgstr "Verlassen" @@ -1144,9 +1223,9 @@ msgstr "RFS-spezifischer Fehler" msgid "RPC bad procedure for program" msgstr "RPC: ungültige Prozedur für das Programm" -#: nis/ypclnt.c:635 +#: nis/ypclnt.c:693 msgid "RPC failure on NIS operation" -msgstr "RPC Fehler bei einer NIS-Operation" +msgstr "RPC: Fehler bei einer NIS-Operation" #. TRANS ??? #: stdio-common/../sysdeps/gnu/errlist.c:517 @@ -1156,7 +1235,7 @@ msgstr "RPC: Programm nicht verfügbar" #. TRANS ??? #: stdio-common/../sysdeps/gnu/errlist.c:522 msgid "RPC program version wrong" -msgstr "RPC: Programm-Version nicht passend" +msgstr "RPC: Die Programm-Version ist falsch" #. TRANS ??? #: stdio-common/../sysdeps/gnu/errlist.c:507 @@ -1253,13 +1332,13 @@ msgstr "»RTLD_NEXT« wird in Code verwendet, der nicht dynamisch geladen ist" msgid "Read-only file system" msgstr "Das Dateisystem ist nur lesbar" -#: posix/regex.c:955 +#: posix/regex.c:969 msgid "Regular expression too big" msgstr "Der reguläre Ausdruck ist zu groß" #: stdio-common/../sysdeps/gnu/errlist.c:798 msgid "Remote I/O error" -msgstr "RPC: Ein-/Ausgabe-Fehler des entfernten Systems" +msgstr "Ein-/Ausgabe-Fehler des entfernten Systems" #: stdio-common/../sysdeps/gnu/errlist.c:754 msgid "Remote address changed" @@ -1270,17 +1349,17 @@ msgid "Remove password or make file unreadable by others." msgstr "Das Paßwort löschen oder die Datei für andere nicht lesbar anlegen." #: catgets/gencat.c:224 db/makedb.c:227 locale/programs/locale.c:257 -#: locale/programs/localedef.c:408 -msgid "Report bugs to <bug-glibc@prep.ai.mit.edu>.\n" -msgstr "Fehler bitte an <bug-glibc@prep.ai.mit.edu> melden.\n" +#: locale/programs/localedef.c:412 +msgid "Report bugs using the `glibcbug' script to <bugs@gnu.ai.mit.edu>.\n" +msgstr "Fehler bitte mit dem »glibcbug«-Skript an <bug-glibc@prep.ai.mit.edu> melden.\n" -#: nis/ypclnt.c:633 +#: nis/ypclnt.c:691 msgid "Request arguments bad" msgstr "Die Request-Argumente sind ungültig" #: resolv/herror.c:73 msgid "Resolver Error 0 (no error)" -msgstr "Fehler des Resolvers 0 (Kein Fehler)" +msgstr "Fehler 0 des Resolvers (Kein Fehler)" #: resolv/herror.c:117 msgid "Resolver internal error" @@ -1294,6 +1373,10 @@ msgstr "Interner Fehler des Resolvers" msgid "Resource deadlock avoided" msgstr "Verklemmung beim Zugriff auf eine Resource vermieden" +#: stdio-common/../sysdeps/unix/siglist.c:58 +msgid "Resource lost" +msgstr "Die Resource ist verlorengegangen" + #. 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. @@ -1325,8 +1408,10 @@ msgstr "Verklemmung beim Zugriff auf eine Resource vermieden" #. TRANS @end itemize #: stdio-common/../sysdeps/gnu/errlist.c:267 msgid "Resource temporarily unavailable" -msgstr "Das Programm ist zur Zeit nicht verfügbar" +msgstr "Die Resource ist zur Zeit nicht verfügbar" +#: stdio-common/../sysdeps/unix/siglist.c:40 +#: sysdeps/unix/sysv/linux/siglist.h:31 msgid "Segmentation fault" msgstr "Speicherzugriffsfehler" @@ -1338,6 +1423,10 @@ msgstr "Der Server hat die Bestätigung zurückgewiesen" msgid "Server rejected verifier" msgstr "Der Server hat die Überprüfung zurückgewiesen" +#: stdio-common/../sysdeps/unix/siglist.c:29 +msgid "Signal 0" +msgstr "Signal 0" + #. TRANS A file that isn't a socket was specified when a socket is required. #: stdio-common/../sysdeps/gnu/errlist.c:299 msgid "Socket operation on non-socket" @@ -1357,43 +1446,57 @@ msgstr "Das Programm verursachte den Abbruch der Verbindung" msgid "Srmount error" msgstr "»Srmount«-Fehler" +#: sysdeps/unix/sysv/linux/siglist.h:59 +msgid "Stack fault" +msgstr "Stack-Fehler" + #. 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 "Ungültige NFS-Dateizugriffsnummer" +msgstr "Veraltete NFS-Dateizugriffsnummer" +#: stdio-common/../sysdeps/unix/siglist.c:47 +#: sysdeps/unix/sysv/linux/siglist.h:37 msgid "Stopped" msgstr "Angehalten" +#: stdio-common/../sysdeps/unix/siglist.c:46 +#: sysdeps/unix/sysv/linux/siglist.h:36 msgid "Stopped (signal)" msgstr "Angehalten (Signal)" +#: stdio-common/../sysdeps/unix/siglist.c:50 +#: sysdeps/unix/sysv/linux/siglist.h:40 msgid "Stopped (tty input)" msgstr "Angehalten (tty-Eingabe)" +#: stdio-common/../sysdeps/unix/siglist.c:51 +#: sysdeps/unix/sysv/linux/siglist.h:41 msgid "Stopped (tty output)" msgstr "Angehalten (tty-Ausgabe)" #: stdio-common/../sysdeps/gnu/errlist.c:778 msgid "Streams pipe error" -msgstr "Fehler in Stream-Pipes" +msgstr "Fehler in Stream-Pipe" #: stdio-common/../sysdeps/gnu/errlist.c:782 msgid "Structure needs cleaning" msgstr "Die Struktur muß bereinigt werden" -#: nis/ypclnt.c:631 nis/ypclnt.c:705 posix/regex.c:940 +#: nis/ypclnt.c:689 nis/ypclnt.c:763 posix/regex.c:954 #: stdio-common/../sysdeps/gnu/errlist.c:7 msgid "Success" msgstr "Erfolg" -#: nis/ypclnt.c:711 +#: nis/ypclnt.c:769 msgid "System resource allocation failure" msgstr "Fehler bei der Beschaffung einer System-Resource" +#: stdio-common/../sysdeps/unix/siglist.c:44 +#: sysdeps/unix/sysv/linux/siglist.h:34 msgid "Terminated" msgstr "Beendet" @@ -1459,10 +1562,15 @@ msgstr "Zu viele Referenzen: can't splice" msgid "Too many users" msgstr "Zu viele Benutzer" +#: stdio-common/../sysdeps/unix/siglist.c:34 +msgid "Trace/BPT trap" +msgstr "Trace/BPT ausgelöst" + +#: sysdeps/unix/sysv/linux/siglist.h:26 msgid "Trace/breakpoint trap" msgstr "Trace/Breakpoint ausgelöst" -#: posix/regex.c:945 +#: posix/regex.c:959 msgid "Trailing backslash" msgstr "Angehängter Backslash (»\\«)" @@ -1488,12 +1596,12 @@ msgid "Transport endpoint is not connected" msgstr "Der Socket ist nicht verbunden" #: catgets/gencat.c:208 db/makedb.c:209 locale/programs/locale.c:241 -#: locale/programs/localedef.c:389 +#: locale/programs/localedef.c:393 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "»%s --help« gibt weitere Informationen.\n" -#: inet/rcmd.c:136 +#: inet/rcmd.c:137 #, c-format msgid "Trying %s...\n" msgstr "Versuche »%s«...\n" @@ -1503,7 +1611,7 @@ msgstr "Versuche »%s«...\n" msgid "Unknown .netrc keyword %s" msgstr "Unbekanntes Schlüsselwort »%s« in der Datei ».netrc«" -#: nis/ypclnt.c:665 +#: nis/ypclnt.c:723 msgid "Unknown NIS error code" msgstr "Unbekannter NIS-Fehlercode" @@ -1529,27 +1637,27 @@ msgstr "Unbekannter Fehler des Servers" msgid "Unknown signal %d" msgstr "Unbekanntes Signal %d" -#: misc/error.c:95 +#: misc/error.c:100 msgid "Unknown system error" msgstr "Unbekannter Systemfehler" -#: nis/ypclnt.c:713 +#: nis/ypclnt.c:771 msgid "Unknown ypbind error" msgstr "Unbekannter Fehler im »ypbind«" -#: posix/regex.c:948 +#: posix/regex.c:962 msgid "Unmatched ( or \\(" msgstr "»(« oder »\\(« ohne schließende Klammer" -#: posix/regex.c:956 +#: posix/regex.c:970 msgid "Unmatched ) or \\)" msgstr "»)« oder »\\)« ohne öffnende Klammer" -#: posix/regex.c:947 +#: posix/regex.c:961 msgid "Unmatched [ or [^" msgstr "»[« oder »[^« ohne schließende Klammer" -#: posix/regex.c:949 +#: posix/regex.c:963 msgid "Unmatched \\{" msgstr "»\\{« ohne schließende Klammer" @@ -1558,6 +1666,8 @@ msgstr "»\\{« ohne schließende Klammer" msgid "Unrecognized variable `%s'" msgstr "Unbekannte Variable »%s«" +#: stdio-common/../sysdeps/unix/siglist.c:45 +#: sysdeps/unix/sysv/linux/siglist.h:35 msgid "Urgent I/O condition" msgstr "Dringende Ein-/Ausgabe-Bedingung" @@ -1623,12 +1733,13 @@ msgstr "" "Wenn als Name der Eingabe-Datei ein '-' angegeben ist, dann wird\n" "von der Standard-Eingabe gelesen.\n" -#: locale/programs/localedef.c:393 +#: locale/programs/localedef.c:397 #, 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" +" -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" @@ -1686,7 +1797,7 @@ msgstr "" " beschreibungen aus\n" "\n" " -c, --category-name Gibt die Namen der gewünschten Kategorien aus\n" -" -k, --keyword-name Gibt die Namen der geswünschten Schlüsselworte aus\n" +" -k, --keyword-name Gibt die Namen der gewünschten Schlüsselworte aus\n" #: posix/getconf.c:200 #, c-format @@ -1695,11 +1806,17 @@ msgstr "Syntax: %s Variablen-Name [Pfadname]\n" #: sunrpc/rpcinfo.c:609 msgid "Usage: rpcinfo [ -n portnum ] -u host prognum [ versnum ]\n" -msgstr "Syntax: rpcinfo [ -n Portnummer ] -u Rechner Programm-Nummer [Versions-Nummer]\n" +msgstr "" +"Syntax: rpcinfo [ -n Portnummer ] -u Rechner Programm-Nummer " +"[Versions-Nummer]\n" +#: stdio-common/../sysdeps/unix/siglist.c:59 +#: sysdeps/unix/sysv/linux/siglist.h:48 msgid "User defined signal 1" msgstr "Benutzerdefiniertes Signal 1" +#: stdio-common/../sysdeps/unix/siglist.c:60 +#: sysdeps/unix/sysv/linux/siglist.h:49 msgid "User defined signal 2" msgstr "Benutzerdefiniertes Signal 2" @@ -1707,36 +1824,40 @@ msgstr "Benutzerdefiniertes Signal 2" msgid "Value too large for defined data type" msgstr "Der Wert ist zu groß für den definierten Datentyp" +#: stdio-common/../sysdeps/unix/siglist.c:55 +#: sysdeps/unix/sysv/linux/siglist.h:45 msgid "Virtual timer expired" msgstr "Der virtuelle Zeitnehmer ist abgelaufen" -#: time/zic.c:1844 +#: time/zic.c:1871 msgid "Wild result from command execution" msgstr "Wildes Ergebnis aus der Kommando-Ausführung" +#: stdio-common/../sysdeps/unix/siglist.c:57 +#: sysdeps/unix/sysv/linux/siglist.h:47 msgid "Window changed" msgstr "Die Fenstergröße wurde verändert" #: catgets/gencat.c:174 db/makedb.c:125 locale/programs/locale.c:192 -#: locale/programs/localedef.c:182 +#: locale/programs/localedef.c:185 #, c-format msgid "Written by %s.\n" msgstr "Implementiert von %s.\n" -#: nis/ypclnt.c:146 +#: nis/ypclnt.c:142 msgid "YPBINDPROC_DOMAIN: Internal error\n" msgstr "YPBINDPROC_DOMAIN: Interner Fehler\n" -#: nis/ypclnt.c:150 +#: nis/ypclnt.c:146 #, c-format msgid "YPBINDPROC_DOMAIN: No server for domain %s\n" msgstr "YPBINDPROC_DOMAIN: Kein Server für die NIS-Domain »%s«\n" -#: nis/ypclnt.c:154 +#: nis/ypclnt.c:150 msgid "YPBINDPROC_DOMAIN: Resource allocation failure\n" msgstr "YPBINDPROC_DOMAIN: Fehler bei der Resourcen-Beschaffung\n" -#: nis/ypclnt.c:158 +#: nis/ypclnt.c:154 msgid "YPBINDPROC_DOMAIN: Unknown error\n" msgstr "YPBINDPROC_DOMAIN: Unbekannter Fehler\n" @@ -1745,67 +1866,72 @@ msgstr "YPBINDPROC_DOMAIN: Unbekannter Fehler\n" msgid "You really blew it this time" msgstr "Diesmal hast Du es wirklich kaputtgemacht" -#: time/zic.c:1050 +#: time/zic.c:1048 msgid "Zone continuation line end time is not after end time of previous line" -msgstr "Die Ende-Zeit der Fortsetzungszeile ist nicht später als die Ende-Zeit der vorangegangenen Zeile" +msgstr "" +"Die Ende-Zeit der Fortsetzungszeile ist nicht später als die Ende-Zeit der " +"vorangegangenen Zeile" -#: locale/programs/charmap.c:397 locale/programs/locfile.c:341 +#: locale/programs/charmap.c:397 locale/programs/locfile.c:363 #, c-format msgid "`%1$s' definition does not end with `END %1$s'" msgstr "Die Definition von »%1$s« ist nicht durch »END %1$s« abgeschlossen" -#: locale/programs/ld-monetary.c:358 locale/programs/ld-numeric.c:190 +#: locale/programs/ld-monetary.c:359 locale/programs/ld-numeric.c:190 #, c-format msgid "`-1' must be last entry in `%s' field in `%s' category" msgstr "»-1« muß der letzte Eintrag im »%s«-Feld in der »%s«-Kategorie sein" -#: locale/programs/ld-collate.c:1652 +#: locale/programs/ld-collate.c:1655 msgid "`...' must only be used in `...' and `UNDEFINED' entries" msgstr "»...« darf nur in »...« und »UNDEFINED« Einträgen verwendet werden" -#: locale/programs/locfile.c:538 +#: locale/programs/locfile.c:560 msgid "`from' expected after first argument to `collating-element'" msgstr "»from« erwartet nach dem ersten Argument von »collating-element«" -#: locale/programs/ld-collate.c:1109 -msgid "`from' string in collation element declaration contains unknown character" -msgstr "Der »from«-String in der Deklaration des »collation element« enthält unbekannte Zeichen" +#: locale/programs/ld-collate.c:1112 +msgid "" +"`from' string in collation element declaration contains unknown character" +msgstr "" +"Der »from«-String in der Deklaration des »collation element« enthält " +"unbekannte Zeichen" #: locale/programs/charmap.c:267 #, c-format msgid "argument to <%s> must be a single character" msgstr "Das Argument für »<%s>« muß ein einzelnes Zeichen sein" -#: locale/programs/locfile.c:215 +#: locale/programs/locfile.c:237 #, c-format msgid "argument to `%s' must be a single character" -msgstr "Das Argument zu »%s« muß ein eizelnes Zeichen sein" +msgstr "Das Argument zu »%s« muß ein einzelnes Zeichen sein" -#: sunrpc/auth_unix.c:322 +#: sunrpc/auth_unix.c:323 msgid "auth_none.c - Fatal marshalling problem" msgstr "auth_none.c - Fatales »marshalling«-Problem" -#: inet/rcmd.c:360 +#: inet/rcmd.c:365 msgid "bad .rhosts owner" msgstr "Ungültiger Eigentümer der Datei ».rhosts«" -#: locale/programs/charmap.c:212 locale/programs/locfile.c:209 +#: locale/programs/charmap.c:212 locale/programs/locfile.c:231 msgid "bad argument" msgstr "Das Argument ist ungültig" -#: time/zic.c:1172 +#: time/zic.c:1170 msgid "blank FROM field on Link line" msgstr "Leeres FROM-Feld in der Link-Zeile" -#: time/zic.c:1176 +#: time/zic.c:1174 msgid "blank TO field on Link line" msgstr "Leeres TO-Feld in der Link-Zeile" -#: malloc/mcheck.c:189 +#: malloc/mcheck.c:191 msgid "block freed twice" msgstr "Speicherblock zum zweiten Mal freigegeben" -#: malloc/mcheck.c:192 +#: malloc/mcheck.c:194 msgid "bogus mcheck_status, library is buggy" msgstr "Eigenartiger »mcheck_status«, die Bibliothek enthält Fehler" @@ -1821,117 +1947,125 @@ msgstr "Broadcast: ioctl (Holen der Parameter der Schnittstelle)" msgid "cache_set: victim not found" msgstr "cache_set: Das Opfer wurde nicht gefunden" -#: time/zic.c:1685 -msgid "can't determine time zone abbrevation to use just after until time" -msgstr "Kann die Abkürzung der Zeitzone zur Verwendung direkt nach der Zeit nicht bestimmen" +#: time/zic.c:1698 +msgid "can't determine time zone abbreviation to use just after until time" +msgstr "Kann die Abkürzung der Zeitzone zur Verwendung direkt nach der Ende-Zeit nicht bestimmen" #: sunrpc/svc_simple.c:64 #, c-format msgid "can't reassign procedure number %d\n" msgstr "Kann die Prozedurnummer %d nicht erneut zuweisen\n" -#: locale/programs/localedef.c:287 +#: locale/programs/localedef.c:291 #, c-format msgid "cannot `stat' locale file `%s'" msgstr "Kann den Status der Lokale-Datei »%s« nicht bestimmen" -#: locale/programs/ld-collate.c:1314 +#: locale/programs/ld-collate.c:1317 #, c-format msgid "cannot insert collation element `%.*s'" -msgstr "Kann das »Collation«-Element »%.*s« nicht einfügen" +msgstr "Kann das Sortierelement »%.*s« nicht einfügen" -#: locale/programs/ld-collate.c:1493 locale/programs/ld-collate.c:1498 +#: locale/programs/ld-collate.c:1496 locale/programs/ld-collate.c:1501 msgid "cannot insert into result table" msgstr "Kann nicht in die Ergebnis-Tabelle einfügen" -#: locale/programs/ld-collate.c:1166 locale/programs/ld-collate.c:1208 +#: locale/programs/ld-collate.c:1169 locale/programs/ld-collate.c:1211 #, c-format msgid "cannot insert new collating symbol definition: %s" -msgstr "Kann die neue »Collating-Symbol«-Definition nicht einfügen: %s" +msgstr "Kann die neue Sortiersymbol-Definition nicht einfügen: %s" #: db/makedb.c:161 #, c-format msgid "cannot open database file `%s': %s" msgstr "Kann die Ausgabedatei »%s« nicht öffnen: %s" -#: catgets/gencat.c:259 db/makedb.c:180 +#: catgets/gencat.c:260 db/makedb.c:180 #, c-format msgid "cannot open input file `%s'" msgstr "Kann die Eingabedatei »%s« nicht öffnen" -#: locale/programs/localedef.c:221 +#: locale/programs/localedef.c:224 #, c-format msgid "cannot open locale definition file `%s'" msgstr "Kann die Lokale-Definitionsdatei »%s« nicht öffnen" -#: catgets/gencat.c:764 catgets/gencat.c:805 db/makedb.c:189 +#: catgets/gencat.c:765 catgets/gencat.c:806 db/makedb.c:189 #, c-format msgid "cannot open output file `%s'" msgstr "Kann die Ausgabedatei »%s« nicht öffnen" -#: locale/programs/locfile.c:986 +#: locale/programs/locfile.c:1008 #, c-format msgid "cannot open output file `%s' for category `%s'" msgstr "Kann die Ausgabedatei »%s« für die Kategorie »%s« nicht öffnen" -#: locale/programs/ld-collate.c:1360 +#: locale/programs/ld-collate.c:1363 msgid "cannot process order specification" msgstr "Kann die Spezifikation der Sortierreihenfolge nicht verarbeiten" -#: locale/programs/locale.c:303 +#: locale/programs/locale.c:304 #, c-format msgid "cannot read character map directory `%s'" -msgstr "Das Verzeichnis »%s« der Zeichensatz-Definitionen kann nicht gelesen werden" +msgstr "" +"Das Verzeichnis »%s« der Zeichensatz-Definitionen kann nicht gelesen werden" -#: locale/programs/locale.c:278 +#: locale/programs/locale.c:279 #, c-format msgid "cannot read locale directory `%s'" msgstr "Kann das Lokale-Verzeichnis »%s« nicht lesen" -#: locale/programs/localedef.c:309 +#: locale/programs/localedef.c:313 #, c-format msgid "cannot read locale file `%s'" msgstr "Kann die Lokale-Datei »%s« nicht lesen" -#: locale/programs/localedef.c:334 +#: locale/programs/localedef.c:338 #, c-format msgid "cannot write output files to `%s'" msgstr "Kann die Ausgabedatei »%s« nicht schreiben" -#: locale/programs/localedef.c:377 +#: locale/programs/localedef.c:381 msgid "category data requested more than once: should not happen" -msgstr "Die Daten einer Kategorie sind mehrfach angefordert worden, das sollte nicht passieren" +msgstr "" +"Die Daten einer Kategorie sind mehrfach angefordert worden, das sollte nicht " +"passieren" -#: locale/programs/ld-ctype.c:265 +#: locale/programs/ld-ctype.c:266 #, c-format msgid "character %s'%s' in class `%s' must be in class `%s'" -msgstr "Das Zeichen %s»%s«, das in der Zeichenklasse »%s« enthalten ist, muß auch in der Zeichenklasse »%s« enthalten sein" +msgstr "" +"Das Zeichen %s»%s«, das in der Zeichenklasse »%s« enthalten ist, muß auch in " +"der Zeichenklasse »%s« enthalten sein" -#: locale/programs/ld-ctype.c:289 +#: locale/programs/ld-ctype.c:291 #, c-format msgid "character %s'%s' in class `%s' must not be in class `%s'" -msgstr "Das Zeichen %s»%s« in der Zeichenklasse »%s« darf nicht in der Zeichenklasse »%s« enthalten sein" +msgstr "" +"Das Zeichen %s»%s« in der Zeichenklasse »%s« darf nicht in der Zeichenklasse " +"»%s« enthalten sein" -#: locale/programs/ld-ctype.c:310 +#: locale/programs/ld-ctype.c:313 msgid "character <SP> not defined in character map" msgstr "Das Zeichen »<SP>« ist in der Zeichen-Definition nicht enthalten" -#: locale/programs/ld-ctype.c:939 locale/programs/ld-ctype.c:1002 -#: locale/programs/ld-ctype.c:1010 locale/programs/ld-ctype.c:1018 -#: locale/programs/ld-ctype.c:1026 locale/programs/ld-ctype.c:1034 -#: locale/programs/ld-ctype.c:1042 locale/programs/ld-ctype.c:1068 -#: locale/programs/ld-ctype.c:1076 locale/programs/ld-ctype.c:1114 -#: locale/programs/ld-ctype.c:1141 locale/programs/ld-ctype.c:1152 +#: locale/programs/ld-ctype.c:944 locale/programs/ld-ctype.c:1007 +#: locale/programs/ld-ctype.c:1015 locale/programs/ld-ctype.c:1023 +#: locale/programs/ld-ctype.c:1031 locale/programs/ld-ctype.c:1039 +#: locale/programs/ld-ctype.c:1047 locale/programs/ld-ctype.c:1073 +#: locale/programs/ld-ctype.c:1081 locale/programs/ld-ctype.c:1119 +#: locale/programs/ld-ctype.c:1146 locale/programs/ld-ctype.c:1157 #, c-format msgid "character `%s' not defined while needed as default value" -msgstr "Das Zeichen »%s« ist nicht definiert, wird aber als Vorgabewert benötigt" +msgstr "" +"Das Zeichen »%s« ist nicht definiert, wird aber als Vorgabewert benötigt" -#: locale/programs/ld-ctype.c:801 +#: locale/programs/ld-ctype.c:806 #, c-format msgid "character class `%s' already defined" msgstr "Die Zeichenklasse »%s« ist bereits definiert" -#: locale/programs/ld-ctype.c:833 +#: locale/programs/ld-ctype.c:838 #, c-format msgid "character map `%s' already defined" msgstr "Die Zeichensatzbeschreibung »%s« ist bereits definiert" @@ -1945,22 +2079,26 @@ msgstr "Die Zeichensatzbeschreibungs-Datei »%s« wurde nicht gefunden" msgid "clnt_raw.c - Fatal header serialization error." msgstr "clnt_raw.c - Fataler Fehler bei der Header-Serialisierung." -#: locale/programs/ld-collate.c:1329 +#: locale/programs/ld-collate.c:1332 #, c-format msgid "collation element `%.*s' appears more than once: ignore line" -msgstr "Das 'collation'-Element »%.*s« ist mehr als einmal angegeben: Die Zeile wird ignoriert" +msgstr "" +"Das Sortierungselement »%.*s« ist mehr als einmal angegeben: Die Zeile wird " +"ignoriert" -#: locale/programs/ld-collate.c:1347 +#: locale/programs/ld-collate.c:1350 #, c-format msgid "collation symbol `%.*s' appears more than once: ignore line" -msgstr "Das 'Collation'-Symbol »%.*s« ist mehr als einmal angegeben; die Zeile wird ignoriert" +msgstr "" +"Das Sortierungssymbol »%.*s« ist mehr als einmal angegeben; die Zeile wird " +"ignoriert" -#: locale/programs/locfile.c:522 +#: locale/programs/locfile.c:544 #, c-format msgid "collation symbol expected after `%s'" -msgstr "Nach »%s« wird ein 'collation'-Symbol erwartet" +msgstr "Nach »%s« wird ein Sortierungssymbol erwartet" -#: inet/rcmd.c:129 +#: inet/rcmd.c:130 #, c-format msgid "connect to address %s: " msgstr "Verbindungsaufbau zur Adresse %s: " @@ -1972,61 +2110,70 @@ msgstr "Kann keinen RPC-Server erzeugen\n" #: sunrpc/svc_simple.c:77 #, c-format msgid "couldn't register prog %d vers %d\n" -msgstr "Kann das Programm %d Version %d nicht registrieren\n" +msgstr "Kann das Programm »%d« Version »%d« nicht registrieren\n" #: locale/programs/charmap.c:86 #, c-format msgid "default character map file `%s' not found" -msgstr "Die Default-Zeichensatzbeschreibung in der Datei »%s« wurde nicht gefunden" +msgstr "" +"Die Default-Zeichensatzbeschreibung in der Datei »%s« wurde nicht gefunden" #: locale/programs/ld-time.c:154 #, c-format -msgid "direction flag in string %d in `era' field in category `%s' is not '+' nor '-'" -msgstr "Der Richtungsanzeiger in der Zeichenkette %d im »era«-Feld in der Kategorie »%s« ist weder »+« noch »-«" +msgid "" +"direction flag in string %d in `era' field in category `%s' is not '+' nor " +"'-'" +msgstr "" +"Der Richtungsanzeiger in der Zeichenkette %d im »era«-Feld in der Kategorie " +"»%s« ist weder »+« noch »-«" #: locale/programs/ld-time.c:164 #, c-format -msgid "direction flag in string %d in `era' field in category `%s' is not a single character" -msgstr "Der Richtungsanzeiger in der Zeichenkette %d im »era«-Feld in der Kategorie »%s« ist kein einzelnes Zeichen" +msgid "" +"direction flag in string %d in `era' field in category `%s' is not a single " +"character" +msgstr "" +"Der Richtungsanzeiger in der Zeichenkette %d im »era«-Feld in der Kategorie " +"»%s« ist kein einzelnes Zeichen" #: locale/programs/charset.c:87 locale/programs/charset.c:132 #, c-format msgid "duplicate character name `%s'" msgstr "Der Name des Zeichens »%s« ist mehrfach angegeben" -#: locale/programs/ld-collate.c:1141 +#: locale/programs/ld-collate.c:1144 msgid "duplicate collating element definition" -msgstr "Mehrfache Definition des 'collating'-Elementes" +msgstr "Mehrfache Definition des Sortierungselementes" -#: locale/programs/ld-collate.c:1287 +#: locale/programs/ld-collate.c:1290 #, c-format msgid "duplicate definition for character `%.*s'" msgstr "Mehrfache Definition des Eintrages »%.*s«" -#: db/makedb.c:310 +#: db/makedb.c:311 msgid "duplicate key" -msgstr "Doppelter Eintrag" +msgstr "Doppelter Schlüssel" -#: catgets/gencat.c:378 +#: catgets/gencat.c:379 msgid "duplicate set definition" msgstr "Doppelte »set«-Definition" -#: time/zic.c:965 +#: time/zic.c:963 #, c-format msgid "duplicate zone name %s (file \"%s\", line %d)" msgstr "Doppelter Zonen-Name »%s« (Datei »%s«, Zeile %d)" -#: catgets/gencat.c:541 +#: catgets/gencat.c:542 msgid "duplicated message identifier" msgstr "Der Nachrichten-Bezeichner ist mehrfach vorhanden" -#: catgets/gencat.c:514 +#: catgets/gencat.c:515 msgid "duplicated message number" msgstr "Die Nachrichten-Nummer ist mehrfach vorhanden" -#: locale/programs/ld-collate.c:1696 +#: locale/programs/ld-collate.c:1699 msgid "empty weight name: line ignored" -msgstr "Leerer »weight«-Name: Die Zeile wird ignoriert" +msgstr "Leerer Name des Sortiergewichtes: Die Zeile wird ignoriert" #: sunrpc/svc_udp.c:348 msgid "enablecache: cache already enabled" @@ -2044,91 +2191,104 @@ msgstr "enablecache: Kann die Cache-Daten nicht anlegen" msgid "enablecache: could not allocate cache fifo" msgstr "enablecache: Kann keinen FIFO-Cache anlegen" -#: locale/programs/ld-collate.c:1419 +#: locale/programs/ld-collate.c:1422 msgid "end point of ellipsis range is bigger then start" msgstr "Das Ende eines Auslassungs-Intervalls ist gößer als der Start" -#: locale/programs/ld-collate.c:1149 +#: locale/programs/ld-collate.c:1152 msgid "error while inserting collation element into hash table" msgstr "Fehler beim Einfügen des Collation-Elementes in die Hash-Tabelle" -#: locale/programs/ld-collate.c:1161 +#: locale/programs/ld-collate.c:1164 msgid "error while inserting to hash table" msgstr "Fehler beim Einfügen in die Hash-Tabelle" -#: locale/programs/locfile.c:465 +#: locale/programs/locfile.c:487 msgid "expect string argument for `copy'" msgstr "Für »copy« wird ein String-Argument erwartet" -#: time/zic.c:856 +#: time/zic.c:854 msgid "expected continuation line not found" msgstr "Die erwartete Fortsetzungszeile ist nicht vorhanden" -#: locale/programs/locfile.c:1010 +#: locale/programs/locfile.c:1032 #, c-format msgid "failure while writing data for category `%s'" msgstr "Fehler beim Schreiben der Daten für die Kategorie »%s«" -#: locale/programs/ld-monetary.c:154 locale/programs/ld-numeric.c:95 +#: nis/ypclnt.c:187 +msgid "fcntl: F_SETFD" +msgstr "fcntl: F_SETFD" + +#: locale/programs/ld-monetary.c:155 locale/programs/ld-numeric.c:95 #, c-format msgid "field `%s' in category `%s' not defined" -msgstr "Der Eintrag »%s« in der Kategorie »%s« ist undefiniert" +msgstr "Der Eintrag »%s« in der Kategorie »%s« ist nicht definiert" #: locale/programs/ld-messages.c:81 locale/programs/ld-messages.c:102 #, c-format msgid "field `%s' in category `%s' undefined" -msgstr "Der Eintrag »%s« in der Kategorie »%s« ist undefiniert" +msgstr "Der Eintrag »%s« in der Kategorie »%s« ist nicht definiert" -#: locale/programs/locfile.c:547 +#: locale/programs/locfile.c:569 msgid "from-value of `collating-element' must be a string" -msgstr "Der From-Wert eines `collating-Eelements' muß ein String sein" +msgstr "Der »From«-Wert eines Sortierelementes muß ein String sein" #: locale/programs/linereader.c:328 msgid "garbage at end of character code specification" msgstr "Murks am Ende einer Zeichensatz-Spezifikation" #: locale/programs/linereader.c:214 -msgid "garbage at end of digit" -msgstr "Am Ende der Ziffer sind unsinnige Einträge" +msgid "garbage at end of number" +msgstr "Am Ende der Zahl sind unsinnige Einträge" #: locale/programs/ld-time.c:183 #, c-format -msgid "garbage at end of offset value in string %d in `era' field in category `%s'" -msgstr "Unsinnige Einträge am Ende des Offset-Wertes in der Zeichenkette %d im »era«-Feld der Kategorie »%s«" +msgid "" +"garbage at end of offset value in string %d in `era' field in category `%s'" +msgstr "" +"Unsinnige Einträge am Ende des Offset-Wertes in der Zeichenkette %d im " +"»era«-Feld der Kategorie »%s«" #: locale/programs/ld-time.c:238 #, c-format -msgid "garbage at end of starting date in string %d in `era' field in category `%s'" -msgstr "Unsinnige Einträge am Ende des Start-Datums in der Zeichenkette %d im »era«-Feld der Kategorie »%s«" +msgid "" +"garbage at end of starting date in string %d in `era' field in category `%s'" +msgstr "" +"Unsinnige Einträge am Ende des Start-Datums in der Zeichenkette %d im " +"»era«-Feld der Kategorie »%s«" -#: locale/programs/ld-time.c:310 +#: locale/programs/ld-time.c:311 #, c-format -msgid "garbage at end of stopping date in string %d in `era' field in category `%s'" -msgstr "Unsinnige Eintrage am Ende des Stop-Datums in der Zeichenkette %d im »era«-Feld der Kategorie »%s«" +msgid "" +"garbage at end of stopping date in string %d in `era' field in category `%s'" +msgstr "" +"Unsinnige Eintrage am Ende des Stop-Datums in der Zeichenkette %d im " +"»era«-Feld der Kategorie »%s«" #: sunrpc/get_myaddr.c:73 msgid "get_myaddress: ioctl (get interface configuration)" -msgstr "get_myaddress: ioctl (Holen der Konfiguration der Schnittstelle)" +msgstr "get_myaddress: ioctl (Holen der Schnittstellen-Konfiguration)" -#: time/zic.c:1149 +#: time/zic.c:1147 msgid "illegal CORRECTION field on Leap line" -msgstr "ungültiges »CORRECTION«-Feld in der 'Leap'-Zeile" +msgstr "ungültiges »CORRECTION«-Feld in der »Leap«-Zeile" -#: time/zic.c:1153 +#: time/zic.c:1151 msgid "illegal Rolling/Stationary field on Leap line" -msgstr "ungültiges »Rolling/Stationary«-Feld in der 'Leap'-Zeile" +msgstr "ungültiges »Rolling/Stationary«-Feld in der »Leap«-Zeile" -#: locale/programs/ld-collate.c:1767 +#: locale/programs/ld-collate.c:1770 msgid "illegal character constant in string" -msgstr "Nicht erlaubtes Zeichen in der Datei: " +msgstr "Ungültige Zeichen-Konstante in der Zeichenkette" -#: locale/programs/ld-collate.c:1116 +#: locale/programs/ld-collate.c:1119 msgid "illegal collation element" -msgstr "Nicht erlaubtes Zeichen in der Datei: " +msgstr "Ungültiges »collation«-Element" #: locale/programs/charmap.c:196 msgid "illegal definition" -msgstr "Ungültiger Maschinenbefehl" +msgstr "Ungültige Definition" #: locale/programs/charmap.c:349 msgid "illegal encoding given" @@ -2136,99 +2296,111 @@ msgstr "Ungültige Kodierung angegeben" #: locale/programs/linereader.c:546 msgid "illegal escape sequence at end of string" -msgstr "ungültige Escape-Sequenc am Ende des Strings" +msgstr "ungültige Escape-Sequenz am Ende der Zeichenkette" #: locale/programs/charset.c:101 msgid "illegal names for character range" -msgstr "Ungültige Namen für den Zeichen-Bereich" +msgstr "ungültige Namen für den Zeichen-Bereich" #: locale/programs/ld-time.c:176 #, c-format msgid "illegal number for offset in string %d in `era' field in category `%s'" -msgstr "ungültige Nummer für den Offset in der Zeichenkette %d im »era«-Feld in der Kategorie »%s«" +msgstr "" +"ungültige Nummer für den Offset in der Zeichenkette %d im »era«-Feld in der " +"Kategorie »%s«" -#: catgets/gencat.c:351 catgets/gencat.c:428 +#: catgets/gencat.c:352 catgets/gencat.c:429 msgid "illegal set number" -msgstr "Nicht erlaubter Seek" +msgstr "ungültige »set«-Nummer" #: locale/programs/ld-time.c:230 #, c-format msgid "illegal starting date in string %d in `era' field in category `%s'" -msgstr "ungültiges Start-Datum in der Zeichenkette %d im »era«-Feld in der Kategorie »%s«" +msgstr "" +"ungültiges Start-Datum in der Zeichenkette %d im »era«-Feld in der Kategorie " +"»%s«" -#: locale/programs/ld-time.c:302 +#: locale/programs/ld-time.c:303 #, c-format msgid "illegal stopping date in string %d in `era' field in category `%s'" -msgstr "ungültiges Ende-Datum in der Zeichenkette %d im »era«-Feld in der Kategorie »%s«" +msgstr "" +"ungültiges Ende-Datum in der Zeichenkette %d im »era«-Feld in der Kategorie " +"»%s«" -#: locale/programs/ld-ctype.c:807 +#: locale/programs/ld-ctype.c:812 #, c-format msgid "implementation limit: no more than %d character classes allowed" -msgstr "Limit der Implementation: Es sind nicht mehr als %d Zeichensatz-Klassen erlaubt" +msgstr "" +"Limit der Implementation: Es sind nicht mehr als %d Zeichen-Klassen erlaubt" -#: locale/programs/ld-ctype.c:839 +#: locale/programs/ld-ctype.c:844 #, c-format msgid "implementation limit: no more than %d character maps allowed" -msgstr "Limit der Implementation: Es sind nicht mehr als %d Zeichen-Maps erlaubt" +msgstr "" +"Limit der Implementation: Es sind nicht mehr als %d Zeichen-Maps erlaubt" #: db/makedb.c:163 msgid "incorrectly formatted file" -msgstr "ungültig formatierten Zeile" +msgstr "ungültig formatierte Datei" -#: time/zic.c:814 +#: time/zic.c:811 msgid "input line of unknown type" msgstr "Die Eingabezeile ist von einem unbekannten Typ" -#: time/zic.c:1733 +#: time/zic.c:1760 msgid "internal error - addtype called with bad isdst" -msgstr "Interner Fehler - »addtype« wurde mit einer ungültigen »isdst« aufgerufen" +msgstr "" +"Interner Fehler - »addtype« wurde mit einer ungültigen »isdst« aufgerufen" -#: time/zic.c:1741 +#: time/zic.c:1768 msgid "internal error - addtype called with bad ttisgmt" -msgstr "Interner Fehler - »addtype« wurde mit einem ungültigen »ttisgmt« aufgerufen" +msgstr "" +"Interner Fehler - »addtype« wurde mit einem ungültigen »ttisgmt« aufgerufen" -#: time/zic.c:1737 +#: time/zic.c:1764 msgid "internal error - addtype called with bad ttisstd" -msgstr "Interner Fehler - »addtype« wurde mit einem ungültigen »ttisstd« aufgerufen" +msgstr "" +"Interner Fehler - »addtype« wurde mit einem ungültigen »ttisstd« aufgerufen" -#: locale/programs/ld-ctype.c:301 +#: locale/programs/ld-ctype.c:304 #, c-format msgid "internal error in %s, line %u" msgstr "Interner Fehler in der Datei »%s«, Zeile %u" -#: time/zic.c:1021 +# Sollte das nicht UTC sein? -- jh +#: time/zic.c:1019 msgid "invalid GMT offset" msgstr "ungültiger GMT-Offset" -#: time/zic.c:1024 +#: time/zic.c:1022 msgid "invalid abbreviation format" msgstr "ungültiges Abkürzungsformat" -#: time/zic.c:1114 time/zic.c:1313 time/zic.c:1327 +#: time/zic.c:1112 time/zic.c:1313 time/zic.c:1327 msgid "invalid day of month" msgstr "Ungültiger Tag des Monats" -#: time/zic.c:1272 +#: time/zic.c:1270 msgid "invalid ending year" msgstr "Ungültiges Ende-Jahr" -#: time/zic.c:1086 +#: time/zic.c:1084 msgid "invalid leaping year" msgstr "Ungültiges Schaltjahr" -#: time/zic.c:1101 time/zic.c:1204 +#: time/zic.c:1099 time/zic.c:1202 msgid "invalid month name" msgstr "ungültiger Monatsname" -#: time/zic.c:920 +#: time/zic.c:918 msgid "invalid saved time" msgstr "Ungültige gespeicherte Zeit" -#: time/zic.c:1252 +#: time/zic.c:1250 msgid "invalid starting year" msgstr "Ungültiges Anfangsjahr" -#: time/zic.c:1130 time/zic.c:1232 +#: time/zic.c:1128 time/zic.c:1230 msgid "invalid time of day" msgstr "Ungültige Tageszeit" @@ -2236,61 +2408,70 @@ msgstr "Ungültige Tageszeit" msgid "invalid weekday name" msgstr "ungültiger Name für einen Wochentag" -#: locale/programs/ld-collate.c:1412 +#: locale/programs/ld-collate.c:1415 msgid "line after ellipsis must contain character definition" -msgstr "Die Zeile nach einem Auslassungintervall muß eine Zeichen-Definition enthalten" +msgstr "" +"Die Zeile nach einem Auslassungintervall muß eine Zeichen-Definition " +"enthalten" -#: locale/programs/ld-collate.c:1391 +#: locale/programs/ld-collate.c:1394 msgid "line before ellipsis does not contain definition for character constant" -msgstr "Die Zeile vor einem Auslassungsintervall muß eine Zeichen-Definition enthalten" +msgstr "" +"Die Zeile vor einem Auslassungsintervall muß eine Zeichen-Konstante enthalten" -#: time/zic.c:794 +#: time/zic.c:791 msgid "line too long" msgstr "Die Zeile ist zu lang" -#: locale/programs/localedef.c:281 +#: locale/programs/localedef.c:285 #, c-format msgid "locale file `%s', used in `copy' statement, not found" -msgstr "Die Lokale-Datei »%s«, die im »copy«-Befehl verwendet wird, ist nicht vorhanden" +msgstr "" +"Die Lokale-Datei »%s«, die im »copy«-Befehl verwendet wird, ist nicht " +"vorhanden" -#: catgets/gencat.c:609 +#: catgets/gencat.c:610 msgid "malformed line ignored" msgstr "ungültige Eingabezeile ignoriert" -#: malloc/mcheck.c:183 +#: malloc/mcheck.c:185 msgid "memory clobbered before allocated block" msgstr "Der Speicher vor dem allozierten Block wurde überschrieben" -#: malloc/mcheck.c:186 +#: malloc/mcheck.c:188 msgid "memory clobbered past end of allocated block" msgstr "Der Speicher nach dem Ende des allozierten Blockes wurde überschrieben" #: locale/programs/ld-collate.c:167 locale/programs/ld-collate.c:173 -#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1439 -#: locale/programs/ld-collate.c:1468 locale/programs/locfile.c:940 +#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1442 +#: locale/programs/ld-collate.c:1471 locale/programs/locfile.c:962 #: locale/programs/xmalloc.c:68 posix/getconf.c:250 msgid "memory exhausted" msgstr "Kein Hauptspeicher mehr verfügbar" -#: malloc/obstack.c:425 +#: malloc/obstack.c:462 msgid "memory exhausted\n" msgstr "Kein Hauptspeicher mehr verfügbar\n" -#: malloc/mcheck.c:180 +#: malloc/mcheck.c:182 msgid "memory is consistent, library is buggy" msgstr "Die Speicherverwaltung ist konsistent, die Bibliothek enthält Fehler" -#: locale/programs/ld-time.c:348 +#: locale/programs/ld-time.c:350 #, c-format msgid "missing era format in string %d in `era' field in category `%s'" -msgstr "fehlendes »era«-Format in der Zeichenkette %d im »era«-Feld in der Kategorie »%s«" +msgstr "" +"fehlendes »era«-Format in der Zeichenkette %d im »era«-Feld in der Kategorie " +"»%s«" -#: locale/programs/ld-time.c:337 +#: locale/programs/ld-time.c:339 #, c-format -msgid "missing era name in string %d in `era' fieldin category `%s'" -msgstr "fehlender »era«-Name in der Zeichenkette %d im »era« Feld in der Kategorie »%s«" +msgid "missing era name in string %d in `era' field in category `%s'" +msgstr "" +"fehlender »era«-Name in der Zeichenkette %d im »era« Feld in der Kategorie " +"»%s«" -#: time/zic.c:915 +#: time/zic.c:913 msgid "nameless rule" msgstr "Regel ohne Name" @@ -2302,21 +2483,25 @@ msgstr "Das Programm %d wurde nie registriert\n" #: 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 "Kein gültiger regulärer Ausdruck für den Eintrag »%s« in der Kategorie »%s«: %s" +msgstr "" +"Kein gültiger regulärer Ausdruck für den Eintrag »%s« in der Kategorie »%s«: " +"%s" -#: time/zic.c:2059 +#: time/zic.c:2086 msgid "no day in month matches rule" msgstr "Kein Tag des Monats paßt zur angegebenen Regel" -#: locale/programs/ld-collate.c:259 +#: locale/programs/ld-collate.c:260 msgid "no definition of `UNDEFINED'" msgstr "Keine Definition für »UNDEFINED«" -#: locale/programs/locfile.c:479 +#: locale/programs/locfile.c:501 msgid "no other keyword shall be specified when `copy' is used" -msgstr "Es dürfen keine anderen Schlüsselworte angegeben werden, wenn »copy« verwendet wird" +msgstr "" +"Es dürfen keine anderen Schlüsselworte angegeben werden, wenn »copy« " +"verwendet wird" -#: locale/programs/localedef.c:340 +#: locale/programs/localedef.c:344 msgid "no output file produced because warning were issued" msgstr "Es wurde keine Ausgabe-Datei erzeugt, weil Warnungen ausgegeben wurden" @@ -2328,18 +2513,18 @@ msgstr "Kein symbolischer Name angegeben" #: 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 "Kein symbolische Name für das Ende eines Intervalles angegeben" +msgstr "Kein symbolischer Name für das Ende des Intervalles angegeben" #: locale/programs/ld-collate.c:244 #, c-format msgid "no weight defined for symbol `%s'" -msgstr "Kein »Weight« für das Symbol »%s« definiert" +msgstr "Kein Sortiergewicht (»Weight«) für das Symbol »%s« definiert" #: locale/programs/charmap.c:430 msgid "only WIDTH definitions are allowed to follow the CHARMAP definition" msgstr "Nur »WIDTH«-Definitionen dürfen nach einer »CHARMAP«-Definition folgen" -#: db/makedb.c:326 +#: db/makedb.c:327 #, c-format msgid "problems while reading `%s'" msgstr "Probleme beim Lesen von »%s«" @@ -2360,16 +2545,16 @@ msgstr "Das Programm %lu ist in der Version %lu nicht verfügbar\n" msgid "program %lu version %lu ready and waiting\n" msgstr "Program %lu Version %lu ist bereit und wartet\n" -#: inet/rcmd.c:171 +#: inet/rcmd.c:172 #, c-format msgid "rcmd: select (setting up stderr): %m\n" msgstr "rcmd: select (Vorbereiten der Standard-Fehlerausgabe): %m\n" -#: inet/rcmd.c:103 +#: inet/rcmd.c:104 msgid "rcmd: socket: All ports in use\n" msgstr "rcmd: Socket: Alle Ports sind zur Zeit belegt\n" -#: inet/rcmd.c:159 +#: inet/rcmd.c:160 #, c-format msgid "rcmd: write (setting up stderr): %m\n" msgstr "rcmd: write (Vorbereiten der Standard-Fehlerausgabe): %m\n" @@ -2378,9 +2563,9 @@ msgstr "rcmd: write (Vorbereiten der Standard-Fehlerausgabe): %m\n" msgid "registerrpc: out of memory\n" msgstr "registerrpc: Hauptspeicher erschöpft\n" -#: time/zic.c:1794 +#: time/zic.c:1821 msgid "repeated leap second moment" -msgstr "Wiederholung der Leap-Sekunde" +msgstr "Wiederholung der »Leap«-Sekunde" #: sunrpc/rpcinfo.c:659 #, c-format @@ -2395,7 +2580,9 @@ msgstr "rpcinfo: »%s« ist ein unbekannter Service\n" #: sunrpc/rpcinfo.c:600 #, c-format msgid "rpcinfo: Could not delete registration for prog %s version %s\n" -msgstr "Kann das Programm »%s« Version »%s« nicht registrieren\n" +msgstr "" +"rpcinfo; Kann die Registrierung des Programms »%s« Version »%s« nicht " +"löschen\n" #: sunrpc/rpcinfo.c:576 #, c-format @@ -2410,47 +2597,54 @@ msgstr "rpcinfo: Kann den Portmapper nicht erreichen" msgid "rpcinfo: can't contact portmapper: " msgstr "rpcinfo: Kann den Portmapper nicht erreichen: " -#: time/zic.c:708 time/zic.c:710 +#: time/zic.c:704 time/zic.c:706 msgid "same rule name in multiple files" msgstr "Dieselbe Regel ist in mehreren Dateien enthalten" -#: inet/rcmd.c:174 +#: inet/rcmd.c:175 msgid "select: protocol failure in circuit setup\n" -msgstr "Select: Protokollfehler im Kreislauf-Setup\n" +msgstr "Select: Protokoll-Fehler im Kreislauf-Setup\n" -#: inet/rcmd.c:192 +#: inet/rcmd.c:193 msgid "socket: protocol failure in circuit setup\n" msgstr "socket: Protokoll-Fehler im Kreislauf-Setup\n" -#: locale/programs/locfile.c:600 +#: locale/programs/locfile.c:622 msgid "sorting order `forward' and `backward' are mutually exclusive" msgstr "Die Anweisungen »forward« und »backward« schließen sich aus" -#: locale/programs/ld-collate.c:1568 locale/programs/ld-collate.c:1614 -msgid "specification of sorting weight for collation symbol does not make sense" -msgstr "Die Angabe eines Sortier-Gewichtes für ein »Collation«-Symbol ist nicht sinnvoll" +#: locale/programs/ld-collate.c:1571 locale/programs/ld-collate.c:1617 +msgid "" +"specification of sorting weight for collation symbol does not make sense" +msgstr "" +"Die Angabe eines Sortiergewichtes für ein »Collation«-Symbol ist nicht " +"sinnvoll" -#: time/zic.c:779 +#: time/zic.c:775 msgid "standard input" msgstr "Standard-Eingabe" -#: time/zdump.c:260 +#: time/zdump.c:268 msgid "standard output" msgstr "Standard-Ausgabe" -#: locale/programs/ld-time.c:256 +#: locale/programs/ld-time.c:257 #, c-format msgid "starting date is illegal in string %d in `era' field in category `%s'" -msgstr "Das Start-Datum in der Zeichenkette %d im »era«-Feld der Kategorie »%s« ist ungültig" +msgstr "" +"Das Start-Datum in der Zeichenkette %d im »era«-Feld der Kategorie »%s« ist " +"ungültig" -#: time/zic.c:1276 +#: time/zic.c:1274 msgid "starting year greater than ending year" msgstr "Das Start-Jahr ist größer als das Ende-Jahr" -#: locale/programs/ld-time.c:328 +#: locale/programs/ld-time.c:330 #, c-format msgid "stopping date is illegal in string %d in `era' field in category `%s'" -msgstr "Das Ende-Datum in der Zeichenkette %d im »era«-Feld in der Kategorie »%s« ist ungültig" +msgstr "" +"Das Ende-Datum in der Zeichenkette %d im »era«-Feld in der Kategorie »%s« " +"ist ungültig" #: sunrpc/svc_tcp.c:201 sunrpc/svc_tcp.c:206 msgid "svc_tcp: makefd_xprt: out of memory\n" @@ -2476,30 +2670,48 @@ msgstr "svcudp_create - »getsockname« fehlgeschlagen" msgid "svcudp_create: socket creation problem" msgstr "svcudp_create: Problem bei der Erstellung des Sockets" -#: locale/programs/ld-collate.c:1191 +# Hat hier jemand eine bessere Übersetzung? -- jh +# Leider nein. Ich würde es nur groß schreiben und auch im folgenden üs. ke +#: locale/programs/ld-collate.c:1194 #, c-format -msgid "symbol for multicharacter collating element `%.*s' duplicates element definition" -msgstr "Das Symbol für das mehr-zeichen Collating-Element »%.*s« wiederholt die Element-Definition" +msgid "" +"symbol for multicharacter collating element `%.*s' duplicates element " +"definition" +msgstr "Das Symbol für das Mehr-Zeichen Collating-Element »%.*s« wiederholt die Element-Definition" -#: locale/programs/ld-collate.c:1064 +#: locale/programs/ld-collate.c:1067 #, c-format -msgid "symbol for multicharacter collating element `%.*s' duplicates other element definition" +msgid "" +"symbol for multicharacter collating element `%.*s' duplicates other element " +"definition" msgstr "Das Symbol für das 'multicharacter collating'-Element »%.*s« wiederholt eine andere Element-Definition" -#: locale/programs/ld-collate.c:1200 +#: locale/programs/ld-collate.c:1203 #, c-format -msgid "symbol for multicharacter collating element `%.*s' duplicates other symbol definition" -msgstr "Das Symbol für das 'multicharacter collating'-Element »%.*s« wiederholt eine andere Symbol-Definition" +msgid "" +"symbol for multicharacter collating element `%.*s' duplicates other symbol " +"definition" +msgstr "" +"Das Symbol für das 'multicharacter collating'-Element »%.*s« wiederholt eine " +"andere Symbol-Definition" -#: locale/programs/ld-collate.c:1073 +#: locale/programs/ld-collate.c:1076 #, c-format -msgid "symbol for multicharacter collating element `%.*s' duplicates symbol definition" -msgstr "Das Symbol für das 'multicharacter collating'-Element »%.*s« wiederholt eine Symbol-Definition" +msgid "" +"symbol for multicharacter collating element `%.*s' duplicates symbol " +"definition" +msgstr "" +"Das Symbol für das 'multicharacter collating'-Element »%.*s« wiederholt eine " +"Symbol-Definition" -#: locale/programs/ld-collate.c:1055 locale/programs/ld-collate.c:1182 +#: locale/programs/ld-collate.c:1058 locale/programs/ld-collate.c:1185 #, c-format -msgid "symbol for multicharacter collating element `%.*s' duplicates symbolic name in charset" -msgstr "Das Symbol für das 'multicharacter collating'-Element »%.*s« kollidiert mit einem symbolischen Namen in der Zeichensatzbeschreibung" +msgid "" +"symbol for multicharacter collating element `%.*s' duplicates symbolic name " +"in charset" +msgstr "" +"Das Symbol für das 'multicharacter collating'-Element »%.*s« kollidiert mit " +"einem symbolischen Namen in der Zeichensatzbeschreibung" #: locale/programs/charmap.c:314 locale/programs/charmap.c:348 #: locale/programs/charmap.c:378 locale/programs/charmap.c:465 @@ -2509,76 +2721,76 @@ msgstr "Das Symbol für das 'multicharacter collating'-Element »%.*s« kollidiert msgid "syntax error in %s definition: %s" msgstr "Syntaxfehler in der »%s«-Definition: %s" -#: locale/programs/locfile.c:620 +#: locale/programs/locfile.c:642 msgid "syntax error in `order_start' directive" msgstr "Syntaxfehler in der »order_start«-Anweisung" -#: locale/programs/locfile.c:362 +#: locale/programs/locfile.c:384 msgid "syntax error in character class definition" -msgstr "Syntaxfehler in der Zeichensatz-Definitionsdatei" +msgstr "Syntaxfehler in der Zeichenklassen-Definitionsdatei" -#: locale/programs/locfile.c:420 +#: locale/programs/locfile.c:442 msgid "syntax error in character conversion definition" -msgstr "Syntaxfehler in der Zeichensatz-Umwandlungs-Defintion" +msgstr "Syntaxfehler in der Zeichensatz-Umwandlungs-Definition" -#: locale/programs/locfile.c:662 +#: locale/programs/locfile.c:684 msgid "syntax error in collating order definition" msgstr "Syntaxfehler in der Definition der Sortierreihenfolge" -#: locale/programs/locfile.c:512 +#: locale/programs/locfile.c:534 msgid "syntax error in collation definition" msgstr "Syntaxfehler in der Definition der Sortierung" -#: locale/programs/locfile.c:335 +#: locale/programs/locfile.c:357 msgid "syntax error in definition of LC_CTYPE category" msgstr "Syntaxfehler in der Definition der »LC_CTYPE«-Kategorie" -#: locale/programs/locfile.c:278 +#: locale/programs/locfile.c:300 msgid "syntax error in definition of new character class" msgstr "Syntaxfehler in der Definition einer neuen Zeichenklasse" -#: locale/programs/locfile.c:288 +#: locale/programs/locfile.c:310 msgid "syntax error in definition of new character map" msgstr "Syntaxfehler in der Definition eines neuen Zeichensatzes" -#: locale/programs/locfile.c:873 +#: locale/programs/locfile.c:895 msgid "syntax error in message locale definition" -msgstr "Syntaxfehler in der Lokale-Definitionsdatei" +msgstr "Syntaxfehler in der Lokale-Definitionsdatei, Abschnitt »message«" -#: locale/programs/locfile.c:784 +#: locale/programs/locfile.c:806 msgid "syntax error in monetary locale definition" -msgstr "Syntaxfehler in der Lokale-Definitionsdatei" +msgstr "Syntaxfehler in der Lokale-Definitionsdatei, Abschnitt »monetary«" -#: locale/programs/locfile.c:811 +#: locale/programs/locfile.c:833 msgid "syntax error in numeric locale definition" -msgstr "Syntaxfehler in der Lokale-Definitionsdatei" +msgstr "Syntaxfehler in der Lokale-Definitionsdatei, Abschnitt »numeric«" -#: locale/programs/locfile.c:722 +#: locale/programs/locfile.c:744 msgid "syntax error in order specification" -msgstr "Syntaxfehler in der Lokale-Definitionsdatei" +msgstr "Syntaxfehler in der Lokale-Definitionsdatei, Abschnitt »order«" #: locale/programs/charmap.c:195 locale/programs/charmap.c:211 #, c-format msgid "syntax error in prolog: %s" msgstr "Syntax-Fehler im Prolog: %s" -#: locale/programs/locfile.c:849 +#: locale/programs/locfile.c:871 msgid "syntax error in time locale definition" -msgstr "Syntaxfehler in der Lokale-Definition zur Zeit" +msgstr "Syntaxfehler in der Lokale-Definition zur Zeit (Abschnitt »time«)" -#: locale/programs/locfile.c:255 +#: locale/programs/locfile.c:277 msgid "syntax error: not inside a locale definition section" -msgstr "Syntaxfehler: nicht in der in der Lokale-Definition" +msgstr "Syntaxfehler: nicht in einem Abschnitt der Lokale-Definition" -#: catgets/gencat.c:380 catgets/gencat.c:516 catgets/gencat.c:543 +#: catgets/gencat.c:381 catgets/gencat.c:517 catgets/gencat.c:544 msgid "this is the first definition" msgstr "Dies ist die erste Definition" -#: time/zic.c:1119 +#: time/zic.c:1117 msgid "time before zero" msgstr "Zeit vor Null" -#: time/zic.c:1127 time/zic.c:1959 time/zic.c:1978 +#: time/zic.c:1125 time/zic.c:1986 time/zic.c:2005 msgid "time overflow" msgstr "Überlauf der Zeit" @@ -2592,25 +2804,25 @@ msgstr "Zu viele Bytes in der Zeichen-Kodierung" #: locale/programs/locales.h:72 msgid "too many character classes defined" -msgstr "Zu viele Zeichenklasse definiert" +msgstr "Zu viele Zeichenklassen definiert" -#: time/zic.c:1788 +#: time/zic.c:1815 msgid "too many leap seconds" msgstr "Zu viele Schaltsekunden" -#: time/zic.c:1760 +#: time/zic.c:1787 msgid "too many local time types" msgstr "Zu viele lokale Zeit-Typen" -#: time/zic.c:1714 +#: time/zic.c:1741 msgid "too many transitions?!" msgstr "Zu viele Übergänge?!" -#: locale/programs/ld-collate.c:1623 +#: locale/programs/ld-collate.c:1626 msgid "too many weights" -msgstr "Zu viele Sortier-Gewichte" +msgstr "Zu viele Sortiergewichte" -#: time/zic.c:2082 +#: time/zic.c:2109 msgid "too many, or too long, time zone abbreviations" msgstr "Zu viele oder zu lange Abkürzungen für Zeitzonen" @@ -2623,11 +2835,11 @@ msgstr "Am Zeilenende sind unsinnige Einträge" msgid "trouble replying to prog %d\n" msgstr "Schwierigkeiten bei der Antwort an das Programm %d\n" -#: locale/programs/ld-collate.c:1383 +#: locale/programs/ld-collate.c:1386 msgid "two lines in a row containing `...' are not allowed" -msgstr "Zwei aufeinanderfolgende Zeilen mit '...' sind nicht erlaubt" +msgstr "Zwei aufeinanderfolgende Zeilen mit »...« sind nicht erlaubt" -#: time/zic.c:1283 +#: time/zic.c:1281 msgid "typed single year" msgstr "Ein einzelnes Jahr angegeben" @@ -2642,41 +2854,38 @@ msgstr "unbekanntes Zeichen »%s«" #: locale/programs/ld-messages.c:193 locale/programs/ld-messages.c:204 #: locale/programs/ld-messages.c:215 locale/programs/ld-messages.c:226 -#: locale/programs/ld-time.c:696 +#: locale/programs/ld-time.c:698 #, c-format msgid "unknown character in field `%s' of category `%s'" msgstr "Ungültiges Zeichen im Feld »%s« in der Kategorie »%s«" -#: locale/programs/locfile.c:585 +#: locale/programs/locfile.c:607 msgid "unknown collation directive" msgstr "unbekannte »collation«-Anweisung" -#: catgets/gencat.c:477 +#: catgets/gencat.c:478 #, c-format msgid "unknown directive `%s': line ignored" msgstr "unbekannte Anweisung »%s«: Die Zeile wurde ignoriert" -#: catgets/gencat.c:456 +#: catgets/gencat.c:457 #, c-format msgid "unknown set `%s'" msgstr "Unbekanntes Set »%s«" -msgid "unknown signal" -msgstr "Unbekanntes Signal" - -#: locale/programs/ld-collate.c:1367 locale/programs/ld-collate.c:1558 -#: locale/programs/ld-collate.c:1732 +#: locale/programs/ld-collate.c:1370 locale/programs/ld-collate.c:1561 +#: locale/programs/ld-collate.c:1735 #, c-format msgid "unknown symbol `%.*s': line ignored" msgstr "Unbekanntes Symbol »%.*s«: Die Zeile wurde ignoriert" -#: time/zic.c:751 +#: time/zic.c:747 msgid "unruly zone" msgstr "Zeitzone ohne Regeln" -#: catgets/gencat.c:961 +#: catgets/gencat.c:962 msgid "unterminated message" -msgstr "Zeichenkette wird nicht beendet" +msgstr "Die Nachricht ist nicht abgeschlossen" #: locale/programs/linereader.c:515 locale/programs/linereader.c:550 msgid "unterminated string" @@ -2686,7 +2895,7 @@ msgstr "Zeichenkette wird nicht beendet" msgid "unterminated symbolic name" msgstr "Der symbolische Name wird nicht beendet" -#: locale/programs/ld-collate.c:1685 +#: locale/programs/ld-collate.c:1688 msgid "unterminated weight name" msgstr "Der Name des Sortier-Gewichtes wird nicht beendet" @@ -2694,7 +2903,7 @@ msgstr "Der Name des Sortier-Gewichtes wird nicht beendet" msgid "upper limit in range is not smaller then lower limit" msgstr "Das obere Ende des Intervalls ist nicht kleiner als das untere Ende" -#: time/zic.c:2025 +#: time/zic.c:2052 msgid "use of 2/29 in non leap-year" msgstr "Der 29. Februar wurde in einem nicht-Schaltjahr verwendet" @@ -2706,31 +2915,41 @@ msgstr "Der Wert für »%s« muß eine Ganzzahl sein" #: locale/programs/charmap.c:233 #, c-format msgid "value for <%s> must lie between 1 and 4" -msgstr "Der Wert für <%s> muß zwischen eins und vier liegen" +msgstr "Der Wert für »<%s>« muß zwischen eins und vier liegen" -#: locale/programs/ld-monetary.c:148 locale/programs/ld-numeric.c:89 +#: locale/programs/ld-monetary.c:149 locale/programs/ld-numeric.c:89 #, c-format msgid "value for field `%s' in category `%s' must not be the empty string" -msgstr "Der Eintrag für das Feld »%s« in der Kategorie »%s« darf nicht leer sein" +msgstr "" +"Der Eintrag für das Feld »%s« in der Kategorie »%s« darf nicht leer sein" #: locale/programs/charmap.c:245 msgid "value of <mb_cur_max> must be greater than the value of <mb_cur_min>" -msgstr "Der Wert von »<mb_cur_max>« muß größer als der Wert von »<mb_cur_min>« sein" +msgstr "" +"Der Wert von »<mb_cur_max>« muß größer als der Wert von »<mb_cur_min>« sein" -#: 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 "Der Wert im Feld »int_surr_symbol« in der Kategorie »LC_MONETARY«gehört nicht zu einem gültigen Namen in ISO-4217" +#: locale/programs/ld-monetary.c:139 +msgid "" +"value of field `int_curr_symbol' in category `LC_MONETARY' does not " +"correspond to a valid name in ISO 4217" +msgstr "" +"Der Wert im Feld »int_curr_symbol« in der Kategorie »LC_MONETARY« gehört " +"nicht zu einem gültigen Namen in ISO-4217" #: locale/programs/ld-monetary.c:133 -msgid "value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length" -msgstr "Der Wert im Feld »int_curr_symbol« in der Kategorie »LC_MONETARY« hat die falsche Länge" +msgid "" +"value of field `int_curr_symbol' in category `LC_MONETARY' has wrong length" +msgstr "" +"Der Wert im Feld »int_curr_symbol« in der Kategorie »LC_MONETARY« hat die " +"falsche Länge" -#: locale/programs/ld-monetary.c:370 locale/programs/ld-numeric.c:199 +#: locale/programs/ld-monetary.c:371 locale/programs/ld-numeric.c:199 #, c-format msgid "values for field `%s' in category `%s' must be smaller than 127" -msgstr "Der Wert für den Eintrag »%s« in der Kategorie »%s« muß kleiner als 127 sein." +msgstr "" +"Der Wert für den Eintrag »%s« in der Kategorie »%s« muß kleiner als 127 sein." -#: locale/programs/ld-monetary.c:366 +#: locale/programs/ld-monetary.c:367 #, c-format msgid "values for field `%s' in category `%s' must not be zero" msgstr "Der Eintrag im Feld »%s« in der Kategorie »%s« darf nicht Null sein" @@ -2739,165 +2958,47 @@ msgstr "Der Eintrag im Feld »%s« in der Kategorie »%s« darf nicht Null sein" msgid "while opening UTMP file" msgstr "beim Öffnen der UTMP-Datei" -#: catgets/gencat.c:988 +#: catgets/gencat.c:989 msgid "while opening old catalog file" msgstr "beim Öffnen der alten Katalog-Datei" -#: db/makedb.c:353 +#: db/makedb.c:354 msgid "while reading database" msgstr "beim Lesen der Datenbank" -#: db/makedb.c:315 +#: db/makedb.c:316 msgid "while writing data base file" -msgstr "beim Schreiben der Datenbak-Datei" +msgstr "beim Schreiben der Datenbank-Datei" #: db/makedb.c:142 msgid "wrong number of arguments" msgstr "Falsche Anzahl an Argumenten" -#: time/zic.c:1077 +#: time/zic.c:1075 msgid "wrong number of fields on Leap line" msgstr "Falsche Anzahl an Feldern in der Leap-Zeile" -#: time/zic.c:1168 +#: time/zic.c:1166 msgid "wrong number of fields on Link line" msgstr "Falsche Anzahl der Felder in der Link-Zeile" -#: time/zic.c:911 +#: time/zic.c:909 msgid "wrong number of fields on Rule line" msgstr "Falsche Anzahl der Felder in der Rule-Zeile" -#: time/zic.c:981 +#: time/zic.c:979 msgid "wrong number of fields on Zone continuation line" msgstr "Falsche Anzahl der Felder in der Zeitzonen-Fortsetzungszeile" -#: time/zic.c:939 +#: time/zic.c:937 msgid "wrong number of fields on Zone line" msgstr "Falsche Anzahl an Feldern in der Zone-Zeile" -#: nis/ypclnt.c:570 -msgid "yp_all: clnttcp_create failed" -msgstr "yp_all: »clnttcp_create« fehlgeschlagen" - -#: nis/ypclnt.c:772 +#: nis/ypclnt.c:811 msgid "yp_update: cannot convert host to netname\n" msgstr "yp_update: Kann den Rechnername nicht in einen Netzname umwandeln\n" -#: nis/ypclnt.c:784 +#: nis/ypclnt.c:823 msgid "yp_update: cannot get server address\n" -msgstr "yp_update: Kann die Adresse des Servss nicht finden\n" - -#~ msgid "variable-length array declaration expected" -#~ msgstr "Deklaration einer variabel langen Tabelle erwartet" - -#~ msgid "couldn't do tcp_create\n" -#~ msgstr "Kann keinen RPC-Server erzeugen\n" - -#~ msgid " %s [-s udp|tcp]* [-o outfile] [infile]\n" -#~ msgstr " %s [-s udp|tcp]* [-o Ausgabedatei] [Eingabedatei]\n" - -#~ msgid "%s: output would overwrite %s\n" -#~ msgstr "%s: Die Ausgabe würde %s überschreiben\n" - -#~ msgid "illegal character in file: " -#~ msgstr "Nicht erlaubtes Zeichen in der Datei: " - -#~ msgid "too many files!\n" -#~ msgstr "Zu viele Dateien!\n" - -#~ msgid "voids allowed only inside union and program definitions" -#~ msgstr "`void' ist nur innerhalb von `union'- oder `program'-Definitionen erlaubt" - -#~ msgid "rcmd: select (setting up stderr): %s\n" -#~ msgstr "rcmd: Select (Einrichten der Standardfehlerausgabe): %s\n" - -#~ msgid "%s: unable to open " -#~ msgstr "%s: kann nicht geöffnet werden " - -#~ msgid "character `%c' not defined while needed as default value" -#~ msgstr "Das Zeichen `%s' ist nicht definiert, wird aber als Vorgabewert benötigt" - -#~ msgid "expected type specifier" -#~ msgstr "Type-Bezeichner erwartet" - -#~ msgid "rcmd: write (setting up stderr): %s\n" -#~ msgstr "rcmd: Write (Einrichten der Standardfehlerausgabe): %s\n" - -#~ msgid "expected '%s', '%s' or '%s'" -#~ msgstr "'%s', '%s' oder '%s' erwartet" - -#~ msgid "usage: %s infile\n" -#~ msgstr "Aufruf: %s Eingabedatei\n" - -#~ msgid "preprocessor error" -#~ msgstr "Fehler des Präprozessors" - -#~ msgid "array declaration expected" -#~ msgstr "Tabellendeklaration erwartet" - -#~ msgid "socket: protocol failure in circuit setup.\n" -#~ msgstr "Socket: Protokollfehler im Kreislauf-Setup.\n" - -#~ msgid "couldn't do udp_create\n" -#~ msgstr "Kann keinen RPC-Server erzeugen\n" - -#~ msgid "collation symbol `.*s' appears more than once: ignore line" -#~ msgstr "Das 'collation'-Symbol `.*s' ist mehr als einmal angegeben: Die Zeile wird ignorier" - -#~ msgid "unterminated string constant" -#~ msgstr "Zeichenkette wird nicht beendet" - -#~ msgid "expected '%s'" -#~ msgstr "'%s' erwartet" - -#~ msgid "illegal result type" -#~ msgstr "Nicht erlaubter Ergebnistyp" - -#~ msgid "no array-of-pointer declarations -- use typedef" -#~ msgstr "Kein Definition einer Tabelle von \"Zeigern\" -- Verwenden Sie \"typedef\"" - -#~ msgid "definition keyword expected" -#~ msgstr "Keyword-Definition erwartet" - -#~ msgid "constant or identifier expected" -#~ msgstr "Konstante oder Bezeichner erwartet" - -#~ msgid " %s [-c | -h | -l | -m] [-o outfile] [infile]\n" -#~ msgstr " %s [-c | -h | -l | -m] [-o Ausgabedatei] [Eingabedatei]\n" - -#~ msgid "%s, line %d: " -#~ msgstr "%s, Zeile %d: " - -#~ 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 "" -#~ "Syntax: %s [Option]... -o Ausgabe-Datei [Eingabe-Datei]...\n" -#~ " %s [Option]... [Ausgabe-Datei [Eingabe-Datei]...]\n" -#~ "\n" -#~ "Notwendige Argumente zu langen Optionen sind auch bei kurzen erforderlich.\n" -#~ "\n" -#~ " -H, --header erzeuge C-Header-Datein mit Symbol-Definitionen\n" -#~ " -h, --help zeige diese Hilfe an\n" -#~ " --new verwende keinen bestehendn Katalog, sondern erzeuge \n" -#~ " einen neuen\n" -#~ " -o, --output=Name Die Ausgabe-Datei heißt 'Name'\n" -#~ " -V, --version gebe die Versionsnummer aus\n" -#~ "\n" -#~ "Wenn '-' als Eingabe-Datei angegeben wird, dann wird von der Standard-Eingabe\n" -#~ "gelesen. Wenn '-' als Ausgabe-Datei angegeben wird, dann wird auf die\n" -#~ "Standard-Ausgabe geschrieben.\n" -#~ "\n" -#~ "Fehler bitte an <bug-glibc@prep.ai.mit.edu> melden.\n" +msgstr "yp_update: Kann die Adresse des Servers nicht finden\n" -#~ msgid "Not a data message" -#~ msgstr "Keine Nachricht mit Daten" diff --git a/signal/signal.h b/signal/signal.h index df54e7940d..995567eed8 100644 --- a/signal/signal.h +++ b/signal/signal.h @@ -233,8 +233,8 @@ extern int sigwait __P ((__const sigset_t *__set, int *__sig)); /* Names of the signals. This variable exists only for compatibility. Use `strsignal' instead (see <string.h>). */ -extern __const char *__const _sys_siglist[NSIG]; -extern __const char *__const sys_siglist[NSIG]; +extern __const char *__const _sys_siglist[_NSIG]; +extern __const char *__const sys_siglist[_NSIG]; /* Structure passed to `sigvec'. */ struct sigvec diff --git a/stdio-common/printf_size.c b/stdio-common/printf_size.c index 6a870127af..794b411ef5 100644 --- a/stdio-common/printf_size.c +++ b/stdio-common/printf_size.c @@ -94,10 +94,12 @@ int printf_size (FILE *fp, const struct printf_info *info, const void *const *args) { /* Units for the both formats. */ - static const char units[2][8] = +#define BINARY_UNITS " kmgtpezy" +#define DECIMAL_UNITS " KMGTPEZY" + static const char units[2][sizeof (BINARY_UNITS)] = { - " kmgtpezy", /* For binary format. */ - " KMGTPEZY" /* For decimal format. */ + BINARY_UNITS, /* For binary format. */ + DECIMAL_UNITS /* For decimal format. */ }; const char *tag = units[isupper (info->spec) != 0]; int divisor = isupper (info->spec) ? 1000 : 1024; diff --git a/stdlib/lcong48_r.c b/stdlib/lcong48_r.c index c7baa3815f..ac30d7941a 100644 --- a/stdlib/lcong48_r.c +++ b/stdlib/lcong48_r.c @@ -19,6 +19,7 @@ #include <stdlib.h> #include <string.h> +#include <limits.h> int __lcong48_r (param, buffer) diff --git a/stdlib/random_r.c b/stdlib/random_r.c index d19fd1755b..677aa21ba5 100644 --- a/stdlib/random_r.c +++ b/stdlib/random_r.c @@ -127,7 +127,8 @@ __srandom_r (x, buf) if (buf == NULL || buf->rand_type < TYPE_0 || buf->rand_type > TYPE_4) return -1; - buf->state[0] = x; + /* We must make sure the seed is not 0. Take arbitrarily 1 in this case. */ + buf->state[0] = x ? x : 1; if (buf->rand_type != TYPE_0) { long int i; diff --git a/stdlib/seed48_r.c b/stdlib/seed48_r.c index 31a5856a94..ec3a3ec561 100644 --- a/stdlib/seed48_r.c +++ b/stdlib/seed48_r.c @@ -19,6 +19,7 @@ #include <stdlib.h> #include <string.h> +#include <limits.h> int __seed48_r (seed16v, buffer) diff --git a/sysdeps/generic/sigset.h b/sysdeps/generic/sigset.h index 6f4ea0e5a8..9fad4538d7 100644 --- a/sysdeps/generic/sigset.h +++ b/sysdeps/generic/sigset.h @@ -51,9 +51,9 @@ typedef unsigned long int __sigset_t; #ifdef _GNU_SOURCE # define __sigisemptyset(set) (*(set) == (__sigset_t) 0) # define __sigandset(dest, left, right) \ - ((*(set) = (*(left) & *(right))), 0) + ((*(dest) = (*(left) & *(right))), 0) # define __sigorset(dest, left, right) \ - ((*(set) = (*(left) | *(right))), 0) + ((*(dest) = (*(left) | *(right))), 0) #endif /* These functions needn't check for a bogus signal number -- error diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index f6b28444a3..7b3336588d 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -55,14 +55,14 @@ static inline Elf32_Addr __attribute__ ((unused)) elf_machine_load_address (void) { Elf32_Addr addr; - asm (" call here\n" - "here: popl %0\n" - " subl $here, %0" + asm (" call .Lhere\n" + ".Lhere: popl %0\n" + " subl $.Lhere, %0" : "=r" (addr)); return addr; } /* The `subl' insn above will contain an R_386_32 relocation entry - intended to insert the run-time address of the label `here'. + intended to insert the run-time address of the label `.Lhere'. This will be the first relocation in the text of the dynamic linker; we skip it to avoid trying to modify read-only text in this early stage. */ #define ELF_MACHINE_BEFORE_RTLD_RELOC(dynamic_info) \ diff --git a/sysdeps/libm-i387/e_pow.S b/sysdeps/libm-i387/e_pow.S index e665326438..45c41b48ab 100644 --- a/sysdeps/libm-i387/e_pow.S +++ b/sysdeps/libm-i387/e_pow.S @@ -48,9 +48,6 @@ one: .double 1.0 ASM_TYPE_DIRECTIVE(limit,@object) limit: .double 0.29 ASM_SIZE_DIRECTIVE(limit) - ASM_TYPE_DIRECTIVE(nan,@object) -nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f - ASM_SIZE_DIRECTIVE(nan) #ifdef PIC #define MO(op) op##@GOTOFF(%ecx) @@ -191,8 +188,8 @@ ENTRY(__ieee754_pow) ret .align ALIGNARG(4) -14: fldl MO(nan) - faddl MO(zero) // raise invalid exception +14: fldl MO(infinity) + fmull MO(zero) // raise invalid exception ret .align ALIGNARG(4) diff --git a/sysdeps/libm-i387/e_powf.S b/sysdeps/libm-i387/e_powf.S index 102cd4e3af..d7342bf56f 100644 --- a/sysdeps/libm-i387/e_powf.S +++ b/sysdeps/libm-i387/e_powf.S @@ -48,9 +48,6 @@ one: .double 1.0 ASM_TYPE_DIRECTIVE(limit,@object) limit: .double 0.29 ASM_SIZE_DIRECTIVE(limit) - ASM_TYPE_DIRECTIVE(nan,@object) -nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f - ASM_SIZE_DIRECTIVE(nan) #ifdef PIC #define MO(op) op##@GOTOFF(%ecx) @@ -187,8 +184,8 @@ ENTRY(__ieee754_powf) ret .align ALIGNARG(4) -14: fldl MO(nan) - faddl MO(zero) // raise invalid exception +14: fldl MO(infinity) + fmull MO(zero) // raise invalid exception ret .align ALIGNARG(4) diff --git a/sysdeps/libm-i387/e_powl.S b/sysdeps/libm-i387/e_powl.S index dba725aa77..0ea4829822 100644 --- a/sysdeps/libm-i387/e_powl.S +++ b/sysdeps/libm-i387/e_powl.S @@ -48,9 +48,6 @@ one: .double 1.0 ASM_TYPE_DIRECTIVE(limit,@object) limit: .double 0.29 ASM_SIZE_DIRECTIVE(limit) - ASM_TYPE_DIRECTIVE(nan,@object) -nan: .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f - ASM_SIZE_DIRECTIVE(nan) #ifdef PIC #define MO(op) op##@GOTOFF(%ecx) @@ -191,8 +188,8 @@ ENTRY(__ieee754_powl) ret .align ALIGNARG(4) -14: fldl MO(nan) - faddl MO(zero) // raise invalid exception +14: fldl MO(infinity) + fmull MO(zero) // raise invalid exception ret .align ALIGNARG(4) diff --git a/sysdeps/libm-i387/s_cexp.S b/sysdeps/libm-i387/s_cexp.S index 48e002b2f6..5630d3cb65 100644 --- a/sysdeps/libm-i387/s_cexp.S +++ b/sysdeps/libm-i387/s_cexp.S @@ -31,7 +31,8 @@ huge_nan_null_null: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f .double 0.0 - .double 0.0 +zero: .double 0.0 +infinity: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f .double 0.0 @@ -90,7 +91,7 @@ ENTRY(__cexp) Check your FPU manual for more information. */ andb $0x01, %ah cmpb $0x01, %ah - je 2f + je 20f /* We have finite numbers in the real and imaginary part. Do the real work now. */ @@ -139,9 +140,8 @@ ENTRY(__cexp) 1: fxam /* y : x */ fnstsw movb %ah, %dl - andb $0x01, %ah /* See above why 0x01 is usable here. */ - cmpb $0x01, %ah - je 3f + testb $0x01, %ah /* See above why 0x01 is usable here. */ + jne 3f /* The real part is +-Inf and the imaginary part is finite. */ @@ -220,7 +220,14 @@ ENTRY(__cexp) .align ALIGNARG(4) 3: fstp %st(0) fstp %st(0) /* <empty> */ - movl %edx, %eax + andb $0x45, %ah + andb $0x47, %dh + xorb %dh, %ah + jnz 30f + fldl MO(infinity) /* Raise invalid exception. */ + fmull MO(zero) + fstp %st(0) +30: movl %edx, %eax shrl $5, %edx shll $4, %eax andl $16, %edx @@ -236,6 +243,9 @@ ENTRY(__cexp) /* The real part is NaN. */ .align ALIGNARG(4) +20: fldl MO(infinity) /* Raise invalid exception. */ + fmull MO(zero) + fstp %st(0) 2: fstp %st(0) fstp %st(0) movl 4(%esp), %eax /* Pointer to memory for result. */ diff --git a/sysdeps/libm-i387/s_cexpf.S b/sysdeps/libm-i387/s_cexpf.S index 6fd414b045..d6dcebcb23 100644 --- a/sysdeps/libm-i387/s_cexpf.S +++ b/sysdeps/libm-i387/s_cexpf.S @@ -31,7 +31,8 @@ huge_nan_null_null: .byte 0, 0, 0x80, 0x7f .byte 0, 0, 0xc0, 0x7f .float 0.0 - .float 0.0 +zero: .float 0.0 +infinity: .byte 0, 0, 0x80, 0x7f .byte 0, 0, 0xc0, 0x7f .float 0.0 @@ -90,7 +91,7 @@ ENTRY(__cexpf) Check your FPU manual for more information. */ andb $0x01, %ah cmpb $0x01, %ah - je 2f + je 20f /* We have finite numbers in the real and imaginary part. Do the real work now. */ @@ -143,9 +144,8 @@ ENTRY(__cexpf) 1: fxam /* y : x */ fnstsw movb %ah, %dl - andb $0x01, %ah /* See above why 0x01 is usable here. */ - cmpb $0x01, %ah - je 3f + testb $0x01, %ah /* See above why 0x01 is usable here. */ + jne 3f /* The real part is +-Inf and the imaginary part is finite. */ @@ -222,7 +222,14 @@ ENTRY(__cexpf) .align ALIGNARG(4) 3: fstp %st(0) fstp %st(0) /* <empty> */ - movl %edx, %eax + andb $0x45, %ah + andb $0x47, %dh + xorb %dh, %ah + jnz 30f + flds MO(infinity) /* Raise invalid exception. */ + fmuls MO(zero) + fstp %st(0) +30: movl %edx, %eax shrl $6, %edx shll $3, %eax andl $8, %edx @@ -235,6 +242,9 @@ ENTRY(__cexpf) /* The real part is NaN. */ .align ALIGNARG(4) +20: flds MO(infinity) /* Raise invalid exception. */ + fmuls MO(zero) + fstp %st(0) 2: fstp %st(0) fstp %st(0) movl MO(huge_nan_null_null+4), %eax diff --git a/sysdeps/libm-i387/s_cexpl.S b/sysdeps/libm-i387/s_cexpl.S index fa31e74162..11c05c52e6 100644 --- a/sysdeps/libm-i387/s_cexpl.S +++ b/sysdeps/libm-i387/s_cexpl.S @@ -31,7 +31,8 @@ huge_nan_null_null: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f .double 0.0 - .double 0.0 +zero: .double 0.0 +infinity: .byte 0, 0, 0, 0, 0, 0, 0xf0, 0x7f .byte 0, 0, 0, 0, 0, 0, 0xff, 0x7f .double 0.0 @@ -90,7 +91,7 @@ ENTRY(__cexpl) Check your FPU manual for more information. */ andb $0x01, %ah cmpb $0x01, %ah - je 2f + je 20f /* We have finite numbers in the real and imaginary part. Do the real work now. */ @@ -139,9 +140,8 @@ ENTRY(__cexpl) 1: fxam /* y : x */ fnstsw movb %ah, %dl - andb $0x01, %ah /* See above why 0x01 is usable here. */ - cmpb $0x01, %ah - je 3f + testb $0x01, %ah /* See above why 0x01 is usable here. */ + jne 3f /* The real part is +-Inf and the imaginary part is finite. */ @@ -220,7 +220,14 @@ ENTRY(__cexpl) .align ALIGNARG(4) 3: fstp %st(0) fstp %st(0) /* <empty> */ - movl %edx, %eax + andb $0x45, %ah + andb $0x47, %dh + xorb %dh, %ah + jnz 30f + fldl MO(infinity) /* Raise invalid exception. */ + fmull MO(zero) + fstp %st(0) +30: movl %edx, %eax shrl $5, %edx shll $4, %eax andl $16, %edx @@ -236,6 +243,9 @@ ENTRY(__cexpl) /* The real part is NaN. */ .align ALIGNARG(4) +20: fldl MO(infinity) /* Raise invalid exception. */ + fmull MO(zero) + fstp %st(0) 2: fstp %st(0) fstp %st(0) movl 4(%esp), %eax /* Pointer to memory for result. */ diff --git a/sysdeps/libm-ieee754/s_ccos.c b/sysdeps/libm-ieee754/s_ccos.c index 8a4b55dd99..f8dfcc8af6 100644 --- a/sysdeps/libm-ieee754/s_ccos.c +++ b/sysdeps/libm-ieee754/s_ccos.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> @@ -33,16 +34,31 @@ __ccos (__complex__ double x) { __real__ res = __nan (""); __imag__ res = 0.0; + +#ifdef FE_INVALID + if (__isinf (__real__ x)) + feraiseexcept (FE_INVALID); +#endif } else if (__isinf (__imag__ x)) { __real__ res = HUGE_VAL; __imag__ res = __nan (""); + +#ifdef FE_INVALID + if (__isinf (__real__ x)) + feraiseexcept (FE_INVALID); +#endif } else { __real__ res = __nan (""); __imag__ res = __nan (""); + +#ifdef FE_INVALID + if (isfinite (__imag__ x)) + feraiseexcept (FE_INVALID); +#endif } } else diff --git a/sysdeps/libm-ieee754/s_ccosf.c b/sysdeps/libm-ieee754/s_ccosf.c index 9d1a97239c..b090ae5747 100644 --- a/sysdeps/libm-ieee754/s_ccosf.c +++ b/sysdeps/libm-ieee754/s_ccosf.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> @@ -33,16 +34,31 @@ __ccosf (__complex__ float x) { __real__ res = __nanf (""); __imag__ res = 0.0; + +#ifdef FE_INVALID + if (__isinff (__real__ x)) + feraiseexcept (FE_INVALID); +#endif } else if (__isinff (__imag__ x)) { __real__ res = HUGE_VALF; __imag__ res = __nanf (""); + +#ifdef FE_INVALID + if (__isinff (__real__ x)) + feraiseexcept (FE_INVALID); +#endif } else { __real__ res = __nanf (""); __imag__ res = __nanf (""); + +#ifdef FE_INVALID + if (isfinite (__imag__ x)) + feraiseexcept (FE_INVALID); +#endif } } else diff --git a/sysdeps/libm-ieee754/s_ccosh.c b/sysdeps/libm-ieee754/s_ccosh.c index fa958f491b..1e92f03771 100644 --- a/sysdeps/libm-ieee754/s_ccosh.c +++ b/sysdeps/libm-ieee754/s_ccosh.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> #include "math_private.h" @@ -39,18 +40,24 @@ __ccosh (__complex__ double x) if (icls >= FP_ZERO) { /* Imaginary part is finite. */ + double sinh_val = __ieee754_sinh (__real__ x); double cosh_val = __ieee754_cosh (__real__ x); double sinix, cosix; __sincos (__imag__ x, &sinix, &cosix); __real__ retval = cosh_val * cosix; - __imag__ retval = cosh_val * sinix; + __imag__ retval = sinh_val * sinix; } else { __imag__ retval = __real__ x == 0.0 ? 0.0 : __nan (""); __real__ retval = __nan ("") + __nan (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } } else if (rcls == FP_INFINITE) @@ -77,6 +84,11 @@ __ccosh (__complex__ double x) /* The addition raises the invalid exception. */ __real__ retval = HUGE_VAL; __imag__ retval = __nan ("") + __nan (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } } else diff --git a/sysdeps/libm-ieee754/s_ccoshf.c b/sysdeps/libm-ieee754/s_ccoshf.c index aeeacbaed0..573a63367b 100644 --- a/sysdeps/libm-ieee754/s_ccoshf.c +++ b/sysdeps/libm-ieee754/s_ccoshf.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> #include "math_private.h" @@ -39,18 +40,24 @@ __ccoshf (__complex__ float x) if (icls >= FP_ZERO) { /* Imaginary part is finite. */ + float sinh_val = __ieee754_sinhf (__real__ x); float cosh_val = __ieee754_coshf (__real__ x); float sinix, cosix; __sincosf (__imag__ x, &sinix, &cosix); __real__ retval = cosh_val * cosix; - __imag__ retval = cosh_val * sinix; + __imag__ retval = sinh_val * sinix; } else { __imag__ retval = __real__ x == 0.0 ? 0.0 : __nanf (""); - __real__ retval = __nanf ("") + __nanf (""); + __real__ retval = __nanf (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } } else if (rcls == FP_INFINITE) @@ -77,6 +84,11 @@ __ccoshf (__complex__ float x) /* The addition raises the invalid exception. */ __real__ retval = HUGE_VALF; __imag__ retval = __nanf ("") + __nanf (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } } else diff --git a/sysdeps/libm-ieee754/s_ccoshl.c b/sysdeps/libm-ieee754/s_ccoshl.c index 9937ba1904..feb1351917 100644 --- a/sysdeps/libm-ieee754/s_ccoshl.c +++ b/sysdeps/libm-ieee754/s_ccoshl.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> #include "math_private.h" @@ -39,18 +40,24 @@ __ccoshl (__complex__ long double x) if (icls >= FP_ZERO) { /* Imaginary part is finite. */ + long double sinh_val = __ieee754_sinhl (__real__ x); long double cosh_val = __ieee754_coshl (__real__ x); long double sinix, cosix; __sincosl (__imag__ x, &sinix, &cosix); __real__ retval = cosh_val * cosix; - __imag__ retval = cosh_val * sinix; + __imag__ retval = sinh_val * sinix; } else { __imag__ retval = __real__ x == 0.0 ? 0.0 : __nanl (""); __real__ retval = __nanl ("") + __nanl (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } } else if (rcls == FP_INFINITE) @@ -77,6 +84,11 @@ __ccoshl (__complex__ long double x) /* The addition raises the invalid exception. */ __real__ retval = HUGE_VALL; __imag__ retval = __nanl ("") + __nanl (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } } else diff --git a/sysdeps/libm-ieee754/s_ccosl.c b/sysdeps/libm-ieee754/s_ccosl.c index a41d48b970..fdcc7a63dd 100644 --- a/sysdeps/libm-ieee754/s_ccosl.c +++ b/sysdeps/libm-ieee754/s_ccosl.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> @@ -33,16 +34,31 @@ __ccosl (__complex__ long double x) { __real__ res = __nanl (""); __imag__ res = 0.0; + +#ifdef FE_INVALID + if (__isinfl (__real__ x)) + feraiseexcept (FE_INVALID); +#endif } else if (__isinfl (__imag__ x)) { __real__ res = HUGE_VALL; __imag__ res = __nanl (""); + +#ifdef FE_INVALID + if (__isinfl (__real__ x)) + feraiseexcept (FE_INVALID); +#endif } else { __real__ res = __nanl (""); __imag__ res = __nanl (""); + +#ifdef FE_INVALID + if (isfinite (__imag__ x)) + feraiseexcept (FE_INVALID); +#endif } } else diff --git a/sysdeps/libm-ieee754/s_cexpf.c b/sysdeps/libm-ieee754/s_cexpf.c index 99f33dc873..603e78d716 100644 --- a/sysdeps/libm-ieee754/s_cexpf.c +++ b/sysdeps/libm-ieee754/s_cexpf.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> #include "math_private.h" @@ -59,6 +60,10 @@ __cexpf (__complex__ float x) is not +-inf the result is NaN + iNaN. */ __real__ retval = __nanf (""); __imag__ retval = __nanf (""); + +#ifdef FE_INVALID + feraiseexcept (FE_INVALID); +#endif } } else if (rcls == FP_INFINITE) @@ -89,6 +94,11 @@ __cexpf (__complex__ float x) { __real__ retval = HUGE_VALF; __imag__ retval = __nanf (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } else { @@ -101,6 +111,11 @@ __cexpf (__complex__ float x) /* If the real part is NaN the result is NaN + iNaN. */ __real__ retval = __nanf (""); __imag__ retval = __nanf (""); + +#ifdef FE_INVALID + if (rcls != FP_NAN || icls != FP_NAN) + feraiseexcept (FE_INVALID); +#endif } return retval; diff --git a/sysdeps/libm-ieee754/s_cexpl.c b/sysdeps/libm-ieee754/s_cexpl.c index 1b97dba74d..67fa7a08b9 100644 --- a/sysdeps/libm-ieee754/s_cexpl.c +++ b/sysdeps/libm-ieee754/s_cexpl.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> #include "math_private.h" @@ -59,6 +60,10 @@ __cexpl (__complex__ long double x) is not +-inf the result is NaN + iNaN. */ __real__ retval = __nanl (""); __imag__ retval = __nanl (""); + +#ifdef FE_INVALID + feraiseexcept (FE_INVALID); +#endif } } else if (rcls == FP_INFINITE) @@ -89,6 +94,11 @@ __cexpl (__complex__ long double x) { __real__ retval = HUGE_VALL; __imag__ retval = __nanl (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } else { @@ -101,6 +111,11 @@ __cexpl (__complex__ long double x) /* If the real part is NaN the result is NaN + iNaN. */ __real__ retval = __nanl (""); __imag__ retval = __nanl (""); + +#ifdef FE_INVALID + if (rcls != FP_NAN || icls != FP_NAN) + feraiseexcept (FE_INVALID); +#endif } return retval; diff --git a/sysdeps/libm-ieee754/s_cproj.c b/sysdeps/libm-ieee754/s_cproj.c index 8ad27c0e5b..fb50bb5a88 100644 --- a/sysdeps/libm-ieee754/s_cproj.c +++ b/sysdeps/libm-ieee754/s_cproj.c @@ -27,7 +27,7 @@ __cproj (__complex__ double x) { __complex__ double res; - if (!finite (__real__ x) || !finite (__imag__ x)) + if (!isfinite (__real__ x) || !isfinite (__imag__ x)) { __real__ res = INFINITY; __imag__ res = __copysign (0.0, __imag__ x); diff --git a/sysdeps/libm-ieee754/s_cprojf.c b/sysdeps/libm-ieee754/s_cprojf.c index 8ee61c727c..b90590835c 100644 --- a/sysdeps/libm-ieee754/s_cprojf.c +++ b/sysdeps/libm-ieee754/s_cprojf.c @@ -27,7 +27,7 @@ __cprojf (__complex__ float x) { __complex__ float res; - if (!finite (__real__ x) || !finite (__imag__ x)) + if (!isfinite (__real__ x) || !isfinite (__imag__ x)) { __real__ res = INFINITY; __imag__ res = __copysignf (0.0, __imag__ x); diff --git a/sysdeps/libm-ieee754/s_cprojl.c b/sysdeps/libm-ieee754/s_cprojl.c index 34298e1f25..13da4b417d 100644 --- a/sysdeps/libm-ieee754/s_cprojl.c +++ b/sysdeps/libm-ieee754/s_cprojl.c @@ -27,7 +27,7 @@ __cprojl (__complex__ long double x) { __complex__ long double res; - if (!finite (__real__ x) || !finite (__imag__ x)) + if (!isfinite (__real__ x) || !isfinite (__imag__ x)) { __real__ res = INFINITY; __imag__ res = __copysignl (0.0, __imag__ x); diff --git a/sysdeps/libm-ieee754/s_csin.c b/sysdeps/libm-ieee754/s_csin.c index 4639bcaaa6..6627387d42 100644 --- a/sysdeps/libm-ieee754/s_csin.c +++ b/sysdeps/libm-ieee754/s_csin.c @@ -19,46 +19,110 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> +#include "math_private.h" + __complex__ double __csin (__complex__ double x) { - __complex__ double res; + __complex__ double retval; + int negate = signbit (__real__ x); + int rcls = fpclassify (__real__ x); + int icls = fpclassify (__imag__ x); + + __real__ x = fabs (__real__ x); - if (!isfinite (__real__ x) || isnan (__imag__ x)) + if (icls >= FP_ZERO) { - if (__real__ x == 0.0 || __imag__ x == 0.0) - { - __real__ res = __nan (""); - __imag__ res = 0.0; - } - else if (__isinf (__imag__ x)) + /* Imaginary part is finite. */ + if (rcls >= FP_ZERO) { - __real__ res = __nan (""); - __imag__ res = __imag__ x; + /* Real part is finite. */ + double sinh_val = __ieee754_sinh (__imag__ x); + double cosh_val = __ieee754_cosh (__imag__ x); + double sinix, cosix; + + __sincos (__real__ x, &sinix, &cosix); + + __real__ retval = cosh_val * sinix; + __imag__ retval = sinh_val * cosix; + + if (negate) + __real__ retval = -__real__ retval; } else { - __real__ res = __nan (""); - __imag__ res = __nan (""); + if (icls == FP_ZERO) + { + /* Imaginary part is 0.0. */ + __real__ retval = __nan (""); + __imag__ retval = __imag__ x; + +#ifdef FE_INVALID + if (rcls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif + } + else + { + __real__ retval = __nan (""); + __imag__ retval = __nan (""); + +#ifdef FE_INVALID + feraiseexcept (FE_INVALID); +#endif + } } } - else + else if (icls == FP_INFINITE) { - __complex__ double y; + /* Imaginary part is infinite. */ + if (rcls == FP_ZERO) + { + /* Real part is 0.0. */ + __real__ retval = __copysign (0.0, negate ? -1.0 : 1.0); + __imag__ retval = __imag__ x; + } + else if (rcls > FP_ZERO) + { + /* Real part is finite. */ + double sinix, cosix; + + __sincos (__real__ x, &sinix, &cosix); - __real__ y = -__imag__ x; - __imag__ y = __real__ x; + __real__ retval = __copysign (HUGE_VAL, sinix); + __imag__ retval = __copysign (HUGE_VAL, cosix); - y = __csinh (y); + if (negate) + __real__ retval = -__real__ retval; + if (signbit (__imag__ x)) + __imag__ retval = -__imag__ retval; + } + else + { + /* The addition raises the invalid exception. */ + __real__ retval = __nan (""); + __imag__ retval = HUGE_VAL; - __real__ res = __imag__ y; - __imag__ res = -__real__ y; +#ifdef FE_INVALID + if (rcls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif + } + } + else + { + if (rcls == FP_ZERO) + __real__ retval = __copysign (0.0, negate ? -1.0 : 1.0); + else + __real__ retval = __nan (""); + __imag__ retval = __nan (""); } - return res; + return retval; } weak_alias (__csin, csin) #ifdef NO_LONG_DOUBLE diff --git a/sysdeps/libm-ieee754/s_csinf.c b/sysdeps/libm-ieee754/s_csinf.c index f7f10e6b6f..31d2f1fd54 100644 --- a/sysdeps/libm-ieee754/s_csinf.c +++ b/sysdeps/libm-ieee754/s_csinf.c @@ -19,45 +19,109 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> +#include "math_private.h" + __complex__ float __csinf (__complex__ float x) { - __complex__ float res; + __complex__ float retval; + int negate = signbit (__real__ x); + int rcls = fpclassify (__real__ x); + int icls = fpclassify (__imag__ x); + + __real__ x = fabsf (__real__ x); - if (!isfinite (__real__ x) || isnan (__imag__ x)) + if (icls >= FP_ZERO) { - if (__real__ x == 0.0 || __imag__ x == 0.0) - { - __real__ res = __nanf (""); - __imag__ res = 0.0; - } - else if (__isinff (__imag__ x)) + /* Imaginary part is finite. */ + if (rcls >= FP_ZERO) { - __real__ res = __nanf (""); - __imag__ res = __imag__ x; + /* Real part is finite. */ + float sinh_val = __ieee754_sinhf (__imag__ x); + float cosh_val = __ieee754_coshf (__imag__ x); + float sinix, cosix; + + __sincosf (__real__ x, &sinix, &cosix); + + __real__ retval = cosh_val * sinix; + __imag__ retval = sinh_val * cosix; + + if (negate) + __real__ retval = -__real__ retval; } else { - __real__ res = __nanf (""); - __imag__ res = __nanf (""); + if (icls == FP_ZERO) + { + /* Imaginary part is 0.0. */ + __real__ retval = __nanf (""); + __imag__ retval = __imag__ x; + +#ifdef FE_INVALID + if (rcls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif + } + else + { + __real__ retval = __nanf (""); + __imag__ retval = __nanf (""); + +#ifdef FE_INVALID + feraiseexcept (FE_INVALID); +#endif + } } } - else + else if (icls == FP_INFINITE) { - __complex__ float y; + /* Imaginary part is infinite. */ + if (rcls == FP_ZERO) + { + /* Real part is 0.0. */ + __real__ retval = __copysignf (0.0, negate ? -1.0 : 1.0); + __imag__ retval = __imag__ x; + } + else if (rcls > FP_ZERO) + { + /* Real part is finite. */ + float sinix, cosix; + + __sincosf (__real__ x, &sinix, &cosix); - __real__ y = -__imag__ x; - __imag__ y = __real__ x; + __real__ retval = __copysignf (HUGE_VALF, sinix); + __imag__ retval = __copysignf (HUGE_VALF, cosix); - y = __csinhf (y); + if (negate) + __real__ retval = -__real__ retval; + if (signbit (__imag__ x)) + __imag__ retval = -__imag__ retval; + } + else + { + /* The addition raises the invalid exception. */ + __real__ retval = __nanf (""); + __imag__ retval = HUGE_VALF; - __real__ res = __imag__ y; - __imag__ res = -__real__ y; +#ifdef FE_INVALID + if (rcls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif + } + } + else + { + if (rcls == FP_ZERO) + __real__ retval = __copysignf (0.0, negate ? -1.0 : 1.0); + else + __real__ retval = __nanf (""); + __imag__ retval = __nanf (""); } - return res; + return retval; } weak_alias (__csinf, csinf) diff --git a/sysdeps/libm-ieee754/s_csinh.c b/sysdeps/libm-ieee754/s_csinh.c index 98f06a558f..29a271fec6 100644 --- a/sysdeps/libm-ieee754/s_csinh.c +++ b/sysdeps/libm-ieee754/s_csinh.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> #include "math_private.h" @@ -41,12 +42,13 @@ __csinh (__complex__ double x) { /* Imaginary part is finite. */ double sinh_val = __ieee754_sinh (__real__ x); + double cosh_val = __ieee754_cosh (__real__ x); double sinix, cosix; __sincos (__imag__ x, &sinix, &cosix); __real__ retval = sinh_val * cosix; - __imag__ retval = sinh_val * sinix; + __imag__ retval = cosh_val * sinix; if (negate) __real__ retval = -__real__ retval; @@ -58,11 +60,20 @@ __csinh (__complex__ double x) /* Real part is 0.0. */ __real__ retval = __copysign (0.0, negate ? -1.0 : 1.0); __imag__ retval = __nan ("") + __nan (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } else { __real__ retval = __nan (""); __imag__ retval = __nan (""); + +#ifdef FE_INVALID + feraiseexcept (FE_INVALID); +#endif } } } @@ -93,6 +104,11 @@ __csinh (__complex__ double x) /* The addition raises the invalid exception. */ __real__ retval = HUGE_VAL; __imag__ retval = __nan ("") + __nan (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } } else diff --git a/sysdeps/libm-ieee754/s_csinhf.c b/sysdeps/libm-ieee754/s_csinhf.c index c644d3a5e8..9c479bba95 100644 --- a/sysdeps/libm-ieee754/s_csinhf.c +++ b/sysdeps/libm-ieee754/s_csinhf.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> #include "math_private.h" @@ -41,12 +42,13 @@ __csinhf (__complex__ float x) { /* Imaginary part is finite. */ float sinh_val = __ieee754_sinhf (__real__ x); + float cosh_val = __ieee754_coshf (__real__ x); float sinix, cosix; __sincosf (__imag__ x, &sinix, &cosix); __real__ retval = sinh_val * cosix; - __imag__ retval = sinh_val * sinix; + __imag__ retval = cosh_val * sinix; if (negate) __real__ retval = -__real__ retval; @@ -58,11 +60,20 @@ __csinhf (__complex__ float x) /* Real part is 0.0. */ __real__ retval = __copysignf (0.0, negate ? -1.0 : 1.0); __imag__ retval = __nanf ("") + __nanf (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } else { __real__ retval = __nanf (""); __imag__ retval = __nanf (""); + +#ifdef FE_INVALID + feraiseexcept (FE_INVALID); +#endif } } } @@ -93,6 +104,11 @@ __csinhf (__complex__ float x) /* The addition raises the invalid exception. */ __real__ retval = HUGE_VALF; __imag__ retval = __nanf ("") + __nanf (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } } else diff --git a/sysdeps/libm-ieee754/s_csinhl.c b/sysdeps/libm-ieee754/s_csinhl.c index 4bb9e63680..694b39d670 100644 --- a/sysdeps/libm-ieee754/s_csinhl.c +++ b/sysdeps/libm-ieee754/s_csinhl.c @@ -41,12 +41,13 @@ __csinhl (__complex__ long double x) { /* Imaginary part is finite. */ long double sinh_val = __ieee754_sinhl (__real__ x); + long double cosh_val = __ieee754_coshl (__real__ x); long double sinix, cosix; __sincosl (__imag__ x, &sinix, &cosix); __real__ retval = sinh_val * cosix; - __imag__ retval = sinh_val * sinix; + __imag__ retval = cosh_val * sinix; if (negate) __real__ retval = -__real__ retval; @@ -58,11 +59,20 @@ __csinhl (__complex__ long double x) /* Real part is 0.0. */ __real__ retval = __copysignl (0.0, negate ? -1.0 : 1.0); __imag__ retval = __nanl ("") + __nanl (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } else { __real__ retval = __nanl (""); __imag__ retval = __nanl (""); + +#ifdef FE_INVALID + feraiseexcept (FE_INVALID); +#endif } } } @@ -93,6 +103,11 @@ __csinhl (__complex__ long double x) /* The addition raises the invalid exception. */ __real__ retval = HUGE_VALL; __imag__ retval = __nanl ("") + __nanl (""); + +#ifdef FE_INVALID + if (icls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif } } else diff --git a/sysdeps/libm-ieee754/s_csinl.c b/sysdeps/libm-ieee754/s_csinl.c index 513c144198..bae8648c32 100644 --- a/sysdeps/libm-ieee754/s_csinl.c +++ b/sysdeps/libm-ieee754/s_csinl.c @@ -19,45 +19,109 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> +#include "math_private.h" + __complex__ long double __csinl (__complex__ long double x) { - __complex__ long double res; + __complex__ long double retval; + int negate = signbit (__real__ x); + int rcls = fpclassify (__real__ x); + int icls = fpclassify (__imag__ x); + + __real__ x = fabsl (__real__ x); - if (!isfinite (__real__ x) || isnan (__imag__ x)) + if (icls >= FP_ZERO) { - if (__real__ x == 0.0 || __imag__ x == 0.0) - { - __real__ res = __nanl (""); - __imag__ res = 0.0; - } - else if (__isinfl (__imag__ x)) + /* Imaginary part is finite. */ + if (rcls >= FP_ZERO) { - __real__ res = __nanl (""); - __imag__ res = __imag__ x; + /* Real part is finite. */ + long double sinh_val = __ieee754_sinhl (__imag__ x); + long double cosh_val = __ieee754_coshl (__imag__ x); + long double sinix, cosix; + + __sincosl (__real__ x, &sinix, &cosix); + + __real__ retval = cosh_val * sinix; + __imag__ retval = sinh_val * cosix; + + if (negate) + __real__ retval = -__real__ retval; } else { - __real__ res = __nanl (""); - __imag__ res = __nanl (""); + if (icls == FP_ZERO) + { + /* Imaginary part is 0.0. */ + __real__ retval = __nanl (""); + __imag__ retval = __imag__ x; + +#ifdef FE_INVALID + if (rcls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif + } + else + { + __real__ retval = __nanl (""); + __imag__ retval = __nanl (""); + +#ifdef FE_INVALID + feraiseexcept (FE_INVALID); +#endif + } } } - else + else if (icls == FP_INFINITE) { - __complex__ long double y; + /* Imaginary part is infinite. */ + if (rcls == FP_ZERO) + { + /* Real part is 0.0. */ + __real__ retval = __copysignl (0.0, negate ? -1.0 : 1.0); + __imag__ retval = __imag__ x; + } + else if (rcls > FP_ZERO) + { + /* Real part is finite. */ + long double sinix, cosix; + + __sincosl (__real__ x, &sinix, &cosix); - __real__ y = -__imag__ x; - __imag__ y = __real__ x; + __real__ retval = __copysignl (HUGE_VALL, sinix); + __imag__ retval = __copysignl (HUGE_VALL, cosix); - y = __csinhl (y); + if (negate) + __real__ retval = -__real__ retval; + if (signbit (__imag__ x)) + __imag__ retval = -__imag__ retval; + } + else + { + /* The addition raises the invalid exception. */ + __real__ retval = __nanl (""); + __imag__ retval = HUGE_VALL; - __real__ res = __imag__ y; - __imag__ res = -__real__ y; +#ifdef FE_INVALID + if (rcls == FP_INFINITE) + feraiseexcept (FE_INVALID); +#endif + } + } + else + { + if (rcls == FP_ZERO) + __real__ retval = __copysignl (0.0, negate ? -1.0 : 1.0); + else + __real__ retval = __nanl (""); + __imag__ retval = __nanl (""); } - return res; + return retval; } weak_alias (__csinl, csinl) diff --git a/sysdeps/libm-ieee754/s_ctanh.c b/sysdeps/libm-ieee754/s_ctanh.c index eb6ff84817..d8825f35f9 100644 --- a/sysdeps/libm-ieee754/s_ctanh.c +++ b/sysdeps/libm-ieee754/s_ctanh.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> #include "math_private.h" @@ -44,6 +45,11 @@ __ctanh (__complex__ double x) { __real__ res = __nan (""); __imag__ res = __nan (""); + +#ifdef FE_INVALID + if (__isinf (__imag__ x)) + feraiseexcept (FE_INVALID); +#endif } } else diff --git a/sysdeps/libm-ieee754/s_ctanhf.c b/sysdeps/libm-ieee754/s_ctanhf.c index aec02fe7c4..fd66648d79 100644 --- a/sysdeps/libm-ieee754/s_ctanhf.c +++ b/sysdeps/libm-ieee754/s_ctanhf.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> #include "math_private.h" @@ -44,6 +45,11 @@ __ctanhf (__complex__ float x) { __real__ res = __nanf (""); __imag__ res = __nanf (""); + +#ifdef FE_INVALID + if (__isinff (__imag__ x)) + feraiseexcept (FE_INVALID); +#endif } } else diff --git a/sysdeps/libm-ieee754/s_ctanhl.c b/sysdeps/libm-ieee754/s_ctanhl.c index 8ed131e9a6..5ec06a6fa4 100644 --- a/sysdeps/libm-ieee754/s_ctanhl.c +++ b/sysdeps/libm-ieee754/s_ctanhl.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include <complex.h> +#include <fenv.h> #include <math.h> #include "math_private.h" @@ -44,6 +45,11 @@ __ctanhl (__complex__ long double x) { __real__ res = __nanl (""); __imag__ res = __nanl (""); + +#ifdef FE_INVALID + if (__isinfl (__imag__ x)) + feraiseexcept (FE_INVALID); +#endif } } else diff --git a/sysdeps/stub/abi-tag.h b/sysdeps/stub/abi-tag.h new file mode 100644 index 0000000000..2810552694 --- /dev/null +++ b/sysdeps/stub/abi-tag.h @@ -0,0 +1,3 @@ +#error must define an ABI tag for this port + +#define ABI_TAG 0xff123abc diff --git a/sysdeps/unix/sysv/linux/abi-tag.h b/sysdeps/unix/sysv/linux/abi-tag.h new file mode 100644 index 0000000000..166e6a12f6 --- /dev/null +++ b/sysdeps/unix/sysv/linux/abi-tag.h @@ -0,0 +1,16 @@ +/* Define the GNU ABI tag for the Linux kernel we need. + The is a 4-byte quantity in native byte order: + the high byte is 0 to indicate Linux; + the low three bytes are the LINUX_VERSION_CODE for the earliest + compatible Linux kernel. */ + +#define ABI_LINUX_TAG 0 + +#define ABI_LINUX_MAJOR 2 +#define ABI_LINUX_MINOR 0 +#define ABI_LINUX_PATCH 0 + +#define ABI_TAG ((ABI_LINUX_TAG << 24) | \ + (ABI_LINUX_MAJOR << 16) | \ + (ABI_LINUX_MINOR << 8) | \ + (ABI_LINUX_PATCH << 0)) diff --git a/sysdeps/unix/sysv/linux/alpha/clone.S b/sysdeps/unix/sysv/linux/alpha/clone.S index 261bd81e57..5d36e2588d 100644 --- a/sysdeps/unix/sysv/linux/alpha/clone.S +++ b/sysdeps/unix/sysv/linux/alpha/clone.S @@ -44,7 +44,7 @@ ENTRY(__clone) /* Do the system call */ mov a0,pv /* get fn ptr out of the way */ - mov a3,a4 /* get fn arg out of the way */ + mov a3,t0 /* get fn arg out of the way */ mov a2,a0 ldiq v0,__NR_clone call_pal PAL_callsys @@ -74,7 +74,7 @@ thread_start: .prologue 0 /* Call the user's function */ - mov a4,a0 + mov t0,a0 jsr ra,(pv) ldgp gp,0(ra) diff --git a/sysdeps/unix/sysv/linux/net/route.h b/sysdeps/unix/sysv/linux/net/route.h index 3518dc5fc9..2450d5154a 100644 --- a/sysdeps/unix/sysv/linux/net/route.h +++ b/sysdeps/unix/sysv/linux/net/route.h @@ -56,12 +56,12 @@ struct in6_rtmsg struct in6_addr rtmsg_dst; struct in6_addr rtmsg_src; struct in6_addr rtmsg_gateway; - unsigned long int rtmsg_type; - unsigned short int rtmsg_dst_len; - unsigned short int rtmsg_src_len; - unsigned long int rtmsg_metric; + u_int32_t rtmsg_type; + u_int16_t rtmsg_dst_len; + u_int16_t rtmsg_src_len; + u_int32_t rtmsg_metric; unsigned long int rtmsg_info; - unsigned long int rtmsg_flags; + u_int32_t rtmsg_flags; int rtmsg_ifindex; }; diff --git a/sysdeps/unix/sysv/linux/netinet/ip_fw.h b/sysdeps/unix/sysv/linux/netinet/ip_fw.h index 3887ca8992..8ba10ae196 100644 --- a/sysdeps/unix/sysv/linux/netinet/ip_fw.h +++ b/sysdeps/unix/sysv/linux/netinet/ip_fw.h @@ -41,14 +41,14 @@ * flags and num_*_ports are stored in host byte order (of course). * Port numbers are stored in HOST byte order. */ - + #ifndef _NETINET_FW_H #define _NETINET_FW_H #include <sys/cdefs.h> #include <sys/types.h> -#include <netinet/icmp.h> +#include <netinet/ip_icmp.h> #include <netinet/in.h> #include <netinet/ip.h> #include <netinet/tcp.h> @@ -107,11 +107,11 @@ struct ip_fw { #define IP_FW_F_MASK 0x3FFF /* All possible flag bits mask */ -/* +/* * New IP firewall options for [gs]etsockopt at the RAW IP level. * Unlike BSD Linux inherits IP options so you don't have to use * a raw socket for this. Instead we check rights in the calls. - */ + */ #define IP_FW_BASE_CTL 64 /* base for firewall socket options */ @@ -181,7 +181,7 @@ struct ip_fwpkt */ struct ip_fw_masq; - + __END_DECLS #endif /* _NETINET_IP_FW_H */ diff --git a/time/strftime.c b/time/strftime.c index 898bd6c98c..4cb6c9e260 100644 --- a/time/strftime.c +++ b/time/strftime.c @@ -175,6 +175,7 @@ localtime_r (t, tp) /* Some systems lack the `memset' function and we don't want to introduce additional dependencies. */ static const char spaces[16] = " "; +static const char zeroes[16] = "0000000000000000"; # define memset_space(P, Len) \ do { \ @@ -189,11 +190,26 @@ static const char spaces[16] = " "; } \ while (_len > 0); \ } while (0) + +# define memset_zero(P, Len) \ + do { \ + int _len = (Len); \ + \ + do \ + { \ + int _this = _len > 16 ? 16 : _len; \ + memcpy ((P), zeroes, _this); \ + (P) += _this; \ + _len -= _this; \ + } \ + while (_len > 0); \ + } while (0) #else # define memset_space(P, Len) (memset ((P), ' ', (Len)), (P) += (Len)) +# define memset_zero(P, Len) (memset ((P), '0', (Len)), (P) += (Len)) #endif -#define add(n, f) \ +#define add(n, f) \ do \ { \ int _n = (n); \ @@ -204,7 +220,12 @@ static const char spaces[16] = " "; if (p) \ { \ if (_delta > 0) \ - memset_space (p, _delta); \ + { \ + if (pad == '0') \ + memset_zero (p, _delta); \ + else \ + memset_space (p, _delta); \ + } \ f; \ p += _n; \ } \ diff --git a/time/strptime.c b/time/strptime.c index fd457af6c0..90b88a1ba3 100644 --- a/time/strptime.c +++ b/time/strptime.c @@ -377,7 +377,7 @@ strptime_internal (buf, format, tm, decided) case 'I': /* Match hour in 12-hour clock. */ get_number (1, 12); - tm->tm_hour = val - 1; + tm->tm_hour = val % 12; have_I = 1; break; case 'j': |