diff options
54 files changed, 1502 insertions, 517 deletions
@@ -1,5 +1,94 @@ +Thu May 30 11:24:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> + + * po/header.pot: Replace with exact boilerplate pinard dictates. + + * sysdeps/i386/strtok.S (Lillegal_argument): Remove this code to set + errno and the check that jumped to it. + + * sysdeps/mach/hurd/Makefile (errnos.d): Use $(sed-remove-objpfx). + +Thu May 30 03:21:57 1996 Ulrich Drepper <drepper@cygnus.com> + + * FAQ: Document need of gperf program for developers. + + * elf/elf.h: Fix typos in comments. + + * libio/stdio.h [!__STRICT_ANSI__ || _POSIX_SOURCE]: Add + prototypes for `ctermid' and `cuserid'. + + * locale/programs/locale.c: Switch to user selected locale + before printing variables. + + * math/Makefile [$(long-double-fcts)==yes]: Define long-m-routines + and long-c-routines. Only if the `long double' data type is + available we need to compile the functions. + (libm-routines): Add $(long-m-routines). + (routines): Remove isinfl, isnanl. Use new file s_isinfl and + s_isnanl instead if `long double' is available. + + * math/math.h: Include <mathcalls.h> again to define `long double' + functions. + + * math/math_private.h: Define data types, prototypes and access + macros for `long double'. + + * stdlib/stdlib.h: Add prototypes for `strtoll' and `strtoull'. + [GCC2 && OPTIMIZE]: Define strto{,u}ll as inline function which + calls __strto{,u}q_internal. + + * stdlib/strfmon.c: Replace PTR by `void *'. + + * stdlib/strtoq.c: Define strtoll as weak alias. + * stdlib/strtouq.c: Define strtoull as weak alias. + + * string/tester.c: Correct `strsep' test. + + * sysdeps/generic/strsep.c: Make compatible with BSD version. + Trailing characters of skip set are not skipped. In this case + empty tokens are returned. + + * sysdeps/i386/isinfl.c, sysdeps/i386/isnanl.c, + sysdeps/ieee754/isinf.c, sysdeps/ieee754/isinfl.c, + sysdeps/ieee754/isnan.c, sysdeps/ieee754/isnanl.c: Removed. We + now use the versions part of libm. + + * sysdeps/i386/strsep.S: Removed. Generic C version is of + similar speed. + * sysdeps/i386/strtok.S: Remove support for `strsep'. + + * sysdeps/libm-i387/e_acosl.S, sysdeps/libm-i387/s_ceill.S, + sysdeps/libm-i387/s_copysignl.S, sysdeps/libm-i387/s_finitel.S, + sysdeps/libm-i387/s_floorl.S, sysdeps/libm-i387/s_isinfl.c, + sysdeps/libm-i387/s_isnanl.c, sysdeps/libm-i387/s_nextafterl.c, + sysdeps/libm-i387/s_rintl.S, sysdeps/libm-i387/s_significandl.S: + New i387 specific math functions implementing `long double' + versions. + + * sysdeps/libm-ieee754/s_ceill.c, + sysdeps/libm-ieee754/s_copysignl.c, + sysdeps/libm-ieee754/s_fabsl.c, sysdeps/libm-ieee754/s_finitel.c, + sysdeps/libm-ieee754/s_floorl.c, sysdeps/libm-ieee754/s_isinfl.c, + sysdeps/libm-ieee754/s_isnanl.c, + sysdeps/libm-ieee754/s_nextafterl.c, + sysdeps/libm-ieee754/s_rintl.c, sysdeps/libm-ieee754/s_scalbnl.c, + sysdeps/libm-ieee754/s_significandl.c: New generic `long double' + versions of libm functions. + + * sysdeps/libm-i387/e_exp.S: Add a few comments to explain the + Intel FPU nonsense. + + * sysdeps/libm-i387/s_ceil.S, sysdeps/libm-i387/s_ceilf.S, + sysdeps/libm-i387/s_floor.S, sysdeps/libm-i387/s_floorf.S: Correct + handling of local variables. The old version created a stack + frame but stored the values outside. + + * sysdeps/libm-ieee754/s_isinf.c, sysdeps/libm-ieee754/s_isnan.c + [!NO_LONG_DOUBLE]: Define alias with `long double' versions name. + Wed May 29 12:53:10 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> + * login/pututline_r.c: Include sys/stat.h. Fix typos. + * version.h (VERSION): Set to 1.90. * Makerules (distinfo-vars): Write extra-libs and *-routines for each @@ -43,7 +132,7 @@ Tue May 28 04:38:10 1996 Ulrich Drepper <drepper@cygnus.com> * locale/programs/ld-ctype.c: Determine value of mb_cur_max according to current character set and write it out with the rest. * stdlib/stdlib.h (MB_CUR_MAX): Not constant anymore. Get value - according to currently used locale for catefory LC_CTYPE by + according to currently used locale for category LC_CTYPE by calling the function __ctype_get_mb_cur_max. Tue May 28 03:27:46 1996 Ulrich Drepper <drepper@cygnus.com> @@ -288,7 +377,7 @@ Thu May 23 23:09:33 1996 Ulrich Drepper <drepper@cygnus.com> * resolv/inet_ntop.c: Correct compatibility problems (sprintf). * resolv/inet_pton.c: Remove fourth argument. * resolv/resolv.h: Remove prototypes for inet_nsap_addr and - inet_nsap_ntoa. Now on <arpa/inet.h>. + inet_nsap_ntoa. Now in <arpa/inet.h>. * stdlib/gmp-impl.h: Add prototypes for internal functions. @@ -405,7 +494,7 @@ Thu May 23 00:01:10 1996 Ulrich Drepper <drepper@cygnus.com> Add prototypes for local functions to prevent warnings. * libio/iopopen.c: Change prototypes for _IO_fork, _IO_pipe, and - _IO_DUP2 to contain complete parameter list. + _IO_dup2 to contain complete parameter list. * libio/libio.h: Add definition of struct _IO_cookie_file. @@ -129,6 +129,9 @@ Older releases are known to have bugs that affect building the GNU C library. If you are interested in some more measurements let me know. +* Some files depend on special tools. E.g., files ending in .gperf + need a `gperf' program. The GNU version (part of libg++) is known + to work while some vendor versions do not. * When compiling for Linux: @@ -546,8 +546,8 @@ typedef struct /* Special section indices. */ #define SHN_MIPS_ACOMMON 0xff00 /* Allocated common symbols */ -#define SHN_MIPS_TEXT 0xff01 /* Allocated test symbol. */ -#define SHN_MIPS_DATA 0xff02 /* Allocated data symbol. */ +#define SHN_MIPS_TEXT 0xff01 /* Allocated test symbols. */ +#define SHN_MIPS_DATA 0xff02 /* Allocated data symbols. */ #define SHN_MIPS_SCOMMON 0xff03 /* Small common symbols */ #define SHN_MIPS_SUNDEFINED 0xff04 /* Small undefined symbols */ diff --git a/libio/stdio.h b/libio/stdio.h index 70728ed8d9..a1766cea33 100644 --- a/libio/stdio.h +++ b/libio/stdio.h @@ -75,8 +75,6 @@ typedef _IO_fpos_t fpos_t; #define FILENAME_MAX _G_FILENAME_MAX #define TMP_MAX 999 /* Only limited by filename length */ -#define L_ctermid 9 -#define L_cuserid 9 #define P_tmpdir "/tmp" #define L_tmpnam 20 @@ -108,7 +106,7 @@ extern int fgetc __P ((FILE *)); extern int fgetpos __P ((FILE* fp, fpos_t *pos)); extern char* fgets __P ((char*, int, FILE*)); extern FILE* fopen __P ((__const char*, __const char*)); -extern FILE* fopencookie __P ((void *cookie, __const char *mode, +extern FILE* fopencookie __P ((void *cookie, __const char *mode, _IO_cookie_io_functions_t io_functions)); extern int fprintf __P ((FILE*, __const char* format, ...)); extern int fputc __P ((int, FILE*)); @@ -163,6 +161,15 @@ extern FILE *fdopen __P ((int, __const char *)); extern int fileno __P ((FILE*)); extern FILE* popen __P ((__const char*, __const char*)); extern int pclose __P ((FILE*)); + +#define L_ctermid 9 +#define L_cuserid 9 + +/* Return the name of the controlling terminal. */ +extern char *ctermid __P ((char *__buf)); + +/* Get character login name of the user. */ +extern char *cuserid __P ((char * __buf)); #endif #ifdef __USE_GNU diff --git a/locale/programs/locale.c b/locale/programs/locale.c index 8254289598..41c7b1d46e 100644 --- a/locale/programs/locale.c +++ b/locale/programs/locale.c @@ -196,6 +196,10 @@ main (int argc, char *argv[]) exit (EXIT_SUCCESS); } + /* Specific information about the current locale are requested. + Change to this locale now. */ + setlocale (LC_ALL, ""); + /* If no real argument is given we have to print the contents of the current locale definition variables. These are LANG and the LC_*. */ if (optind == argc && show_keyword_name == 0 && show_category_name == 0) diff --git a/login/pututline_r.c b/login/pututline_r.c index 07322e5740..824cf3a391 100644 --- a/login/pututline_r.c +++ b/login/pututline_r.c @@ -24,13 +24,14 @@ Boston, MA 02111-1307, USA. */ #include <unistd.h> #include <utmp.h> #include <sys/file.h> +#include <sys/stat.h> /* XXX An alternative solution would be to call a SUID root program which write the new value. */ int -pututline_r (const struct utmp *utmp_ptr, struct utmp_data *utmp_data) +pututline_r (const struct utmp *id, struct utmp_data *utmp_data) { struct stat st; int result = 0; @@ -59,17 +60,16 @@ pututline_r (const struct utmp *utmp_ptr, struct utmp_data *utmp_data) #if _HAVE_UT_TYPE - 0 /* Seek position to write. */ - if (utmp_data->ubuf.ut_type != utmp_ptr->ut_type) + if (utmp_data->ubuf.ut_type != id->ut_type) { /* We must not overwrite the data in UTMP_DATA. */ struct utmp_data *data_tmp = alloca (sizeof (utmp_data)); struct utmp *dummy; - off_t new_pos; *data_tmp = *utmp_data; utmp_data = data_tmp; - if (getutid_r (utmp_ptr, &dummy, utmp_data) < 0) + if (getutid_r (id, &dummy, utmp_data) < 0) { if (errno != ESRCH) /* Some error occured. If no entry was found, the position @@ -78,6 +78,7 @@ pututline_r (const struct utmp *utmp_ptr, struct utmp_data *utmp_data) /* Set position pointer to position after adding of the record. */ utmp_data->loc_utmp += sizeof (struct utmp); + } } #endif @@ -102,7 +103,7 @@ pututline_r (const struct utmp *utmp_ptr, struct utmp_data *utmp_data) } /* Write the new data. */ - if (write (utmp_data->ut_fd, utmp_ptr, sizeof (struct utmp)) + if (write (utmp_data->ut_fd, id, sizeof (struct utmp)) != sizeof (struct utmp)) { /* If we appended a new record this is only partially written. diff --git a/math/Makefile b/math/Makefile index e1caa2908f..730b5610e0 100644 --- a/math/Makefile +++ b/math/Makefile @@ -30,7 +30,7 @@ distribute := math_private.h machine/asm.h machine/endian.h # Build the -lm library. extra-libs := libm -libm-routines := e_acos e_acosf e_acosh e_acoshf e_asin e_asinf \ +libm-routines = e_acos e_acosf e_acosh e_acoshf e_asin e_asinf \ e_atan2 e_atan2f e_atanh e_atanhf e_cosh e_coshf \ e_exp e_expf e_fmod e_fmodf e_hypot e_hypotf e_j0 \ e_j0f e_j1 e_j1f e_jn e_jnf e_lgamma_r e_lgammaf_r \ @@ -55,12 +55,22 @@ libm-routines := e_acos e_acosf e_acosh e_acoshf e_asin e_asinf \ w_j0f w_j1 w_j1f w_jn w_jnf w_lgamma w_lgamma_r \ w_lgammaf w_lgammaf_r w_log w_log10 w_log10f w_logf \ w_pow w_powf w_remainder w_remainderf w_scalb \ - w_scalbf w_sinh w_sinhf w_sqrt w_sqrtf + w_scalbf w_sinh w_sinhf w_sqrt w_sqrtf \ + $(long-m-routines) + +ifeq ($(long-double-fcts),yes) +long-m-routines := s_ceill s_copysignl s_fabsl s_finitel s_floorl \ + s_nextafterl s_rintl s_significandl +endif # These functions are in libc instead of libm because __printf_fp # calls them, so any program using printf will need them linked in, # and we don't want to have to link every program with -lm. -routines := s_isinf s_isinff s_isnan s_isnanf isinfl isnanl +routines = s_isinf s_isinff s_isnan s_isnanf $(long-c-routines) + +ifeq ($(long-double-fcts),yes) +long-c-routines := s_isinfl s_isnanl +endif include ../Rules diff --git a/math/math.h b/math/math.h index 7bec1300c2..7a6134a6f0 100644 --- a/math/math.h +++ b/math/math.h @@ -61,6 +61,7 @@ __BEGIN_DECLS #undef __MATH_PRECNAME #ifdef __USE_MISC + /* Include the file of declarations again, this type using `float' instead of `double' and appending f to each function name. */ @@ -69,7 +70,17 @@ __BEGIN_DECLS #include <mathcalls.h> #undef _Mdouble_ #undef __MATH_PRECNAME -#endif + +/* Include the file of declarations again, this type using `long double' + instead of `double' and appending l to each function name. */ + +#define _Mdouble_ long double |
