mirror of git://sourceware.org/git/glibc.git
Merge branch 'master' of ssh://sourceware.org/git/glibc
This commit is contained in:
commit
67c6a3d919
70
ChangeLog
70
ChangeLog
|
@ -1,3 +1,73 @@
|
||||||
|
2012-03-08 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
[BZ #6911]
|
||||||
|
* manual/macros.texi (gnusystems): New macro.
|
||||||
|
(nongnusystems): Likewise.
|
||||||
|
(gnulinuxhurdsystems): Likewise.
|
||||||
|
(gnuhurdsystems): Likewise..
|
||||||
|
(gnulinuxsystems): Likewise.
|
||||||
|
* manual/charset.texi: Use new macros or @theglibc{} to refer to
|
||||||
|
variants of the GNU system, not "GNU system".
|
||||||
|
* manual/conf.texi: Likewise.
|
||||||
|
* manual/errno.texi: Likewise. Update example of errno macro
|
||||||
|
expansion.
|
||||||
|
* manual/filesys.texi: Likewise.
|
||||||
|
(getumask): Document as specific to GNU/Hurd.
|
||||||
|
* manual/install.texi: Likewise. Reword some references to
|
||||||
|
GNU/Linux.
|
||||||
|
* manual/intro.texi: Likewise.
|
||||||
|
* manual/io.texi: Likewise.
|
||||||
|
(File Name Portability): Detail which constraints are inapplicable
|
||||||
|
to all GNU systems and which are only inapplicable to GNU/Hurd.
|
||||||
|
* manual/job.texi: Likewise.
|
||||||
|
* manual/llio.texi: Likewise.
|
||||||
|
(O_NOCTTY): Document as present on GNU/Linux.
|
||||||
|
* manual/maint.texi: Likewise.
|
||||||
|
* manual/memory.texi: Likewise.
|
||||||
|
* manual/pattern.texi: Likewise.
|
||||||
|
* manual/pipe.texi: Likewise.
|
||||||
|
* manual/process.texi: Likewise.
|
||||||
|
* manual/resource.texi: Likewise.
|
||||||
|
(RUSAGE_CHILDREN): Remove statement about specifying a particular
|
||||||
|
child on GNU/Hurd.
|
||||||
|
* manual/setjmp.texi: Likewise.
|
||||||
|
* manual/signal.texi: Likewise.
|
||||||
|
* manual/startup.texi: Likewise.
|
||||||
|
* manual/stdio.texi: Likewise.
|
||||||
|
* manual/terminal.texi: Likewise.
|
||||||
|
(ONLCR): Document as POSIX.
|
||||||
|
(OXTABS): Document availability on GNU/Linux as XTABS.
|
||||||
|
(ONOEOT): Document availability separately from other bits.
|
||||||
|
(VLNEXT, VDISCARD, VSTATUS): Document availability individually.
|
||||||
|
* manual/time.texi: Likewise.
|
||||||
|
* manual/users.texi: Likewise.
|
||||||
|
* INSTALL: Regenerated.
|
||||||
|
* sysdeps/gnu/errlist.c: Regenerated.
|
||||||
|
|
||||||
|
* aclocal.m4 (LIBC_TRY_LINK_STATIC): New macro.
|
||||||
|
* configure.in (libc_cv_preinit_array): Use LIBC_TRY_LINK_STATIC.
|
||||||
|
(libc_cv_ctors_header): Likewise. Use asm ("") instead of calling
|
||||||
|
puts.
|
||||||
|
* configure: Regenerated.
|
||||||
|
|
||||||
|
2012-03-07 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* sysdeps/i386/configure.in (cpuid.h): Use AC_CHECK_HEADER with no
|
||||||
|
default includes instead of AC_HEADER_CHECK.
|
||||||
|
* sysdeps/i386/configure: Regenerated.
|
||||||
|
|
||||||
|
[BZ #10716]
|
||||||
|
* math/s_cacosh.c (__cacosh): Convert negative log results to 0.
|
||||||
|
* math/s_cacoshf.c (__cacoshf): Likewise.
|
||||||
|
* math/s_cacoshl.c (__cacoshl): Likewise.
|
||||||
|
* math/s_casinh.c (__casinh): Set signs of result from argument.
|
||||||
|
* math/s_casinhf.c (__casinhf): Likewise.
|
||||||
|
* math/s_casinhl.c (__casinhl): Likewise.
|
||||||
|
* math/libm-test.inc (cacos_test, cacosh_test, casin_test)
|
||||||
|
(casinh_test): Add more tests.
|
||||||
|
* sysdeps/i386/fpu/libm-test-ulps: Update.
|
||||||
|
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
|
||||||
|
|
||||||
2012-03-07 Ulrich Drepper <drepper@gmail.com>
|
2012-03-07 Ulrich Drepper <drepper@gmail.com>
|
||||||
|
|
||||||
* po/zh_TW.po: Update from translation team.
|
* po/zh_TW.po: Update from translation team.
|
||||||
|
|
13
INSTALL
13
INSTALL
|
@ -339,7 +339,7 @@ patches, although we try to avoid this.
|
||||||
Specific advice for GNU/Linux systems
|
Specific advice for GNU/Linux systems
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
If you are installing the GNU C Library on a GNU/Linux system, you need
|
If you are installing the GNU C Library on GNU/Linux systems, you need
|
||||||
to have the header files from a 2.6.19.1 or newer kernel around for
|
to have the header files from a 2.6.19.1 or newer kernel around for
|
||||||
reference. These headers must be installed using `make
|
reference. These headers must be installed using `make
|
||||||
headers_install'; the headers present in the kernel source directory
|
headers_install'; the headers present in the kernel source directory
|
||||||
|
@ -370,11 +370,12 @@ required if not compiling programs using those interfaces. You do not
|
||||||
need to copy kernel headers if you did not specify an alternate kernel
|
need to copy kernel headers if you did not specify an alternate kernel
|
||||||
header source using `--with-headers'.
|
header source using `--with-headers'.
|
||||||
|
|
||||||
GNU/Linux expects some components of the GNU C Library installation
|
The Filesystem Hierarchy Standard for GNU/Linux systems expects some
|
||||||
to be in `/lib' and some in `/usr/lib'. This is handled automatically
|
components of the GNU C Library installation to be in `/lib' and some
|
||||||
if you configure the GNU C Library with `--prefix=/usr'. If you set
|
in `/usr/lib'. This is handled automatically if you configure the GNU
|
||||||
some other prefix or allow it to default to `/usr/local', then all the
|
C Library with `--prefix=/usr'. If you set some other prefix or allow
|
||||||
components are installed there.
|
it to default to `/usr/local', then all the components are installed
|
||||||
|
there.
|
||||||
|
|
||||||
You cannot use `nscd' with 2.0 kernels, due to bugs in the
|
You cannot use `nscd' with 2.0 kernels, due to bugs in the
|
||||||
kernel-side thread support. `nscd' happens to hit these bugs
|
kernel-side thread support. `nscd' happens to hit these bugs
|
||||||
|
|
10
NEWS
10
NEWS
|
@ -10,11 +10,11 @@ Version 2.16
|
||||||
* The following bugs are resolved with this release:
|
* The following bugs are resolved with this release:
|
||||||
|
|
||||||
174, 350, 411, 2541, 2547, 2548, 3335, 3976, 3992, 4026, 4108, 4596, 4822,
|
174, 350, 411, 2541, 2547, 2548, 3335, 3976, 3992, 4026, 4108, 4596, 4822,
|
||||||
5077, 5461, 5805, 5993, 6884, 6907, 9739, 9902, 10110, 10135, 10140,
|
5077, 5461, 5805, 5993, 6884, 6907, 6911, 9739, 9902, 10110, 10135, 10140,
|
||||||
10210, 11174, 11322, 11365, 11494, 12047, 13058, 13525, 13526, 13527,
|
10210, 10545, 10716, 11174, 11322, 11365, 11494, 12047, 13058, 13525,
|
||||||
13528, 13529, 13530, 13531, 13532, 13533, 13547, 13551, 13552, 13553,
|
13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13547, 13551,
|
||||||
13555, 13559, 13583, 13618, 13637, 13656, 13695, 13704, 13706, 13726,
|
13552, 13553, 13555, 13559, 13583, 13618, 13637, 13656, 13695, 13704,
|
||||||
13738, 13786, 13792
|
13706, 13726, 13738, 13786, 13792
|
||||||
|
|
||||||
* ISO C11 support:
|
* ISO C11 support:
|
||||||
|
|
||||||
|
|
|
@ -113,3 +113,17 @@ AC_CACHE_CHECK(whether $LD is GNU ld, libc_cv_prog_ld_gnu,
|
||||||
[LIBC_PROG_FOO_GNU($LD, libc_cv_prog_ld_gnu=yes, libc_cv_prog_ld_gnu=no)])
|
[LIBC_PROG_FOO_GNU($LD, libc_cv_prog_ld_gnu=yes, libc_cv_prog_ld_gnu=no)])
|
||||||
gnu_ld=$libc_cv_prog_ld_gnu
|
gnu_ld=$libc_cv_prog_ld_gnu
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl Run a static link test with -nostdlib -nostartfiles.
|
||||||
|
dnl LIBC_TRY_LINK_STATIC([code], [action-if-true], [action-if-false])
|
||||||
|
AC_DEFUN([LIBC_TRY_LINK_STATIC],
|
||||||
|
[cat > conftest.c <<EOF
|
||||||
|
int _start (void) { return 0; }
|
||||||
|
int __start (void) { return 0; }
|
||||||
|
$1
|
||||||
|
EOF
|
||||||
|
AS_IF([AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest
|
||||||
|
conftest.c -static -nostartfiles -nostdlib
|
||||||
|
1>&AS_MESSAGE_LOG_FD])],
|
||||||
|
[$2], [$3])
|
||||||
|
rm -f conftest*])
|
||||||
|
|
|
@ -5999,17 +5999,19 @@ else
|
||||||
cat > conftest.c <<EOF
|
cat > conftest.c <<EOF
|
||||||
int _start (void) { return 0; }
|
int _start (void) { return 0; }
|
||||||
int __start (void) { return 0; }
|
int __start (void) { return 0; }
|
||||||
|
|
||||||
int foo (void) { return 1; }
|
int foo (void) { return 1; }
|
||||||
int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
|
int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
|
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest
|
||||||
-static -nostartfiles -nostdlib 1>&5'
|
conftest.c -static -nostartfiles -nostdlib
|
||||||
|
1>&5'
|
||||||
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
|
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
|
||||||
(eval $ac_try) 2>&5
|
(eval $ac_try) 2>&5
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
test $ac_status = 0; }; }
|
test $ac_status = 0; }; }; then :
|
||||||
then
|
|
||||||
if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
|
if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
|
||||||
libc_cv_initfini_array=yes
|
libc_cv_initfini_array=yes
|
||||||
else
|
else
|
||||||
|
@ -6019,6 +6021,7 @@ else
|
||||||
libc_cv_initfini_array=no
|
libc_cv_initfini_array=no
|
||||||
fi
|
fi
|
||||||
rm -f conftest*
|
rm -f conftest*
|
||||||
|
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_initfini_array" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_initfini_array" >&5
|
||||||
$as_echo "$libc_cv_initfini_array" >&6; }
|
$as_echo "$libc_cv_initfini_array" >&6; }
|
||||||
|
@ -6032,21 +6035,22 @@ if ${libc_cv_ctors_header+:} false; then :
|
||||||
$as_echo_n "(cached) " >&6
|
$as_echo_n "(cached) " >&6
|
||||||
else
|
else
|
||||||
libc_cv_ctors_header=yes
|
libc_cv_ctors_header=yes
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
cat > conftest.c <<EOF
|
||||||
/* end confdefs.h. */
|
int _start (void) { return 0; }
|
||||||
|
int __start (void) { return 0; }
|
||||||
|
|
||||||
int
|
__attribute__ ((constructor)) void ctor (void) { asm (""); }
|
||||||
main ()
|
__attribute__ ((destructor)) void dtor (void) { asm (""); }
|
||||||
{
|
|
||||||
|
|
||||||
__attribute__ ((constructor)) void ctor (void) { puts("ctor"); }
|
EOF
|
||||||
__attribute__ ((destructor)) void dtor (void) { puts("dtor"); }
|
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest
|
||||||
|
conftest.c -static -nostartfiles -nostdlib
|
||||||
;
|
1>&5'
|
||||||
return 0;
|
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
|
||||||
}
|
(eval $ac_try) 2>&5
|
||||||
_ACEOF
|
ac_status=$?
|
||||||
if ac_fn_c_try_link "$LINENO"; then :
|
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
||||||
|
test $ac_status = 0; }; }; then :
|
||||||
if $READELF -WS conftest$ac_exeext | $AWK '
|
if $READELF -WS conftest$ac_exeext | $AWK '
|
||||||
{ gsub(/\[ */, "[") }
|
{ gsub(/\[ */, "[") }
|
||||||
$2 == ".ctors" || $2 == ".dtors" {
|
$2 == ".ctors" || $2 == ".dtors" {
|
||||||
|
@ -6068,8 +6072,7 @@ else
|
||||||
as_fn_error $? "missing __attribute__ ((constructor)) support??" "$LINENO" 5
|
as_fn_error $? "missing __attribute__ ((constructor)) support??" "$LINENO" 5
|
||||||
|
|
||||||
fi
|
fi
|
||||||
rm -f core conftest.err conftest.$ac_objext \
|
rm -f conftest*
|
||||||
conftest$ac_exeext conftest.$ac_ext
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ctors_header" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ctors_header" >&5
|
||||||
|
|
25
configure.in
25
configure.in
|
@ -1349,24 +1349,17 @@ fi
|
||||||
|
|
||||||
AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
|
AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
|
||||||
libc_cv_initfini_array, [dnl
|
libc_cv_initfini_array, [dnl
|
||||||
cat > conftest.c <<EOF
|
LIBC_TRY_LINK_STATIC([
|
||||||
int _start (void) { return 0; }
|
|
||||||
int __start (void) { return 0; }
|
|
||||||
int foo (void) { return 1; }
|
int foo (void) { return 1; }
|
||||||
int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
|
int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
|
||||||
EOF
|
],
|
||||||
if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
|
[if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
|
||||||
-static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
|
|
||||||
then
|
|
||||||
if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
|
|
||||||
libc_cv_initfini_array=yes
|
libc_cv_initfini_array=yes
|
||||||
else
|
else
|
||||||
libc_cv_initfini_array=no
|
libc_cv_initfini_array=no
|
||||||
fi
|
fi],
|
||||||
else
|
[libc_cv_initfini_array=no])
|
||||||
libc_cv_initfini_array=no
|
])
|
||||||
fi
|
|
||||||
rm -f conftest*])
|
|
||||||
if test $libc_cv_initfini_array != yes; then
|
if test $libc_cv_initfini_array != yes; then
|
||||||
AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
|
AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
|
||||||
fi
|
fi
|
||||||
|
@ -1374,9 +1367,9 @@ fi
|
||||||
AC_CACHE_CHECK(whether to use .ctors/.dtors header and trailer,
|
AC_CACHE_CHECK(whether to use .ctors/.dtors header and trailer,
|
||||||
libc_cv_ctors_header, [dnl
|
libc_cv_ctors_header, [dnl
|
||||||
libc_cv_ctors_header=yes
|
libc_cv_ctors_header=yes
|
||||||
AC_TRY_LINK([], [
|
LIBC_TRY_LINK_STATIC([
|
||||||
__attribute__ ((constructor)) void ctor (void) { puts("ctor"); }
|
__attribute__ ((constructor)) void ctor (void) { asm (""); }
|
||||||
__attribute__ ((destructor)) void dtor (void) { puts("dtor"); }
|
__attribute__ ((destructor)) void dtor (void) { asm (""); }
|
||||||
],
|
],
|
||||||
[dnl
|
[dnl
|
||||||
AS_IF([$READELF -WS conftest$ac_exeext | $AWK '
|
AS_IF([$READELF -WS conftest$ac_exeext | $AWK '
|
||||||
|
|
|
@ -112,7 +112,7 @@ this type is capable of storing all elements of the basic character set.
|
||||||
Therefore it would be legitimate to define @code{wchar_t} as @code{char},
|
Therefore it would be legitimate to define @code{wchar_t} as @code{char},
|
||||||
which might make sense for embedded systems.
|
which might make sense for embedded systems.
|
||||||
|
|
||||||
But for GNU systems @code{wchar_t} is always 32 bits wide and, therefore,
|
But in @theglibc{} @code{wchar_t} is always 32 bits wide and, therefore,
|
||||||
capable of representing all UCS-4 values and, therefore, covering all of
|
capable of representing all UCS-4 values and, therefore, covering all of
|
||||||
@w{ISO 10646}. Some Unix systems define @code{wchar_t} as a 16-bit type
|
@w{ISO 10646}. Some Unix systems define @code{wchar_t} as a 16-bit type
|
||||||
and thereby follow Unicode very strictly. This definition is perfectly
|
and thereby follow Unicode very strictly. This definition is perfectly
|
||||||
|
@ -393,7 +393,7 @@ We already said above that the currently selected locale for the
|
||||||
by the functions we are about to describe. Each locale uses its own
|
by the functions we are about to describe. Each locale uses its own
|
||||||
character set (given as an argument to @code{localedef}) and this is the
|
character set (given as an argument to @code{localedef}) and this is the
|
||||||
one assumed as the external multibyte encoding. The wide character
|
one assumed as the external multibyte encoding. The wide character
|
||||||
set is always UCS-4, at least on GNU systems.
|
set is always UCS-4 in @theglibc{}.
|
||||||
|
|
||||||
A characteristic of each multibyte character set is the maximum number
|
A characteristic of each multibyte character set is the maximum number
|
||||||
of bytes that can be necessary to represent one character. This
|
of bytes that can be necessary to represent one character. This
|
||||||
|
@ -537,8 +537,8 @@ Code using @code{mbsinit} often looks similar to this:
|
||||||
|
|
||||||
The code to emit the escape sequence to get back to the initial state is
|
The code to emit the escape sequence to get back to the initial state is
|
||||||
interesting. The @code{wcsrtombs} function can be used to determine the
|
interesting. The @code{wcsrtombs} function can be used to determine the
|
||||||
necessary output code (@pxref{Converting Strings}). Please note that on
|
necessary output code (@pxref{Converting Strings}). Please note that with
|
||||||
GNU systems it is not necessary to perform this extra action for the
|
@theglibc{} it is not necessary to perform this extra action for the
|
||||||
conversion from multibyte text to wide character text since the wide
|
conversion from multibyte text to wide character text since the wide
|
||||||
character encoding is not stateful. But there is nothing mentioned in
|
character encoding is not stateful. But there is nothing mentioned in
|
||||||
any standard that prohibits making @code{wchar_t} using a stateful
|
any standard that prohibits making @code{wchar_t} using a stateful
|
||||||
|
|
|
@ -1185,7 +1185,7 @@ represents the maximum length of a file name string. It is defined in
|
||||||
|
|
||||||
Unlike @code{PATH_MAX}, this macro is defined even if there is no actual
|
Unlike @code{PATH_MAX}, this macro is defined even if there is no actual
|
||||||
limit imposed. In such a case, its value is typically a very large
|
limit imposed. In such a case, its value is typically a very large
|
||||||
number. @strong{This is always the case on the GNU system.}
|
number. @strong{This is always the case on @gnuhurdsystems{}.}
|
||||||
|
|
||||||
@strong{Usage Note:} Don't use @code{FILENAME_MAX} as the size of an
|
@strong{Usage Note:} Don't use @code{FILENAME_MAX} as the size of an
|
||||||
array in which to store a file name! You can't possibly make an array
|
array in which to store a file name! You can't possibly make an array
|
||||||
|
@ -1252,7 +1252,7 @@ particular file, call @code{pathconf} or @code{fpathconf}.
|
||||||
Here are the names for the POSIX minimum upper bounds for some of the
|
Here are the names for the POSIX minimum upper bounds for some of the
|
||||||
above parameters. The significance of these values is that you can
|
above parameters. The significance of these values is that you can
|
||||||
safely push to these limits without checking whether the particular
|
safely push to these limits without checking whether the particular
|
||||||
system you are using can go that far. In most cases GNU systems do not
|
system you are using can go that far. In most cases @gnusystems{} do not
|
||||||
have these strict limitations. The actual limit should be requested if
|
have these strict limitations. The actual limit should be requested if
|
||||||
necessary.
|
necessary.
|
||||||
|
|
||||||
|
|
|
@ -66,8 +66,9 @@ function returns an error.
|
||||||
@strong{Portability Note:} @w{ISO C} specifies @code{errno} as a
|
@strong{Portability Note:} @w{ISO C} specifies @code{errno} as a
|
||||||
``modifiable lvalue'' rather than as a variable, permitting it to be
|
``modifiable lvalue'' rather than as a variable, permitting it to be
|
||||||
implemented as a macro. For example, its expansion might involve a
|
implemented as a macro. For example, its expansion might involve a
|
||||||
function call, like @w{@code{*_errno ()}}. In fact, that is what it is
|
function call, like @w{@code{*__errno_location ()}}. In fact, that is
|
||||||
on the GNU system itself. @Theglibc{}, on non-GNU systems, does
|
what it is
|
||||||
|
on @gnulinuxhurdsystems{}. @Theglibc{}, on each system, does
|
||||||
whatever is right for the particular system.
|
whatever is right for the particular system.
|
||||||
|
|
||||||
There are a few library functions, like @code{sqrt} and @code{atan},
|
There are a few library functions, like @code{sqrt} and @code{atan},
|
||||||
|
@ -96,10 +97,10 @@ codes of their own for other situations. The only values that are
|
||||||
guaranteed to be meaningful for a particular library function are the
|
guaranteed to be meaningful for a particular library function are the
|
||||||
ones that this manual lists for that function.
|
ones that this manual lists for that function.
|
||||||
|
|
||||||
On non-GNU systems, almost any system call can return @code{EFAULT} if
|
Except on @gnuhurdsystems{}, almost any system call can return @code{EFAULT} if
|
||||||
it is given an invalid pointer as an argument. Since this could only
|
it is given an invalid pointer as an argument. Since this could only
|
||||||
happen as a result of a bug in your program, and since it will not
|
happen as a result of a bug in your program, and since it will not
|
||||||
happen on the GNU system, we have saved space by not mentioning
|
happen on @gnuhurdsystems{}, we have saved space by not mentioning
|
||||||
@code{EFAULT} in the descriptions of individual functions.
|
@code{EFAULT} in the descriptions of individual functions.
|
||||||
|
|
||||||
In some Unix systems, many system calls can also return @code{EFAULT} if
|
In some Unix systems, many system calls can also return @code{EFAULT} if
|
||||||
|
@ -114,7 +115,7 @@ allocated memory instead of stack memory on that system.
|
||||||
@pindex errno.h
|
@pindex errno.h
|
||||||
The error code macros are defined in the header file @file{errno.h}.
|
The error code macros are defined in the header file @file{errno.h}.
|
||||||
All of them expand into integer constant values. Some of these error
|
All of them expand into integer constant values. Some of these error
|
||||||
codes can't occur on the GNU system, but they can occur using @theglibc{}
|
codes can't occur on @gnusystems{}, but they can occur using @theglibc{}
|
||||||
on other systems.
|
on other systems.
|
||||||
|
|
||||||
@comment errno.h
|
@comment errno.h
|
||||||
|
@ -178,8 +179,8 @@ computer.
|
||||||
@comment errno 7 @c DO NOT REMOVE
|
@comment errno 7 @c DO NOT REMOVE
|
||||||
Argument list too long; used when the arguments passed to a new program
|
Argument list too long; used when the arguments passed to a new program
|
||||||
being executed with one of the @code{exec} functions (@pxref{Executing a
|
being executed with one of the @code{exec} functions (@pxref{Executing a
|
||||||
File}) occupy too much memory space. This condition never arises in the
|
File}) occupy too much memory space. This condition never arises on
|
||||||
GNU system.
|
@gnuhurdsystems{}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment errno.h
|
@comment errno.h
|
||||||
|
@ -238,7 +239,7 @@ Permission denied; the file permissions do not allow the attempted operation.
|
||||||
@deftypevr Macro int EFAULT
|
@deftypevr Macro int EFAULT
|
||||||
@comment errno 14 @c DO NOT REMOVE
|
@comment errno 14 @c DO NOT REMOVE
|
||||||
Bad address; an invalid pointer was detected.
|
Bad address; an invalid pointer was detected.
|
||||||
In the GNU system, this error never happens; you get a signal instead.
|
On @gnuhurdsystems{}, this error never happens; you get a signal instead.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment errno.h
|
@comment errno.h
|
||||||
|
@ -326,7 +327,7 @@ want to increase the @code{RLIMIT_NOFILE} limit or make it unlimited;
|
||||||
@comment errno 23 @c DO NOT REMOVE
|
@comment errno 23 @c DO NOT REMOVE
|
||||||
There are too many distinct file openings in the entire system. Note
|
There are too many distinct file openings in the entire system. Note
|
||||||
that any number of linked channels count as just one file opening; see
|
that any number of linked channels count as just one file opening; see
|
||||||
@ref{Linked Channels}. This error never occurs in the GNU system.
|
@ref{Linked Channels}. This error never occurs on @gnuhurdsystems{}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment errno.h
|
@comment errno.h
|
||||||
|
@ -345,7 +346,7 @@ An attempt to execute a file that is currently open for writing, or
|
||||||
write to a file that is currently being executed. Often using a
|
write to a file that is currently being executed. Often using a
|
||||||
debugger to run a program is considered having it open for writing and
|
debugger to run a program is considered having it open for writing and
|
||||||
will cause this error. (The name stands for ``text file busy''.) This
|
will cause this error. (The name stands for ``text file busy''.) This
|
||||||
is not an error in the GNU system; the text is copied as necessary.
|
is not an error on @gnuhurdsystems{}; the text is copied as necessary.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment errno.h
|
@comment errno.h
|
||||||
|
@ -533,7 +534,7 @@ The socket type is not supported.
|
||||||
@comment errno 45 @c DO NOT REMOVE
|
@comment errno 45 @c DO NOT REMOVE
|
||||||
The operation you requested is not supported. Some socket functions
|
The operation you requested is not supported. Some socket functions
|
||||||
don't make sense for all types of sockets, and others may not be
|
don't make sense for all types of sockets, and others may not be
|
||||||
implemented for all communications protocols. In the GNU system, this
|
implemented for all communications protocols. On @gnuhurdsystems{}, this
|
||||||
error can happen for many calls when the object does not support the
|
error can happen for many calls when the object does not support the
|
||||||
particular operation; it is a generic indication that the server knows
|
particular operation; it is a generic indication that the server knows
|
||||||
nothing to do for that call.
|
nothing to do for that call.
|
||||||
|
@ -754,7 +755,7 @@ the NFS file system on the local host.
|
||||||
An attempt was made to NFS-mount a remote file system with a file name that
|
An attempt was made to NFS-mount a remote file system with a file name that
|
||||||
already specifies an NFS-mounted file.
|
already specifies an NFS-mounted file.
|
||||||
(This is an error on some operating systems, but we expect it to work
|
(This is an error on some operating systems, but we expect it to work
|
||||||
properly on the GNU system, making this error code impossible.)
|
properly on @gnuhurdsystems{}, making this error code impossible.)
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment errno.h
|
@comment errno.h
|
||||||
|
@ -797,7 +798,7 @@ properly on the GNU system, making this error code impossible.)
|
||||||
@deftypevr Macro int ENOLCK
|
@deftypevr Macro int ENOLCK
|
||||||
@comment errno 77 @c DO NOT REMOVE
|
@comment errno 77 @c DO NOT REMOVE
|
||||||
No locks available. This is used by the file locking facilities; see
|
No locks available. This is used by the file locking facilities; see
|
||||||
@ref{File Locks}. This error is never generated by the GNU system, but
|
@ref{File Locks}. This error is never generated by @gnuhurdsystems{}, but
|
||||||
it can result from an operation to an NFS server running another
|
it can result from an operation to an NFS server running another
|
||||||
operating system.
|
operating system.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
@ -868,7 +869,7 @@ or an incomplete sequence of bytes or the given wide character is invalid.
|
||||||
@comment GNU: Inappropriate operation for background process
|
@comment GNU: Inappropriate operation for background process
|
||||||
@deftypevr Macro int EBACKGROUND
|
@deftypevr Macro int EBACKGROUND
|
||||||
@comment errno 100 @c DO NOT REMOVE
|
@comment errno 100 @c DO NOT REMOVE
|
||||||
In the GNU system, servers supporting the @code{term} protocol return
|
On @gnuhurdsystems{}, servers supporting the @code{term} protocol return
|
||||||
this error for certain operations when the caller is not in the
|
this error for certain operations when the caller is not in the
|
||||||
foreground process group of the terminal. Users do not usually see this
|
foreground process group of the terminal. Users do not usually see this
|
||||||
error because functions such as @code{read} and @code{write} translate
|
error because functions such as @code{read} and @code{write} translate
|
||||||
|
@ -880,7 +881,7 @@ for information on process groups and these signals.
|
||||||
@comment GNU: Translator died
|
@comment GNU: Translator died
|
||||||
@deftypevr Macro int EDIED
|
@deftypevr Macro int EDIED
|
||||||
@comment errno 101 @c DO NOT REMOVE
|
@comment errno 101 @c DO NOT REMOVE
|
||||||
In the GNU system, opening a file returns this error when the file is
|
On @gnuhurdsystems{}, opening a file returns this error when the file is
|
||||||
translated by a program and the translator program dies while starting
|
translated by a program and the translator program dies while starting
|
||||||
up, before it has connected to the file.
|
up, before it has connected to the file.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
@ -1346,8 +1347,8 @@ The function @code{perror} is declared in @file{stdio.h}.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
@code{strerror} and @code{perror} produce the exact same message for any
|
@code{strerror} and @code{perror} produce the exact same message for any
|
||||||
given error code; the precise text varies from system to system. On the
|
given error code; the precise text varies from system to system. With
|
||||||
GNU system, the messages are fairly short; there are no multi-line
|
@theglibc{}, the messages are fairly short; there are no multi-line
|
||||||
messages or embedded newlines. Each error message begins with a capital
|
messages or embedded newlines. Each error message begins with a capital
|
||||||
letter and does not include any terminating punctuation.
|
letter and does not include any terminating punctuation.
|
||||||
|
|
||||||
|
|
|
@ -121,8 +121,8 @@ the buffer. @Theglibc{} provides @code{getwd} only
|
||||||
for backwards compatibility with BSD.
|
for backwards compatibility with BSD.
|
||||||
|
|
||||||
The @var{buffer} argument should be a pointer to an array at least
|
The @var{buffer} argument should be a pointer to an array at least
|
||||||
@code{PATH_MAX} bytes long (@pxref{Limits for Files}). In the GNU
|
@code{PATH_MAX} bytes long (@pxref{Limits for Files}). On @gnuhurdsystems{}
|
||||||
system there is no limit to the size of a file name, so this is not
|
there is no limit to the size of a file name, so this is not
|
||||||
necessarily enough space to contain the directory name. That is why
|
necessarily enough space to contain the directory name. That is why
|
||||||
this function is deprecated.
|
this function is deprecated.
|
||||||
@end deftypefn
|
@end deftypefn
|
||||||
|
@ -242,7 +242,7 @@ field you can count on in all POSIX systems.
|
||||||
|
|
||||||
@item ino_t d_fileno
|
@item ino_t d_fileno
|
||||||
This is the file serial number. For BSD compatibility, you can also
|
This is the file serial number. For BSD compatibility, you can also
|
||||||
refer to this member as @code{d_ino}. In the GNU system and most POSIX
|
refer to this member as @code{d_ino}. On @gnulinuxhurdsystems{} and most POSIX
|
||||||
systems, for most files this the same as the @code{st_ino} member that
|
systems, for most files this the same as the @code{st_ino} member that
|
||||||
@code{stat} will return for the file. @xref{File Attributes}.
|
@code{stat} will return for the file. @xref{File Attributes}.
|
||||||
|
|
||||||
|
@ -354,7 +354,7 @@ The process has too many files open.
|
||||||
@item ENFILE
|
@item ENFILE
|
||||||
The entire system, or perhaps the file system which contains the
|
The entire system, or perhaps the file system which contains the
|
||||||
directory, cannot support any additional open files at the moment.
|
directory, cannot support any additional open files at the moment.
|
||||||
(This problem cannot happen on the GNU system.)
|
(This problem cannot happen on @gnuhurdsystems{}.)
|
||||||
|
|
||||||
@item ENOMEM
|
@item ENOMEM
|
||||||
Not enough memory available.
|
Not enough memory available.
|
||||||
|
@ -1075,7 +1075,8 @@ The directory or file system that would contain the new link is full
|
||||||
and cannot be extended.
|
and cannot be extended.
|
||||||
|
|
||||||
@item EPERM
|
@item EPERM
|
||||||
In the GNU system and some others, you cannot make links to directories.
|
On @gnulinuxhurdsystems{} and some others, you cannot make links to
|
||||||
|
directories.
|
||||||
Many systems allow only privileged users to do so. This error
|
Many systems allow only privileged users to do so. This error
|
||||||
is used to report the problem.
|
is used to report the problem.
|
||||||
|
|
||||||
|
@ -1099,7 +1100,7 @@ A hardware error occurred while trying to read or write the to filesystem.
|
||||||
@cindex symbolic link
|
@cindex symbolic link
|
||||||
@cindex link, symbolic
|
@cindex link, symbolic
|
||||||
|
|
||||||
The GNU system supports @dfn{soft links} or @dfn{symbolic links}. This
|
@gnusystems{} support @dfn{soft links} or @dfn{symbolic links}. This
|
||||||
is a kind of ``file'' that is essentially a pointer to another file
|
is a kind of ``file'' that is essentially a pointer to another file
|
||||||
name. Unlike hard links, symbolic links can be made to directories or
|
name. Unlike hard links, symbolic links can be made to directories or
|
||||||
across file systems with no restrictions. You can also make a symbolic
|
across file systems with no restrictions. You can also make a symbolic
|
||||||
|
@ -1352,8 +1353,8 @@ The file name to be deleted doesn't exist.
|
||||||
@item EPERM
|
@item EPERM
|
||||||
On some systems @code{unlink} cannot be used to delete the name of a
|
On some systems @code{unlink} cannot be used to delete the name of a
|
||||||
directory, or at least can only be used this way by a privileged user.
|
directory, or at least can only be used this way by a privileged user.
|
||||||
To avoid such problems, use @code{rmdir} to delete directories. (In the
|
To avoid such problems, use @code{rmdir} to delete directories. (On
|
||||||
GNU system @code{unlink} can never delete the name of a directory.)
|
@gnulinuxhurdsystems{} @code{unlink} can never delete the name of a directory.)
|
||||||
|
|
||||||
@item EROFS
|
@item EROFS
|
||||||
The directory containing the file name to be deleted is on a read-only
|
The directory containing the file name to be deleted is on a read-only
|
||||||
|
@ -1381,7 +1382,7 @@ The directory to be deleted is not empty.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
These two error codes are synonymous; some systems use one, and some use
|
These two error codes are synonymous; some systems use one, and some use
|
||||||
the other. The GNU system always uses @code{ENOTEMPTY}.
|
the other. @gnulinuxhurdsystems{} always use @code{ENOTEMPTY}.
|
||||||
|
|
||||||
The prototype for this function is declared in the header file
|
The prototype for this function is declared in the header file
|
||||||
@file{unistd.h}.
|
@file{unistd.h}.
|
||||||
|
@ -1458,7 +1459,7 @@ that are the current working directories of processes.
|
||||||
|
|
||||||
@item ENOTEMPTY
|
@item ENOTEMPTY
|
||||||
@itemx EEXIST
|
@itemx EEXIST
|
||||||
The directory @var{newname} isn't empty. The GNU system always returns
|
The directory @var{newname} isn't empty. @gnulinuxhurdsystems{} always return
|
||||||
@code{ENOTEMPTY} for this, but some other systems return @code{EEXIST}.
|
@code{ENOTEMPTY} for this, but some other systems return @code{EEXIST}.
|
||||||
|
|
||||||
@item EINVAL
|
@item EINVAL
|
||||||
|
@ -2480,16 +2481,16 @@ read_umask (void)
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
However, it is better to use @code{getumask} if you just want to read
|
However, on @gnuhurdsystems{} it is better to use @code{getumask} if
|
||||||
the mask value, because it is reentrant (at least if you use the GNU
|
you just want to read the mask value, because it is reentrant.
|
||||||
operating system).
|
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
@comment sys/stat.h
|
@comment sys/stat.h
|
||||||
@comment GNU
|
@comment GNU
|
||||||
@deftypefun mode_t getumask (void)
|
@deftypefun mode_t getumask (void)
|
||||||
Return the current value of the file creation mask for the current
|
Return the current value of the file creation mask for the current
|
||||||
process. This function is a GNU extension.
|
process. This function is a GNU extension and is only available on
|
||||||
|
@gnuhurdsystems{}.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
@comment sys/stat.h
|
@comment sys/stat.h
|
||||||
|
|
|
@ -58,8 +58,8 @@ directory, especially some files in the manual subdirectory.
|
||||||
mandatory is @samp{--prefix}. This option tells @code{configure}
|
mandatory is @samp{--prefix}. This option tells @code{configure}
|
||||||
where you want @theglibc{} installed. This defaults to @file{/usr/local},
|
where you want @theglibc{} installed. This defaults to @file{/usr/local},
|
||||||
but the normal setting to install as the standard system library is
|
but the normal setting to install as the standard system library is
|
||||||
@samp{--prefix=/usr} for GNU/Linux systems and @samp{--prefix=} (an
|
@samp{--prefix=/usr} for @gnulinuxsystems{} and @samp{--prefix=} (an
|
||||||
empty prefix) for GNU/Hurd systems.
|
empty prefix) for @gnuhurdsystems{}.
|
||||||
|
|
||||||
It may also be useful to set the @var{CC} and @var{CFLAGS} variables in
|
It may also be useful to set the @var{CC} and @var{CFLAGS} variables in
|
||||||
the environment when running @code{configure}. @var{CC} selects the C
|
the environment when running @code{configure}. @var{CC} selects the C
|
||||||
|
@ -104,7 +104,7 @@ relative to the build directory (that is, the current working directory).
|
||||||
For example, @samp{--enable-add-ons=nptl,../glibc-libidn-@var{version}}.
|
For example, @samp{--enable-add-ons=nptl,../glibc-libidn-@var{version}}.
|
||||||
|
|
||||||
@item --enable-kernel=@var{version}
|
@item --enable-kernel=@var{version}
|
||||||
This option is currently only useful on GNU/Linux systems. The
|
This option is currently only useful on @gnulinuxsystems{}. The
|
||||||
@var{version} parameter should have the form X.Y.Z and describes the
|
@var{version} parameter should have the form X.Y.Z and describes the
|
||||||
smallest version of the Linux kernel the generated library is expected
|
smallest version of the Linux kernel the generated library is expected
|
||||||
to support. The higher the @var{version} number is, the less
|
to support. The higher the @var{version} number is, the less
|
||||||
|
@ -386,10 +386,10 @@ You may also need these packages if you upgrade your source tree using
|
||||||
patches, although we try to avoid this.
|
patches, although we try to avoid this.
|
||||||
|
|
||||||
@node Linux
|
@node Linux
|
||||||
@appendixsec Specific advice for GNU/Linux systems
|
@appendixsec Specific advice for @gnulinuxsystems{}
|
||||||
@cindex kernel header files
|
@cindex kernel header files
|
||||||
|
|
||||||
If you are installing @theglibc{} on a GNU/Linux system, you need to have
|
If you are installing @theglibc{} on @gnulinuxsystems{}, you need to have
|
||||||
the header files from a 2.6.19.1 or newer kernel around for reference.
|
the header files from a 2.6.19.1 or newer kernel around for reference.
|
||||||
These headers must be installed using @samp{make headers_install}; the
|
These headers must be installed using @samp{make headers_install}; the
|
||||||
headers present in the kernel source directory are not suitable for
|
headers present in the kernel source directory are not suitable for
|
||||||
|
@ -421,7 +421,8 @@ are not required if not compiling programs using those interfaces.
|
||||||
You do not need to copy kernel headers if you did not specify an
|
You do not need to copy kernel headers if you did not specify an
|
||||||
alternate kernel header source using @samp{--with-headers}.
|
alternate kernel header source using @samp{--with-headers}.
|
||||||
|
|
||||||
GNU/Linux expects some components of the @glibcadj{} installation to be in
|
The Filesystem Hierarchy Standard for @gnulinuxsystems{} expects some
|
||||||
|
components of the @glibcadj{} installation to be in
|
||||||
@file{/lib} and some in @file{/usr/lib}. This is handled automatically
|
@file{/lib} and some in @file{/usr/lib}. This is handled automatically
|
||||||
if you configure @theglibc{} with @samp{--prefix=/usr}. If you set some other
|
if you configure @theglibc{} with @samp{--prefix=/usr}. If you set some other
|
||||||
prefix or allow it to default to @file{/usr/local}, then all the
|
prefix or allow it to default to @file{/usr/local}, then all the
|
||||||
|
|
|
@ -12,7 +12,7 @@ programs.
|
||||||
@Theglibc{}, described in this document, defines all of the
|
@Theglibc{}, described in this document, defines all of the
|
||||||
library functions that are specified by the @w{ISO C} standard, as well as
|
library functions that are specified by the @w{ISO C} standard, as well as
|
||||||
additional features specific to POSIX and other derivatives of the Unix
|
additional features specific to POSIX and other derivatives of the Unix
|
||||||
operating system, and extensions specific to the GNU system.
|
operating system, and extensions specific to @gnusystems{}.
|
||||||
|
|
||||||
The purpose of this manual is to tell you how to use the facilities
|
The purpose of this manual is to tell you how to use the facilities
|
||||||
of @theglibc{}. We have mentioned which features belong to which
|
of @theglibc{}. We have mentioned which features belong to which
|
||||||
|
|
|
@ -121,7 +121,7 @@ and formatted output functions (@pxref{Formatted Output}).
|
||||||
If you are concerned about portability of your programs to systems other
|
If you are concerned about portability of your programs to systems other
|
||||||
than GNU, you should also be aware that file descriptors are not as
|
than GNU, you should also be aware that file descriptors are not as
|
||||||
portable as streams. You can expect any system running @w{ISO C} to
|
portable as streams. You can expect any system running @w{ISO C} to
|
||||||
support streams, but non-GNU systems may not support file descriptors at
|
support streams, but @nongnusystems{} may not support file descriptors at
|
||||||
all, or may only implement a subset of the GNU functions that operate on
|
all, or may only implement a subset of the GNU functions that operate on
|
||||||
file descriptors. Most of the file descriptor functions in @theglibc{}
|
file descriptors. Most of the file descriptor functions in @theglibc{}
|
||||||
are included in the POSIX.1 standard, however.
|
are included in the POSIX.1 standard, however.
|
||||||
|
@ -131,7 +131,7 @@ are included in the POSIX.1 standard, however.
|
||||||
|
|
||||||
One of the attributes of an open file is its @dfn{file position} that
|
One of the attributes of an open file is its @dfn{file position} that
|
||||||
keeps track of where in the file the next character is to be read or
|
keeps track of where in the file the next character is to be read or
|
||||||
written. In the GNU system, and all POSIX.1 systems, the file position
|
written. On @gnusystems{}, and all POSIX.1 systems, the file position
|
||||||
is simply an integer representing the number of bytes from the beginning
|
is simply an integer representing the number of bytes from the beginning
|
||||||
of the file.
|
of the file.
|
||||||
|
|
||||||
|
@ -304,7 +304,7 @@ but the empty string is not a meaningful file name. If you want to
|
||||||
refer to the current working directory, use a file name of @file{.} or
|
refer to the current working directory, use a file name of @file{.} or
|
||||||
@file{./}.
|
@file{./}.
|
||||||
|
|
||||||
Unlike some other operating systems, the GNU system doesn't have any
|
Unlike some other operating systems, @gnusystems{} don't have any
|
||||||
built-in support for file types (or extensions) or file versions as part
|
built-in support for file types (or extensions) or file versions as part
|
||||||
of its file name syntax. Many programs and utilities use conventions
|
of its file name syntax. Many programs and utilities use conventions
|
||||||
for file names---for example, files containing C source code usually
|
for file names---for example, files containing C source code usually
|
||||||
|
@ -332,7 +332,7 @@ This error is used when either the total length of a file name is
|
||||||
greater than @code{PATH_MAX}, or when an individual file name component
|
greater than @code{PATH_MAX}, or when an individual file name component
|
||||||
has a length greater than @code{NAME_MAX}. @xref{Limits for Files}.
|
has a length greater than @code{NAME_MAX}. @xref{Limits for Files}.
|
||||||
|
|
||||||
In the GNU system, there is no imposed limit on overall file name
|
On @gnuhurdsystems{}, there is no imposed limit on overall file name
|
||||||
length, but some file systems may place limits on the length of a
|
length, but some file systems may place limits on the length of a
|
||||||
component.
|
component.
|
||||||
|
|
||||||
|
@ -357,7 +357,7 @@ way to detect loops. @xref{Symbolic Links}.
|
||||||
@subsection Portability of File Names
|
@subsection Portability of File Names
|
||||||
|
|
||||||
The rules for the syntax of file names discussed in @ref{File Names},
|
The rules for the syntax of file names discussed in @ref{File Names},
|
||||||
are the rules normally used by the GNU system and by other POSIX
|
are the rules normally used by @gnusystems{} and by other POSIX
|
||||||
systems. However, other operating systems may use other conventions.
|
systems. However, other operating systems may use other conventions.
|
||||||
|
|
||||||
There are two reasons why it can be important for you to be aware of
|
There are two reasons why it can be important for you to be aware of
|
||||||
|
@ -389,7 +389,7 @@ some operating systems and not by others.
|
||||||
The POSIX.1 standard allows implementations to put additional
|
The POSIX.1 standard allows implementations to put additional
|
||||||
restrictions on file name syntax, concerning what characters are
|
restrictions on file name syntax, concerning what characters are
|
||||||
permitted in file names and on the length of file name and file name
|
permitted in file names and on the length of file name and file name
|
||||||
component strings. However, in the GNU system, you do not need to worry
|
component strings. However, on @gnusystems{}, any character except
|
||||||
about these restrictions; any character except the null character is
|
the null character is permitted in a file name string, and
|
||||||
permitted in a file name string, and there are no limits on the length
|
on @gnuhurdsystems{} there are no limits on the length of file name
|
||||||
of file name strings.
|
strings.
|
||||||
|
|
|
@ -106,7 +106,7 @@ controlling terminal,
|
||||||
@section Job Control is Optional
|
@section Job Control is Optional
|
||||||
@cindex job control is optional
|
@cindex job control is optional
|
||||||
|
|
||||||
Not all operating systems support job control. The GNU system does
|
Not all operating systems support job control. @gnusystems{} do
|
||||||
support job control, but if you are using @theglibc{} on some other
|
support job control, but if you are using @theglibc{} on some other
|
||||||
system, that system may not support job control itself.
|
system, that system may not support job control itself.
|
||||||
|
|
||||||
|
|
|
@ -120,7 +120,7 @@ The maximum number of file descriptors is controlled by the
|
||||||
@item ENFILE
|
@item ENFILE
|
||||||
The entire system, or perhaps the file system which contains the
|
The entire system, or perhaps the file system which contains the
|
||||||
directory, cannot support any additional open files at the moment.
|
directory, cannot support any additional open files at the moment.
|
||||||
(This problem cannot happen on the GNU system.)
|
(This problem cannot happen on @gnuhurdsystems{}.)
|
||||||
|
|
||||||
@item ENOENT
|
@item ENOENT
|
||||||
The named file does not exist, and @code{O_CREAT} is not specified.
|
The named file does not exist, and @code{O_CREAT} is not specified.
|
||||||
|
@ -341,8 +341,8 @@ file can also fail with @code{EAGAIN} if the kernel cannot find enough
|
||||||
physical memory to lock down the user's pages. This is limited to
|
physical memory to lock down the user's pages. This is limited to
|
||||||
devices that transfer with direct memory access into the user's memory,
|
devices that transfer with direct memory access into the user's memory,
|
||||||
which means it does not include terminals, since they always use
|
which means it does not include terminals, since they always use
|
||||||
separate buffers inside the kernel. This problem never happens in the
|
separate buffers inside the kernel. This problem never happens on
|
||||||
GNU system.
|
@gnuhurdsystems{}.
|
||||||
|
|
||||||
Any condition that could result in @code{EAGAIN} can instead result in a
|
Any condition that could result in @code{EAGAIN} can instead result in a
|
||||||
successful @code{read} which returns fewer bytes than requested.
|
successful @code{read} which returns fewer bytes than requested.
|
||||||
|
@ -492,8 +492,8 @@ file can also fail with @code{EAGAIN} if the kernel cannot find enough
|
||||||
physical memory to lock down the user's pages. This is limited to
|
physical memory to lock down the user's pages. This is limited to
|
||||||
devices that transfer with direct memory access into the user's memory,
|
devices that transfer with direct memory access into the user's memory,
|
||||||
which means it does not include terminals, since they always use
|
which means it does not include terminals, since they always use
|
||||||
separate buffers inside the kernel. This problem does not arise in the
|
separate buffers inside the kernel. This problem does not arise on
|
||||||
GNU system.
|
@gnuhurdsystems{}.
|
||||||
|
|
||||||
@item EBADF
|
@item EBADF
|
||||||
The @var{filedes} argument is not a valid file descriptor,
|
The @var{filedes} argument is not a valid file descriptor,
|
||||||
|
@ -687,7 +687,7 @@ file offset is not valid. A file offset is invalid.
|
||||||
@item ESPIPE
|
@item ESPIPE
|
||||||
The @var{filedes} corresponds to an object that cannot be positioned,
|
The @var{filedes} corresponds to an object that cannot be positioned,
|
||||||
such as a pipe, FIFO or terminal device. (POSIX.1 specifies this error
|
such as a pipe, FIFO or terminal device. (POSIX.1 specifies this error
|
||||||
only for pipes and FIFOs, but in the GNU system, you always get
|
only for pipes and FIFOs, but on @gnusystems{}, you always get
|
||||||
@code{ESPIPE} if the object is not seekable.)
|
@code{ESPIPE} if the object is not seekable.)
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -830,7 +830,7 @@ The @code{fdopen} function returns a new stream for the file descriptor
|
||||||
|
|
||||||
The @var{opentype} argument is interpreted in the same way as for the
|
The @var{opentype} argument is interpreted in the same way as for the
|
||||||
@code{fopen} function (@pxref{Opening Streams}), except that
|
@code{fopen} function (@pxref{Opening Streams}), except that
|
||||||
the @samp{b} option is not permitted; this is because GNU makes no
|
the @samp{b} option is not permitted; this is because @gnusystems{} make no
|
||||||
distinction between text and binary files. Also, @code{"w"} and
|
distinction between text and binary files. Also, @code{"w"} and
|
||||||
@code{"w+"} do not cause truncation of the file; these have an effect only
|
@code{"w+"} do not cause truncation of the file; these have an effect only
|
||||||
when opening a file, and in this case the file has already been opened.
|
when opening a file, and in this case the file has already been opened.
|
||||||
|
@ -2154,7 +2154,7 @@ the moment. The error status for each element of @var{list} must be
|
||||||
checked to determine which request failed.
|
checked to determine which request failed.
|
||||||
|
|
||||||
Another reason could be that the system wide limit of AIO requests is
|
Another reason could be that the system wide limit of AIO requests is
|
||||||
exceeded. This cannot be the case for the implementation on GNU systems
|
exceeded. This cannot be the case for the implementation on @gnusystems{}
|
||||||
since no arbitrary limits exist.
|
since no arbitrary limits exist.
|
||||||
@item EINVAL
|
@item EINVAL
|
||||||
The @var{mode} parameter is invalid or @var{nent} is larger than
|
The @var{mode} parameter is invalid or @var{nent} is larger than
|
||||||
|
@ -2895,7 +2895,7 @@ The symbols in this section are defined in the header file
|
||||||
@subsection File Access Modes
|
@subsection File Access Modes
|
||||||
|
|
||||||
The file access modes allow a file descriptor to be used for reading,
|
The file access modes allow a file descriptor to be used for reading,
|
||||||
writing, or both. (In the GNU system, they can also allow none of these,
|
writing, or both. (On @gnuhurdsystems{}, they can also allow none of these,
|
||||||
and allow execution of the file as a program.) The access modes are chosen
|
and allow execution of the file as a program.) The access modes are chosen
|
||||||
when the file is opened, and never change.
|
when the file is opened, and never change.
|
||||||
|
|
||||||
|
@ -2917,13 +2917,13 @@ Open the file for write access.
|
||||||
Open the file for both reading and writing.
|
Open the file for both reading and writing.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
In the GNU system (and not in other systems), @code{O_RDONLY} and
|
On @gnuhurdsystems{} (and not on other systems), @code{O_RDONLY} and
|
||||||
@code{O_WRONLY} are independent bits that can be bitwise-ORed together,
|
@code{O_WRONLY} are independent bits that can be bitwise-ORed together,
|
||||||
and it is valid for either bit to be set or clear. This means that
|
and it is valid for either bit to be set or clear. This means that
|
||||||
@code{O_RDWR} is the same as @code{O_RDONLY|O_WRONLY}. A file access
|
@code{O_RDWR} is the same as @code{O_RDONLY|O_WRONLY}. A file access
|
||||||
mode of zero is permissible; it allows no operations that do input or
|
mode of zero is permissible; it allows no operations that do input or
|
||||||
output to the file, but does allow other operations such as
|
output to the file, but does allow other operations such as
|
||||||
@code{fchmod}. On the GNU system, since ``read-only'' or ``write-only''
|
@code{fchmod}. On @gnuhurdsystems{}, since ``read-only'' or ``write-only''
|
||||||
is a misnomer, @file{fcntl.h} defines additional names for the file
|
is a misnomer, @file{fcntl.h} defines additional names for the file
|
||||||
access modes. These names are preferred when writing GNU-specific code.
|
access modes. These names are preferred when writing GNU-specific code.
|
||||||
But most programs will want to be portable to other POSIX.1 systems and
|
But most programs will want to be portable to other POSIX.1 systems and
|
||||||
|
@ -2948,8 +2948,9 @@ Open the file for executing. Only defined on GNU.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
To determine the file access mode with @code{fcntl}, you must extract
|
To determine the file access mode with @code{fcntl}, you must extract
|
||||||
the access mode bits from the retrieved file status flags. In the GNU
|
the access mode bits from the retrieved file status flags. On
|
||||||
system, you can just test the @code{O_READ} and @code{O_WRITE} bits in
|
@gnuhurdsystems{},
|
||||||
|
you can just test the @code{O_READ} and @code{O_WRITE} bits in
|
||||||
the flags word. But in other POSIX.1 systems, reading and writing
|
the flags word. But in other POSIX.1 systems, reading and writing
|
||||||
access modes are not stored as distinct bit flags. The portable way to
|
access modes are not stored as distinct bit flags. The portable way to
|
||||||
extract the file access mode bits is with @code{O_ACCMODE}.
|
extract the file access mode bits is with @code{O_ACCMODE}.
|
||||||
|
@ -2960,7 +2961,7 @@ extract the file access mode bits is with @code{O_ACCMODE}.
|
||||||
This macro stands for a mask that can be bitwise-ANDed with the file
|
This macro stands for a mask that can be bitwise-ANDed with the file
|
||||||
status flag value to produce a value representing the file access mode.
|
status flag value to produce a value representing the file access mode.
|
||||||
The mode will be @code{O_RDONLY}, @code{O_WRONLY}, or @code{O_RDWR}.
|
The mode will be @code{O_RDONLY}, @code{O_WRONLY}, or @code{O_RDWR}.
|
||||||
(In the GNU system it could also be zero, and it never includes the
|
(On @gnuhurdsystems{} it could also be zero, and it never includes the
|
||||||
@code{O_EXEC} bit.)
|
@code{O_EXEC} bit.)
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
|
@ -3033,15 +3034,16 @@ If the named file is a terminal device, don't make it the controlling
|
||||||
terminal for the process. @xref{Job Control}, for information about
|
terminal for the process. @xref{Job Control}, for information about
|
||||||
what it means to be the controlling terminal.
|
what it means to be the controlling terminal.
|
||||||
|
|
||||||
In the GNU system and 4.4 BSD, opening a file never makes it the
|
On @gnuhurdsystems{} and 4.4 BSD, opening a file never makes it the
|
||||||
controlling terminal and @code{O_NOCTTY} is zero. However, other
|
controlling terminal and @code{O_NOCTTY} is zero. However, @gnulinuxsystems{}
|
||||||
systems may use a nonzero value for @code{O_NOCTTY} and set the
|
and some other systems use a nonzero value for @code{O_NOCTTY} and set the
|
||||||
controlling terminal when you open a file that is a terminal device; so
|
controlling terminal when you open a file that is a terminal device; so
|
||||||
to be portable, use @code{O_NOCTTY} when it is important to avoid this.
|
to be portable, use @code{O_NOCTTY} when it is important to avoid this.
|
||||||
@cindex controlling terminal, setting
|
@cindex controlling terminal, setting
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
The following three file name translation flags exist only in the GNU system.
|
The following three file name translation flags exist only on
|
||||||
|
@gnuhurdsystems{}.
|
||||||
|
|
||||||
@comment fcntl.h
|
@comment fcntl.h
|
||||||
@comment GNU
|
@comment GNU
|
||||||
|
@ -3417,7 +3419,7 @@ function:
|
||||||
The lock cannot be set because it is blocked by an existing lock on the
|
The lock cannot be set because it is blocked by an existing lock on the
|
||||||
file. Some systems use @code{EAGAIN} in this case, and other systems
|
file. Some systems use @code{EAGAIN} in this case, and other systems
|
||||||
use @code{EACCES}; your program should treat them alike, after
|
use @code{EACCES}; your program should treat them alike, after
|
||||||
@code{F_SETLK}. (The GNU system always uses @code{EAGAIN}.)
|
@code{F_SETLK}. (@gnulinuxhurdsystems{} always use @code{EAGAIN}.)
|
||||||
|
|
||||||
@item EBADF
|
@item EBADF
|
||||||
Either: the @var{filedes} argument is invalid; you requested a read lock
|
Either: the @var{filedes} argument is invalid; you requested a read lock
|
||||||
|
@ -3594,7 +3596,7 @@ There is no process or process group corresponding to @var{pid}.
|
||||||
@cindex generic i/o control operations
|
@cindex generic i/o control operations
|
||||||
@cindex IOCTLs
|
@cindex IOCTLs
|
||||||
|
|
||||||
The GNU system can handle most input/output operations on many different
|
@gnusystems{} can handle most input/output operations on many different
|
||||||
devices and objects in terms of a few file primitives - @code{read},
|
devices and objects in terms of a few file primitives - @code{read},
|
||||||
@code{write} and @code{lseek}. However, most devices also have a few
|
@code{write} and @code{lseek}. However, most devices also have a few
|
||||||
peculiar operations which do not fit into this model. Such as:
|
peculiar operations which do not fit into this model. Such as:
|
||||||
|
|
|
@ -17,4 +17,34 @@ the GNU C Library
|
||||||
GNU C Library
|
GNU C Library
|
||||||
@end macro
|
@end macro
|
||||||
|
|
||||||
|
@c Description applying to all GNU systems; that is, used in
|
||||||
|
@c describing a property of a system such that no system without that
|
||||||
|
@c property would be considered a variant of the GNU system.
|
||||||
|
@macro gnusystems
|
||||||
|
GNU systems
|
||||||
|
@end macro
|
||||||
|
|
||||||
|
@c Systems that are not GNU systems.
|
||||||
|
@macro nongnusystems
|
||||||
|
non-GNU systems
|
||||||
|
@end macro
|
||||||
|
|
||||||
|
@c Description applying to GNU/Linux and GNU/Hurd systems, but not
|
||||||
|
@c necessarily to other variants of the GNU system.
|
||||||
|
@macro gnulinuxhurdsystems
|
||||||
|
GNU/Linux and GNU/Hurd systems
|
||||||
|
@end macro
|
||||||
|
|
||||||
|
@c Descrption applying to GNU/Hurd systems; that is, systems using the
|
||||||
|
@c GNU Hurd with the GNU C Library.
|
||||||
|
@macro gnuhurdsystems
|
||||||
|
GNU/Hurd systems
|
||||||
|
@end macro
|
||||||
|
|
||||||
|
@c Descrption applying to GNU/Linux systems; that is, systems using
|
||||||
|
@c the Linux kernel with the GNU C Library.
|
||||||
|
@macro gnulinuxsystems
|
||||||
|
GNU/Linux systems
|
||||||
|
@end macro
|
||||||
|
|
||||||
@end ifclear
|
@end ifclear
|
||||||
|
|
|
@ -399,7 +399,7 @@ This directory is for @code{socket} and related functions on Unix systems.
|
||||||
|
|
||||||
@item mach
|
@item mach
|
||||||
This is the directory for things based on the Mach microkernel from CMU
|
This is the directory for things based on the Mach microkernel from CMU
|
||||||
(including the GNU operating system). Other basic operating systems
|
(including @gnuhurdsystems{}). Other basic operating systems
|
||||||
(VMS, for example) would have their own directories at the top level of
|
(VMS, for example) would have their own directories at the top level of
|
||||||
the @file{sysdeps} hierarchy, parallel to @file{unix} and @file{mach}.
|
the @file{sysdeps} hierarchy, parallel to @file{unix} and @file{mach}.
|
||||||
@end table
|
@end table
|
||||||
|
|
|
@ -379,7 +379,7 @@ savestring (const char *ptr, size_t len)
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
The block that @code{malloc} gives you is guaranteed to be aligned so
|
The block that @code{malloc} gives you is guaranteed to be aligned so
|
||||||
that it can hold any type of data. In the GNU system, the address is
|
that it can hold any type of data. On @gnusystems{}, the address is
|
||||||
always a multiple of eight on most systems, and a multiple of 16 on
|
always a multiple of eight on most systems, and a multiple of 16 on
|
||||||
64-bit systems. Only rarely is any higher boundary (such as a page
|
64-bit systems. Only rarely is any higher boundary (such as a page
|
||||||
boundary) necessary; for those cases, use @code{memalign},
|
boundary) necessary; for those cases, use @code{memalign},
|
||||||
|
@ -614,7 +614,7 @@ after calling @code{free} wastes memory. The size threshold for
|
||||||
@cindex alignment (with @code{malloc})
|
@cindex alignment (with @code{malloc})
|
||||||
@pindex stdlib.h
|
@pindex stdlib.h
|
||||||
The address of a block returned by @code{malloc} or @code{realloc} in
|
The address of a block returned by @code{malloc} or @code{realloc} in
|
||||||
the GNU system is always a multiple of eight (or sixteen on 64-bit
|
@gnusystems{} is always a multiple of eight (or sixteen on 64-bit
|
||||||
systems). If you need a block whose address is a multiple of a higher
|
systems). If you need a block whose address is a multiple of a higher
|
||||||
power of two than that, use @code{memalign}, @code{posix_memalign}, or
|
power of two than that, use @code{memalign}, @code{posix_memalign}, or
|
||||||
@code{valloc}. @code{memalign} is declared in @file{malloc.h} and
|
@code{valloc}. @code{memalign} is declared in @file{malloc.h} and
|
||||||
|
@ -2295,7 +2295,7 @@ the one you would get from an infinite recursion; probably a
|
||||||
segmentation violation (@pxref{Program Error Signals}).
|
segmentation violation (@pxref{Program Error Signals}).
|
||||||
|
|
||||||
@item
|
@item
|
||||||
Some non-GNU systems fail to support @code{alloca}, so it is less
|
Some @nongnusystems{} fail to support @code{alloca}, so it is less
|
||||||
portable. However, a slower emulation of @code{alloca} written in C
|
portable. However, a slower emulation of @code{alloca} written in C
|
||||||
is available for use on systems with this deficiency.
|
is available for use on systems with this deficiency.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
|
@ -670,7 +670,7 @@ type @code{glob64_t} which were allocated by @code{glob64}.
|
||||||
|
|
||||||
@Theglibc{} supports two interfaces for matching regular
|
@Theglibc{} supports two interfaces for matching regular
|
||||||
expressions. One is the standard POSIX.2 interface, and the other is
|
expressions. One is the standard POSIX.2 interface, and the other is
|
||||||
what the GNU system has had for many years.
|
what @theglibc{} has had for many years.
|
||||||
|
|
||||||
Both interfaces are declared in the header file @file{regex.h}.
|
Both interfaces are declared in the header file @file{regex.h}.
|
||||||
If you define @w{@code{_POSIX_C_SOURCE}}, then only the POSIX.2
|
If you define @w{@code{_POSIX_C_SOURCE}}, then only the POSIX.2
|
||||||
|
|
|
@ -74,8 +74,8 @@ The process has too many files open.
|
||||||
|
|
||||||
@item ENFILE
|
@item ENFILE
|
||||||
There are too many open files in the entire system. @xref{Error Codes},
|
There are too many open files in the entire system. @xref{Error Codes},
|
||||||
for more information about @code{ENFILE}. This error never occurs in
|
for more information about @code{ENFILE}. This error never occurs on
|
||||||
the GNU system.
|
@gnuhurdsystems{}.
|
||||||
@end table
|
@end table
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
|
|
|
@ -350,8 +350,8 @@ file name searching as the @code{execvp} function.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
The size of the argument list and environment list taken together must
|
The size of the argument list and environment list taken together must
|
||||||
not be greater than @code{ARG_MAX} bytes. @xref{General Limits}. In
|
not be greater than @code{ARG_MAX} bytes. @xref{General Limits}. On
|
||||||
the GNU system, the size (which compares against @code{ARG_MAX})
|
@gnuhurdsystems{}, the size (which compares against @code{ARG_MAX})
|
||||||
includes, for each string, the number of characters in the string, plus
|
includes, for each string, the number of characters in the string, plus
|
||||||
the size of a @code{char *}, plus one, rounded up to a multiple of the
|
the size of a @code{char *}, plus one, rounded up to a multiple of the
|
||||||
size of a @code{char *}. Other systems may have somewhat different
|
size of a @code{char *}. Other systems may have somewhat different
|
||||||
|
@ -366,7 +366,7 @@ usual file name errors (@pxref{File Name Errors}), the following
|
||||||
@table @code
|
@table @code
|
||||||
@item E2BIG
|
@item E2BIG
|
||||||
The combined size of the new program's argument list and environment
|
The combined size of the new program's argument list and environment
|
||||||
list is larger than @code{ARG_MAX} bytes. The GNU system has no
|
list is larger than @code{ARG_MAX} bytes. @gnuhurdsystems{} have no
|
||||||
specific limit on the argument list size, so this error code cannot
|
specific limit on the argument list size, so this error code cannot
|
||||||
result, but you may get @code{ENOMEM} instead if the arguments are too
|
result, but you may get @code{ENOMEM} instead if the arguments are too
|
||||||
big for available memory.
|
big for available memory.
|
||||||
|
@ -406,7 +406,7 @@ Pending alarms. @xref{Setting an Alarm}.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
Current working directory and root directory. @xref{Working
|
Current working directory and root directory. @xref{Working
|
||||||
Directory}. In the GNU system, the root directory is not copied when
|
Directory}. On @gnuhurdsystems{}, the root directory is not copied when
|
||||||
executing a setuid program; instead the system default root directory
|
executing a setuid program; instead the system default root directory
|
||||||
is used for the new program.
|
is used for the new program.
|
||||||
|
|
||||||
|
|
|
@ -42,9 +42,6 @@ Just the current process.
|
||||||
All child processes (direct and indirect) that have already terminated.
|
All child processes (direct and indirect) that have already terminated.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
In the GNU system, you can also inquire about a particular child process
|
|
||||||
by specifying its process ID.
|
|
||||||
|
|
||||||
The return value of @code{getrusage} is zero for success, and @code{-1}
|
The return value of @code{getrusage} is zero for success, and @code{-1}
|
||||||
for failure.
|
for failure.
|
||||||
|
|
||||||
|
|
|
@ -182,7 +182,7 @@ behavior.
|
||||||
|
|
||||||
The behavior of @code{setjmp} and @code{longjmp} in @theglibc{} is
|
The behavior of @code{setjmp} and @code{longjmp} in @theglibc{} is
|
||||||
controlled by feature test macros; see @ref{Feature Test Macros}. The
|
controlled by feature test macros; see @ref{Feature Test Macros}. The
|
||||||
default in the GNU system is the POSIX.1 behavior rather than the BSD
|
default in @theglibc{} is the POSIX.1 behavior rather than the BSD
|
||||||
behavior.
|
behavior.
|
||||||
|
|
||||||
The facilities in this section are declared in the header file
|
The facilities in this section are declared in the header file
|
||||||
|
|
|
@ -274,7 +274,7 @@ When one of these program error signals terminates a process, it also
|
||||||
writes a @dfn{core dump file} which records the state of the process at
|
writes a @dfn{core dump file} which records the state of the process at
|
||||||
the time of termination. The core dump file is named @file{core} and is
|
the time of termination. The core dump file is named @file{core} and is
|
||||||
written in whichever directory is current in the process at the time.
|
written in whichever directory is current in the process at the time.
|
||||||
(On the GNU system, you can specify the file name for core dumps with
|
(On @gnuhurdsystems{}, you can specify the file name for core dumps with
|
||||||
the environment variable @code{COREFILE}.) The purpose of core dump
|
the environment variable @code{COREFILE}.) The purpose of core dump
|
||||||
files is so that you can examine them with a debugger to investigate
|
files is so that you can examine them with a debugger to investigate
|
||||||
what caused the error.
|
what caused the error.
|
||||||
|
@ -309,7 +309,7 @@ this argument, you must define the handler to accept two arguments,
|
||||||
which means you must cast it to a one-argument function type in order to
|
which means you must cast it to a one-argument function type in order to
|
||||||
establish the handler. @Theglibc{} does provide this extra
|
establish the handler. @Theglibc{} does provide this extra
|
||||||
argument, but the value is meaningful only on operating systems that
|
argument, but the value is meaningful only on operating systems that
|
||||||
provide the information (BSD systems and GNU systems).
|
provide the information (BSD systems and @gnusystems{}).
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
@comment signal.h
|
@comment signal.h
|
||||||
|
@ -625,7 +625,7 @@ On most operating systems, terminals and sockets are the only kinds of
|
||||||
files that can generate @code{SIGIO}; other kinds, including ordinary
|
files that can generate @code{SIGIO}; other kinds, including ordinary
|
||||||
files, never generate @code{SIGIO} even if you ask them to.
|
files, never generate @code{SIGIO} even if you ask them to.
|
||||||
|
|
||||||
In the GNU system @code{SIGIO} will always be generated properly
|
On @gnusystems{} @code{SIGIO} will always be generated properly
|
||||||
if you successfully set asynchronous mode with @code{fcntl}.
|
if you successfully set asynchronous mode with @code{fcntl}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
|
@ -759,14 +759,14 @@ process would probably not be very useful, since there is no shell
|
||||||
program that will notice it stop and allow the user to continue it.
|
program that will notice it stop and allow the user to continue it.
|
||||||
What happens instead depends on the operating system you are using.
|
What happens instead depends on the operating system you are using.
|
||||||
Some systems may do nothing; others may deliver another signal instead,
|
Some systems may do nothing; others may deliver another signal instead,
|
||||||
such as @code{SIGKILL} or @code{SIGHUP}. In the GNU system, the process
|
such as @code{SIGKILL} or @code{SIGHUP}. On @gnuhurdsystems{}, the process
|
||||||
dies with @code{SIGKILL}; this avoids the problem of many stopped,
|
dies with @code{SIGKILL}; this avoids the problem of many stopped,
|
||||||
orphaned processes lying around the system.
|
orphaned processes lying around the system.
|
||||||
|
|
||||||
@ignore
|
@ignore
|
||||||
On the GNU system, it is possible to reattach to the orphaned process
|
On @gnuhurdsystems{}, it is possible to reattach to the orphaned process
|
||||||
group and continue it, so stop signals do stop the process as usual on
|
group and continue it, so stop signals do stop the process as usual on
|
||||||
a GNU system unless you have requested POSIX compatibility ``till it
|
@gnuhurdsystems{} unless you have requested POSIX compatibility ``till it
|
||||||
hurts.''
|
hurts.''
|
||||||
@end ignore
|
@end ignore
|
||||||
|
|
||||||
|
@ -805,7 +805,7 @@ that isn't connected. @xref{Sending Data}.
|
||||||
Resource lost. This signal is generated when you have an advisory lock
|
Resource lost. This signal is generated when you have an advisory lock
|
||||||
on an NFS file, and the NFS server reboots and forgets about your lock.
|
on an NFS file, and the NFS server reboots and forgets about your lock.
|
||||||
|
|
||||||
In the GNU system, @code{SIGLOST} is generated when any server program
|
On @gnuhurdsystems{}, @code{SIGLOST} is generated when any server program
|
||||||
dies unexpectedly. It is usually fine to ignore the signal; whatever
|
dies unexpectedly. It is usually fine to ignore the signal; whatever
|
||||||
call was made to the server that died just returns an error.
|
call was made to the server that died just returns an error.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
@ -864,7 +864,7 @@ reformat its display accordingly.
|
||||||
@comment signal.h
|
@comment signal.h
|
||||||
@comment BSD
|
@comment BSD
|
||||||
@deftypevr Macro int SIGINFO
|
@deftypevr Macro int SIGINFO
|
||||||
Information request. In 4.4 BSD and the GNU system, this signal is sent
|
Information request. On 4.4 BSD and @gnuhurdsystems{}, this signal is sent
|
||||||
to all the processes in the foreground process group of the controlling
|
to all the processes in the foreground process group of the controlling
|
||||||
terminal when the user types the STATUS character in canonical mode;
|
terminal when the user types the STATUS character in canonical mode;
|
||||||
@pxref{Signal Characters}.
|
@pxref{Signal Characters}.
|
||||||
|
@ -1223,7 +1223,7 @@ examine it with @code{sigaction}, the handler address that you get may
|
||||||
not be the same as what you specified with @code{signal}. It may not
|
not be the same as what you specified with @code{signal}. It may not
|
||||||
even be suitable for use as an action argument with @code{signal}. But
|
even be suitable for use as an action argument with @code{signal}. But
|
||||||
you can rely on using it as an argument to @code{sigaction}. This
|
you can rely on using it as an argument to @code{sigaction}. This
|
||||||
problem never happens on the GNU system.
|
problem never happens on @gnusystems{}.
|
||||||
|
|
||||||
So, you're better off using one or the other of the mechanisms
|
So, you're better off using one or the other of the mechanisms
|
||||||
consistently within a single program.
|
consistently within a single program.
|
||||||
|
@ -1894,7 +1894,7 @@ could ``lose'' one of the objects.
|
||||||
|
|
||||||
@ignore
|
@ignore
|
||||||
!!! not true
|
!!! not true
|
||||||
On the GNU system, @code{malloc} and @code{free} are safe to use in
|
In @theglibc{}, @code{malloc} and @code{free} are safe to use in
|
||||||
signal handlers because they block signals. As a result, the library
|
signal handlers because they block signals. As a result, the library
|
||||||
functions that allocate space for a result are also safe in signal
|
functions that allocate space for a result are also safe in signal
|
||||||
handlers. The obstack allocation functions are safe as long as you
|
handlers. The obstack allocation functions are safe as long as you
|
||||||
|
|
|
@ -169,7 +169,7 @@ To specify an argument for a long option, write
|
||||||
@samp{--@var{name}=@var{value}}. This syntax enables a long option to
|
@samp{--@var{name}=@var{value}}. This syntax enables a long option to
|
||||||
accept an argument that is itself optional.
|
accept an argument that is itself optional.
|
||||||
|
|
||||||
Eventually, the GNU system will provide completion for long option names
|
Eventually, @gnusystems{} will provide completion for long option names
|
||||||
in the shell.
|
in the shell.
|
||||||
|
|
||||||
@node Parsing Program Arguments, , Argument Syntax, Program Arguments
|
@node Parsing Program Arguments, , Argument Syntax, Program Arguments
|
||||||
|
@ -423,7 +423,7 @@ If you just want to get the value of an environment variable, use
|
||||||
@code{getenv}.
|
@code{getenv}.
|
||||||
@end deftypevar
|
@end deftypevar
|
||||||
|
|
||||||
Unix systems, and the GNU system, pass the initial value of
|
Unix systems, and @gnusystems{}, pass the initial value of
|
||||||
@code{environ} as the third argument to @code{main}.
|
@code{environ} as the third argument to @code{main}.
|
||||||
@xref{Program Arguments}.
|
@xref{Program Arguments}.
|
||||||
|
|
||||||
|
|
|
@ -110,7 +110,7 @@ diagnostics issued by the program.
|
||||||
@end deftypevar
|
@end deftypevar
|
||||||
@cindex standard error stream
|
@cindex standard error stream
|
||||||
|
|
||||||
In the GNU system, you can specify what files or processes correspond to
|
On @gnusystems{}, you can specify what files or processes correspond to
|
||||||
these streams using the pipe and redirection facilities provided by the
|
these streams using the pipe and redirection facilities provided by the
|
||||||
shell. (The primitives shells use to implement these facilities are
|
shell. (The primitives shells use to implement these facilities are
|
||||||
described in @ref{File System Interface}.) Most other operating systems
|
described in @ref{File System Interface}.) Most other operating systems
|
||||||
|
@ -206,7 +206,7 @@ Closing Files}).
|
||||||
|
|
||||||
The character @samp{b} in @var{opentype} has a standard meaning; it
|
The character @samp{b} in @var{opentype} has a standard meaning; it
|
||||||
requests a binary stream rather than a text stream. But this makes no
|
requests a binary stream rather than a text stream. But this makes no
|
||||||
difference in POSIX systems (including the GNU system). If both
|
difference in POSIX systems (including @gnusystems{}). If both
|
||||||
@samp{+} and @samp{b} are specified, they can appear in either order.
|
@samp{+} and @samp{b} are specified, they can appear in either order.
|
||||||
@xref{Binary Streams}.
|
@xref{Binary Streams}.
|
||||||
|
|
||||||
|
@ -2174,7 +2174,7 @@ The @samp{%p} conversion prints a pointer value. The corresponding
|
||||||
argument must be of type @code{void *}. In practice, you can use any
|
argument must be of type @code{void *}. In practice, you can use any
|
||||||
type of pointer.
|
type of pointer.
|
||||||
|
|
||||||
In the GNU system, non-null pointers are printed as unsigned integers,
|
In @theglibc{}, non-null pointers are printed as unsigned integers,
|
||||||
as if a @samp{%#x} conversion were used. Null pointers print as
|
as if a @samp{%#x} conversion were used. Null pointers print as
|
||||||
@samp{(nil)}. (Pointers might print differently in other systems.)
|
@samp{(nil)}. (Pointers might print differently in other systems.)
|
||||||
|
|
||||||
|
@ -4045,7 +4045,7 @@ descriptor is not usually advisable.
|
||||||
@node Binary Streams
|
@node Binary Streams
|
||||||
@section Text and Binary Streams
|
@section Text and Binary Streams
|
||||||
|
|
||||||
The GNU system and other POSIX-compatible operating systems organize all
|
@gnusystems{} and other POSIX-compatible operating systems organize all
|
||||||
files as uniform sequences of characters. However, some other systems
|
files as uniform sequences of characters. However, some other systems
|
||||||
make a distinction between files containing text and files containing
|
make a distinction between files containing text and files containing
|
||||||
binary data, and the input and output facilities of @w{ISO C} provide for
|
binary data, and the input and output facilities of @w{ISO C} provide for
|
||||||
|
@ -4108,7 +4108,7 @@ restrictions that text streams sometimes have.
|
||||||
|
|
||||||
The @dfn{file position} of a stream describes where in the file the
|
The @dfn{file position} of a stream describes where in the file the
|
||||||
stream is currently reading or writing. I/O on the stream advances the
|
stream is currently reading or writing. I/O on the stream advances the
|
||||||
file position through the file. In the GNU system, the file position is
|
file position through the file. On @gnusystems{}, the file position is
|
||||||
represented as an integer, which counts the number of bytes from the
|
represented as an integer, which counts the number of bytes from the
|
||||||
beginning of the file. @xref{File Position}.
|
beginning of the file. @xref{File Position}.
|
||||||
|
|
||||||
|
@ -4301,7 +4301,7 @@ An alias for @code{SEEK_END}.
|
||||||
@node Portable Positioning
|
@node Portable Positioning
|
||||||
@section Portable File-Position Functions
|
@section Portable File-Position Functions
|
||||||
|
|
||||||
On the GNU system, the file position is truly a character count. You
|
On @gnusystems{}, the file position is truly a character count. You
|
||||||
can specify any character count value as an argument to @code{fseek} or
|
can specify any character count value as an argument to @code{fseek} or
|
||||||
@code{fseeko} and get reliable results for any random access file.
|
@code{fseeko} and get reliable results for any random access file.
|
||||||
However, some @w{ISO C} systems do not represent file positions in this
|
However, some @w{ISO C} systems do not represent file positions in this
|
||||||
|
@ -4361,7 +4361,7 @@ This is the type of an object that can encode information about the
|
||||||
file position of a stream, for use by the functions @code{fgetpos} and
|
file position of a stream, for use by the functions @code{fgetpos} and
|
||||||
@code{fsetpos}.
|
@code{fsetpos}.
|
||||||
|
|
||||||
In the GNU system, @code{fpos_t} is an opaque data structure that
|
In @theglibc{}, @code{fpos_t} is an opaque data structure that
|
||||||
contains internal data to represent file offset and conversion state
|
contains internal data to represent file offset and conversion state
|
||||||
information. In other systems, it might have a different internal
|
information. In other systems, it might have a different internal
|
||||||
representation.
|
representation.
|
||||||
|
@ -4378,7 +4378,7 @@ This is the type of an object that can encode information about the
|
||||||
file position of a stream, for use by the functions @code{fgetpos64} and
|
file position of a stream, for use by the functions @code{fgetpos64} and
|
||||||
@code{fsetpos64}.
|
@code{fsetpos64}.
|
||||||
|
|
||||||
In the GNU system, @code{fpos64_t} is an opaque data structure that
|
In @theglibc{}, @code{fpos64_t} is an opaque data structure that
|
||||||
contains internal data to represent file offset and conversion state
|
contains internal data to represent file offset and conversion state
|
||||||
information. In other systems, it might have a different internal
|
information. In other systems, it might have a different internal
|
||||||
representation.
|
representation.
|
||||||
|
@ -4578,7 +4578,7 @@ This function is declared in the @file{stdio_ext.h} header.
|
||||||
been known to be so thoroughly fixated on line-oriented input and output
|
been known to be so thoroughly fixated on line-oriented input and output
|
||||||
that flushing a line buffered stream causes a newline to be written!
|
that flushing a line buffered stream causes a newline to be written!
|
||||||
Fortunately, this ``feature'' seems to be becoming less common. You do
|
Fortunately, this ``feature'' seems to be becoming less common. You do
|
||||||
not need to worry about this in the GNU system.
|
not need to worry about this with @theglibc{}.
|
||||||
|
|
||||||
In some situations it might be useful to not flush the output pending
|
In some situations it might be useful to not flush the output pending
|
||||||
for a stream but instead simply forget it. If transmission is costly
|
for a stream but instead simply forget it. If transmission is costly
|
||||||
|
|
|
@ -319,7 +319,7 @@ This is like @code{TCSADRAIN}, but also discards any queued input.
|
||||||
This is a flag bit that you can add to any of the above alternatives.
|
This is a flag bit that you can add to any of the above alternatives.
|
||||||
Its meaning is to inhibit alteration of the state of the terminal
|
Its meaning is to inhibit alteration of the state of the terminal
|
||||||
hardware. It is a BSD extension; it is only supported on BSD systems
|
hardware. It is a BSD extension; it is only supported on BSD systems
|
||||||
and the GNU system.
|
and @gnuhurdsystems{}.
|
||||||
|
|
||||||
Using @code{TCSASOFT} is exactly the same as setting the @code{CIGNORE}
|
Using @code{TCSASOFT} is exactly the same as setting the @code{CIGNORE}
|
||||||
bit in the @code{c_cflag} member of the structure @var{termios-p} points
|
bit in the @code{c_cflag} member of the structure @var{termios-p} points
|
||||||
|
@ -574,7 +574,8 @@ If this bit is set, any input character restarts output when output has
|
||||||
been suspended with the STOP character. Otherwise, only the START
|
been suspended with the STOP character. Otherwise, only the START
|
||||||
character restarts output.
|
character restarts output.
|
||||||
|
|
||||||
This is a BSD extension; it exists only on BSD systems and the GNU system.
|
This is a BSD extension; it exists only on BSD systems and
|
||||||
|
@gnulinuxhurdsystems{}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment termios.h
|
@comment termios.h
|
||||||
|
@ -611,12 +612,10 @@ carriage return and linefeed pairs.
|
||||||
If this bit isn't set, the characters are transmitted as-is.
|
If this bit isn't set, the characters are transmitted as-is.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
The following three bits are BSD features, and they exist only BSD
|
The following three bits are effective only if @code{OPOST} is set.
|
||||||
systems and the GNU system. They are effective only if @code{OPOST} is
|
|
||||||
set.
|
|
||||||
|
|
||||||
@comment termios.h
|
@comment termios.h
|
||||||
@comment BSD
|
@comment POSIX.1
|
||||||
@deftypevr Macro tcflag_t ONLCR
|
@deftypevr Macro tcflag_t ONLCR
|
||||||
If this bit is set, convert the newline character on output into a pair
|
If this bit is set, convert the newline character on output into a pair
|
||||||
of characters, carriage return followed by linefeed.
|
of characters, carriage return followed by linefeed.
|
||||||
|
@ -626,7 +625,9 @@ of characters, carriage return followed by linefeed.
|
||||||
@comment BSD
|
@comment BSD
|
||||||
@deftypevr Macro tcflag_t OXTABS
|
@deftypevr Macro tcflag_t OXTABS
|
||||||
If this bit is set, convert tab characters on output into the appropriate
|
If this bit is set, convert tab characters on output into the appropriate
|
||||||
number of spaces to emulate a tab stop every eight columns.
|
number of spaces to emulate a tab stop every eight columns. This bit
|
||||||
|
exists only on BSD systems and @gnuhurdsystems{}; on
|
||||||
|
@gnulinuxsystems{} it is available as @code{XTABS}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment termios.h
|
@comment termios.h
|
||||||
|
@ -634,6 +635,7 @@ number of spaces to emulate a tab stop every eight columns.
|
||||||
@deftypevr Macro tcflag_t ONOEOT
|
@deftypevr Macro tcflag_t ONOEOT
|
||||||
If this bit is set, discard @kbd{C-d} characters (code @code{004}) on
|
If this bit is set, discard @kbd{C-d} characters (code @code{004}) on
|
||||||
output. These characters cause many dial-up terminals to disconnect.
|
output. These characters cause many dial-up terminals to disconnect.
|
||||||
|
This bit exists only on BSD systems and @gnuhurdsystems{}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@node Control Modes
|
@node Control Modes
|
||||||
|
@ -747,8 +749,8 @@ This specifies seven bits per byte.
|
||||||
This specifies eight bits per byte.
|
This specifies eight bits per byte.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
The following four bits are BSD extensions; this exist only on BSD
|
The following four bits are BSD extensions; these exist only on BSD
|
||||||
systems and the GNU system.
|
systems and @gnuhurdsystems{}.
|
||||||
|
|
||||||
@comment termios.h
|
@comment termios.h
|
||||||
@comment BSD
|
@comment BSD
|
||||||
|
@ -839,8 +841,8 @@ character erased. Typing the ERASE character again just prints the next
|
||||||
character erased. Then, the next time you type a normal character, a
|
character erased. Then, the next time you type a normal character, a
|
||||||
@samp{/} character is printed before the character echoes.
|
@samp{/} character is printed before the character echoes.
|
||||||
|
|
||||||
This is a BSD extension, and exists only in BSD systems and the
|
This is a BSD extension, and exists only in BSD systems and
|
||||||
GNU system.
|
@gnulinuxhurdsystems{}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment termios.h
|
@comment termios.h
|
||||||
|
@ -865,8 +867,8 @@ input, without which @code{ECHOK} is simply irrelevant.
|
||||||
@deftypevr Macro tcflag_t ECHOKE
|
@deftypevr Macro tcflag_t ECHOKE
|
||||||
This bit is similar to @code{ECHOK}. It enables special display of the
|
This bit is similar to @code{ECHOK}. It enables special display of the
|
||||||
KILL character by erasing on the screen the entire line that has been
|
KILL character by erasing on the screen the entire line that has been
|
||||||
killed. This is a BSD extension, and exists only in BSD systems and the
|
killed. This is a BSD extension, and exists only in BSD systems and
|
||||||
GNU system.
|
@gnulinuxhurdsystems{}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment termios.h
|
@comment termios.h
|
||||||
|
@ -886,8 +888,8 @@ Thus, control-A echoes as @samp{^A}. This is usually the preferred mode
|
||||||
for interactive input, because echoing a control character back to the
|
for interactive input, because echoing a control character back to the
|
||||||
terminal could have some undesired effect on the terminal.
|
terminal could have some undesired effect on the terminal.
|
||||||
|
|
||||||
This is a BSD extension, and exists only in BSD systems and the
|
This is a BSD extension, and exists only in BSD systems and
|
||||||
GNU system.
|
@gnulinuxhurdsystems{}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment termios.h
|
@comment termios.h
|
||||||
|
@ -914,7 +916,8 @@ signals associated with these characters, or to escape from the program.
|
||||||
POSIX.1 gives @code{IEXTEN} implementation-defined meaning,
|
POSIX.1 gives @code{IEXTEN} implementation-defined meaning,
|
||||||
so you cannot rely on this interpretation on all systems.
|
so you cannot rely on this interpretation on all systems.
|
||||||
|
|
||||||
On BSD systems and the GNU system, it enables the LNEXT and DISCARD characters.
|
On BSD systems and @gnulinuxhurdsystems{}, it enables the LNEXT and
|
||||||
|
DISCARD characters.
|
||||||
@xref{Other Special}.
|
@xref{Other Special}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
|
@ -934,8 +937,8 @@ If this bit is set and the system supports job control, then
|
||||||
attempt to write to the terminal. @xref{Access to the Terminal}.
|
attempt to write to the terminal. @xref{Access to the Terminal}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
The following bits are BSD extensions; they exist only in BSD systems
|
The following bits are BSD extensions; they exist only on BSD systems
|
||||||
and the GNU system.
|
and @gnuhurdsystems{}.
|
||||||
|
|
||||||
@comment termios.h
|
@comment termios.h
|
||||||
@comment BSD
|
@comment BSD
|
||||||
|
@ -1245,7 +1248,7 @@ terminate an input line, by setting EOL to one of them and EOL2 to the
|
||||||
other.
|
other.
|
||||||
|
|
||||||
The EOL2 character is a BSD extension; it exists only on BSD systems
|
The EOL2 character is a BSD extension; it exists only on BSD systems
|
||||||
and the GNU system.
|
and @gnulinuxhurdsystems{}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment termios.h
|
@comment termios.h
|
||||||
|
@ -1404,7 +1407,7 @@ The DSUSP (suspend) character is recognized only if the implementation
|
||||||
supports job control (@pxref{Job Control}). It sends a @code{SIGTSTP}
|
supports job control (@pxref{Job Control}). It sends a @code{SIGTSTP}
|
||||||
signal, like the SUSP character, but not right away---only when the
|
signal, like the SUSP character, but not right away---only when the
|
||||||
program tries to read it as input. Not all systems with job control
|
program tries to read it as input. Not all systems with job control
|
||||||
support DSUSP; only BSD-compatible systems (including the GNU system).
|
support DSUSP; only BSD-compatible systems (including @gnuhurdsystems{}).
|
||||||
|
|
||||||
@xref{Signal Handling}, for more information about signals.
|
@xref{Signal Handling}, for more information about signals.
|
||||||
|
|
||||||
|
@ -1461,8 +1464,6 @@ regardless of what you specify.
|
||||||
@node Other Special
|
@node Other Special
|
||||||
@subsubsection Other Special Characters
|
@subsubsection Other Special Characters
|
||||||
|
|
||||||
These special characters exist only in BSD systems and the GNU system.
|
|
||||||
|
|
||||||
@comment termios.h
|
@comment termios.h
|
||||||
@comment BSD
|
@comment BSD
|
||||||
@deftypevr Macro int VLNEXT
|
@deftypevr Macro int VLNEXT
|
||||||
|
@ -1479,6 +1480,8 @@ signal, it is read as a plain character. This is the analogue of the
|
||||||
@kbd{C-q} command in Emacs. ``LNEXT'' stands for ``literal next.''
|
@kbd{C-q} command in Emacs. ``LNEXT'' stands for ``literal next.''
|
||||||
|
|
||||||
The LNEXT character is usually @kbd{C-v}.
|
The LNEXT character is usually @kbd{C-v}.
|
||||||
|
|
||||||
|
This character is available on BSD systems and @gnulinuxhurdsystems{}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment termios.h
|
@comment termios.h
|
||||||
|
@ -1494,6 +1497,8 @@ in both canonical and noncanonical mode. Its effect is to toggle the
|
||||||
discard-output flag. When this flag is set, all program output is
|
discard-output flag. When this flag is set, all program output is
|
||||||
discarded. Setting the flag also discards all output currently in the
|
discarded. Setting the flag also discards all output currently in the
|
||||||
output buffer. Typing any other character resets the flag.
|
output buffer. Typing any other character resets the flag.
|
||||||
|
|
||||||
|
This character is available on BSD systems and @gnulinuxhurdsystems{}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment termios.h
|
@comment termios.h
|
||||||
|
@ -1509,6 +1514,8 @@ the current process is running.
|
||||||
|
|
||||||
The STATUS character is recognized only in canonical mode, and only if
|
The STATUS character is recognized only in canonical mode, and only if
|
||||||
@code{NOKERNINFO} is not set.
|
@code{NOKERNINFO} is not set.
|
||||||
|
|
||||||
|
This character is available only on BSD systems and @gnuhurdsystems{}.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@node Noncanonical Input
|
@node Noncanonical Input
|
||||||
|
|
|
@ -84,7 +84,7 @@ time between calendar time @var{time1} and calendar time @var{time0}, as
|
||||||
a value of type @code{double}. The difference ignores leap seconds
|
a value of type @code{double}. The difference ignores leap seconds
|
||||||
unless leap second support is enabled.
|
unless leap second support is enabled.
|
||||||
|
|
||||||
In the GNU system, you can simply subtract @code{time_t} values. But on
|
In @theglibc{}, you can simply subtract @code{time_t} values. But on
|
||||||
other systems, the @code{time_t} data type might use some other encoding
|
other systems, the @code{time_t} data type might use some other encoding
|
||||||
where subtraction doesn't work directly.
|
where subtraction doesn't work directly.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
@ -163,7 +163,7 @@ you can get the information with the functions in this section.
|
||||||
CPU time (@pxref{Time Basics}) is represented by the data type
|
CPU time (@pxref{Time Basics}) is represented by the data type
|
||||||
@code{clock_t}, which is a number of @dfn{clock ticks}. It gives the
|
@code{clock_t}, which is a number of @dfn{clock ticks}. It gives the
|
||||||
total amount of time a process has actively used a CPU since some
|
total amount of time a process has actively used a CPU since some
|
||||||
arbitrary event. On the GNU system, that event is the creation of the
|
arbitrary event. On @gnusystems{}, that event is the creation of the
|
||||||
process. While arbitrary in general, the event is always the same event
|
process. While arbitrary in general, the event is always the same event
|
||||||
for any particular process, so you can always measure how much time on
|
for any particular process, so you can always measure how much time on
|
||||||
the CPU a particular computation takes by examining the process' CPU
|
the CPU a particular computation takes by examining the process' CPU
|
||||||
|
@ -172,7 +172,7 @@ time before and after the computation.
|
||||||
@cindex clock ticks
|
@cindex clock ticks
|
||||||
@cindex ticks, clock
|
@cindex ticks, clock
|
||||||
|
|
||||||
In the GNU system, @code{clock_t} is equivalent to @code{long int} and
|
On @gnulinuxhurdsystems{}, @code{clock_t} is equivalent to @code{long int} and
|
||||||
@code{CLOCKS_PER_SEC} is an integer value. But in other systems, both
|
@code{CLOCKS_PER_SEC} is an integer value. But in other systems, both
|
||||||
@code{clock_t} and the macro @code{CLOCKS_PER_SEC} can be either integer
|
@code{clock_t} and the macro @code{CLOCKS_PER_SEC} can be either integer
|
||||||
or floating-point types. Casting CPU time values to @code{double}, as
|
or floating-point types. Casting CPU time values to @code{double}, as
|
||||||
|
@ -319,7 +319,7 @@ indicate failure.
|
||||||
|
|
||||||
@strong{Portability Note:} The @code{clock} function described in
|
@strong{Portability Note:} The @code{clock} function described in
|
||||||
@ref{CPU Time} is specified by the @w{ISO C} standard. The
|
@ref{CPU Time} is specified by the @w{ISO C} standard. The
|
||||||
@code{times} function is a feature of POSIX.1. In the GNU system, the
|
@code{times} function is a feature of POSIX.1. On @gnusystems{}, the
|
||||||
CPU time is defined to be equivalent to the sum of the @code{tms_utime}
|
CPU time is defined to be equivalent to the sum of the @code{tms_utime}
|
||||||
and @code{tms_stime} fields returned by @code{times}.
|
and @code{tms_stime} fields returned by @code{times}.
|
||||||
|
|
||||||
|
@ -487,7 +487,7 @@ following @code{errno} error condition is defined for this function:
|
||||||
@table @code
|
@table @code
|
||||||
@item ENOSYS
|
@item ENOSYS
|
||||||
The operating system does not support getting time zone information, and
|
The operating system does not support getting time zone information, and
|
||||||
@var{tzp} is not a null pointer. The GNU operating system does not
|
@var{tzp} is not a null pointer. @gnusystems{} do not
|
||||||
support using @w{@code{struct timezone}} to represent time zone
|
support using @w{@code{struct timezone}} to represent time zone
|
||||||
information; that is an obsolete feature of 4.3 BSD.
|
information; that is an obsolete feature of 4.3 BSD.
|
||||||
Instead, use the facilities described in @ref{Time Zone Functions}.
|
Instead, use the facilities described in @ref{Time Zone Functions}.
|
||||||
|
@ -2462,7 +2462,7 @@ handler. And, if @code{sleep} is interrupted by delivery of a signal
|
||||||
whose handler requests an alarm or alters the handling of @code{SIGALRM},
|
whose handler requests an alarm or alters the handling of @code{SIGALRM},
|
||||||
this handler and @code{sleep} will interfere.
|
this handler and @code{sleep} will interfere.
|
||||||
|
|
||||||
On the GNU system, it is safe to use @code{sleep} and @code{SIGALRM} in
|
On @gnusystems{}, it is safe to use @code{sleep} and @code{SIGALRM} in
|
||||||
the same program, because @code{sleep} does not work by means of
|
the same program, because @code{sleep} does not work by means of
|
||||||
@code{SIGALRM}.
|
@code{SIGALRM}.
|
||||||
|
|
||||||
|
|
|
@ -884,7 +884,7 @@ The exit status of the process.
|
||||||
|
|
||||||
@deftp {Data Type} {struct utmp}
|
@deftp {Data Type} {struct utmp}
|
||||||
The @code{utmp} data structure is used to hold information about entries
|
The @code{utmp} data structure is used to hold information about entries
|
||||||
in the user accounting database. On the GNU system it has the following
|
in the user accounting database. On @gnusystems{} it has the following
|
||||||
members:
|
members:
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
|
@ -1217,7 +1217,7 @@ database specified by @var{wtmp_file}. For possible values for the
|
||||||
subset of these functions, they are not standardized. There are often
|
subset of these functions, they are not standardized. There are often
|
||||||
subtle differences in the return types, and there are considerable
|
subtle differences in the return types, and there are considerable
|
||||||
differences between the various definitions of @code{struct utmp}. When
|
differences between the various definitions of @code{struct utmp}. When
|
||||||
programming for the GNU system, it is probably best to stick
|
programming for @theglibc{}, it is probably best to stick
|
||||||
with the functions described in this section. If however, you want your
|
with the functions described in this section. If however, you want your
|
||||||
program to be portable, consider using the XPG functions described in
|
program to be portable, consider using the XPG functions described in
|
||||||
@ref{XPG Functions}, or take a look at the BSD compatible functions in
|
@ref{XPG Functions}, or take a look at the BSD compatible functions in
|
||||||
|
@ -1257,14 +1257,14 @@ Time the entry was made. For entries of type @code{OLD_TIME} this is
|
||||||
the time when the system clock changed, and for entries of type
|
the time when the system clock changed, and for entries of type
|
||||||
@code{NEW_TIME} this is the time the system clock was set to.
|
@code{NEW_TIME} this is the time the system clock was set to.
|
||||||
@end table
|
@end table
|
||||||
On the GNU system, @code{struct utmpx} is identical to @code{struct
|
In @theglibc{}, @code{struct utmpx} is identical to @code{struct
|
||||||
utmp} except for the fact that including @file{utmpx.h} does not make
|
utmp} except for the fact that including @file{utmpx.h} does not make
|
||||||
visible the declaration of @code{struct exit_status}.
|
visible the declaration of @code{struct exit_status}.
|
||||||
@end deftp
|
@end deftp
|
||||||
|
|
||||||
The following macros are defined for use as values for the
|
The following macros are defined for use as values for the
|
||||||
@code{ut_type} member of the @code{utmpx} structure. The values are
|
@code{ut_type} member of the @code{utmpx} structure. The values are
|
||||||
integer constants and are, on the GNU system, identical to the
|
integer constants and are, in @theglibc{}, identical to the
|
||||||
definitions in @file{utmp.h}.
|
definitions in @file{utmp.h}.
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
|
@ -1330,7 +1330,7 @@ can be found using the @code{sizeof} operator.
|
||||||
@comment utmpx.h
|
@comment utmpx.h
|
||||||
@comment XPG4.2
|
@comment XPG4.2
|
||||||
@deftypefun void setutxent (void)
|
@deftypefun void setutxent (void)
|
||||||
This function is similar to @code{setutent}. On the GNU system it is
|
This function is similar to @code{setutent}. In @theglibc{} it is
|
||||||
simply an alias for @code{setutent}.
|
simply an alias for @code{setutent}.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
|
@ -1338,14 +1338,14 @@ simply an alias for @code{setutent}.
|
||||||
@comment XPG4.2
|
@comment XPG4.2
|
||||||
@deftypefun {struct utmpx *} getutxent (void)
|
@deftypefun {struct utmpx *} getutxent (void)
|
||||||
The @code{getutxent} function is similar to @code{getutent}, but returns
|
The @code{getutxent} function is similar to @code{getutent}, but returns
|
||||||
a pointer to a @code{struct utmpx} instead of @code{struct utmp}. On
|
a pointer to a @code{struct utmpx} instead of @code{struct utmp}. In
|
||||||
the GNU system it simply is an alias for @code{getutent}.
|
@theglibc{} it simply is an alias for @code{getutent}.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
@comment utmpx.h
|
@comment utmpx.h
|
||||||
@comment XPG4.2
|
@comment XPG4.2
|
||||||
@deftypefun void endutxent (void)
|
@deftypefun void endutxent (void)
|
||||||
This function is similar to @code{endutent}. On the GNU system it is
|
This function is similar to @code{endutent}. In @theglibc{} it is
|
||||||
simply an alias for @code{endutent}.
|
simply an alias for @code{endutent}.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
|
@ -1353,7 +1353,7 @@ simply an alias for @code{endutent}.
|
||||||
@comment XPG4.2
|
@comment XPG4.2
|
||||||
@deftypefun {struct utmpx *} getutxid (const struct utmpx *@var{id})
|
@deftypefun {struct utmpx *} getutxid (const struct utmpx *@var{id})
|
||||||
This function is similar to @code{getutid}, but uses @code{struct utmpx}
|
This function is similar to @code{getutid}, but uses @code{struct utmpx}
|
||||||
instead of @code{struct utmp}. On the GNU system it is simply an alias
|
instead of @code{struct utmp}. In @theglibc{} it is simply an alias
|
||||||
for @code{getutid}.
|
for @code{getutid}.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
|
@ -1361,7 +1361,7 @@ for @code{getutid}.
|
||||||
@comment XPG4.2
|
@comment XPG4.2
|
||||||
@deftypefun {struct utmpx *} getutxline (const struct utmpx *@var{line})
|
@deftypefun {struct utmpx *} getutxline (const struct utmpx *@var{line})
|
||||||
This function is similar to @code{getutid}, but uses @code{struct utmpx}
|
This function is similar to @code{getutid}, but uses @code{struct utmpx}
|
||||||
instead of @code{struct utmp}. On the GNU system it is simply an alias
|
instead of @code{struct utmp}. In @theglibc{} it is simply an alias
|
||||||
for @code{getutline}.
|
for @code{getutline}.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
|
@ -1370,7 +1370,7 @@ for @code{getutline}.
|
||||||
@deftypefun {struct utmpx *} pututxline (const struct utmpx *@var{utmp})
|
@deftypefun {struct utmpx *} pututxline (const struct utmpx *@var{utmp})
|
||||||
The @code{pututxline} function is functionally identical to
|
The @code{pututxline} function is functionally identical to
|
||||||
@code{pututline}, but uses @code{struct utmpx} instead of @code{struct
|
@code{pututline}, but uses @code{struct utmpx} instead of @code{struct
|
||||||
utmp}. On the GNU system, @code{pututxline} is simply an alias for
|
utmp}. In @theglibc{}, @code{pututxline} is simply an alias for
|
||||||
@code{pututline}.
|
@code{pututline}.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
|
@ -1378,12 +1378,12 @@ utmp}. On the GNU system, @code{pututxline} is simply an alias for
|
||||||
@comment XPG4.2
|
@comment XPG4.2
|
||||||
@deftypefun int utmpxname (const char *@var{file})
|
@deftypefun int utmpxname (const char *@var{file})
|
||||||
The @code{utmpxname} function is functionally identical to
|
The @code{utmpxname} function is functionally identical to
|
||||||
@code{utmpname}. On the GNU system, @code{utmpxname} is simply an
|
@code{utmpname}. In @theglibc{}, @code{utmpxname} is simply an
|
||||||
alias for @code{utmpname}.
|
alias for @code{utmpname}.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
You can translate between a traditional @code{struct utmp} and an XPG
|
You can translate between a traditional @code{struct utmp} and an XPG
|
||||||
@code{struct utmpx} with the following functions. On the GNU system,
|
@code{struct utmpx} with the following functions. In @theglibc{},
|
||||||
these functions are merely copies, since the two structures are
|
these functions are merely copies, since the two structures are
|
||||||
identical.
|
identical.
|
||||||
|
|
||||||
|
|
|
@ -1065,6 +1065,32 @@ cacos_test (void)
|
||||||
|
|
||||||
TEST_c_c (cacos, nan_value, nan_value, nan_value, nan_value);
|
TEST_c_c (cacos, nan_value, nan_value, nan_value, nan_value);
|
||||||
|
|
||||||
|
TEST_c_c (cacos, plus_zero, -1.5L, M_PI_2l, 1.194763217287109304111930828519090523536L);
|
||||||
|
TEST_c_c (cacos, minus_zero, -1.5L, M_PI_2l, 1.194763217287109304111930828519090523536L);
|
||||||
|
TEST_c_c (cacos, plus_zero, -1.0L, M_PI_2l, 0.8813735870195430252326093249797923090282L);
|
||||||
|
TEST_c_c (cacos, minus_zero, -1.0L, M_PI_2l, 0.8813735870195430252326093249797923090282L);
|
||||||
|
TEST_c_c (cacos, plus_zero, -0.5L, M_PI_2l, 0.4812118250596034474977589134243684231352L);
|
||||||
|
TEST_c_c (cacos, minus_zero, -0.5L, M_PI_2l, 0.4812118250596034474977589134243684231352L);
|
||||||
|
TEST_c_c (cacos, plus_zero, 0.5L, M_PI_2l, -0.4812118250596034474977589134243684231352L);
|
||||||
|
TEST_c_c (cacos, minus_zero, 0.5L, M_PI_2l, -0.4812118250596034474977589134243684231352L);
|
||||||
|
TEST_c_c (cacos, plus_zero, 1.0L, M_PI_2l, -0.8813735870195430252326093249797923090282L);
|
||||||
|
TEST_c_c (cacos, minus_zero, 1.0L, M_PI_2l, -0.8813735870195430252326093249797923090282L);
|
||||||
|
TEST_c_c (cacos, plus_zero, 1.5L, M_PI_2l, -1.194763217287109304111930828519090523536L);
|
||||||
|
TEST_c_c (cacos, minus_zero, 1.5L, M_PI_2l, -1.194763217287109304111930828519090523536L);
|
||||||
|
|
||||||
|
TEST_c_c (cacos, -1.5L, plus_zero, M_PIl, -0.9624236501192068949955178268487368462704L);
|
||||||
|
TEST_c_c (cacos, -1.5L, minus_zero, M_PIl, 0.9624236501192068949955178268487368462704L);
|
||||||
|
TEST_c_c (cacos, -1.0L, plus_zero, M_PIl, minus_zero);
|
||||||
|
TEST_c_c (cacos, -1.0L, minus_zero, M_PIl, plus_zero);
|
||||||
|
TEST_c_c (cacos, -0.5L, plus_zero, 2.094395102393195492308428922186335256131L, minus_zero);
|
||||||
|
TEST_c_c (cacos, -0.5L, minus_zero, 2.094395102393195492308428922186335256131L, plus_zero);
|
||||||
|
TEST_c_c (cacos, 0.5L, plus_zero, 1.047197551196597746154214461093167628066L, minus_zero);
|
||||||
|
TEST_c_c (cacos, 0.5L, minus_zero, 1.047197551196597746154214461093167628066L, plus_zero);
|
||||||
|
TEST_c_c (cacos, 1.0L, plus_zero, plus_zero, minus_zero);
|
||||||
|
TEST_c_c (cacos, 1.0L, minus_zero, plus_zero, plus_zero);
|
||||||
|
TEST_c_c (cacos, 1.5L, plus_zero, plus_zero, -0.9624236501192068949955178268487368462704L);
|
||||||
|
TEST_c_c (cacos, 1.5L, minus_zero, plus_zero, 0.9624236501192068949955178268487368462704L);
|
||||||
|
|
||||||
TEST_c_c (cacos, 0.75L, 1.25L, 1.11752014915610270578240049553777969L, -1.13239363160530819522266333696834467L);
|
TEST_c_c (cacos, 0.75L, 1.25L, 1.11752014915610270578240049553777969L, -1.13239363160530819522266333696834467L);
|
||||||
TEST_c_c (cacos, -2, -3, 2.1414491111159960199416055713254211L, 1.9833870299165354323470769028940395L);
|
TEST_c_c (cacos, -2, -3, 2.1414491111159960199416055713254211L, 1.9833870299165354323470769028940395L);
|
||||||
|
|
||||||
|
@ -1127,6 +1153,32 @@ cacosh_test (void)
|
||||||
|
|
||||||
TEST_c_c (cacosh, nan_value, nan_value, nan_value, nan_value);
|
TEST_c_c (cacosh, nan_value, nan_value, nan_value, nan_value);
|
||||||
|
|
||||||
|
TEST_c_c (cacosh, plus_zero, -1.5L, 1.194763217287109304111930828519090523536L, -M_PI_2l);
|
||||||
|
TEST_c_c (cacosh, minus_zero, -1.5L, 1.194763217287109304111930828519090523536L, -M_PI_2l);
|
||||||
|
TEST_c_c (cacosh, plus_zero, -1.0L, 0.8813735870195430252326093249797923090282L, -M_PI_2l);
|
||||||
|
TEST_c_c (cacosh, minus_zero, -1.0L, 0.8813735870195430252326093249797923090282L, -M_PI_2l);
|
||||||
|
TEST_c_c (cacosh, plus_zero, -0.5L, 0.4812118250596034474977589134243684231352L, -M_PI_2l);
|
||||||
|
TEST_c_c (cacosh, minus_zero, -0.5L, 0.4812118250596034474977589134243684231352L, -M_PI_2l);
|
||||||
|
TEST_c_c (cacosh, plus_zero, 0.5L, 0.4812118250596034474977589134243684231352L, M_PI_2l);
|
||||||
|
TEST_c_c (cacosh, minus_zero, 0.5L, 0.4812118250596034474977589134243684231352L, M_PI_2l);
|
||||||
|
TEST_c_c (cacosh, plus_zero, 1.0L, 0.8813735870195430252326093249797923090282L, M_PI_2l);
|
||||||
|
TEST_c_c (cacosh, minus_zero, 1.0L, 0.8813735870195430252326093249797923090282L, M_PI_2l);
|
||||||
|
TEST_c_c (cacosh, plus_zero, 1.5L, 1.194763217287109304111930828519090523536L, M_PI_2l);
|
||||||
|
TEST_c_c (cacosh, minus_zero, 1.5L, 1.194763217287109304111930828519090523536L, M_PI_2l);
|
||||||
|
|
||||||
|
TEST_c_c (cacosh, -1.5L, plus_zero, 0.9624236501192068949955178268487368462704L, M_PIl);
|
||||||
|
TEST_c_c (cacosh, -1.5L, minus_zero, 0.9624236501192068949955178268487368462704L, -M_PIl);
|
||||||
|
TEST_c_c (cacosh, -1.0L, plus_zero, plus_zero, M_PIl);
|
||||||
|
TEST_c_c (cacosh, -1.0L, minus_zero, plus_zero, -M_PIl);
|
||||||
|
TEST_c_c (cacosh, -0.5L, plus_zero, plus_zero, 2.094395102393195492308428922186335256131L);
|
||||||
|
TEST_c_c (cacosh, -0.5L, minus_zero, plus_zero, -2.094395102393195492308428922186335256131L);
|
||||||
|
TEST_c_c (cacosh, 0.5L, plus_zero, plus_zero, 1.047197551196597746154214461093167628066L);
|
||||||
|
TEST_c_c (cacosh, 0.5L, minus_zero, plus_zero, -1.047197551196597746154214461093167628066L);
|
||||||
|
TEST_c_c (cacosh, 1.0L, plus_zero, plus_zero, plus_zero);
|
||||||
|
TEST_c_c (cacosh, 1.0L, minus_zero, plus_zero, minus_zero);
|
||||||
|
TEST_c_c (cacosh, 1.5L, plus_zero, 0.9624236501192068949955178268487368462704L, plus_zero);
|
||||||
|
TEST_c_c (cacosh, 1.5L, minus_zero, 0.9624236501192068949955178268487368462704L, minus_zero);
|
||||||
|
|
||||||
TEST_c_c (cacosh, 0.75L, 1.25L, 1.13239363160530819522266333696834467L, 1.11752014915610270578240049553777969L);
|
TEST_c_c (cacosh, 0.75L, 1.25L, 1.13239363160530819522266333696834467L, 1.11752014915610270578240049553777969L);
|
||||||
TEST_c_c (cacosh, -2, -3, 1.9833870299165354323470769028940395L, -2.1414491111159960199416055713254211L);
|
TEST_c_c (cacosh, -2, -3, 1.9833870299165354323470769028940395L, -2.1414491111159960199416055713254211L);
|
||||||
|
|
||||||
|
@ -1258,6 +1310,32 @@ casin_test (void)
|
||||||
|
|
||||||
TEST_c_c (casin, nan_value, nan_value, nan_value, nan_value);
|
TEST_c_c (casin, nan_value, nan_value, nan_value, nan_value);
|
||||||
|
|
||||||
|
TEST_c_c (casin, plus_zero, -1.5L, plus_zero, -1.194763217287109304111930828519090523536L);
|
||||||
|
TEST_c_c (casin, minus_zero, -1.5L, minus_zero, -1.194763217287109304111930828519090523536L);
|
||||||
|
TEST_c_c (casin, plus_zero, -1.0L, plus_zero, -0.8813735870195430252326093249797923090282L);
|
||||||
|
TEST_c_c (casin, minus_zero, -1.0L, minus_zero, -0.8813735870195430252326093249797923090282L);
|
||||||
|
TEST_c_c (casin, plus_zero, -0.5L, plus_zero, -0.4812118250596034474977589134243684231352L);
|
||||||
|
TEST_c_c (casin, minus_zero, -0.5L, minus_zero, -0.4812118250596034474977589134243684231352L);
|
||||||
|
TEST_c_c (casin, plus_zero, 0.5L, plus_zero, 0.4812118250596034474977589134243684231352L);
|
||||||
|
TEST_c_c (casin, minus_zero, 0.5L, minus_zero, 0.4812118250596034474977589134243684231352L);
|
||||||
|
TEST_c_c (casin, plus_zero, 1.0L, plus_zero, 0.8813735870195430252326093249797923090282L);
|
||||||
|
TEST_c_c (casin, minus_zero, 1.0L, minus_zero, 0.8813735870195430252326093249797923090282L);
|
||||||
|
TEST_c_c (casin, plus_zero, 1.5L, plus_zero, 1.194763217287109304111930828519090523536L);
|
||||||
|
TEST_c_c (casin, minus_zero, 1.5L, minus_zero, 1.194763217287109304111930828519090523536L);
|
||||||
|
|
||||||
|
TEST_c_c (casin, -1.5L, plus_zero, -M_PI_2l, 0.9624236501192068949955178268487368462704L);
|
||||||
|
TEST_c_c (casin, -1.5L, minus_zero, -M_PI_2l, -0.9624236501192068949955178268487368462704L);
|
||||||
|
TEST_c_c (casin, -1.0L, plus_zero, -M_PI_2l, plus_zero);
|
||||||
|
TEST_c_c (casin, -1.0L, minus_zero, -M_PI_2l, minus_zero);
|
||||||
|
TEST_c_c (casin, -0.5L, plus_zero, -0.5235987755982988730771072305465838140329L, plus_zero);
|
||||||
|
TEST_c_c (casin, -0.5L, minus_zero, -0.5235987755982988730771072305465838140329L, minus_zero);
|
||||||
|
TEST_c_c (casin, 0.5L, plus_zero, 0.5235987755982988730771072305465838140329L, plus_zero);
|
||||||
|
TEST_c_c (casin, 0.5L, minus_zero, 0.5235987755982988730771072305465838140329L, minus_zero);
|
||||||
|
TEST_c_c (casin, 1.0L, plus_zero, M_PI_2l, plus_zero);
|
||||||
|
TEST_c_c (casin, 1.0L, minus_zero, M_PI_2l, minus_zero);
|
||||||
|
TEST_c_c (casin, 1.5L, plus_zero, M_PI_2l, 0.9624236501192068949955178268487368462704L);
|
||||||
|
TEST_c_c (casin, 1.5L, minus_zero, M_PI_2l, -0.9624236501192068949955178268487368462704L);
|
||||||
|
|
||||||
TEST_c_c (casin, 0.75L, 1.25L, 0.453276177638793913448921196101971749L, 1.13239363160530819522266333696834467L);
|
TEST_c_c (casin, 0.75L, 1.25L, 0.453276177638793913448921196101971749L, 1.13239363160530819522266333696834467L);
|
||||||
TEST_c_c (casin, -2, -3, -0.57065278432109940071028387968566963L, -1.9833870299165354323470769028940395L);
|
TEST_c_c (casin, -2, -3, -0.57065278432109940071028387968566963L, -1.9833870299165354323470769028940395L);
|
||||||
|
|
||||||
|
@ -1322,6 +1400,32 @@ casinh_test (void)
|
||||||
|
|
||||||
TEST_c_c (casinh, nan_value, nan_value, nan_value, nan_value);
|
TEST_c_c (casinh, nan_value, nan_value, nan_value, nan_value);
|
||||||
|
|
||||||
|
TEST_c_c (casinh, plus_zero, -1.5L, 0.9624236501192068949955178268487368462704L, -M_PI_2l);
|
||||||
|
TEST_c_c (casinh, minus_zero, -1.5L, -0.9624236501192068949955178268487368462704L, -M_PI_2l);
|
||||||
|
TEST_c_c (casinh, plus_zero, -1.0L, plus_zero, -M_PI_2l);
|
||||||
|
TEST_c_c (casinh, minus_zero, -1.0L, minus_zero, -M_PI_2l);
|
||||||
|
TEST_c_c (casinh, plus_zero, -0.5L, plus_zero, -0.5235987755982988730771072305465838140329L);
|
||||||
|
TEST_c_c (casinh, minus_zero, -0.5L, minus_zero, -0.5235987755982988730771072305465838140329L);
|
||||||
|
TEST_c_c (casinh, plus_zero, 0.5L, plus_zero, 0.5235987755982988730771072305465838140329L);
|
||||||
|
TEST_c_c (casinh, minus_zero, 0.5L, minus_zero, 0.5235987755982988730771072305465838140329L);
|
||||||
|
TEST_c_c (casinh, plus_zero, 1.0L, plus_zero, M_PI_2l);
|
||||||
|
TEST_c_c (casinh, minus_zero, 1.0L, minus_zero, M_PI_2l);
|
||||||
|
TEST_c_c (casinh, plus_zero, 1.5L, 0.9624236501192068949955178268487368462704L, M_PI_2l);
|
||||||
|
TEST_c_c (casinh, minus_zero, 1.5L, -0.9624236501192068949955178268487368462704L, M_PI_2l);
|
||||||
|
|
||||||
|
TEST_c_c (casinh, -1.5L, plus_zero, -1.194763217287109304111930828519090523536L, plus_zero);
|
||||||
|
TEST_c_c (casinh, -1.5L, minus_zero, -1.194763217287109304111930828519090523536L, minus_zero);
|
||||||
|
TEST_c_c (casinh, -1.0L, plus_zero, -0.8813735870195430252326093249797923090282L, plus_zero);
|
||||||
|
TEST_c_c (casinh, -1.0L, minus_zero, -0.8813735870195430252326093249797923090282L, minus_zero);
|
||||||
|
TEST_c_c (casinh, -0.5L, plus_zero, -0.4812118250596034474977589134243684231352L, plus_zero);
|
||||||
|
TEST_c_c (casinh, -0.5L, minus_zero, -0.4812118250596034474977589134243684231352L, minus_zero);
|
||||||
|
TEST_c_c (casinh, 0.5L, plus_zero, 0.4812118250596034474977589134243684231352L, plus_zero);
|
||||||
|
TEST_c_c (casinh, 0.5L, minus_zero, 0.4812118250596034474977589134243684231352L, minus_zero);
|
||||||
|
TEST_c_c (casinh, 1.0L, plus_zero, 0.8813735870195430252326093249797923090282L, plus_zero);
|
||||||
|
TEST_c_c (casinh, 1.0L, minus_zero, 0.8813735870195430252326093249797923090282L, minus_zero);
|
||||||
|
TEST_c_c (casinh, 1.5L, plus_zero, 1.194763217287109304111930828519090523536L, plus_zero);
|
||||||
|
TEST_c_c (casinh, 1.5L, minus_zero, 1.194763217287109304111930828519090523536L, minus_zero);
|
||||||
|
|
||||||
TEST_c_c (casinh, 0.75L, 1.25L, 1.03171853444778027336364058631006594L, 0.911738290968487636358489564316731207L);
|
TEST_c_c (casinh, 0.75L, 1.25L, 1.03171853444778027336364058631006594L, 0.911738290968487636358489564316731207L);
|
||||||
TEST_c_c (casinh, -2, -3, -1.9686379257930962917886650952454982L, -0.96465850440760279204541105949953237L);
|
TEST_c_c (casinh, -2, -3, -1.9686379257930962917886650952454982L, -0.96465850440760279204541105949953237L);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Return arc hyperbole cosine for double value.
|
/* Return arc hyperbole cosine for double value.
|
||||||
Copyright (C) 1997, 2006, 2011 Free Software Foundation, Inc.
|
Copyright (C) 1997-2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -66,9 +66,13 @@ __cacosh (__complex__ double x)
|
||||||
}
|
}
|
||||||
/* The factor 16 is just a guess. */
|
/* The factor 16 is just a guess. */
|
||||||
else if (16.0 * fabs (__imag__ x) < fabs (__real__ x))
|
else if (16.0 * fabs (__imag__ x) < fabs (__real__ x))
|
||||||
|
{
|
||||||
/* Kahan's formula which avoid cancellation through subtraction in
|
/* Kahan's formula which avoid cancellation through subtraction in
|
||||||
some cases. */
|
some cases. */
|
||||||
res = 2.0 * __clog (__csqrt ((x + 1.0) / 2.0) + __csqrt ((x - 1.0) / 2.0));
|
res = 2.0 * __clog (__csqrt ((x + 1.0) / 2.0) + __csqrt ((x - 1.0) / 2.0));
|
||||||
|
if (signbit (__real__ res))
|
||||||
|
__real__ res = 0.0;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
__complex__ double y;
|
__complex__ double y;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Return arc hyperbole cosine for float value.
|
/* Return arc hyperbole cosine for float value.
|
||||||
Copyright (C) 1997, 2006, 2011 Free Software Foundation, Inc.
|
Copyright (C) 1997-2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -66,10 +66,14 @@ __cacoshf (__complex__ float x)
|
||||||
}
|
}
|
||||||
/* The factor 16 is just a guess. */
|
/* The factor 16 is just a guess. */
|
||||||
else if (16.0 * fabsf (__imag__ x) < fabsf (__real__ x))
|
else if (16.0 * fabsf (__imag__ x) < fabsf (__real__ x))
|
||||||
|
{
|
||||||
/* Kahan's formula which avoid cancellation through subtraction in
|
/* Kahan's formula which avoid cancellation through subtraction in
|
||||||
some cases. */
|
some cases. */
|
||||||
res = 2.0 * __clogf (__csqrtf ((x + 1.0) / 2.0)
|
res = 2.0 * __clogf (__csqrtf ((x + 1.0) / 2.0)
|
||||||
+ __csqrtf ((x - 1.0) / 2.0));
|
+ __csqrtf ((x - 1.0) / 2.0));
|
||||||
|
if (signbit (__real__ res))
|
||||||
|
__real__ res = 0.0f;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
__complex__ float y;
|
__complex__ float y;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Return arc hyperbole cosine for long double value.
|
/* Return arc hyperbole cosine for long double value.
|
||||||
Copyright (C) 1997, 1998, 2006, 2011 Free Software Foundation, Inc.
|
Copyright (C) 1997-2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -66,10 +66,14 @@ __cacoshl (__complex__ long double x)
|
||||||
}
|
}
|
||||||
/* The factor 16 is just a guess. */
|
/* The factor 16 is just a guess. */
|
||||||
else if (16.0L * fabsl (__imag__ x) < fabsl (__real__ x))
|
else if (16.0L * fabsl (__imag__ x) < fabsl (__real__ x))
|
||||||
|
{
|
||||||
/* Kahan's formula which avoid cancellation through subtraction in
|
/* Kahan's formula which avoid cancellation through subtraction in
|
||||||
some cases. */
|
some cases. */
|
||||||
res = 2.0L * __clogl (__csqrtl ((x + 1.0L) / 2.0L)
|
res = 2.0L * __clogl (__csqrtl ((x + 1.0L) / 2.0L)
|
||||||
+ __csqrtl ((x - 1.0L) / 2.0L));
|
+ __csqrtl ((x - 1.0L) / 2.0L));
|
||||||
|
if (signbit (__real__ res))
|
||||||
|
__real__ res = 0.0L;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
__complex__ long double y;
|
__complex__ long double y;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Return arc hyperbole sine for double value.
|
/* Return arc hyperbole sine for double value.
|
||||||
Copyright (C) 1997, 2011 Free Software Foundation, Inc.
|
Copyright (C) 1997-2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -73,6 +73,11 @@ __casinh (__complex__ double x)
|
||||||
__imag__ y += __imag__ x;
|
__imag__ y += __imag__ x;
|
||||||
|
|
||||||
res = __clog (y);
|
res = __clog (y);
|
||||||
|
|
||||||
|
/* Ensure zeros have correct sign and results are correct if
|
||||||
|
very close to branch cuts. */
|
||||||
|
__real__ res = __copysign (__real__ res, __real__ x);
|
||||||
|
__imag__ res = __copysign (__imag__ res, __imag__ x);
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Return arc hyperbole sine for float value.
|
/* Return arc hyperbole sine for float value.
|
||||||
Copyright (C) 1997, 2011 Free Software Foundation, Inc.
|
Copyright (C) 1997-2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -73,6 +73,11 @@ __casinhf (__complex__ float x)
|
||||||
__imag__ y += __imag__ x;
|
__imag__ y += __imag__ x;
|
||||||
|
|
||||||
res = __clogf (y);
|
res = __clogf (y);
|
||||||
|
|
||||||
|
/* Ensure zeros have correct sign and results are correct if
|
||||||
|
very close to branch cuts. */
|
||||||
|
__real__ res = __copysignf (__real__ res, __real__ x);
|
||||||
|
__imag__ res = __copysignf (__imag__ res, __imag__ x);
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Return arc hyperbole sine for long double value.
|
/* Return arc hyperbole sine for long double value.
|
||||||
Copyright (C) 1997, 1998, 2011 Free Software Foundation, Inc.
|
Copyright (C) 1997-2012 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||||
|
|
||||||
|
@ -73,6 +73,11 @@ __casinhl (__complex__ long double x)
|
||||||
__imag__ y += __imag__ x;
|
__imag__ y += __imag__ x;
|
||||||
|
|
||||||
res = __clogl (y);
|
res = __clogl (y);
|
||||||
|
|
||||||
|
/* Ensure zeros have correct sign and results are correct if
|
||||||
|
very close to branch cuts. */
|
||||||
|
__real__ res = __copysignl (__real__ res, __real__ x);
|
||||||
|
__imag__ res = __copysignl (__imag__ res, __imag__ x);
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
2012-03-07 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
[BZ #10545]
|
||||||
|
* sysdeps/pthread/configure.in (libc_cv_forced_unwind): Change
|
||||||
|
link test to a compile test.
|
||||||
|
(libc_cv_c_cleanup): Likewise. Declare puts rather than including
|
||||||
|
<stdio.h>.
|
||||||
|
* sysdeps/pthread/configure: Regenerated.
|
||||||
|
|
||||||
2012-03-07 Ulrich Drepper <drepper@gmail.com>
|
2012-03-07 Ulrich Drepper <drepper@gmail.com>
|
||||||
|
|
||||||
* Makefile (distribute): Remove variable.
|
* Makefile (distribute): Remove variable.
|
||||||
|
|
|
@ -81,21 +81,21 @@ $as_echo X/"$0" |
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# ac_fn_c_try_link LINENO
|
# ac_fn_c_try_compile LINENO
|
||||||
# -----------------------
|
# --------------------------
|
||||||
# Try to link conftest.$ac_ext, and return whether this succeeded.
|
# Try to compile conftest.$ac_ext, and return whether this succeeded.
|
||||||
ac_fn_c_try_link ()
|
ac_fn_c_try_compile ()
|
||||||
{
|
{
|
||||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
||||||
rm -f conftest.$ac_objext conftest$ac_exeext
|
rm -f conftest.$ac_objext
|
||||||
if { { ac_try="$ac_link"
|
if { { ac_try="$ac_compile"
|
||||||
case "(($ac_try" in
|
case "(($ac_try" in
|
||||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
||||||
*) ac_try_echo=$ac_try;;
|
*) ac_try_echo=$ac_try;;
|
||||||
esac
|
esac
|
||||||
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
||||||
$as_echo "$ac_try_echo"; } >&5
|
$as_echo "$ac_try_echo"; } >&5
|
||||||
(eval "$ac_link") 2>conftest.err
|
(eval "$ac_compile") 2>conftest.err
|
||||||
ac_status=$?
|
ac_status=$?
|
||||||
if test -s conftest.err; then
|
if test -s conftest.err; then
|
||||||
grep -v '^ *+' conftest.err >conftest.er1
|
grep -v '^ *+' conftest.err >conftest.er1
|
||||||
|
@ -106,10 +106,7 @@ $as_echo "$ac_try_echo"; } >&5
|
||||||
test $ac_status = 0; } && {
|
test $ac_status = 0; } && {
|
||||||
test -z "$ac_c_werror_flag" ||
|
test -z "$ac_c_werror_flag" ||
|
||||||
test ! -s conftest.err
|
test ! -s conftest.err
|
||||||
} && test -s conftest$ac_exeext && {
|
} && test -s conftest.$ac_objext; then :
|
||||||
test "$cross_compiling" = yes ||
|
|
||||||
$as_test_x conftest$ac_exeext
|
|
||||||
}; then :
|
|
||||||
ac_retval=0
|
ac_retval=0
|
||||||
else
|
else
|
||||||
$as_echo "$as_me: failed program was:" >&5
|
$as_echo "$as_me: failed program was:" >&5
|
||||||
|
@ -117,15 +114,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
ac_retval=1
|
ac_retval=1
|
||||||
fi
|
fi
|
||||||
# Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
|
|
||||||
# created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
|
|
||||||
# interfere with the next link command; also delete a directory that is
|
|
||||||
# left behind by Apple's compiler. We do this before executing the actions.
|
|
||||||
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
|
|
||||||
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
||||||
as_fn_set_status $ac_retval
|
as_fn_set_status $ac_retval
|
||||||
|
|
||||||
} # ac_fn_c_try_link
|
} # ac_fn_c_try_compile
|
||||||
# This file is generated from configure.in by Autoconf. DO NOT EDIT!
|
# This file is generated from configure.in by Autoconf. DO NOT EDIT!
|
||||||
|
|
||||||
if test "x$libc_cv_gcc___thread" != xyes; then
|
if test "x$libc_cv_gcc___thread" != xyes; then
|
||||||
|
@ -165,13 +157,12 @@ _Unwind_GetCFA (context)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
_ACEOF
|
_ACEOF
|
||||||
if ac_fn_c_try_link "$LINENO"; then :
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
libc_cv_forced_unwind=yes
|
libc_cv_forced_unwind=yes
|
||||||
else
|
else
|
||||||
libc_cv_forced_unwind=no
|
libc_cv_forced_unwind=no
|
||||||
fi
|
fi
|
||||||
rm -f core conftest.err conftest.$ac_objext \
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
conftest$ac_exeext conftest.$ac_ext
|
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_forced_unwind" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_forced_unwind" >&5
|
||||||
$as_echo "$libc_cv_forced_unwind" >&6; }
|
$as_echo "$libc_cv_forced_unwind" >&6; }
|
||||||
|
@ -188,25 +179,24 @@ else
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
/* end confdefs.h. */
|
/* end confdefs.h. */
|
||||||
|
|
||||||
#include <stdio.h>
|
extern void some_function (void);
|
||||||
void cl (void *a) { }
|
void cl (void *a) { }
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
|
||||||
int a __attribute__ ((cleanup (cl)));
|
int a __attribute__ ((cleanup (cl)));
|
||||||
puts ("test")
|
some_function ()
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
_ACEOF
|
_ACEOF
|
||||||
if ac_fn_c_try_link "$LINENO"; then :
|
if ac_fn_c_try_compile "$LINENO"; then :
|
||||||
libc_cv_c_cleanup=yes
|
libc_cv_c_cleanup=yes
|
||||||
else
|
else
|
||||||
libc_cv_c_cleanup=no
|
libc_cv_c_cleanup=no
|
||||||
fi
|
fi
|
||||||
rm -f core conftest.err conftest.$ac_objext \
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
conftest$ac_exeext conftest.$ac_ext
|
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_c_cleanup" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_c_cleanup" >&5
|
||||||
$as_echo "$libc_cv_c_cleanup" >&6; }
|
$as_echo "$libc_cv_c_cleanup" >&6; }
|
||||||
|
|
|
@ -23,7 +23,7 @@ dnl Iff <unwind.h> is available, make sure it is the right one and it
|
||||||
dnl contains struct _Unwind_Exception.
|
dnl contains struct _Unwind_Exception.
|
||||||
AC_CACHE_CHECK(dnl
|
AC_CACHE_CHECK(dnl
|
||||||
for forced unwind support, libc_cv_forced_unwind, [dnl
|
for forced unwind support, libc_cv_forced_unwind, [dnl
|
||||||
AC_TRY_LINK([#include <unwind.h>], [
|
AC_TRY_COMPILE([#include <unwind.h>], [
|
||||||
struct _Unwind_Exception exc;
|
struct _Unwind_Exception exc;
|
||||||
struct _Unwind_Context *context;
|
struct _Unwind_Context *context;
|
||||||
_Unwind_GetCFA (context)],
|
_Unwind_GetCFA (context)],
|
||||||
|
@ -34,11 +34,11 @@ dnl Check for C cleanup handling.
|
||||||
old_CFLAGS="$CFLAGS"
|
old_CFLAGS="$CFLAGS"
|
||||||
CFLAGS="$CFLAGS -Werror -fexceptions"
|
CFLAGS="$CFLAGS -Werror -fexceptions"
|
||||||
AC_CACHE_CHECK([for C cleanup handling], libc_cv_c_cleanup, [dnl
|
AC_CACHE_CHECK([for C cleanup handling], libc_cv_c_cleanup, [dnl
|
||||||
AC_TRY_LINK([
|
AC_TRY_COMPILE([
|
||||||
#include <stdio.h>
|
extern void some_function (void);
|
||||||
void cl (void *a) { }], [
|
void cl (void *a) { }], [
|
||||||
int a __attribute__ ((cleanup (cl)));
|
int a __attribute__ ((cleanup (cl)));
|
||||||
puts ("test")],
|
some_function ()],
|
||||||
libc_cv_c_cleanup=yes, libc_cv_c_cleanup=no)])
|
libc_cv_c_cleanup=yes, libc_cv_c_cleanup=no)])
|
||||||
CFLAGS="$old_CFLAGS"
|
CFLAGS="$old_CFLAGS"
|
||||||
if test $libc_cv_c_cleanup = no; then
|
if test $libc_cv_c_cleanup = no; then
|
||||||
|
|
|
@ -89,8 +89,8 @@ TRANS computer. */
|
||||||
/*
|
/*
|
||||||
TRANS Argument list too long; used when the arguments passed to a new program
|
TRANS Argument list too long; used when the arguments passed to a new program
|
||||||
TRANS being executed with one of the @code{exec} functions (@pxref{Executing a
|
TRANS being executed with one of the @code{exec} functions (@pxref{Executing a
|
||||||
TRANS File}) occupy too much memory space. This condition never arises in the
|
TRANS File}) occupy too much memory space. This condition never arises on
|
||||||
TRANS GNU system. */
|
TRANS @gnuhurdsystems{}. */
|
||||||
[ERR_REMAP (E2BIG)] = N_("Argument list too long"),
|
[ERR_REMAP (E2BIG)] = N_("Argument list too long"),
|
||||||
# if E2BIG > ERR_MAX
|
# if E2BIG > ERR_MAX
|
||||||
# undef ERR_MAX
|
# undef ERR_MAX
|
||||||
|
@ -163,7 +163,7 @@ TRANS Permission denied; the file permissions do not allow the attempted operati
|
||||||
#ifdef EFAULT
|
#ifdef EFAULT
|
||||||
/*
|
/*
|
||||||
TRANS Bad address; an invalid pointer was detected.
|
TRANS Bad address; an invalid pointer was detected.
|
||||||
TRANS In the GNU system, this error never happens; you get a signal instead. */
|
TRANS On @gnuhurdsystems{}, this error never happens; you get a signal instead. */
|
||||||
[ERR_REMAP (EFAULT)] = N_("Bad address"),
|
[ERR_REMAP (EFAULT)] = N_("Bad address"),
|
||||||
# if EFAULT > ERR_MAX
|
# if EFAULT > ERR_MAX
|
||||||
# undef ERR_MAX
|
# undef ERR_MAX
|
||||||
|
@ -271,7 +271,7 @@ TRANS @pxref{Limits on Resources}. */
|
||||||
/*
|
/*
|
||||||
TRANS There are too many distinct file openings in the entire system. Note
|
TRANS There are too many distinct file openings in the entire system. Note
|
||||||
TRANS that any number of linked channels count as just one file opening; see
|
TRANS that any number of linked channels count as just one file opening; see
|
||||||
TRANS @ref{Linked Channels}. This error never occurs in the GNU system. */
|
TRANS @ref{Linked Channels}. This error never occurs on @gnuhurdsystems{}. */
|
||||||
[ERR_REMAP (ENFILE)] = N_("Too many open files in system"),
|
[ERR_REMAP (ENFILE)] = N_("Too many open files in system"),
|
||||||
# if ENFILE > ERR_MAX
|
# if ENFILE > ERR_MAX
|
||||||
# undef ERR_MAX
|
# undef ERR_MAX
|
||||||
|
@ -294,7 +294,7 @@ TRANS An attempt to execute a file that is currently open for writing, or
|
||||||
TRANS write to a file that is currently being executed. Often using a
|
TRANS write to a file that is currently being executed. Often using a
|
||||||
TRANS debugger to run a program is considered having it open for writing and
|
TRANS debugger to run a program is considered having it open for writing and
|
||||||
TRANS will cause this error. (The name stands for ``text file busy''.) This
|
TRANS will cause this error. (The name stands for ``text file busy''.) This
|
||||||
TRANS is not an error in the GNU system; the text is copied as necessary. */
|
TRANS is not an error on @gnuhurdsystems{}; the text is copied as necessary. */
|
||||||
[ERR_REMAP (ETXTBSY)] = N_("Text file busy"),
|
[ERR_REMAP (ETXTBSY)] = N_("Text file busy"),
|
||||||
# if ETXTBSY > ERR_MAX
|
# if ETXTBSY > ERR_MAX
|
||||||
# undef ERR_MAX
|
# undef ERR_MAX
|
||||||
|
@ -520,7 +520,7 @@ TRANS The socket type is not supported. */
|
||||||
/*
|
/*
|
||||||
TRANS The operation you requested is not supported. Some socket functions
|
TRANS The operation you requested is not supported. Some socket functions
|
||||||
TRANS don't make sense for all types of sockets, and others may not be
|
TRANS don't make sense for all types of sockets, and others may not be
|
||||||
TRANS implemented for all communications protocols. In the GNU system, this
|
TRANS implemented for all communications protocols. On @gnuhurdsystems{}, this
|
||||||
TRANS error can happen for many calls when the object does not support the
|
TRANS error can happen for many calls when the object does not support the
|
||||||
TRANS particular operation; it is a generic indication that the server knows
|
TRANS particular operation; it is a generic indication that the server knows
|
||||||
TRANS nothing to do for that call. */
|
TRANS nothing to do for that call. */
|
||||||
|
@ -795,7 +795,7 @@ TRANS the NFS file system on the local host. */
|
||||||
TRANS An attempt was made to NFS-mount a remote file system with a file name that
|
TRANS An attempt was made to NFS-mount a remote file system with a file name that
|
||||||
TRANS already specifies an NFS-mounted file.
|
TRANS already specifies an NFS-mounted file.
|
||||||
TRANS (This is an error on some operating systems, but we expect it to work
|
TRANS (This is an error on some operating systems, but we expect it to work
|
||||||
TRANS properly on the GNU system, making this error code impossible.) */
|
TRANS properly on @gnuhurdsystems{}, making this error code impossible.) */
|
||||||
[ERR_REMAP (EREMOTE)] = N_("Object is remote"),
|
[ERR_REMAP (EREMOTE)] = N_("Object is remote"),
|
||||||
# if EREMOTE > ERR_MAX
|
# if EREMOTE > ERR_MAX
|
||||||
# undef ERR_MAX
|
# undef ERR_MAX
|
||||||
|
@ -850,7 +850,7 @@ TRANS ??? */
|
||||||
#ifdef ENOLCK
|
#ifdef ENOLCK
|
||||||
/*
|
/*
|
||||||
TRANS No locks available. This is used by the file locking facilities; see
|
TRANS No locks available. This is used by the file locking facilities; see
|
||||||
TRANS @ref{File Locks}. This error is never generated by the GNU system, but
|
TRANS @ref{File Locks}. This error is never generated by @gnuhurdsystems{}, but
|
||||||
TRANS it can result from an operation to an NFS server running another
|
TRANS it can result from an operation to an NFS server running another
|
||||||
TRANS operating system. */
|
TRANS operating system. */
|
||||||
[ERR_REMAP (ENOLCK)] = N_("No locks available"),
|
[ERR_REMAP (ENOLCK)] = N_("No locks available"),
|
||||||
|
@ -935,7 +935,7 @@ TRANS or an incomplete sequence of bytes or the given wide character is invalid.
|
||||||
#endif
|
#endif
|
||||||
#ifdef EBACKGROUND
|
#ifdef EBACKGROUND
|
||||||
/*
|
/*
|
||||||
TRANS In the GNU system, servers supporting the @code{term} protocol return
|
TRANS On @gnuhurdsystems{}, servers supporting the @code{term} protocol return
|
||||||
TRANS this error for certain operations when the caller is not in the
|
TRANS this error for certain operations when the caller is not in the
|
||||||
TRANS foreground process group of the terminal. Users do not usually see this
|
TRANS foreground process group of the terminal. Users do not usually see this
|
||||||
TRANS error because functions such as @code{read} and @code{write} translate
|
TRANS error because functions such as @code{read} and @code{write} translate
|
||||||
|
@ -949,7 +949,7 @@ TRANS for information on process groups and these signals. */
|
||||||
#endif
|
#endif
|
||||||
#ifdef EDIED
|
#ifdef EDIED
|
||||||
/*
|
/*
|
||||||
TRANS In the GNU system, opening a file returns this error when the file is
|
TRANS On @gnuhurdsystems{}, opening a file returns this error when the file is
|
||||||
TRANS translated by a program and the translator program dies while starting
|
TRANS translated by a program and the translator program dies while starting
|
||||||
TRANS up, before it has connected to the file. */
|
TRANS up, before it has connected to the file. */
|
||||||
[ERR_REMAP (EDIED)] = N_("Translator died"),
|
[ERR_REMAP (EDIED)] = N_("Translator died"),
|
||||||
|
|
|
@ -16,23 +16,6 @@ as_fn_exit ()
|
||||||
as_fn_set_status $1
|
as_fn_set_status $1
|
||||||
exit $1
|
exit $1
|
||||||
} # as_fn_exit
|
} # as_fn_exit
|
||||||
# as_fn_arith ARG...
|
|
||||||
# ------------------
|
|
||||||
# Perform arithmetic evaluation on the ARGs, and store the result in the
|
|
||||||
# global $as_val. Take advantage of shells that can avoid forks. The arguments
|
|
||||||
# must be portable across $(()) and expr.
|
|
||||||
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
|
|
||||||
eval 'as_fn_arith ()
|
|
||||||
{
|
|
||||||
as_val=$(( $* ))
|
|
||||||
}'
|
|
||||||
else
|
|
||||||
as_fn_arith ()
|
|
||||||
{
|
|
||||||
as_val=`expr "$@" || test $? -eq 1`
|
|
||||||
}
|
|
||||||
fi # as_fn_arith
|
|
||||||
|
|
||||||
if expr a : '\(a\)' >/dev/null 2>&1 &&
|
if expr a : '\(a\)' >/dev/null 2>&1 &&
|
||||||
test "X`expr 00001 : '.*\(...\)'`" = X001; then
|
test "X`expr 00001 : '.*\(...\)'`" = X001; then
|
||||||
as_expr=expr
|
as_expr=expr
|
||||||
|
@ -97,42 +80,6 @@ $as_echo X/"$0" |
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
# Factoring default headers for most tests.
|
|
||||||
ac_includes_default="\
|
|
||||||
#include <stdio.h>
|
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
|
||||||
# include <sys/types.h>
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_SYS_STAT_H
|
|
||||||
# include <sys/stat.h>
|
|
||||||
#endif
|
|
||||||
#ifdef STDC_HEADERS
|
|
||||||
# include <stdlib.h>
|
|
||||||
# include <stddef.h>
|
|
||||||
#else
|
|
||||||
# ifdef HAVE_STDLIB_H
|
|
||||||
# include <stdlib.h>
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_STRING_H
|
|
||||||
# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
|
|
||||||
# include <memory.h>
|
|
||||||
# endif
|
|
||||||
# include <string.h>
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_STRINGS_H
|
|
||||||
# include <strings.h>
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_INTTYPES_H
|
|
||||||
# include <inttypes.h>
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_STDINT_H
|
|
||||||
# include <stdint.h>
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_UNISTD_H
|
|
||||||
# include <unistd.h>
|
|
||||||
#endif"
|
|
||||||
|
|
||||||
|
|
||||||
# ac_fn_c_try_compile LINENO
|
# ac_fn_c_try_compile LINENO
|
||||||
# --------------------------
|
# --------------------------
|
||||||
|
@ -172,172 +119,6 @@ fi
|
||||||
|
|
||||||
} # ac_fn_c_try_compile
|
} # ac_fn_c_try_compile
|
||||||
|
|
||||||
# ac_fn_c_try_cpp LINENO
|
|
||||||
# ----------------------
|
|
||||||
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
|
|
||||||
ac_fn_c_try_cpp ()
|
|
||||||
{
|
|
||||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
|
||||||
if { { ac_try="$ac_cpp conftest.$ac_ext"
|
|
||||||
case "(($ac_try" in
|
|
||||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
|
||||||
*) ac_try_echo=$ac_try;;
|
|
||||||
esac
|
|
||||||
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
|
||||||
$as_echo "$ac_try_echo"; } >&5
|
|
||||||
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
|
|
||||||
ac_status=$?
|
|
||||||
if test -s conftest.err; then
|
|
||||||
grep -v '^ *+' conftest.err >conftest.er1
|
|
||||||
cat conftest.er1 >&5
|
|
||||||
mv -f conftest.er1 conftest.err
|
|
||||||
fi
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
|
||||||
test $ac_status = 0; } > conftest.i && {
|
|
||||||
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
|
|
||||||
test ! -s conftest.err
|
|
||||||
}; then :
|
|
||||||
ac_retval=0
|
|
||||||
else
|
|
||||||
$as_echo "$as_me: failed program was:" >&5
|
|
||||||
sed 's/^/| /' conftest.$ac_ext >&5
|
|
||||||
|
|
||||||
ac_retval=1
|
|
||||||
fi
|
|
||||||
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
|
||||||
as_fn_set_status $ac_retval
|
|
||||||
|
|
||||||
} # ac_fn_c_try_cpp
|
|
||||||
|
|
||||||
# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
|
|
||||||
# -------------------------------------------------------
|
|
||||||
# Tests whether HEADER exists, giving a warning if it cannot be compiled using
|
|
||||||
# the include files in INCLUDES and setting the cache variable VAR
|
|
||||||
# accordingly.
|
|
||||||
ac_fn_c_check_header_mongrel ()
|
|
||||||
{
|
|
||||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
|
||||||
if eval \${$3+:} false; then :
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
|
|
||||||
$as_echo_n "checking for $2... " >&6; }
|
|
||||||
if eval \${$3+:} false; then :
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
fi
|
|
||||||
eval ac_res=\$$3
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
|
||||||
$as_echo "$ac_res" >&6; }
|
|
||||||
else
|
|
||||||
# Is the header compilable?
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
|
|
||||||
$as_echo_n "checking $2 usability... " >&6; }
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
#include <$2>
|
|
||||||
_ACEOF
|
|
||||||
if ac_fn_c_try_compile "$LINENO"; then :
|
|
||||||
ac_header_compiler=yes
|
|
||||||
else
|
|
||||||
ac_header_compiler=no
|
|
||||||
fi
|
|
||||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
|
|
||||||
$as_echo "$ac_header_compiler" >&6; }
|
|
||||||
|
|
||||||
# Is the header present?
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
|
|
||||||
$as_echo_n "checking $2 presence... " >&6; }
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include <$2>
|
|
||||||
_ACEOF
|
|
||||||
if ac_fn_c_try_cpp "$LINENO"; then :
|
|
||||||
ac_header_preproc=yes
|
|
||||||
else
|
|
||||||
ac_header_preproc=no
|
|
||||||
fi
|
|
||||||
rm -f conftest.err conftest.i conftest.$ac_ext
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
|
|
||||||
$as_echo "$ac_header_preproc" >&6; }
|
|
||||||
|
|
||||||
# So? What about this header?
|
|
||||||
case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
|
|
||||||
yes:no: )
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
|
|
||||||
$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
|
|
||||||
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
|
|
||||||
;;
|
|
||||||
no:yes:* )
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
|
|
||||||
$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
|
|
||||||
$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
|
|
||||||
$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
|
|
||||||
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
|
|
||||||
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
|
|
||||||
$as_echo_n "checking for $2... " >&6; }
|
|
||||||
if eval \${$3+:} false; then :
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
eval "$3=\$ac_header_compiler"
|
|
||||||
fi
|
|
||||||
eval ac_res=\$$3
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
|
|
||||||
$as_echo "$ac_res" >&6; }
|
|
||||||
fi
|
|
||||||
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
|
||||||
|
|
||||||
} # ac_fn_c_check_header_mongrel
|
|
||||||
|
|
||||||
# ac_fn_c_try_run LINENO
|
|
||||||
# ----------------------
|
|
||||||
# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
|
|
||||||
# that executables *can* be run.
|
|
||||||
ac_fn_c_try_run ()
|
|
||||||
{
|
|
||||||
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
|
|
||||||
if { { ac_try="$ac_link"
|
|
||||||
case "(($ac_try" in
|
|
||||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
|
||||||
*) ac_try_echo=$ac_try;;
|
|
||||||
esac
|
|
||||||
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
|
||||||
$as_echo "$ac_try_echo"; } >&5
|
|
||||||
(eval "$ac_link") 2>&5
|
|
||||||
ac_status=$?
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
|
||||||
test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
|
|
||||||
{ { case "(($ac_try" in
|
|
||||||
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
|
|
||||||
*) ac_try_echo=$ac_try;;
|
|
||||||
esac
|
|
||||||
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
|
|
||||||
$as_echo "$ac_try_echo"; } >&5
|
|
||||||
(eval "$ac_try") 2>&5
|
|
||||||
ac_status=$?
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
|
|
||||||
test $ac_status = 0; }; }; then :
|
|
||||||
ac_retval=0
|
|
||||||
else
|
|
||||||
$as_echo "$as_me: program exited with status $ac_status" >&5
|
|
||||||
$as_echo "$as_me: failed program was:" >&5
|
|
||||||
sed 's/^/| /' conftest.$ac_ext >&5
|
|
||||||
|
|
||||||
ac_retval=$ac_status
|
|
||||||
fi
|
|
||||||
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
|
|
||||||
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
|
|
||||||
as_fn_set_status $ac_retval
|
|
||||||
|
|
||||||
} # ac_fn_c_try_run
|
|
||||||
|
|
||||||
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
|
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
|
||||||
# -------------------------------------------------------
|
# -------------------------------------------------------
|
||||||
# Tests whether HEADER exists and can be compiled using the include files in
|
# Tests whether HEADER exists and can be compiled using the include files in
|
||||||
|
@ -372,267 +153,8 @@ $as_echo "$ac_res" >&6; }
|
||||||
# Local configure fragment for sysdeps/i386.
|
# Local configure fragment for sysdeps/i386.
|
||||||
|
|
||||||
|
|
||||||
|
ac_fn_c_check_header_compile "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "/* No default includes. */
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
|
|
||||||
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
|
|
||||||
if ${ac_cv_path_GREP+:} false; then :
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
if test -z "$GREP"; then
|
|
||||||
ac_path_GREP_found=false
|
|
||||||
# Loop through the user's path and test for each of PROGNAME-LIST
|
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
||||||
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
|
|
||||||
do
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
test -z "$as_dir" && as_dir=.
|
|
||||||
for ac_prog in grep ggrep; do
|
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
|
||||||
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
|
|
||||||
{ test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
|
|
||||||
# Check for GNU ac_path_GREP and select it if it is found.
|
|
||||||
# Check for GNU $ac_path_GREP
|
|
||||||
case `"$ac_path_GREP" --version 2>&1` in
|
|
||||||
*GNU*)
|
|
||||||
ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
|
|
||||||
*)
|
|
||||||
ac_count=0
|
|
||||||
$as_echo_n 0123456789 >"conftest.in"
|
|
||||||
while :
|
|
||||||
do
|
|
||||||
cat "conftest.in" "conftest.in" >"conftest.tmp"
|
|
||||||
mv "conftest.tmp" "conftest.in"
|
|
||||||
cp "conftest.in" "conftest.nl"
|
|
||||||
$as_echo 'GREP' >> "conftest.nl"
|
|
||||||
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
|
|
||||||
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
|
|
||||||
as_fn_arith $ac_count + 1 && ac_count=$as_val
|
|
||||||
if test $ac_count -gt ${ac_path_GREP_max-0}; then
|
|
||||||
# Best one so far, save it but keep looking for a better one
|
|
||||||
ac_cv_path_GREP="$ac_path_GREP"
|
|
||||||
ac_path_GREP_max=$ac_count
|
|
||||||
fi
|
|
||||||
# 10*(2^10) chars as input seems more than enough
|
|
||||||
test $ac_count -gt 10 && break
|
|
||||||
done
|
|
||||||
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
$ac_path_GREP_found && break 3
|
|
||||||
done
|
|
||||||
done
|
|
||||||
done
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
if test -z "$ac_cv_path_GREP"; then
|
|
||||||
as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
ac_cv_path_GREP=$GREP
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
|
|
||||||
$as_echo "$ac_cv_path_GREP" >&6; }
|
|
||||||
GREP="$ac_cv_path_GREP"
|
|
||||||
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
|
|
||||||
$as_echo_n "checking for egrep... " >&6; }
|
|
||||||
if ${ac_cv_path_EGREP+:} false; then :
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
|
|
||||||
then ac_cv_path_EGREP="$GREP -E"
|
|
||||||
else
|
|
||||||
if test -z "$EGREP"; then
|
|
||||||
ac_path_EGREP_found=false
|
|
||||||
# Loop through the user's path and test for each of PROGNAME-LIST
|
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
||||||
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
|
|
||||||
do
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
test -z "$as_dir" && as_dir=.
|
|
||||||
for ac_prog in egrep; do
|
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
|
||||||
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
|
|
||||||
{ test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
|
|
||||||
# Check for GNU ac_path_EGREP and select it if it is found.
|
|
||||||
# Check for GNU $ac_path_EGREP
|
|
||||||
case `"$ac_path_EGREP" --version 2>&1` in
|
|
||||||
*GNU*)
|
|
||||||
ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
|
|
||||||
*)
|
|
||||||
ac_count=0
|
|
||||||
$as_echo_n 0123456789 >"conftest.in"
|
|
||||||
while :
|
|
||||||
do
|
|
||||||
cat "conftest.in" "conftest.in" >"conftest.tmp"
|
|
||||||
mv "conftest.tmp" "conftest.in"
|
|
||||||
cp "conftest.in" "conftest.nl"
|
|
||||||
$as_echo 'EGREP' >> "conftest.nl"
|
|
||||||
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
|
|
||||||
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
|
|
||||||
as_fn_arith $ac_count + 1 && ac_count=$as_val
|
|
||||||
if test $ac_count -gt ${ac_path_EGREP_max-0}; then
|
|
||||||
# Best one so far, save it but keep looking for a better one
|
|
||||||
ac_cv_path_EGREP="$ac_path_EGREP"
|
|
||||||
ac_path_EGREP_max=$ac_count
|
|
||||||
fi
|
|
||||||
# 10*(2^10) chars as input seems more than enough
|
|
||||||
test $ac_count -gt 10 && break
|
|
||||||
done
|
|
||||||
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
$ac_path_EGREP_found && break 3
|
|
||||||
done
|
|
||||||
done
|
|
||||||
done
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
if test -z "$ac_cv_path_EGREP"; then
|
|
||||||
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
ac_cv_path_EGREP=$EGREP
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
|
|
||||||
$as_echo "$ac_cv_path_EGREP" >&6; }
|
|
||||||
EGREP="$ac_cv_path_EGREP"
|
|
||||||
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
|
|
||||||
$as_echo_n "checking for ANSI C header files... " >&6; }
|
|
||||||
if ${ac_cv_header_stdc+:} false; then :
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <float.h>
|
|
||||||
|
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
_ACEOF
|
|
||||||
if ac_fn_c_try_compile "$LINENO"; then :
|
|
||||||
ac_cv_header_stdc=yes
|
|
||||||
else
|
|
||||||
ac_cv_header_stdc=no
|
|
||||||
fi
|
|
||||||
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
|
||||||
|
|
||||||
if test $ac_cv_header_stdc = yes; then
|
|
||||||
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
_ACEOF
|
|
||||||
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
|
||||||
$EGREP "memchr" >/dev/null 2>&1; then :
|
|
||||||
|
|
||||||
else
|
|
||||||
ac_cv_header_stdc=no
|
|
||||||
fi
|
|
||||||
rm -f conftest*
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $ac_cv_header_stdc = yes; then
|
|
||||||
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
_ACEOF
|
|
||||||
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
|
||||||
$EGREP "free" >/dev/null 2>&1; then :
|
|
||||||
|
|
||||||
else
|
|
||||||
ac_cv_header_stdc=no
|
|
||||||
fi
|
|
||||||
rm -f conftest*
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $ac_cv_header_stdc = yes; then
|
|
||||||
# /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
|
|
||||||
if test "$cross_compiling" = yes; then :
|
|
||||||
:
|
|
||||||
else
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#if ((' ' & 0x0FF) == 0x020)
|
|
||||||
# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
|
|
||||||
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
|
|
||||||
#else
|
|
||||||
# define ISLOWER(c) \
|
|
||||||
(('a' <= (c) && (c) <= 'i') \
|
|
||||||
|| ('j' <= (c) && (c) <= 'r') \
|
|
||||||
|| ('s' <= (c) && (c) <= 'z'))
|
|
||||||
# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
|
|
||||||
int
|
|
||||||
main ()
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < 256; i++)
|
|
||||||
if (XOR (islower (i), ISLOWER (i))
|
|
||||||
|| toupper (i) != TOUPPER (i))
|
|
||||||
return 2;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
_ACEOF
|
|
||||||
if ac_fn_c_try_run "$LINENO"; then :
|
|
||||||
|
|
||||||
else
|
|
||||||
ac_cv_header_stdc=no
|
|
||||||
fi
|
|
||||||
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
|
|
||||||
conftest.$ac_objext conftest.beam conftest.$ac_ext
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
|
|
||||||
$as_echo "$ac_cv_header_stdc" >&6; }
|
|
||||||
if test $ac_cv_header_stdc = yes; then
|
|
||||||
|
|
||||||
$as_echo "#define STDC_HEADERS 1" >>confdefs.h
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
|
|
||||||
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
|
|
||||||
inttypes.h stdint.h unistd.h
|
|
||||||
do :
|
|
||||||
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
|
||||||
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
|
|
||||||
"
|
"
|
||||||
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
|
||||||
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
|
|
||||||
_ACEOF
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
ac_fn_c_check_header_mongrel "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "$ac_includes_default"
|
|
||||||
if test "x$ac_cv_header_cpuid_h" = xyes; then :
|
if test "x$ac_cv_header_cpuid_h" = xyes; then :
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
|
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
|
||||||
# Local configure fragment for sysdeps/i386.
|
# Local configure fragment for sysdeps/i386.
|
||||||
|
|
||||||
AC_HEADER_CHECK([cpuid.h], ,
|
AC_CHECK_HEADER([cpuid.h], ,
|
||||||
[AC_MSG_ERROR([gcc must provide the <cpuid.h> header])])
|
[AC_MSG_ERROR([gcc must provide the <cpuid.h> header])],
|
||||||
|
[/* No default includes. */])
|
||||||
|
|
||||||
AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
|
AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
|
||||||
libc_cv_cpp_asm_debuginfo, [dnl
|
libc_cv_cpp_asm_debuginfo, [dnl
|
||||||
|
|
|
@ -28,13 +28,147 @@ ildouble: 2
|
||||||
ldouble: 1
|
ldouble: 1
|
||||||
|
|
||||||
# cacos
|
# cacos
|
||||||
|
Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
|
||||||
|
double: 2
|
||||||
|
idouble: 2
|
||||||
|
Test "Imaginary part of: cacos (+0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
ildouble: 2
|
||||||
|
ldouble: 2
|
||||||
|
Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
|
||||||
|
double: 2
|
||||||
|
idouble: 2
|
||||||
|
Test "Imaginary part of: cacos (-0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
ildouble: 2
|
||||||
|
ldouble: 2
|
||||||
|
Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (-1.5 - 0 i) == pi + 0.9624236501192068949955178268487368462704 i":
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
|
Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
|
||||||
float: 1
|
float: 1
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
ildouble: 2
|
ildouble: 2
|
||||||
ldouble: 2
|
ldouble: 2
|
||||||
|
Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (1.5 - 0 i) == +0 + 0.9624236501192068949955178268487368462704 i":
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
|
||||||
# cacosh
|
# cacosh
|
||||||
|
Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
|
Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
|
||||||
double: 1
|
double: 1
|
||||||
float: 9
|
float: 9
|
||||||
|
@ -52,8 +186,74 @@ ldouble: 1
|
||||||
Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
|
Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
|
||||||
ildouble: 1
|
ildouble: 1
|
||||||
ldouble: 1
|
ldouble: 1
|
||||||
|
Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
|
||||||
# casin
|
# casin
|
||||||
|
Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
|
||||||
|
double: 2
|
||||||
|
idouble: 2
|
||||||
|
Test "Imaginary part of: casin (+0 + 1.0 i) == +0 + 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
ildouble: 2
|
||||||
|
ldouble: 2
|
||||||
|
Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
|
||||||
|
double: 2
|
||||||
|
idouble: 2
|
||||||
|
Test "Imaginary part of: casin (-0 + 1.0 i) == -0 + 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
ildouble: 2
|
||||||
|
ldouble: 2
|
||||||
|
Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (-1.5 - 0 i) == -pi/2 - 0.9624236501192068949955178268487368462704 i":
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
|
Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
|
||||||
double: 1
|
double: 1
|
||||||
float: 1
|
float: 1
|
||||||
|
@ -66,8 +266,62 @@ float: 1
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
ildouble: 2
|
ildouble: 2
|
||||||
ldouble: 2
|
ldouble: 2
|
||||||
|
Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (1.5 - 0 i) == pi/2 - 0.9624236501192068949955178268487368462704 i":
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
|
||||||
# casinh
|
# casinh
|
||||||
|
Test "Real part of: casinh (+0 + 1.5 i) == 0.9624236501192068949955178268487368462704 + pi/2 i":
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
Test "Real part of: casinh (+0 - 1.5 i) == 0.9624236501192068949955178268487368462704 - pi/2 i":
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (-0 - 1.5 i) == -0.9624236501192068949955178268487368462704 - pi/2 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
|
||||||
|
double: 2
|
||||||
|
idouble: 2
|
||||||
|
Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
|
||||||
|
double: 2
|
||||||
|
idouble: 2
|
||||||
|
Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
ildouble: 2
|
||||||
|
ldouble: 2
|
||||||
|
Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
ildouble: 2
|
||||||
|
ldouble: 2
|
||||||
|
Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
|
Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
|
||||||
double: 5
|
double: 5
|
||||||
float: 1
|
float: 1
|
||||||
|
@ -82,6 +336,12 @@ idouble: 3
|
||||||
ifloat: 6
|
ifloat: 6
|
||||||
ildouble: 5
|
ildouble: 5
|
||||||
ldouble: 5
|
ldouble: 5
|
||||||
|
Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
|
Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
|
||||||
float: 1
|
float: 1
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
|
@ -92,6 +352,22 @@ idouble: 1
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
ildouble: 1
|
ildouble: 1
|
||||||
ldouble: 1
|
ldouble: 1
|
||||||
|
Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
|
||||||
# catan
|
# catan
|
||||||
Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
|
Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
|
||||||
|
@ -1544,8 +1820,16 @@ Function: "atanh":
|
||||||
ildouble: 2
|
ildouble: 2
|
||||||
ldouble: 1
|
ldouble: 1
|
||||||
|
|
||||||
|
Function: Real part of "cacos":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
|
||||||
Function: Imaginary part of "cacos":
|
Function: Imaginary part of "cacos":
|
||||||
|
double: 2
|
||||||
float: 1
|
float: 1
|
||||||
|
idouble: 2
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
ildouble: 2
|
ildouble: 2
|
||||||
ldouble: 2
|
ldouble: 2
|
||||||
|
@ -1575,7 +1859,9 @@ ildouble: 2
|
||||||
ldouble: 2
|
ldouble: 2
|
||||||
|
|
||||||
Function: Imaginary part of "casin":
|
Function: Imaginary part of "casin":
|
||||||
|
double: 2
|
||||||
float: 1
|
float: 1
|
||||||
|
idouble: 2
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
ildouble: 2
|
ildouble: 2
|
||||||
ldouble: 2
|
ldouble: 2
|
||||||
|
|
|
@ -41,13 +41,151 @@ ildouble: 1
|
||||||
ldouble: 1
|
ldouble: 1
|
||||||
|
|
||||||
# cacos
|
# cacos
|
||||||
|
Test "Imaginary part of: cacos (+0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (+0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
ildouble: 2
|
||||||
|
ldouble: 2
|
||||||
|
Test "Imaginary part of: cacos (+0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (+0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (+0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (+0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Imaginary part of: cacos (-0 + 0.5 i) == pi/2 - 0.4812118250596034474977589134243684231352 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (-0 + 1.0 i) == pi/2 - 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
ildouble: 2
|
||||||
|
ldouble: 2
|
||||||
|
Test "Imaginary part of: cacos (-0 + 1.5 i) == pi/2 - 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (-0 - 0.5 i) == pi/2 + 0.4812118250596034474977589134243684231352 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (-0 - 1.0 i) == pi/2 + 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (-0 - 1.5 i) == pi/2 + 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Imaginary part of: cacos (-1.5 + +0 i) == pi - 0.9624236501192068949955178268487368462704 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (-1.5 - 0 i) == pi + 0.9624236501192068949955178268487368462704 i":
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
Test "Real part of: cacos (0.5 + +0 i) == 1.047197551196597746154214461093167628066 - 0 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
Test "Real part of: cacos (0.5 - 0 i) == 1.047197551196597746154214461093167628066 + +0 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
|
Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
|
||||||
float: 1
|
float: 1
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
ildouble: 2
|
ildouble: 2
|
||||||
ldouble: 2
|
ldouble: 2
|
||||||
|
Test "Imaginary part of: cacos (1.5 + +0 i) == +0 - 0.9624236501192068949955178268487368462704 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: cacos (1.5 - 0 i) == +0 + 0.9624236501192068949955178268487368462704 i":
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
|
||||||
# cacosh
|
# cacosh
|
||||||
|
Test "Real part of: cacosh (+0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (+0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (+0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Real part of: cacosh (+0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (+0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (+0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Real part of: cacosh (-0 + 0.5 i) == 0.4812118250596034474977589134243684231352 + pi/2 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (-0 + 1.0 i) == 0.8813735870195430252326093249797923090282 + pi/2 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (-0 + 1.5 i) == 1.194763217287109304111930828519090523536 + pi/2 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Real part of: cacosh (-0 - 0.5 i) == 0.4812118250596034474977589134243684231352 - pi/2 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (-0 - 1.0 i) == 0.8813735870195430252326093249797923090282 - pi/2 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (-0 - 1.5 i) == 1.194763217287109304111930828519090523536 - pi/2 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Imaginary part of: cacosh (-0.5 + +0 i) == +0 + 2.094395102393195492308428922186335256131 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Imaginary part of: cacosh (-0.5 - 0 i) == +0 - 2.094395102393195492308428922186335256131 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Real part of: cacosh (-1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + pi i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (-1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - pi i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
|
Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
|
||||||
double: 1
|
double: 1
|
||||||
float: 7
|
float: 7
|
||||||
|
@ -65,8 +203,78 @@ ldouble: 1
|
||||||
Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
|
Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
|
||||||
ildouble: 1
|
ildouble: 1
|
||||||
ldouble: 1
|
ldouble: 1
|
||||||
|
Test "Real part of: cacosh (1.5 + +0 i) == 0.9624236501192068949955178268487368462704 + +0 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: cacosh (1.5 - 0 i) == 0.9624236501192068949955178268487368462704 - 0 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
|
||||||
# casin
|
# casin
|
||||||
|
Test "Imaginary part of: casin (+0 + 0.5 i) == +0 + 0.4812118250596034474977589134243684231352 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (+0 + 1.0 i) == +0 + 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
ildouble: 2
|
||||||
|
ldouble: 2
|
||||||
|
Test "Imaginary part of: casin (+0 + 1.5 i) == +0 + 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (+0 - 0.5 i) == +0 - 0.4812118250596034474977589134243684231352 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (+0 - 1.0 i) == +0 - 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (+0 - 1.5 i) == +0 - 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Imaginary part of: casin (-0 + 0.5 i) == -0 + 0.4812118250596034474977589134243684231352 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (-0 + 1.0 i) == -0 + 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
ildouble: 2
|
||||||
|
ldouble: 2
|
||||||
|
Test "Imaginary part of: casin (-0 + 1.5 i) == -0 + 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (-0 - 0.5 i) == -0 - 0.4812118250596034474977589134243684231352 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (-0 - 1.0 i) == -0 - 0.8813735870195430252326093249797923090282 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (-0 - 1.5 i) == -0 - 1.194763217287109304111930828519090523536 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Imaginary part of: casin (-1.5 + +0 i) == -pi/2 + 0.9624236501192068949955178268487368462704 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (-1.5 - 0 i) == -pi/2 - 0.9624236501192068949955178268487368462704 i":
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
|
Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
|
||||||
double: 1
|
double: 1
|
||||||
float: 1
|
float: 1
|
||||||
|
@ -79,8 +287,66 @@ float: 1
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
ildouble: 2
|
ildouble: 2
|
||||||
ldouble: 2
|
ldouble: 2
|
||||||
|
Test "Imaginary part of: casin (1.5 + +0 i) == pi/2 + 0.9624236501192068949955178268487368462704 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Imaginary part of: casin (1.5 - 0 i) == pi/2 - 0.9624236501192068949955178268487368462704 i":
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
|
||||||
# casinh
|
# casinh
|
||||||
|
Test "Real part of: casinh (+0 + 1.5 i) == 0.9624236501192068949955178268487368462704 + pi/2 i":
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
Test "Real part of: casinh (+0 - 1.5 i) == 0.9624236501192068949955178268487368462704 - pi/2 i":
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
Test "Real part of: casinh (-0 + 1.5 i) == -0.9624236501192068949955178268487368462704 + pi/2 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (-0 - 1.5 i) == -0.9624236501192068949955178268487368462704 - pi/2 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (-0.5 + +0 i) == -0.4812118250596034474977589134243684231352 + +0 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (-0.5 - 0 i) == -0.4812118250596034474977589134243684231352 - 0 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (-1.0 + +0 i) == -0.8813735870195430252326093249797923090282 + +0 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
ildouble: 2
|
||||||
|
ldouble: 2
|
||||||
|
Test "Real part of: casinh (-1.0 - 0 i) == -0.8813735870195430252326093249797923090282 - 0 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
ildouble: 2
|
||||||
|
ldouble: 2
|
||||||
|
Test "Real part of: casinh (-1.5 + +0 i) == -1.194763217287109304111930828519090523536 + +0 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (-1.5 - 0 i) == -1.194763217287109304111930828519090523536 - 0 i":
|
||||||
|
double: 2
|
||||||
|
float: 1
|
||||||
|
idouble: 2
|
||||||
|
ifloat: 1
|
||||||
Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
|
Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
|
||||||
double: 5
|
double: 5
|
||||||
float: 1
|
float: 1
|
||||||
|
@ -95,6 +361,12 @@ idouble: 3
|
||||||
ifloat: 6
|
ifloat: 6
|
||||||
ildouble: 5
|
ildouble: 5
|
||||||
ldouble: 5
|
ldouble: 5
|
||||||
|
Test "Real part of: casinh (0.5 + +0 i) == 0.4812118250596034474977589134243684231352 + +0 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (0.5 - 0 i) == 0.4812118250596034474977589134243684231352 - 0 i":
|
||||||
|
float: 1
|
||||||
|
ifloat: 1
|
||||||
Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
|
Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
|
||||||
float: 1
|
float: 1
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
|
@ -105,6 +377,22 @@ idouble: 1
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
ildouble: 1
|
ildouble: 1
|
||||||
ldouble: 1
|
ldouble: 1
|
||||||
|
Test "Real part of: casinh (1.0 + +0 i) == 0.8813735870195430252326093249797923090282 + +0 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (1.0 - 0 i) == 0.8813735870195430252326093249797923090282 - 0 i":
|
||||||
|
double: 1
|
||||||
|
float: 1
|
||||||
|
idouble: 1
|
||||||
|
ifloat: 1
|
||||||
|
Test "Real part of: casinh (1.5 + +0 i) == 1.194763217287109304111930828519090523536 + +0 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
Test "Real part of: casinh (1.5 - 0 i) == 1.194763217287109304111930828519090523536 - 0 i":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
|
||||||
# catan
|
# catan
|
||||||
Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
|
Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
|
||||||
|
@ -1498,8 +1786,16 @@ ifloat: 1
|
||||||
ildouble: 1
|
ildouble: 1
|
||||||
ldouble: 1
|
ldouble: 1
|
||||||
|
|
||||||
|
Function: Real part of "cacos":
|
||||||
|
double: 1
|
||||||
|
idouble: 1
|
||||||
|
ildouble: 1
|
||||||
|
ldouble: 1
|
||||||
|
|
||||||
Function: Imaginary part of "cacos":
|
Function: Imaginary part of "cacos":
|
||||||
|
double: 2
|
||||||
float: 1
|
float: 1
|
||||||
|
idouble: 2
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
ildouble: 2
|
ildouble: 2
|
||||||
ldouble: 2
|
ldouble: 2
|
||||||
|
@ -1529,7 +1825,9 @@ ildouble: 2
|
||||||
ldouble: 2
|
ldouble: 2
|
||||||
|
|
||||||
Function: Imaginary part of "casin":
|
Function: Imaginary part of "casin":
|
||||||
|
double: 2
|
||||||
float: 1
|
float: 1
|
||||||
|
idouble: 2
|
||||||
ifloat: 1
|
ifloat: 1
|
||||||
ildouble: 2
|
ildouble: 2
|
||||||
ldouble: 2
|
ldouble: 2
|
||||||
|
|
Loading…
Reference in New Issue