diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | conform/data/stdlib.h-data | 22 | ||||
-rw-r--r-- | linuxthreads/ChangeLog | 3 | ||||
-rw-r--r-- | stdlib/random.c | 2 | ||||
-rw-r--r-- | stdlib/stdlib.h | 11 | ||||
-rw-r--r-- | sysdeps/generic/setenv.c | 16 |
6 files changed, 54 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog index 3fc613a333..09cc0f2092 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2001-01-26 Ulrich Drepper <drepper@redhat.com> + * conform/data/stdlib.h-data: Account for XPG6 changes. + * stdlib/stdlib.h (__random): Change return value type to long. + (posix_memalign): Cleanup parameter names. + (setenv, unsetenv): Make available for __USE_XOPEN2K. + Change return type of unsetenv to int. + (qecvt, qgcvt, qfcvt): Declare only if __USE_MISC. + * sysdeps/generic/setenv.c (unsetenv): Change return type to int. + Return -1 and set errno if parameter is invalid. + * stdlib/random.c (__random): Change return value type to long. + * conform/data/stdio.h-data: Account for changes in XPG6. * conform/data/spawn.h-data: Correct posix_spawnattr_setflags diff --git a/conform/data/stdlib.h-data b/conform/data/stdlib.h-data index f4998716df..aee04465e9 100644 --- a/conform/data/stdlib.h-data +++ b/conform/data/stdlib.h-data @@ -5,7 +5,16 @@ constant RAND_MAX >= 32767 macro MB_CUR_MAX type div_t +element div_t int quot +element div_t int rem type ldiv_t +element ldiv_t long quot +element ldiv_t long rem +#ifdef XOPEN2K +type lldiv_t +element lldiv_t {long long} quot +element lldiv_t {long long} rem +#endif type size_t type wchar_t @@ -13,7 +22,6 @@ constant WNOHANG constant WUNTRACED macro WEXITSTATUS -macro WIFCONTINUED macro WIFEXITED macro WIFSIGNALED macro WIFSTOPPED @@ -27,6 +35,9 @@ function int atexit (void(*)(void)) function double atof (const char*) function int atoi (const char*) function {long int} atol (const char*) +#ifdef XOPEN2K +function {long long} atoll (const char*) +#endif function {void*} bsearch (const void*, const void*, size_t, size_t, int(*)(const void*, const void*)) function {void*} calloc (size_t, size_t) function div_t div (int, int) @@ -46,6 +57,10 @@ function {char*} l64a (long) function {long int} labs (long int) function void lcong48 (unsigned short int[7]) function ldiv_t ldiv (long int, long int) +#ifdef XOPEN2K +function {long long} llabs (long long) +function lldiv_t lldiv (long long, long long) +#endif function {long int} lrand48 (void) function {void*} malloc (size_t) function int mblen (const char*, size_t) @@ -56,6 +71,9 @@ function int mkstemp (char*) function {long int} mrand48 (void) function {long int} nrand48 (unsigned short int[3]) function int posix_memalign (void**, size_t, size_t) +#ifdef XOPEN2K +function int posix_openpt (int) +#endif function {char*} ptsname (int) function int putenv (char*) function void qsort (void*, size_t, size_t, int(*)(const void*, const void*)) @@ -75,7 +93,9 @@ function double strtod (const char*, char**) function {long int} strtol (const char*, char**, int) function {unsigned long int} strtoul (const char*, char**, int) function int system (const char*) +#ifndef XOPEN2K function int ttyslot (void) +#endif function int unlockpt (int) function int unsetenv (const char*) function {void*} valloc (size_t) diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 0ba72795d3..cad3fda18c 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,5 +1,8 @@ 2001-01-26 Ulrich Drepper <drepper@redhat.com> + * sysdeps/pthread/bits/pthreadtypes.h: Define pthread_attr_t also + as struct __pthread_attr_s. + * semaphore.h (sem_t): Cleanup namespace, rename status and spinlock elements. diff --git a/stdlib/random.c b/stdlib/random.c index 06a4c97829..afd0a1a516 100644 --- a/stdlib/random.c +++ b/stdlib/random.c @@ -259,7 +259,7 @@ weak_alias (__setstate, setstate) rear pointers can't wrap on the same call by not testing the rear pointer if the front one has wrapped. Returns a 31-bit random number. */ -int32_t +long int __random () { int32_t retval; diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index 17f19ac8d6..9b5d187558 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -395,7 +395,7 @@ extern long int a64l (__const char *__s) __THROW __attribute_pure__; The `rand' and `srand' functions are required by the ANSI standard. We provide both interfaces to the same random number generator. */ /* Return a random long integer between 0 and RAND_MAX inclusive. */ -extern int32_t random (void) __THROW; +extern long int random (void) __THROW; /* Seed the random number generator with the given number. */ extern void srandom (unsigned int __seed) __THROW; @@ -554,7 +554,7 @@ extern void *valloc (size_t __size) __THROW __attribute_malloc__; #ifdef __USE_XOPEN2K /* Allocate memory of SIZE bytes with an alignment of ALIGNMENT. */ -extern int posix_memalign (void **memptr, size_t alignment, size_t size) +extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __THROW __attribute_malloc__; #endif @@ -600,14 +600,14 @@ extern char *__secure_getenv (__const char *__name) __THROW; extern int putenv (char *__string) __THROW; #endif -#ifdef __USE_BSD +#if defined __USE_BSD || defined __USE_XOPEN2K /* Set NAME to VALUE in the environment. If REPLACE is nonzero, overwrite an existing value. */ extern int setenv (__const char *__name, __const char *__value, int __replace) __THROW; /* Remove the variable NAME from the environment. */ -extern void unsetenv (__const char *__name) __THROW; +extern int unsetenv (__const char *__name) __THROW; #endif #ifdef __USE_MISC @@ -742,6 +742,8 @@ extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, be written to BUF. */ extern char *gcvt (double __value, int __ndigit, char *__buf) __THROW; + +# ifdef __USE_MISC /* Long double versions of above functions. */ extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) __THROW; @@ -750,7 +752,6 @@ extern char *qfcvt (long double __value, int __ndigit, extern char *qgcvt (long double __value, int __ndigit, char *__buf) __THROW; -# ifdef __USE_MISC /* Reentrant version of the functions above which provide their own buffers. */ extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, diff --git a/sysdeps/generic/setenv.c b/sysdeps/generic/setenv.c index b8d234929f..6f871a65c7 100644 --- a/sysdeps/generic/setenv.c +++ b/sysdeps/generic/setenv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1992,95,96,97,98,99,2000,2001 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 @@ -263,13 +263,21 @@ setenv (name, value, replace) return __add_to_environ (name, value, NULL, replace); } -void +int unsetenv (name) const char *name; { - const size_t len = strlen (name); + const size_t len; char **ep; + if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) + { + __set_errno (EINVAL); + return -1; + } + + len = strlen (name); + LOCK; ep = __environ; @@ -288,6 +296,8 @@ unsetenv (name) ++ep; UNLOCK; + + return 0; } /* The `clearenv' was planned to be added to POSIX.1 but probably |