summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog161
-rw-r--r--Make-dist6
-rw-r--r--Makeconfig27
-rw-r--r--config.make.in1
-rwxr-xr-xconfigure80
-rw-r--r--configure.in1
-rw-r--r--csu/Makefile36
-rw-r--r--csu/abi-note.S69
-rw-r--r--malloc/obstack.h7
-rw-r--r--manual/arith.texi154
-rw-r--r--manual/libc.texinfo7
-rw-r--r--manual/math.texi328
-rw-r--r--manual/signal.texi3
-rw-r--r--manual/stdio.texi46
-rw-r--r--manual/summary.awk24
-rw-r--r--manual/texinfo.tex134
-rw-r--r--manual/xtract-typefun.awk6
-rw-r--r--math/fenv.h6
-rw-r--r--math/libm-test.c1167
-rw-r--r--po/de.po1211
-rw-r--r--signal/signal.h4
-rw-r--r--stdio-common/printf_size.c8
-rw-r--r--stdlib/lcong48_r.c1
-rw-r--r--stdlib/random_r.c3
-rw-r--r--stdlib/seed48_r.c1
-rw-r--r--sysdeps/generic/sigset.h4
-rw-r--r--sysdeps/i386/dl-machine.h8
-rw-r--r--sysdeps/libm-i387/e_pow.S7
-rw-r--r--sysdeps/libm-i387/e_powf.S7
-rw-r--r--sysdeps/libm-i387/e_powl.S7
-rw-r--r--sysdeps/libm-i387/s_cexp.S22
-rw-r--r--sysdeps/libm-i387/s_cexpf.S22
-rw-r--r--sysdeps/libm-i387/s_cexpl.S22
-rw-r--r--sysdeps/libm-ieee754/s_ccos.c16
-rw-r--r--sysdeps/libm-ieee754/s_ccosf.c16
-rw-r--r--sysdeps/libm-ieee754/s_ccosh.c14
-rw-r--r--sysdeps/libm-ieee754/s_ccoshf.c16
-rw-r--r--sysdeps/libm-ieee754/s_ccoshl.c14
-rw-r--r--sysdeps/libm-ieee754/s_ccosl.c16
-rw-r--r--sysdeps/libm-ieee754/s_cexpf.c15
-rw-r--r--sysdeps/libm-ieee754/s_cexpl.c15
-rw-r--r--sysdeps/libm-ieee754/s_cproj.c2
-rw-r--r--sysdeps/libm-ieee754/s_cprojf.c2
-rw-r--r--sysdeps/libm-ieee754/s_cprojl.c2
-rw-r--r--sysdeps/libm-ieee754/s_csin.c104
-rw-r--r--sysdeps/libm-ieee754/s_csinf.c104
-rw-r--r--sysdeps/libm-ieee754/s_csinh.c18
-rw-r--r--sysdeps/libm-ieee754/s_csinhf.c18
-rw-r--r--sysdeps/libm-ieee754/s_csinhl.c17
-rw-r--r--sysdeps/libm-ieee754/s_csinl.c104
-rw-r--r--sysdeps/libm-ieee754/s_ctanh.c6
-rw-r--r--sysdeps/libm-ieee754/s_ctanhf.c6
-rw-r--r--sysdeps/libm-ieee754/s_ctanhl.c6
-rw-r--r--sysdeps/stub/abi-tag.h3
-rw-r--r--sysdeps/unix/sysv/linux/abi-tag.h16
-rw-r--r--sysdeps/unix/sysv/linux/alpha/clone.S4
-rw-r--r--sysdeps/unix/sysv/linux/net/route.h10
-rw-r--r--sysdeps/unix/sysv/linux/netinet/ip_fw.h10
-rw-r--r--time/strftime.c25
-rw-r--r--time/strptime.c2
60 files changed, 2731 insertions, 1440 deletions
diff --git a/ChangeLog b/ChangeLog
index c756d42ad6..e94044fe3b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/Make-dist b/Make-dist
index bacc8655a9..ab11c3d453 100644
--- a/Make-dist
+++ b/Make-dist
@@ -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@
diff --git a/configure b/configure
index 0866deca11..a7bdcfb1cc 100755
--- a/configure
+++ b/configure
@@ -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);
}
diff --git a/po/de.po b/po/de.po
index 8df1fa9ed3..86bc35335a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -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':