diff options
43 files changed, 1464 insertions, 205 deletions
@@ -1,7 +1,7 @@ List of known bugs (certainly very incomplete) ---------------------------------------------- -Time-stamp: <1997-08-01T05:37:51+0200 drepper> +Time-stamp: <1997-08-04T00:50:04+0200 drepper> This following list contains those bugs which I'm aware of. Please make sure that bugs you report are not listed here. If you can fix one @@ -23,20 +23,8 @@ in this database as useful as possible please report bugs always using the Severity: [ *] to [***] -[ **] For GNU libc on Linux, there is still no solution for the UTMP - problem. - [Among others: PR libc/39] - [ **] There are problems with signal handling when using LinuxThreads. -[ **] The `cbrtl' function for ix86 does not work in the moment. - -[ **] Not really a bug, but it could lead to such: - The RPC code is ugly ugly ugly. It's more or less verbatim taken - from Sun's code and therefore mostly lacks complete prototypes and - (more important) the use of `const'. It *definitely* needs to be - cleaned. - [ *] The precision of the `sinhl' and/or `asinhl' function do not seem to be the best. @@ -56,6 +44,14 @@ Severity: [ *] to [***] symbols in <linux/limits.h> available. [PR libc/140] +[ *] The localedef program should not generate errors if for categories + which are not used for the output there are characters referenced + which are not defined in the charmap. + [PR libc/229] + +[ *] The rcmd() functions (more concrete: the handling of .rhosts) does + not support netgroups and wildcards (+). + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ulrich Drepper drepper@cygnus.com @@ -1,3 +1,108 @@ +1997-08-04 15:29 Ulrich Drepper <drepper@cygnus.com> + + * locale/programs/localedef.c (main): Set bit in avail for those + categories which are successfully read. + * locale/programs/locfile.c (check_all_categories): Don't check + categories if they are not available. + (write_all_categories): Don't write categories if they are not + available. + + * login/setutent_r.c (setutent_unknown): Change return type to + int and return result of called function. + + * manual/arith.texi: Mark floating-point test macro from ISO C 9X + as macros (not functions). + * manual/libc.texinfo (UPDATED): Update. + * manual/math.texi: Document exceptions, functions to handle + exceptions, mathematical constants, FP comparison functions + and several new functions from ISO C 9X. + Change parameter of drand48, lrand48, and mrand48 to void (not + empty). + * manual/pattern.texi: Remove paragraph which explained that wordexp + is executed by running a shell. + * manual/time.texi: Explain difficulties with strftime if the + functions returns 0 and no error occurred. + + * math/math.h: Correct comment for some M_* constants. + (isgreater, isgreaterequal, isless, islessequal, islessgreater, + inunordered): Rewrite to make sure the arguments are evaluated + exactly once. + + * nis/rpcsvc/nis.x: Undo last change. + * nis/rpcsvc/nis.h: Likewise. + * nis/rpcsvc/nislib.h: File moved back to here. + + * posix/sys/types.h: Don't define socklen_t. Pretty print. + * socket/sys/socket.h (bind, getsockname, connect, sendto, recvfrom, + getsockopt, setsockopt, accept): Change size argument to type + socklen_t. + Pretty print. + * manual/socket.texi: Describe socklen_t and change prototypes of + socket functions to use socklen_t. + * sysdeps/generic/bits/socket.h: Define socklen_t. + (struct msghdr): Correct types to use socklen_t. + * sysdeps/unix/sysv/linux/bits/socket.h: Likewise. + * sysdeps/unix/sysv/linux/mips/bits/socket.h: Likewise. + + * stdio-common/printf_fp.c (__printf_fp): Correct rouding of number + 1.0 < x < 8.0. + * stdio-common/tfformat.c: Add new tests for above bug. + + * stdlib/strtod.c: Fix typo. + + * string/Makefile (headers): Add bits/string.h. + (CFLAGS-*): Add -D__NO_STRING_INLINES. + * string/string.h: Include <bits/string.h> if optimizing and + __NO_STRING_INLINES is not defined. + * sysdeps/stub/bits/string.h: New file. + + * sysdeps/powerpc/bits/fenv.h: Fix typos. + + * sysdeps/unix/sysv/linux/if_index.c: Let functions return ENOSYS + if SIOGIFINDEX is not defined. + + * sysdeps/wordsize-32/inttypes.h: Pretty print. + * sysdeps/wordsize-64/inttypes.h: Pretty print. + + * termios/cfsetspeed.c: Rewrite loop to do what it shall do. + + * wcsmbs/Makefile (tests): Add tst-wcstof. + * wcsmbs/tst-wcstof.c: New file. + +1997-08-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * sysdeps/m68k/__longjmp.c: Replace call to abort by infinite + loop, to avoid dragging stdio into the dynamic linker. + +1997-08-02 19:44 H.J. Lu <hjl@gnu.ai.mit.edu> + + * nis/nis_findserv.c (xid, xid_seed, xid_lookup): Make them + u_int32_t. + +1997-08-03 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * posix/wordexp.c (parse_tilde): Fix calls to __getpwnam_r and + __getpwuid_r. + Include <stdio.h> to get prototypes of *printf. + (exec_comm): Remove unneeded variable *sh. + + * libc.map: Add wordexp, wordfree. + + * posix/Makefile (routines): Add wordexp. + +1997-08-03 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * posix/wordexp.c: Correct typo in comment. + (wordexp): Likewise. + + * manual/errno.texi (Error Codes): Fix typo. + +1997-08-03 15:28 Ulrich Drepper <drepper@cygnus.com> + + * csu/initfini.c (SECTION): Don't put quotes around section name + since this is not understood by all assemblers. + Patch by Klaus Espenlaub <kespenla@hydra.informatik.uni-ulm.de>. + 1997-08-02 21:27 Ulrich Drepper <drepper@cygnus.com> * inet/Makefile (headers): Rename netinet/inbits.h to bits/in.h. diff --git a/bits/socket.h b/bits/socket.h index d12d96cc14..af42dfac78 100644 --- a/bits/socket.h +++ b/bits/socket.h @@ -24,11 +24,14 @@ #include <features.h> -__BEGIN_DECLS - #define __need_size_t #include <stddef.h> +__BEGIN_DECLS + +/* Type for length arguments in socket calls. */ +typedef unsigned int socklen_t; + /* Types of sockets. */ enum __socket_type @@ -145,13 +148,15 @@ enum struct msghdr { __ptr_t msg_name; /* Address to send to/receive from. */ - size_t msg_namelen; /* Length of address data. */ + socklen_t msg_namelen; /* Length of address data. */ struct iovec *msg_iov; /* Vector of data to send/receive into. */ - size_t msg_iovlen; /* Number of elements in the vector. */ + int msg_iovlen; /* Number of elements in the vector. */ __ptr_t msg_accrights; /* Access rights information. */ - size_t msg_accrightslen; /* Length of access rights information. */ + socklen_t msg_accrightslen; /* Length of access rights information. */ + + int msg_flags; /* Flags in received message. */ }; diff --git a/csu/initfini.c b/csu/initfini.c index 6906c901c4..8f8ce2f707 100644 --- a/csu/initfini.c +++ b/csu/initfini.c @@ -40,7 +40,7 @@ /* We use embedded asm for .section unconditionally, as this makes it easier to insert the necessary directives into crtn.S. */ -#define SECTION(x) asm (".section \"" x "\""); +#define SECTION(x) asm (".section " x ); /* Embed an #include to pull in the alignment and .end directives. */ asm ("\n#include \"defs.h\""); @@ -374,7 +374,11 @@ GLIBC_2.0 { wcstoul; wcstoull; wcstouq; wcswcs; wcswidth; wcsxfrm; wctob; wctomb; wctrans; wctype; wcwidth; - wmemchr; wmemcmp; wmemcpy; wmemmove; wmemset; write; writev; + wmemchr; wmemcmp; wmemcpy; wmemmove; wmemset; + + wordexp; wordfree; + + write; writev; # x* xdecrypt; xdr_accepted_reply; xdr_array; xdr_authdes_cred; diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c index 34c7394d3d..206246944f 100644 --- a/locale/programs/localedef.c +++ b/locale/programs/localedef.c @@ -234,8 +234,11 @@ main (int argc, char *argv[]) { avail = act_add_locdef->locale->categories[cat].generic != NULL; if (avail) - localedef->categories[cat].generic - = act_add_locdef->locale->categories[cat].generic; + { + localedef->categories[cat].generic + = act_add_locdef->locale->categories[cat].generic; + localedef->avail |= 1 << cat; + } } if (! avail) diff --git a/locale/programs/locfile.c b/locale/programs/locfile.c index aecc8913e2..7749f6aebc 100644 --- a/locale/programs/locfile.c +++ b/locale/programs/locfile.c @@ -920,17 +920,23 @@ void check_all_categories (struct localedef_t *locale, struct charset_t *charset) { /* Call the finishing functions for all locales. */ - if ((locale->binary & (1 << LC_CTYPE)) == 0) + if ((locale->avail & (1 << LC_CTYPE)) != 0 + && (locale->binary & (1 << LC_CTYPE)) == 0) ctype_finish (locale, charset); - if ((locale->binary & (1 << LC_COLLATE)) == 0) + if ((locale->avail & (1 << LC_COLLATE)) != 0 + && (locale->binary & (1 << LC_COLLATE)) == 0) collate_finish (locale, charset); - if ((locale->binary & (1 << LC_MONETARY)) == 0) + if ((locale->avail & (1 << LC_MONETARY)) != 0 + && (locale->binary & (1 << LC_MONETARY)) == 0) monetary_finish (locale); - if ((locale->binary & (1 << LC_NUMERIC)) == 0) + if ((locale->avail & (1 << LC_NUMERIC)) != 0 + && (locale->binary & (1 << LC_NUMERIC)) == 0) numeric_finish (locale); - if ((locale->binary & (1 << LC_TIME)) == 0) + if ((locale->avail & (1 << LC_TIME)) != 0 + && (locale->binary & (1 << LC_TIME)) == 0) time_finish (locale); - if ((locale->binary & (1 << LC_MESSAGES)) == 0) + if ((locale->avail & (1 << LC_MESSAGES)) != 0 + && (locale->binary & (1 << LC_MESSAGES)) == 0) messages_finish (locale); } @@ -940,12 +946,18 @@ write_all_categories (struct localedef_t *locale, struct charset_t *charset, const char *output_path) { /* Call all functions to write locale data. */ - ctype_output (locale, charset, output_path); - collate_output (locale, charset, output_path); - monetary_output (locale, output_path); - numeric_output (locale, output_path); - time_output (locale, output_path); - messages_output (locale, output_path); + if ((locale->avail & (1 << LC_CTYPE)) != 0) + ctype_output (locale, charset, output_path); + if ((locale->avail & (1 << LC_COLLATE)) != 0) + collate_output (locale, charset, output_path); + if ((locale->avail & (1 << LC_MONETARY)) != 0) + monetary_output (locale, output_path); + if ((locale->avail & (1 << LC_NUMERIC)) != 0) + numeric_output (locale, output_path); + if ((locale->avail & (1 << LC_TIME)) != 0) + time_output (locale, output_path); + if ((locale->avail & (1 << LC_MESSAGES)) != 0) + messages_output (locale, output_path); } diff --git a/login/getutent_r.c b/login/getutent_r.c index ed4c330f73..98c5469463 100644 --- a/login/getutent_r.c +++ b/login/getutent_r.c @@ -31,7 +31,7 @@ /* The various backends we have. */ static int getutent_r_unknown (struct utmp *buffer, struct utmp **result); static struct utmp *pututline_unknown (const struct utmp *data); -static void setutent_unknown (void); +static int setutent_unknown (void); static void endutent_unknown (void); /* Initial Jump table. */ @@ -79,17 +79,22 @@ weak_alias (__endutent, endutent) weak_alias (__endutent, endutxent) -static void +static int setutent_unknown (void) { + int result; + /* See whether utmpd is running. */ - if ((*__libc_utmp_daemon_functions.setutent) ()) + result = (*__libc_utmp_daemon_functions.setutent) (); + if (result) __libc_utmp_jump_table = &__libc_utmp_daemon_functions; else { - (*__libc_utmp_file_functions.setutent) (); + result = (*__libc_utmp_file_functions.setutent) (); __libc_utmp_jump_table = &__libc_utmp_file_functions; } + + return result; } diff --git a/manual/arith.texi b/manual/arith.texi index 1268e37e31..7f8c205ebb 100644 --- a/manual/arith.texi +++ b/manual/arith.texi @@ -201,7 +201,7 @@ better to use those in this section which are introduced in the @w{ISO C @comment math.h @comment ISO -@deftypefun int fpclassify (@emph{float-type} @var{x}) +@deftypefn {Macro} int fpclassify (@emph{float-type} @var{x}) This is a generic macro which works on all floating-point types and which returns a value of type @code{int}. The possible values are: @@ -227,7 +227,7 @@ plain floating-point number without special meaning. This macro is useful if more than property of a number must be tested. If one only has to test for, e.g., a NaN value, there are function which are faster. -@end deftypefun +@end deftypefn The remainder of this section introduces some more specific functions. They might be implemented faster than the call to @code{fpclassify} and @@ -236,7 +236,7 @@ should be used (and not @code{fpclassify}). @comment math.h @comment ISO -@deftypefun int isfinite (@emph{float-type} @var{x}) +@deftypefn {Macro} int isfinite (@emph{float-type} @var{x}) The value returned by this macro is nonzero if the value of @var{x} is not plus or minus infinity and not NaN. I.e., it could be implemented as @@ -247,11 +247,11 @@ not plus or minus infinity and not NaN. I.e., it could be implemented as @code{isfinite} is also implemented as a macro which can handle all floating-point types. Programs should use this function instead of @var{finite} (@pxref{Predicates on Floats}). -@end deftypefun +@end deftypefn @comment math.h @comment ISO -@deftypefun int isnormal (@emph{float-type} @var{x}) +@deftypefn {Macro} int isnormal (@emph{float-type} @var{x}) If @code{isnormal} returns a nonzero value the value or @var{x} is neither a NaN, infinity, zero, nor a denormalized number. I.e., it |
