diff options
-rw-r--r-- | ChangeLog | 38 | ||||
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | dirent/scandir.c | 3 | ||||
-rw-r--r-- | elf/dl-object.c | 1 | ||||
-rw-r--r-- | hurd/hurdstartup.c | 63 | ||||
-rw-r--r-- | locale/locale.c | 1 | ||||
-rw-r--r-- | locale/localedef.c | 1 | ||||
-rw-r--r-- | locale/locfile-parse.c | 1 | ||||
-rw-r--r-- | manual/time.texi | 37 | ||||
-rw-r--r-- | misc/mntent.c | 10 | ||||
-rw-r--r-- | misc/search.h | 101 | ||||
-rw-r--r-- | posix/execvp.c | 1 | ||||
-rw-r--r-- | stdio/fclose.c | 3 | ||||
-rw-r--r-- | stdio/getdelim.c | 1 | ||||
-rw-r--r-- | stdio/memstream.c | 3 | ||||
-rw-r--r-- | stdio/setvbuf.c | 3 | ||||
-rw-r--r-- | stdlib/jrand48_r.c | 7 | ||||
-rw-r--r-- | stdlib/lcong48_r.c | 7 | ||||
-rw-r--r-- | stdlib/msort.c | 1 | ||||
-rw-r--r-- | stdlib/nrand48_r.c | 7 | ||||
-rw-r--r-- | stdlib/seed48_r.c | 7 | ||||
-rw-r--r-- | stdlib/srand48_r.c | 7 | ||||
-rw-r--r-- | sysdeps/generic/setenv.c | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/ldexp.c | 1 | ||||
-rw-r--r-- | sysdeps/posix/system.c | 3 |
25 files changed, 228 insertions, 90 deletions
diff --git a/ChangeLog b/ChangeLog index 8d5b4c7da0..7f26c55939 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,42 @@ +Wed Sep 20 18:02:03 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> + + * locale/locale.c: Include errno.h. + * locale/localedef.c: Likewise. + +Tue Sep 19 00:02:06 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> + + * Makefile (distclean-1): Remove config.cache, config.log, config.h. + (parent-mostlyclean): Remove all flavors of the parent library. + + * misc/mntent.c (getmntent): Skip multiple whitespace chars + between fields. + + * hurd/hurdstartup.c (_hurd_startup): If RPC returns + EXEC_STACK_ARGS flag, get args from stack. + If args on stack but have info from RPC, relocate args on stack to make + space for struct hurd_startup_data. + Mon Sep 18 15:06:00 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> + * elf/dl-object.c: Include errno.h. + * posix/execvp.c: Likewise. + * dirent/scandir.c: Likewise. + * sysdeps/posix/system.c: Likewise. + * sysdeps/generic/setenv.c: Likewise. + * stdlib/msort.c: Likewise. + * stdio/memstream.c: Likewise. + * stdio/fclose.c: Likewise. + * stdio/getdelim.c: Likewise. + * stdio/setvbuf.c: Likewise. + * sysdeps/ieee754/ldexp.c: Likewise. + * locale/locfile-parse.c: Likewise. + + * stdlib/lcong48_r.c: Don't check for null argument; let it fault. + * stdlib/seed48_r.c: Likewise. + * stdlib/srand48_r.c: Likewise. + * stdlib/jrand48_r.c: Likewise. + * stdlib/nrand48_r.c: Likewise. + * Makeconfig (+gccwarn): Remove -Wbad-function-cast, which seems to be useless. @@ -77,6 +114,7 @@ Sat Sep 16 17:47:19 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de> * misc/efgvt_r.c: New file. Reentrant version of [efg]cvt functions. * misc/efgcvt.c: Rewrite to use reentrant functions. + * misc/search.h: Many decls for hsearch functions. * misc/hsearch_r.c: New file. Reentrant version of functions from hsearch family. * misc/hsearch.c, misc/tsearch.c: New files. diff --git a/Makefile b/Makefile index 26a100cd8f..56601e5282 100644 --- a/Makefile +++ b/Makefile @@ -174,7 +174,9 @@ $(all-subdirs-targets): # Subroutines of all cleaning targets. parent-mostlyclean: common-mostlyclean # common-mostlyclean is in Makerules. - -rm -f $(common-objpfx)libc.a $(addprefix $(objpfx),$(install-lib)) + -rm -f $(foreach o,$(object-suffixes),\ + $(common-objpfx)$(patsubst %,$(libtype$o),c)) \ + $(addprefix $(objpfx),$(install-lib)) parent-clean: parent-mostlyclean common-clean -rm -f $(addprefix $(common-objpfx),$(common-generated)) -rm -f $(addprefix $(objpfx),sysd-Makefile sysd-dirs sysd-rules) @@ -200,8 +202,8 @@ realclean distclean: parent-clean # Subroutine of distclean and realclean. distclean-1: subdir_$(distclean-1) -rm -f $(config-generated) - -rm -f $(addprefix $(objpfx),config.status cache.cache) - -rm -f $(addprefix $(objpfx),config.make config-name.h) + -rm -f $(addprefix $(objpfx),config.status config.cache config.log) + -rm -f $(addprefix $(objpfx),config.make config-name.h config.h) ifdef objdir -rm -f $(objpfx)Makefile endif diff --git a/dirent/scandir.c b/dirent/scandir.c index 6794eadf0d..65267affb7 100644 --- a/dirent/scandir.c +++ b/dirent/scandir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1993, 1994, 1995 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 @@ -19,6 +19,7 @@ Cambridge, MA 02139, USA. */ #include <ansidecl.h> #include <dirent.h> #include <stdlib.h> +#include <errno.h> int DEFUN(scandir, (dir, namelist, select, cmp), diff --git a/elf/dl-object.c b/elf/dl-object.c index ca4e785be3..11e9e082d2 100644 --- a/elf/dl-object.c +++ b/elf/dl-object.c @@ -21,6 +21,7 @@ Cambridge, MA 02139, USA. */ #include <assert.h> #include <string.h> #include <stdlib.h> +#include <errno.h> /* List of objects currently loaded. */ diff --git a/hurd/hurdstartup.c b/hurd/hurdstartup.c index 61b8cdf42b..28ce40bbed 100644 --- a/hurd/hurdstartup.c +++ b/hurd/hurdstartup.c @@ -99,13 +99,13 @@ _hurd_startup (void **argptr, void (*main) (int *data)) __mach_port_deallocate (__mach_task_self (), in_bootstrap); } - if (err || in_bootstrap == MACH_PORT_NULL) + if (err || in_bootstrap == MACH_PORT_NULL || (data.flags & EXEC_STACK_ARGS)) { /* Either we have no bootstrap port, or the RPC to the exec server - failed. Try to snarf the args in the canonical Mach way. + failed, or whoever started us up passed the flag saying args are + on the stack. Try to snarf the args in the canonical Mach way. Hopefully either they will be on the stack as expected, or the - stack will be zeros so we don't crash. Set all our other - variables to have empty information. */ + stack will be zeros so we don't crash. */ argcptr = (int *) argptr; argc = argcptr[0]; @@ -114,26 +114,12 @@ _hurd_startup (void **argptr, void (*main) (int *data)) envc = 0; while (envp[envc]) ++envc; - - data.flags = 0; - args = env = NULL; - argslen = envlen = 0; - data.dtable = NULL; - data.dtablesize = 0; - data.portarray = NULL; - data.portarraysize = 0; - data.intarray = NULL; - data.intarraysize = 0; } else - argv = envp = NULL; - - - /* Turn the block of null-separated strings we were passed for the - arguments and environment into vectors of pointers to strings. */ - - if (! argv) { + /* Turn the block of null-separated strings we were passed for the + arguments and environment into vectors of pointers to strings. */ + /* Count up the arguments so we can allocate ARGV. */ argc = _hurd_split_args (args, argslen, NULL); /* Count up the environment variables so we can allocate ENVP. */ @@ -155,6 +141,41 @@ _hurd_startup (void **argptr, void (*main) (int *data)) _hurd_split_args (env, envlen, envp); } + if (err || in_bootstrap == MACH_PORT_NULL) + { + /* Either we have no bootstrap port, or the RPC to the exec server + failed. Set all our other variables to have empty information. */ + + data.flags = 0; + args = env = NULL; + argslen = envlen = 0; + data.dtable = NULL; + data.dtablesize = 0; + data.portarray = NULL; + data.portarraysize = 0; + data.intarray = NULL; + data.intarraysize = 0; + } + else if ((void *) &envp[envc + 1] == argv[0]) + { + /* The arguments arrived on the stack from the kernel, but our + protocol requires some space after them for a `struct + hurd_startup_data'. Move them. */ + struct + { + int count; + char *argv[argc + 1]; + char *envp[envc + 1]; + struct hurd_startup_data data; + } *args = alloca (sizeof *args); + if ((void *) &args[1] == (void *) argcptr) + args = alloca (-((char *) &args->data - (char *) args)); + memmove (args, argcptr, (char *) &args->data - (char *) args); + argcptr = (void *) args; + argv = args->argv; + envp = args->envp; + } + { struct hurd_startup_data *d = (void *) &envp[envc + 1]; diff --git a/locale/locale.c b/locale/locale.c index 20385f07d8..fd2e392e80 100644 --- a/locale/locale.c +++ b/locale/locale.c @@ -24,6 +24,7 @@ Cambridge, MA 02139, USA. */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> +#include <errno.h> #include "localedef.h" diff --git a/locale/localedef.c b/locale/localedef.c index fceebc5635..56ec1a2f6d 100644 --- a/locale/localedef.c +++ b/locale/localedef.c @@ -24,6 +24,7 @@ Cambridge, MA 02139, USA. */ #include <string.h> #include <unistd.h> #include <sys/stat.h> +#include <errno.h> #include "error.h" #include "localedef.h" diff --git a/locale/locfile-parse.c b/locale/locfile-parse.c index aad84334c9..daf56bcd45 100644 --- a/locale/locfile-parse.c +++ b/locale/locfile-parse.c @@ -15,6 +15,7 @@ License along with the GNU C Library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include <errno.h> #include <assert.h> #include <dirent.h> #include <fcntl.h> diff --git a/manual/time.texi b/manual/time.texi index 767c318a42..3f8eee46a3 100644 --- a/manual/time.texi +++ b/manual/time.texi @@ -241,13 +241,15 @@ These facilities are declared in the header file @file{time.h}. @comment time.h @comment ANSI @deftp {Data Type} time_t -This is the data type used to represent calendar time. In the GNU C -library and other POSIX-compliant implementations, @code{time_t} is -equivalent to @code{long int}. When interpreted as an absolute time +This is the data type used to represent calendar time. +When interpreted as an absolute time value, it represents the number of seconds elapsed since 00:00:00 on January 1, 1970, Coordinated Universal Time. (This date is sometimes -referred to as the @dfn{epoch}.) +referred to as the @dfn{epoch}.) POSIX requires that this count +ignore leap seconds, but on some hosts this count includes leap seconds +if you set @code{TZ} to certain values (@pxref{TZ Variable}). +In the GNU C library, @code{time_t} is equivalent to @code{long int}. In other systems, @code{time_t} might be either an integer or floating-point type. @end deftp @@ -257,7 +259,8 @@ floating-point type. @deftypefun double difftime (time_t @var{time1}, time_t @var{time0}) The @code{difftime} function returns the number of seconds elapsed between time @var{time1} and time @var{time0}, as a value of type -@code{double}. +@code{double}. The difference ignores leap seconds unless leap +second support is enabled. In the GNU system, you can simply subtract @code{time_t} values. But on other systems, the @code{time_t} data type might use some other encoding @@ -462,8 +465,8 @@ contains at least the following members, which can appear in any order: @table @code @item int tm_sec This is the number of seconds after the minute, normally in the range -@code{0} to @code{59}. (The actual upper limit is @code{61}, to allow -for ``leap seconds''.) +@code{0} to @code{59}. (The actual upper limit is @code{60}, to allow +for leap seconds if leap second support is available.) @cindex leap second @item int tm_min @@ -508,7 +511,7 @@ also think of this as the ``number of seconds west'' of GMT. The @code{tm_gmtoff} field is a GNU library extension. @item const char *tm_zone -This field is the three-letter name for the time zone that was used to +This field is the name for the time zone that was used to compute this broken-down time value. It is a GNU library extension. @end table @end deftp @@ -521,9 +524,9 @@ The @code{localtime} function converts the calendar time pointed to by user's specified time zone. The return value is a pointer to a static broken-down time structure, which -might be overwritten by subsequent calls to any of the date and time -functions. (But no other library function overwrites the contents of this -object.) +might be overwritten by subsequent calls to @code{ctime}, @code{gmtime}, +or @code{localtime}. (But no other library function overwrites the contents +of this object.) Calling @code{localtime} has one other effect: it sets the variable @code{tzname} with information about the current time zone. @xref{Time @@ -590,7 +593,7 @@ The abbreviations for the months are: @samp{Jan}, @samp{Feb}, @samp{Sep}, @samp{Oct}, @samp{Nov}, and @samp{Dec}. The return value points to a statically allocated string, which might be -overwritten by subsequent calls to any of the date and time functions. +overwritten by subsequent calls to @code{asctime} or @code{ctime}. (But no other library function overwrites the contents of this string.) @end deftypefun @@ -870,7 +873,7 @@ community of volunteers and put in the public domain. @comment POSIX.1 @deftypevar char * tzname [2] The array @code{tzname} contains two strings, which are the standard -three-letter names of the pair of time zones (standard and daylight +names of the pair of time zones (standard and daylight savings) that the user has selected. @code{tzname[0]} is the name of the standard time zone (for example, @code{"EST"}), and @code{tzname[1]} is the name for the time zone when daylight savings time is in use (for @@ -893,7 +896,7 @@ depend on the time zone. @end deftypefun The following variables are defined for compatibility with System V -Unix. These variables are set by calling @code{localtime}. +Unix. These variables are set by calling @code{tzset}. @comment time.h @comment SVID @@ -906,8 +909,10 @@ seconds. For example, in the U.S. Eastern time zone, the value is @comment time.h @comment SVID @deftypevar int daylight -This variable has a nonzero value if the standard U.S. daylight savings -time rules apply. +This variable has a nonzero value if daylight savings time rules apply. +A nonzero value does not necessarily mean that daylight savings time is +now in effect; it means only that daylight savings time is sometimes in +effect. @end deftypevar @node Time Functions Example diff --git a/misc/mntent.c b/misc/mntent.c index 42c20817ba..bdc6aaed79 100644 --- a/misc/mntent.c +++ b/misc/mntent.c @@ -53,14 +53,20 @@ getmntent (FILE *stream) if (getline (&buf, &bufsiz, stream) < 0) return NULL; - head = buf; + head = buf + strspn (buf, " \t"); } while (head[0] == '#'); /* Skip comment lines. */ m.mnt_fsname = strsep (&head, " \t") ?: (char *) ""; + if (head) + head += strspn (head, " \t"); m.mnt_dir = strsep (&head, " \t") ?: (char *) ""; + if (head) + head += strspn (head, " \t"); m.mnt_type = strsep (&head, " \t") ?: (char *) ""; + if (head) + head += strspn (head, " \t"); m.mnt_opts = strsep (&head, " \t") ?: (char *) ""; - switch (sscanf (head, "%d %d\n", &m.mnt_freq, &m.mnt_passno)) + switch (head ? sscanf (head, " %d %d\n", &m.mnt_freq, &m.mnt_passno) : 0) { case 0: m.mnt_freq = 0; diff --git a/misc/search.h b/misc/search.h index c6d18702ca..31c4f03a1f 100644 --- a/misc/search.h +++ b/misc/search.h @@ -1,4 +1,4 @@ -/* search.h -- declarations for `insque' and `remque' +/* search.h -- declarations for System V style searching functions. Copyright (C) 1995 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -14,16 +14,18 @@ Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with the GNU C Library; see the file COPYING.LIB. If -not, write to the Free Software Foundation, Inc., 675 Mass Ave, -Cambridge, MA 02139, USA. */ - -/* These functions are provided for compatibility with BSD. */ +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ #ifndef _SEARCH_H #define _SEARCH_H 1 #include <sys/cdefs.h> +#define __need_size_t +#define __need_NULL +#include <stddef.h> + __BEGIN_DECLS /* Prototype structure for a linked-list data structure. @@ -41,9 +43,94 @@ struct qelem extern void insque __P ((struct qelem *__elem, struct qelem *__prev)); /* Unlink ELEM from the doubly-linked list that it is in. */ -extern void remque __P ((struct qelem *elem)); +extern void remque __P ((struct qelem *__elem)); + + +/* For use with hsearch(3). */ +#ifndef __COMPAR_FN_T +#define __COMPAR_FN_T +typedef int (*__compar_fn_t) __P ((__const __ptr_t, __const __ptr_t)); +#endif + +/* Action which shall be performed in the call the hsearch. */ +typedef enum + { + FIND, + ENTER + } +ACTION; + +typedef struct entry + { + char *key; + char *data; + } +ENTRY; + +/* Opaque type for internal use. */ +struct _ENTRY; + +/* Data type for reentrent functions. */ +struct hsearch_data + { + struct _ENTRY *table; + unsigned int size; + unsigned int filled; + }; + +/* Family of hash table handling functions. The functions also have + reentrent counterparts ending with _r. */ +extern ENTRY *hsearch __P ((ENTRY __item, ACTION __action)); +extern int hcreate __P ((unsigned int __nel)); +extern void hdestroy __P ((void)); + +extern int hsearch_r __P ((ENTRY __item, ACTION __action, ENTRY **__retval, + struct hsearch_data *__htab)); +extern int hcreate_r __P ((unsigned int __nel, struct hsearch_data *htab)); +extern void hdestroy_r __P ((struct hsearch_data *htab)); + + +/* The tsearch routines are very interesting. They make many + assumptions about the compiler. It assumpts that the first field + in node must be the "key" field, which points to the datum. + Everything depends on that. */ +/* For tsearch */ +typedef enum +{ + preorder, + postorder, + endorder, + leaf +} +VISIT; + +extern void *tsearch __P ((__const void * __key, void **__rootp, + __compar_fn_t compar)); + +extern void *tfind __P ((__const void * __key, __const void ** __rootp, + __compar_fn_t compar)); + +extern void *tdelete __P ((__const void * __key, void ** __rootp, + __compar_fn_t compar)); + +#ifndef __ACTION_FN_T +#define __ACTION_FN_T +typedef void (*__action_fn_t) __P ((__const void *__nodep, + __const VISIT __value, + __const int __level)); +#endif + +extern void twalk __P ((__const void * __root, __action_fn_t action)); + + +extern void * lfind __P ((__const void * __key, __const void * __base, + size_t * __nmemb, size_t __size, + __compar_fn_t __compar)); +extern void * lsearch __P ((__const void * __key, __const void * __base, + size_t * __nmemb, size_t __size, + __compar_fn_t __compar)); __END_DECLS -#endif /* search.h */ +#endif /* search.h */ diff --git a/posix/execvp.c b/posix/execvp.c index 723e7fa503..17072ce844 100644 --- a/posix/execvp.c +++ b/posix/execvp.c @@ -20,6 +20,7 @@ Cambridge, MA 02139, USA. */ #include <stdarg.h> #include <stdlib.h> #include <string.h> +#include <errno.h> /* Execute FILE, searching in the `PATH' environment variable if it contains no slashes, with arguments ARGV and environment from `environ'. */ diff --git a/stdio/fclose.c b/stdio/fclose.c index becb85802f..bcf4cd4163 100644 --- a/stdio/fclose.c +++ b/stdio/fclose.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1995 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 @@ -21,6 +21,7 @@ Cambridge, MA 02139, USA. */ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <errno.h> /* Close a stream. */ diff --git a/stdio/getdelim.c b/stdio/getdelim.c index 8047c1fe0c..2cdb95c2a6 100644 --- a/stdio/getdelim.c +++ b/stdio/getdelim.c @@ -22,6 +22,7 @@ Cambridge, MA 02139, USA. */ #include <stdlib.h> #include <string.h> #include <limits.h> +#include <errno.h> /* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR (and null-terminate it). *LINEPTR is a pointer returned from malloc (or diff --git a/stdio/memstream.c b/stdio/memstream.c index 704eca53b3..1a8b35081d 100644 --- a/stdio/memstream.c +++ b/stdio/memstream.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1994 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1994, 1995 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 @@ -20,6 +20,7 @@ Cambridge, MA 02139, USA. */ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <errno.h> struct memstream_info { diff --git a/stdio/setvbuf.c b/stdio/setvbuf.c index 8c33386610..6bfe829d1d 100644 --- a/stdio/setvbuf.c +++ b/stdio/setvbuf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1993 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1993, 1995 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 @@ -20,6 +20,7 @@ Cambridge, MA 02139, USA. */ #include <stddef.h> #include <stdio.h> #include <stdlib.h> +#include <errno.h> /* Make STREAM use the buffering method given in MODE. diff --git a/stdlib/jrand48_r.c b/stdlib/jrand48_r.c index b1a4378028..1a89790525 100644 --- a/stdlib/jrand48_r.c +++ b/stdlib/jrand48_r.c @@ -25,13 +25,6 @@ jrand48_r (xsubi, buffer, result) struct drand48_data *buffer; long *result; { - /* Be generous for the arguments, detect some errors. */ - if (result == NULL) - { - errno = EFAULT; - return -1; - } - /* Compute next state. */ if (__drand48_iterate (xsubi, buffer) < 0) return -1; diff --git a/stdlib/lcong48_r.c b/stdlib/lcong48_r.c index cc38b4dc7c..f607bc5b84 100644 --- a/stdlib/lcong48_r.c +++ b/stdlib/lcong48_r.c @@ -24,13 +24,6 @@ lcong48_r (param, buffer) unsigned short int param[7]; struct drand48_data *buffer; { - /* Be generous for the arguments, detect some errors. */ - if (buffer == NULL) - { - errno = EFAULT; - return -1; - } - /* Store the given values. */ memcpy (buffer->X, ¶m[0], sizeof (buffer->X)); memcpy (buffer->a, ¶m[3], sizeof (buffer->a)); diff --git a/stdlib/msort.c b/stdlib/msort.c index 21fbbfb2bf..e2834ce6ca 100644 --- a/stdlib/msort.c +++ b/stdlib/msort.c @@ -23,6 +23,7 @@ Cambridge, MA 02139, USA. */ #include <stdlib.h> #include <string.h> #include <memcopy.h> +#include <errno.h> static void DEFUN(msort_with_tmp, (b, n, s, cmp, t), diff --git a/stdlib/nrand48_r.c b/stdlib/nrand48_r.c index 1bbc29e7ef..d5ebf35dd2 100644 --- a/stdlib/nrand48_r.c +++ b/stdlib/nrand48_r.c @@ -25,13 +25,6 @@ nrand48_r (xsubi, buffer, result) struct drand48_data *buffer; long *result; { - /* Be generous for the arguments, detect some errors. */ - if (result == NULL) - { - errno = EFAULT; - return -1; - } - /* Compute next state. */ if (__drand48_iterate (xsubi, buffer) < 0) return -1; diff --git a/stdlib/seed48_r.c b/stdlib/seed48_r.c index 4d43507742..e45c3d2ad3 100644 --- a/stdlib/seed48_r.c +++ b/stdlib/seed48_r.c @@ -24,13 +24,6 @@ seed48_r (seed16v, buffer) unsigned short int seed16v[3]; struct drand48_data *buffer; { - /* Be generous for the arguments, detect some errors. */ - if (buffer == NULL) - { - errno = EFAULT; - return -1; - } - /* Save old value at a private place to be used as return value. */ memcpy (buffer->old_X, buffer->X, sizeof (buffer->X)); diff --git a/stdlib/srand48_r.c b/stdlib/srand48_r.c index ac313f6c48..8720854249 100644 --- a/stdlib/srand48_r.c +++ b/stdlib/srand48_r.c @@ -24,13 +24,6 @@ srand48_r (seedval, buffer) long seedval; struct drand48_data *buffer; { - /* Be generous for the arguments, detect some errors. */ - if (buffer == NULL) - { - errno = EFAULT; - return -1; - } - /* The standards say we only have 32 bits. */ if (sizeof (long) > 4) seedval &= 0xffffffffl; diff --git a/sysdeps/generic/setenv.c b/sysdeps/generic/setenv.c index a27f02e50a..1907a2b7e1 100644 --- a/sysdeps/generic/setenv.c +++ b/sysdeps/generic/setenv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1995 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 @@ -20,6 +20,7 @@ Cambridge, MA 02139, USA. */ #include <stdlib.h> #include <string.h> #include <unistd.h> +#include <errno.h> #ifndef HAVE_GNU_LD #define __environ environ diff --git a/sysdeps/ieee754/ldexp.c b/sysdeps/ieee754/ldexp.c index 7e1c74715b..e8e3c676f9 100644 --- a/sysdeps/ieee754/ldexp.c +++ b/sysdeps/ieee754/ldexp.c @@ -38,6 +38,7 @@ Cambridge, MA 02139, USA. */ #include <ansidecl.h> #include <math.h> #include <float.h> +#include <errno.h> #include "ieee754.h" double diff --git a/sysdeps/posix/system.c b/sysdeps/posix/system.c index 69b004bb41..da58be51ae 100644 --- a/sysdeps/posix/system.c +++ b/sysdeps/posix/system.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1994 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1994, 1995 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 @@ -23,6 +23,7 @@ Cambridge, MA 02139, USA. */ #include <sys/wait.h> #include <signal.h> #include <sys/types.h> +#include <errno.h> #ifndef HAVE_GNU_LD |