mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 02:40:08 +00:00
Update.
1998-02-17 15:10 Ulrich Drepper <drepper@cygnus.com> * elf/dl-load.c (open_path): Use __xstat instead of stat. * localedata/tst-locale.sh: Comment out first test for now. 1998-02-14 14:58 H.J. Lu <hjl@gnu.org> * sysdeps/generic/_G_config.h (_G_HAVE_IO_GETLINE_INFO): Defined as 1. * sysdeps/unix/sysv/linux/_G_config.h (_G_HAVE_IO_GETLINE_INFO): Likewise. * libio/iogetline.c (_IO_getline_info): Renamed from _IO_getline. (_IO_getline): Just call _IO_getline_info. * libio/libioP.h (_IO_getline_info): New declaration. * libc.map (_IO_getline_info, __write): Added. 1998-02-17 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sunrpc/rpc_cout.c (inline_struct): Change typo of plus to const char* to shut up gcc. 1998-02-17 11:37 Ulrich Drepper <drepper@cygnus.com> * eld/dl-open.c (_dl_open): Assign correct value to new->l_global. Patch forwarded by Cristian Gafton <gafton@redhat.com>. * math/math.h: Define M_* constants always as `double' and add new macros M_*l which are of type `long double'. * sysdeps/libm-ieee754/s_cacoshl.c: Use M_*l constants now. * sysdeps/libm-ieee754/s_cacosl.c: Likewise. * sysdeps/libm-ieee754/s_casinhl.c: Likewise. * sysdeps/libm-ieee754/s_catanhl.c: Likewise. * sysdeps/libm-ieee754/s_catanl.c: Likewise. * sysdeps/libm-ieee754/s_clog10l.c: Likewise. * sysdeps/libm-ieee754/s_clogl.c: Likewise. * math/libm-tst.c: Likewise. * sysdeps/i386/fpu/bits/mathinline.h (__M_SQRT2): Don't use _Mdbl, define as long double unconditionally. 1998-02-17 Andreas Jaeger <aj@arthur.rhein-neckar.de> * manual/arith.texi (Old-style number conversion): Correct some typos. 1998-02-16 16:28 H.J. Lu <hjl@gnu.org> * time/Makefile (tz-cflags, CFLAGS-tzfile.c, CFLAGS-tzset.c): Restore. * timezone/Makefile (CFLAGS-tzfile.c, CFLAGS-tzset.c): Deleted.
This commit is contained in:
parent
3858abff55
commit
0a61487785
57
ChangeLog
57
ChangeLog
@ -1,3 +1,60 @@
|
||||
1998-02-17 15:10 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* elf/dl-load.c (open_path): Use __xstat instead of stat.
|
||||
|
||||
* localedata/tst-locale.sh: Comment out first test for now.
|
||||
|
||||
1998-02-14 14:58 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* sysdeps/generic/_G_config.h (_G_HAVE_IO_GETLINE_INFO): Defined
|
||||
as 1.
|
||||
* sysdeps/unix/sysv/linux/_G_config.h (_G_HAVE_IO_GETLINE_INFO):
|
||||
Likewise.
|
||||
|
||||
* libio/iogetline.c (_IO_getline_info): Renamed from
|
||||
_IO_getline.
|
||||
(_IO_getline): Just call _IO_getline_info.
|
||||
|
||||
* libio/libioP.h (_IO_getline_info): New declaration.
|
||||
|
||||
* libc.map (_IO_getline_info, __write): Added.
|
||||
|
||||
1998-02-17 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* sunrpc/rpc_cout.c (inline_struct): Change typo of plus to
|
||||
const char* to shut up gcc.
|
||||
|
||||
1998-02-17 11:37 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* eld/dl-open.c (_dl_open): Assign correct value to new->l_global.
|
||||
Patch forwarded by Cristian Gafton <gafton@redhat.com>.
|
||||
|
||||
* math/math.h: Define M_* constants always as `double' and add new
|
||||
macros M_*l which are of type `long double'.
|
||||
* sysdeps/libm-ieee754/s_cacoshl.c: Use M_*l constants now.
|
||||
* sysdeps/libm-ieee754/s_cacosl.c: Likewise.
|
||||
* sysdeps/libm-ieee754/s_casinhl.c: Likewise.
|
||||
* sysdeps/libm-ieee754/s_catanhl.c: Likewise.
|
||||
* sysdeps/libm-ieee754/s_catanl.c: Likewise.
|
||||
* sysdeps/libm-ieee754/s_clog10l.c: Likewise.
|
||||
* sysdeps/libm-ieee754/s_clogl.c: Likewise.
|
||||
* math/libm-tst.c: Likewise.
|
||||
|
||||
* sysdeps/i386/fpu/bits/mathinline.h (__M_SQRT2): Don't use _Mdbl,
|
||||
define as long double unconditionally.
|
||||
|
||||
1998-02-17 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* manual/arith.texi (Old-style number conversion): Correct some
|
||||
typos.
|
||||
|
||||
1998-02-16 16:28 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* time/Makefile (tz-cflags, CFLAGS-tzfile.c, CFLAGS-tzset.c):
|
||||
Restore.
|
||||
|
||||
* timezone/Makefile (CFLAGS-tzfile.c, CFLAGS-tzset.c): Deleted.
|
||||
|
||||
1998-02-16 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* elf/Makefile ($(objpfx)ld.so): Don't depend on rtld-script but
|
||||
|
@ -832,7 +832,8 @@ open_path (const char *name, size_t namelen,
|
||||
|
||||
buf[this_dir->machdirnamelen - 1] = '\0';
|
||||
|
||||
if (stat (buf, &st) != 0 || ! S_ISDIR (st.st_mode))
|
||||
if (__xstat (_STAT_VER, buf, &st) != 0
|
||||
|| ! S_ISDIR (st.st_mode))
|
||||
/* The directory does not exist ot it is no directory. */
|
||||
this_dir->machdirstatus = nonexisting;
|
||||
else
|
||||
@ -863,7 +864,8 @@ open_path (const char *name, size_t namelen,
|
||||
|
||||
buf[this_dir->dirnamelen - 1] = '\0';
|
||||
|
||||
if (stat (buf, &st) != 0 || ! S_ISDIR (st.st_mode))
|
||||
if (__xstat (_STAT_VER, buf, &st) != 0
|
||||
|| ! S_ISDIR (st.st_mode))
|
||||
/* The directory does not exist ot it is no directory. */
|
||||
this_dir->dirstatus = nonexisting;
|
||||
else
|
||||
|
@ -110,7 +110,7 @@ _dl_open (const char *file, int mode)
|
||||
l = l->l_prev;
|
||||
}
|
||||
|
||||
new->l_global = (mode & RTLD_GLOBAL);
|
||||
new->l_global = (mode & RTLD_GLOBAL) ? 1 : 0;
|
||||
if (new->l_global)
|
||||
{
|
||||
/* The symbols of the new object and its dependencies are to be
|
||||
|
5
libc.map
5
libc.map
@ -100,7 +100,7 @@ GLIBC_2.0 {
|
||||
__vsscanf; __vfscanf; __vsnprintf;
|
||||
_rpc_dtablesize; _null_auth; _seterr_reply;
|
||||
__res_randomid; __syscall_rt_sigqueueinfo; __getpid; __pread64; __pwrite64;
|
||||
__strcasecmp;
|
||||
__strcasecmp; __write;
|
||||
|
||||
# Exception handling support functions from libgcc
|
||||
__register_frame; __register_frame_table; __deregister_frame;
|
||||
@ -470,4 +470,7 @@ GLIBC_2.1 {
|
||||
|
||||
# New special glibc functions.
|
||||
gnu_get_libc_release; gnu_get_libc_version;
|
||||
|
||||
# Changed getline function in libio.
|
||||
_IO_getline_info;
|
||||
} GLIBC_2.0;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1993, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1993, 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU IO Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
@ -26,13 +26,7 @@
|
||||
#include "libioP.h"
|
||||
#include <string.h>
|
||||
|
||||
/* Algorithm based on that used by Berkeley pre-4.4 fgets implementation.
|
||||
|
||||
Read chars into buf (of size n), until delim is seen.
|
||||
Return number of chars read (at most n).
|
||||
Does not put a terminating '\0' in buf.
|
||||
If extract_delim < 0, leave delimiter unread.
|
||||
If extract_delim > 0, insert delim in output. */
|
||||
#if defined _LIBC || !_G_HAVE_IO_GETLINE_INFO
|
||||
|
||||
_IO_size_t
|
||||
_IO_getline (fp, buf, n, delim, extract_delim)
|
||||
@ -41,38 +35,81 @@ _IO_getline (fp, buf, n, delim, extract_delim)
|
||||
_IO_size_t n;
|
||||
int delim;
|
||||
int extract_delim;
|
||||
{
|
||||
return _IO_getline_info (fp, buf, n, delim, extract_delim, (int *) 0);
|
||||
}
|
||||
|
||||
/* Algorithm based on that used by Berkeley pre-4.4 fgets implementation.
|
||||
|
||||
Read chars into buf (of size n), until delim is seen.
|
||||
Return number of chars read (at most n).
|
||||
Does not put a terminating '\0' in buf.
|
||||
If extract_delim < 0, leave delimiter unread.
|
||||
If extract_delim > 0, insert delim in output. */
|
||||
|
||||
_IO_size_t
|
||||
_IO_getline_info (fp, buf, n, delim, extract_delim, eof)
|
||||
_IO_FILE *fp;
|
||||
char *buf;
|
||||
_IO_size_t n;
|
||||
int delim;
|
||||
int extract_delim;
|
||||
int *eof;
|
||||
{
|
||||
char *ptr = buf;
|
||||
if (eof != NULL)
|
||||
*eof = 0;
|
||||
do
|
||||
{
|
||||
_IO_ssize_t len = fp->_IO_read_end - fp->_IO_read_ptr;
|
||||
char *t;
|
||||
if (len <= 0)
|
||||
if (__underflow (fp) == EOF)
|
||||
break;
|
||||
else
|
||||
len = fp->_IO_read_end - fp->_IO_read_ptr;
|
||||
if ((_IO_size_t) len >= n)
|
||||
len = n;
|
||||
t = (char *) memchr ((void *) fp->_IO_read_ptr, delim, len);
|
||||
if (t != NULL)
|
||||
{
|
||||
_IO_size_t old_len = ptr-buf;
|
||||
len = t - fp->_IO_read_ptr;
|
||||
if (extract_delim >= 0)
|
||||
int c = __uflow (fp);
|
||||
if (c == EOF)
|
||||
{
|
||||
++t;
|
||||
if (eof) *eof = c;
|
||||
break;
|
||||
}
|
||||
if (c == delim)
|
||||
{
|
||||
if (extract_delim > 0)
|
||||
*ptr++ = c;
|
||||
else if (extract_delim < 0)
|
||||
_IO_sputbackc (fp, c);
|
||||
return ptr - buf;
|
||||
if (extract_delim > 0)
|
||||
++len;
|
||||
}
|
||||
memcpy ((void *) ptr, (void *) fp->_IO_read_ptr, len);
|
||||
fp->_IO_read_ptr = t;
|
||||
return old_len + len;
|
||||
*ptr++ = c;
|
||||
n--;
|
||||
}
|
||||
memcpy ((void *) ptr, (void *) fp->_IO_read_ptr, len);
|
||||
fp->_IO_read_ptr += len;
|
||||
ptr += len;
|
||||
n -= len;
|
||||
else
|
||||
{
|
||||
char *t;
|
||||
if ((_IO_size_t) len >= n)
|
||||
len = n;
|
||||
t = (char *) memchr ((void *) fp->_IO_read_ptr, delim, len);
|
||||
if (t != NULL)
|
||||
{
|
||||
_IO_size_t old_len = ptr-buf;
|
||||
len = t - fp->_IO_read_ptr;
|
||||
if (extract_delim >= 0)
|
||||
{
|
||||
++t;
|
||||
if (extract_delim > 0)
|
||||
++len;
|
||||
}
|
||||
memcpy ((void *) ptr, (void *) fp->_IO_read_ptr, len);
|
||||
fp->_IO_read_ptr = t;
|
||||
return old_len + len;
|
||||
}
|
||||
memcpy ((void *) ptr, (void *) fp->_IO_read_ptr, len);
|
||||
fp->_IO_read_ptr += len;
|
||||
ptr += len;
|
||||
n -= len;
|
||||
}
|
||||
} while (n != 0);
|
||||
return ptr - buf;
|
||||
}
|
||||
|
||||
#endif /* Defined _LIBC || !_G_HAVE_IO_GETLINE_INFO */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1993, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1993, 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU IO Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
@ -428,6 +428,8 @@ extern int _IO_vsnprintf __P ((char *string, _IO_size_t maxlen,
|
||||
|
||||
|
||||
extern _IO_size_t _IO_getline __P ((_IO_FILE *,char *, _IO_size_t, int, int));
|
||||
extern _IO_size_t _IO_getline_info __P ((_IO_FILE *,char *, _IO_size_t,
|
||||
int, int, int *));
|
||||
extern _IO_ssize_t _IO_getdelim __P ((char **, _IO_size_t *, int, _IO_FILE *));
|
||||
extern double _IO_strtod __P ((const char *, char **));
|
||||
extern char *_IO_dtoa __P ((double __d, int __mode, int __ndigits,
|
||||
|
@ -37,13 +37,13 @@ test-output := $(foreach s, .out .xout, \
|
||||
generated := $(test-input) $(test-output)
|
||||
generated-dirs := $(basename $(test-input)) en_US
|
||||
|
||||
test-names := test1 test2 test3 test4
|
||||
test-srcs := $(addprefix tests/,$(addsuffix .cm,$(test-names)) \
|
||||
$(addsuffix .def,$(test-names)))
|
||||
ld-test-names := test1 test2 test3 test4
|
||||
ld-test-srcs := $(addprefix tests/,$(addsuffix .cm,$(ld-test-names)) \
|
||||
$(addsuffix .def,$(ld-test-names)))
|
||||
|
||||
distribute := CHECKSUMS tst-fmon.sh tst-fmon.data ChangeLog sort-test.sh \
|
||||
README mnemonic.ds fr_CA,2.13.in de_DE.in da_DK.in \
|
||||
$(charmaps) $(locales) $(test-srcs)
|
||||
$(charmaps) $(locales) $(ld-test-srcs)
|
||||
|
||||
# Get $(inst_i18ndir) defined.
|
||||
include ../Makeconfig
|
||||
|
@ -38,7 +38,9 @@ test_locale ()
|
||||
fi
|
||||
}
|
||||
|
||||
test_locale IBM437 de_DE de_DE.437
|
||||
# I take this out for now since it is a known problem
|
||||
# (see [PR libc/229] and [PR libc/454].
|
||||
# test_locale IBM437 de_DE de_DE.437
|
||||
test_locale tests/test1.cm tests/test1.def test1
|
||||
test_locale tests/test2.cm tests/test2.def test2
|
||||
test_locale tests/test3.cm tests/test3.def test3
|
||||
|
@ -1337,7 +1337,7 @@ extensions in the same sense.
|
||||
|
||||
Generally, you should avoid using these functions unless the really fit
|
||||
into the problem you have to to solve. Otherwise it is almost always
|
||||
better to use @code{sprinf} since it's greater availability (it is an
|
||||
better to use @code{sprintf} since its greater availability (it is an
|
||||
@w{ISO C} function).
|
||||
|
||||
|
||||
@ -1387,14 +1387,14 @@ The prototype for this function can be found in @file{stdlib.h}.
|
||||
@comment SVID, Unix98
|
||||
@deftypefun {char *} gcvt (double @var{value}, int @var{ndigit}, char *@var{buf})
|
||||
The @code{gcvt} function also converts @var{value} to a NUL terminated
|
||||
string but does in a way similar to the @code{%g} format of
|
||||
@code{printf}. It also does not use a static buffer but instead uses
|
||||
string but in a way similar to the @code{%g} format of
|
||||
@code{sprintf}. It also does not use a static buffer but instead uses
|
||||
the user-provided buffer starting at @var{buf}. It is the user's
|
||||
responsibility to make sure the buffer is long enough to contain the
|
||||
result. Unlike the @code{ecvt} and @code{fcvt} function @code{gcvt}
|
||||
includes the sign and the decimal point character (which is determined
|
||||
result. Unlike the @code{ecvt} and @code{fcvt} functions @code{gcvt}
|
||||
includes the sign and the decimal point characters (which are determined
|
||||
according to the current locale) in the result. Therefore there are yet
|
||||
less reasons to use this function instead of @code{printf}.
|
||||
less reasons to use this function instead of @code{sprintf}.
|
||||
|
||||
The return value is @var{buf}.
|
||||
|
||||
@ -1402,11 +1402,11 @@ The prototype for this function can be found in @file{stdlib.h}.
|
||||
@end deftypefun
|
||||
|
||||
|
||||
All these three functions have in common that they use @code{double}
|
||||
values as the parameters. Calling these functions using @code{long
|
||||
All three functions have in common that they use @code{double}
|
||||
values as parameter. Calling these functions using @code{long
|
||||
double} values would mean a loss of precision due to the implicit
|
||||
rounding. Therefore the GNU C library contains three more functions
|
||||
with similar semantic which take @code{long double} values.
|
||||
with similar semantics which take @code{long double} values.
|
||||
|
||||
@comment stdlib.h
|
||||
@comment GNU
|
||||
@ -1453,7 +1453,7 @@ is no need for a @code{gcvt_r} function.
|
||||
@deftypefun {char *} ecvt_r (double @var{value}, int @var{ndigit}, int *@var{decpt}, int *@var{sign}, char *@var{buf}, size_t @var{len})
|
||||
The @code{ecvt_r} function is similar to the @code{ecvt} function except
|
||||
that it places its result into the user-specified buffer starting at
|
||||
@var{buf}.
|
||||
@var{buf} with length @var{len}.
|
||||
|
||||
This function is a GNU extension. The prototype can be found in
|
||||
@file{stdlib.h}.
|
||||
@ -1464,7 +1464,7 @@ This function is a GNU extension. The prototype can be found in
|
||||
@deftypefun {char *} fcvt_r (double @var{value}, int @var{ndigit}, int @var{decpt}, int *@var{sign}, char *@var{buf}, size_t @var{len})
|
||||
The @code{fcvt_r} function is similar to the @code{fcvt} function except
|
||||
that it places its result into the user-specified buffer starting at
|
||||
@var{buf}.
|
||||
@var{buf} with length @var{len}.
|
||||
|
||||
This function is a GNU extension. The prototype can be found in
|
||||
@file{stdlib.h}.
|
||||
@ -1475,7 +1475,7 @@ This function is a GNU extension. The prototype can be found in
|
||||
@deftypefun {char *} qecvt_r (long double @var{value}, int @var{ndigit}, int *@var{decpt}, int *@var{sign}, char *@var{buf}, size_t @var{len})
|
||||
The @code{qecvt_r} function is similar to the @code{qecvt} function except
|
||||
that it places its result into the user-specified buffer starting at
|
||||
@var{buf}.
|
||||
@var{buf} with length @var{len}.
|
||||
|
||||
This function is a GNU extension. The prototype can be found in
|
||||
@file{stdlib.h}.
|
||||
@ -1483,10 +1483,10 @@ This function is a GNU extension. The prototype can be found in
|
||||
|
||||
@comment stdlib.h
|
||||
@comment GNU
|
||||
@deftypefun {char *} qfcvt (long double @var{value}, int @var{ndigit}, int @var{decpt}, int *@var{sign}, char *@var{buf}, size_t @var{len})
|
||||
@deftypefun {char *} qfcvt_r (long double @var{value}, int @var{ndigit}, int @var{decpt}, int *@var{sign}, char *@var{buf}, size_t @var{len})
|
||||
The @code{qfcvt_r} function is similar to the @code{qfcvt} function except
|
||||
that it places its result into the user-specified buffer starting at
|
||||
@var{buf}.
|
||||
@var{buf} with length @var{len}.
|
||||
|
||||
This function is a GNU extension. The prototype can be found in
|
||||
@file{stdlib.h}.
|
||||
|
464
math/libm-test.c
464
math/libm-test.c
File diff suppressed because it is too large
Load Diff
66
math/math.h
66
math/math.h
@ -1,5 +1,5 @@
|
||||
/* Declarations for math functions.
|
||||
Copyright (C) 1991, 92, 93, 95, 96, 97 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991, 92, 93, 95, 96, 97, 98 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -262,41 +262,41 @@ extern int matherr __P ((struct exception *__exc));
|
||||
#endif /* SVID */
|
||||
|
||||
|
||||
#if defined __USE_BSD || defined __USE_UNIX98
|
||||
|
||||
/* Some useful constants. */
|
||||
# define M_E _Mldbl(2.7182818284590452354) /* e */
|
||||
# define M_LOG2E _Mldbl(1.4426950408889634074) /* log_2 e */
|
||||
# define M_LOG10E _Mldbl(0.43429448190325182765) /* log_10 e */
|
||||
# define M_LN2 _Mldbl(0.69314718055994530942) /* log_e 2 */
|
||||
# define M_LN10 _Mldbl(2.30258509299404568402) /* log_e 10 */
|
||||
# define M_PI _Mldbl(3.14159265358979323846) /* pi */
|
||||
# define M_PI_2 _Mldbl(1.57079632679489661923) /* pi/2 */
|
||||
# define M_PI_4 _Mldbl(0.78539816339744830962) /* pi/4 */
|
||||
# define M_1_PI _Mldbl(0.31830988618379067154) /* 1/pi */
|
||||
# define M_2_PI _Mldbl(0.63661977236758134308) /* 2/pi */
|
||||
# define M_2_SQRTPI _Mldbl(1.12837916709551257390) /* 2/sqrt(pi) */
|
||||
# define M_SQRT2 _Mldbl(1.41421356237309504880) /* sqrt(2) */
|
||||
# define M_SQRT1_2 _Mldbl(0.70710678118654752440) /* 1/sqrt(2) */
|
||||
|
||||
#if defined __USE_BSD || defined __USE_UNIX98
|
||||
# define M_E 2.7182818284590452354 /* e */
|
||||
# define M_LOG2E 1.4426950408889634074 /* log_2 e */
|
||||
# define M_LOG10E 0.43429448190325182765 /* log_10 e */
|
||||
# define M_LN2 0.69314718055994530942 /* log_e 2 */
|
||||
# define M_LN10 2.30258509299404568402 /* log_e 10 */
|
||||
# define M_PI 3.14159265358979323846 /* pi */
|
||||
# define M_PI_2 1.57079632679489661923 /* pi/2 */
|
||||
# define M_PI_4 0.78539816339744830962 /* pi/4 */
|
||||
# define M_1_PI 0.31830988618379067154 /* 1/pi */
|
||||
# define M_2_PI 0.63661977236758134308 /* 2/pi */
|
||||
# define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
|
||||
# define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
|
||||
# define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
|
||||
#endif
|
||||
|
||||
/* Our constants might specify more precision than `double' can represent.
|
||||
Use `long double' constants in standard and GNU C, where they are
|
||||
supported and the cast to `double'.
|
||||
|
||||
If the constants are use in code which does not use prototypes, one
|
||||
might get problems if a function takes a `double' argument and any
|
||||
of the constants are provided as the argument. In this case, cast
|
||||
the argument to `double'.
|
||||
|
||||
Please note we define the macro even if the constants are not defined.
|
||||
This helps us to use the macros in other places. */
|
||||
#if (__STDC__ - 0 || __GNUC__ - 0) && defined __USE_GNU
|
||||
# define _Mldbl(x) x##L
|
||||
#else /* Traditional C. */
|
||||
# define _Mldbl(x) x
|
||||
#endif /* Standard or GNU C. */
|
||||
/* The above constants are not adequate for computation using `long double's.
|
||||
Therefore we provide as an extension constants with similar names as a
|
||||
GNU extension. */
|
||||
#ifdef __USE_GNU
|
||||
# define M_El 2.7182818284590452354L /* e */
|
||||
# define M_LOG2El 1.4426950408889634074L /* log_2 e */
|
||||
# define M_LOG10El 0.43429448190325182765L /* log_10 e */
|
||||
# define M_LN2l 0.69314718055994530942L /* log_e 2 */
|
||||
# define M_LN10l 2.30258509299404568402L /* log_e 10 */
|
||||
# define M_PIl 3.14159265358979323846L /* pi */
|
||||
# define M_PI_2l 1.57079632679489661923L /* pi/2 */
|
||||
# define M_PI_4l 0.78539816339744830962L /* pi/4 */
|
||||
# define M_1_PIl 0.31830988618379067154L /* 1/pi */
|
||||
# define M_2_PIl 0.63661977236758134308L /* 2/pi */
|
||||
# define M_2_SQRTPIl 1.12837916709551257390L /* 2/sqrt(pi) */
|
||||
# define M_SQRT2l 1.41421356237309504880L /* sqrt(2) */
|
||||
# define M_SQRT1_2l 0.70710678118654752440L /* 1/sqrt(2) */
|
||||
#endif
|
||||
|
||||
|
||||
/* Get machine-dependent inline versions (if there are any). */
|
||||
|
@ -442,9 +442,11 @@ inline_struct (definition *def, int flag)
|
||||
{
|
||||
decl_list *dl;
|
||||
int i, size;
|
||||
decl_list *cur, *psav;
|
||||
decl_list *cur = NULL;
|
||||
decl_list *psav;
|
||||
bas_type *ptr;
|
||||
char *sizestr, *plus;
|
||||
char *sizestr;
|
||||
const char *plus;
|
||||
char ptemp[256];
|
||||
int indent = 1;
|
||||
|
||||
@ -760,14 +762,16 @@ emit_single_in_line (int indent, declaration *decl, int flag, relation rel)
|
||||
{
|
||||
free (upp_case);
|
||||
freed = 1;
|
||||
upp_case = "LONG";
|
||||
/* Casting is safe since the `freed' flag is set. */
|
||||
upp_case = (char *) "LONG";
|
||||
}
|
||||
|
||||
if (!strcmp (upp_case, "U_INT"))
|
||||
{
|
||||
free (upp_case);
|
||||
freed = 1;
|
||||
upp_case = "U_LONG";
|
||||
/* Casting is safe since the `freed' flag is set. */
|
||||
upp_case = (char *) "U_LONG";
|
||||
}
|
||||
|
||||
if (flag == PUT)
|
||||
|
@ -51,6 +51,7 @@ typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
|
||||
#define _G_HAVE_MMAP 1
|
||||
#define _G_HAVE_LONG_DOUBLE_IO 1
|
||||
#define _G_HAVE_IO_FILE_OPEN 1
|
||||
#define _G_HAVE_IO_GETLINE_INFO 1
|
||||
|
||||
#define _G_IO_IO_FILE_VERSION 0x20001
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Inline math functions for i387.
|
||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by John C. Bowman <bowman@math.ualberta.ca>, 1995.
|
||||
|
||||
@ -505,7 +505,7 @@ __inline_mathcode (expm1, __x, __expm1_code)
|
||||
|
||||
/* We cannot rely on M_SQRT being defined. So we do it for ourself
|
||||
here. */
|
||||
# define __M_SQRT2 _Mldbl(1.41421356237309504880) /* sqrt(2) */
|
||||
# define __M_SQRT2 1.41421356237309504880L /* sqrt(2) */
|
||||
|
||||
__inline_mathcode (log1p, __x, \
|
||||
register long double __value; \
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Return arc hyperbole cosine for long double value.
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
@ -40,15 +40,15 @@ __cacoshl (__complex__ long double x)
|
||||
else
|
||||
__imag__ res = __copysignl ((rcls == FP_INFINITE
|
||||
? (__real__ x < 0.0
|
||||
? M_PI - M_PI_4 : M_PI_4)
|
||||
: M_PI_2), __imag__ x);
|
||||
? M_PIl - M_PI_4l : M_PI_4l)
|
||||
: M_PI_2l), __imag__ x);
|
||||
}
|
||||
else if (rcls == FP_INFINITE)
|
||||
{
|
||||
__real__ res = HUGE_VALL;
|
||||
|
||||
if (icls >= FP_ZERO)
|
||||
__imag__ res = __copysignl (signbit (__real__ x) ? M_PI : 0.0,
|
||||
__imag__ res = __copysignl (signbit (__real__ x) ? M_PIl : 0.0,
|
||||
__imag__ x);
|
||||
else
|
||||
__imag__ res = __nanl ("");
|
||||
@ -62,7 +62,7 @@ __cacoshl (__complex__ long double x)
|
||||
else if (rcls == FP_ZERO && icls == FP_ZERO)
|
||||
{
|
||||
__real__ res = 0.0;
|
||||
__imag__ res = __copysignl (M_PI_2, __imag__ x);
|
||||
__imag__ res = __copysignl (M_PI_2l, __imag__ x);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Return cosine of complex long double value.
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
@ -29,7 +29,7 @@ __cacosl (__complex__ long double x)
|
||||
|
||||
y = __casinl (x);
|
||||
|
||||
__real__ res = M_PI_2 - __real__ y;
|
||||
__real__ res = M_PI_2l - __real__ y;
|
||||
__imag__ res = -__imag__ y;
|
||||
|
||||
return res;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Return arc hyperbole sine for long double value.
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
@ -38,7 +38,7 @@ __casinhl (__complex__ long double x)
|
||||
if (rcls == FP_NAN)
|
||||
__imag__ res = __nanl ("");
|
||||
else
|
||||
__imag__ res = __copysignl (rcls >= FP_ZERO ? M_PI_2 : M_PI_4,
|
||||
__imag__ res = __copysignl (rcls >= FP_ZERO ? M_PI_2l : M_PI_4l,
|
||||
__imag__ x);
|
||||
}
|
||||
else if (rcls <= FP_INFINITE)
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Return arc hyperbole tangent for long double value.
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
@ -36,13 +36,13 @@ __catanhl (__complex__ long double x)
|
||||
if (icls == FP_INFINITE)
|
||||
{
|
||||
__real__ res = __copysignl (0.0, __real__ x);
|
||||
__imag__ res = __copysignl (M_PI_2, __imag__ x);
|
||||
__imag__ res = __copysignl (M_PI_2l, __imag__ x);
|
||||
}
|
||||
else if (rcls == FP_INFINITE || rcls == FP_ZERO)
|
||||
{
|
||||
__real__ res = __copysignl (0.0, __real__ x);
|
||||
if (icls >= FP_ZERO)
|
||||
__imag__ res = __copysignl (M_PI_2, __imag__ x);
|
||||
__imag__ res = __copysignl (M_PI_2l, __imag__ x);
|
||||
else
|
||||
__imag__ res = __nanl ("");
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Return arc tangent of complex long double value.
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
@ -35,13 +35,13 @@ __catanl (__complex__ long double x)
|
||||
{
|
||||
if (rcls == FP_INFINITE)
|
||||
{
|
||||
__real__ res = __copysignl (M_PI_2, __real__ x);
|
||||
__real__ res = __copysignl (M_PI_2l, __real__ x);
|
||||
__imag__ res = __copysignl (0.0, __imag__ x);
|
||||
}
|
||||
else if (icls == FP_INFINITE)
|
||||
{
|
||||
if (rcls >= FP_ZERO)
|
||||
__real__ res = __copysignl (M_PI_2, __real__ x);
|
||||
__real__ res = __copysignl (M_PI_2l, __real__ x);
|
||||
else
|
||||
__real__ res = __nanl ("");
|
||||
__imag__ res = __copysignl (0.0, __imag__ x);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Compute complex base 10 logarithm.
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
@ -34,7 +34,7 @@ __clog10l (__complex__ long double x)
|
||||
if (rcls == FP_ZERO && icls == FP_ZERO)
|
||||
{
|
||||
/* Real and imaginary part are 0.0. */
|
||||
__imag__ result = signbit (__real__ x) ? M_PI : 0.0;
|
||||
__imag__ result = signbit (__real__ x) ? M_PIl : 0.0;
|
||||
__imag__ result = __copysignl (__imag__ result, __imag__ x);
|
||||
/* Yes, the following line raises an exception. */
|
||||
__real__ result = -1.0 / fabsl (__real__ x);
|
||||
@ -44,7 +44,7 @@ __clog10l (__complex__ long double x)
|
||||
/* Neither real nor imaginary part is NaN. */
|
||||
__real__ result = __ieee754_log10l (__ieee754_hypotl (__real__ x,
|
||||
__imag__ x));
|
||||
__imag__ result = M_LOG10E * __ieee754_atan2l (__imag__ x, __real__ x);
|
||||
__imag__ result = M_LOG10El * __ieee754_atan2l (__imag__ x, __real__ x);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Compute complex natural logarithm.
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
@ -34,7 +34,7 @@ __clogl (__complex__ long double x)
|
||||
if (rcls == FP_ZERO && icls == FP_ZERO)
|
||||
{
|
||||
/* Real and imaginary part are 0.0. */
|
||||
__imag__ result = signbit (__real__ x) ? M_PI : 0.0;
|
||||
__imag__ result = signbit (__real__ x) ? M_PIl : 0.0;
|
||||
__imag__ result = __copysignl (__imag__ result, __imag__ x);
|
||||
/* Yes, the following line raises an exception. */
|
||||
__real__ result = -1.0 / fabsl (__real__ x);
|
||||
|
@ -51,6 +51,7 @@ typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
|
||||
#define _G_HAVE_MMAP 1
|
||||
#define _G_HAVE_LONG_DOUBLE_IO 1
|
||||
#define _G_HAVE_IO_FILE_OPEN 1
|
||||
#define _G_HAVE_IO_GETLINE_INFO 1
|
||||
|
||||
#define _G_IO_IO_FILE_VERSION 0x20001
|
||||
|
||||
|
@ -33,3 +33,10 @@ routines := offtime asctime clock ctime ctime_r difftime \
|
||||
tests := test_time clocktest
|
||||
|
||||
include ../Rules
|
||||
|
||||
tz-cflags = -DTZDIR='"$(zonedir)"' \
|
||||
-DTZDEFAULT='"$(localtime-file)"' \
|
||||
-DTZDEFRULES='"$(posixrules-file)"'
|
||||
|
||||
CFLAGS-tzfile.c = $(tz-cflags)
|
||||
CFLAGS-tzset.c = $(tz-cflags)
|
||||
|
@ -161,8 +161,6 @@ CFLAGS-zdump.c = -Wno-strict-prototypes -DNOID
|
||||
CFLAGS-zic.c = -Wno-strict-prototypes -DNOID $(tz-cflags)
|
||||
CFLAGS-ialloc.c = -Wno-strict-prototypes -DNOID
|
||||
CFLAGS-scheck.c = -Wno-strict-prototypes -DNOID
|
||||
CFLAGS-tzfile.c = $(tz-cflags)
|
||||
CFLAGS-tzset.c = $(tz-cflags)
|
||||
|
||||
# We have to make sure the data for testing the tz functions is available.
|
||||
$(objpfx)test-tz.out: $(addprefix $(objpfx)testdata/, America/New_York \
|
||||
|
Loading…
Reference in New Issue
Block a user