diff options
-rw-r--r-- | ChangeLog | 22 | ||||
-rw-r--r-- | INSTALL | 7 | ||||
-rw-r--r-- | Makeconfig | 4 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | grp/Makefile | 2 | ||||
-rw-r--r-- | grp/fgetgrent.c | 36 | ||||
-rw-r--r-- | grp/getgrent.c | 2 | ||||
-rw-r--r-- | grp/getgrent_r.c | 2 | ||||
-rw-r--r-- | grp/getgrgid.c | 2 | ||||
-rw-r--r-- | grp/getgrgid_r.c | 2 | ||||
-rw-r--r-- | grp/getgrnam.c | 2 | ||||
-rw-r--r-- | grp/grp.h | 10 | ||||
-rw-r--r-- | manual/maint.texi | 6 | ||||
-rw-r--r-- | nss/Makefile | 3 | ||||
-rw-r--r-- | nss/nss_files/files-pwd.c | 2 | ||||
-rw-r--r-- | pwd/Makefile | 2 | ||||
-rw-r--r-- | pwd/fgetpwent.c | 38 | ||||
-rw-r--r-- | pwd/getpwent.c | 2 | ||||
-rw-r--r-- | pwd/getpwent_r.c | 4 | ||||
-rw-r--r-- | pwd/getpwnam.c | 2 | ||||
-rw-r--r-- | pwd/getpwnam_r.c | 2 | ||||
-rw-r--r-- | pwd/getpwuid.c | 2 | ||||
-rw-r--r-- | pwd/getpwuid_r.c | 2 | ||||
-rw-r--r-- | pwd/pwd.h | 11 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/init-first.c | 4 |
26 files changed, 79 insertions, 96 deletions
@@ -1,3 +1,25 @@ +Fri Aug 9 17:38:58 1996 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/unix/sysv/linux/sys/timex.h: Include <sys/time.h> to + get `struct timeval'. + * sysdeps/unix/sysv/linux/sys/acct.h: Get time_t from <time.h>. + * sysdeps/unix/sysv/linux/sys/module.h: Get size_t from <stddef.h>. + * sysdeps/unix/sysv/linux/sys/io.h: Get definition of __P. + * sysdeps/unix/sysv/linux/sys/klog.h: Likewise. + * gmon/sys/gmon.h: Include <sys/types.h> to get u_long. + * sysdeps/unix/sysv/linux/direntry.h: Complete types in + <linux/dirent.h>. + * io/fts.h: Include <sys/types.h> to get dev_t. + Reported by Matthias Urlichs. + + * sysdeps/posix/tempname.c [USE_IN_LIBIO]: Don't clear + _IO_file_flags. It's the same as _flags. + Reported by Miquel van Smoorenburg <miquels@Q.cistron.nl>. + +Wed Aug 7 19:38:47 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * sysdeps/unix/sysv/linux/m68k/resourcebits.h: Add RLIMIT_AS. + Thu Aug 8 16:17:38 1996 Ulrich Drepper <drepper@cygnus.com> * pwd/getpwent.c: Define BUFLEN from NSS_BUFLEN_PASSWD. @@ -163,12 +163,13 @@ build the GNU C library: GNU C compiler. We recommend GCC version 2.7.2 or later; earlier versions may have problems. - * `binutils' 2.6 + * `binutils' 2.7 Using the GNU `binutils' (assembler, linker, and related tools) is preferable when possible, and they are required to build an ELF - shared C library. We recommend `binutils' version 2.6 or later; - earlier versions are known to have problems. + shared C library. We recommend `binutils' version 2.7 or later; + earlier versions are known to have problems or to not support all + architectures. Supported Configurations ------------------------ diff --git a/Makeconfig b/Makeconfig index 5b4393d357..413a2537e2 100644 --- a/Makeconfig +++ b/Makeconfig @@ -283,7 +283,7 @@ endif # Default flags to pass the C compiler. ifndef default_cflags -default_cflags := -g +default_cflags := -g -O endif # Flags to pass the C compiler when assembling preprocessed assembly code @@ -485,7 +485,7 @@ ifeq (yes,$(build-omitfp)) object-suffixes += .go CFLAGS-.go = -g CFLAGS-.o = -g0 -O99 -fomit-frame-pointer -CFLAGS-.so += $(CFLAGS.o) +CFLAGS-.so += $(CFLAGS-.o) libtype.go = lib%_g.a endif @@ -54,7 +54,7 @@ endif subdirs = csu assert ctype db locale intl catgets math setjmp signal stdlib \ stdio-common $(stdio) malloc string wcsmbs time dirent grp pwd\ posix io termios resource misc login socket sysvipc gmon gnulib \ - wctype manual $(sysdep-subdirs) nss elf po $(add-ons) + wctype manual shadow $(sysdep-subdirs) nss elf po $(add-ons) export subdirs := $(subdirs) # Benign, useless in GNU make before 3.63. # The mach and hurd subdirectories have many generated header files which diff --git a/configure.in b/configure.in index 93c2c0926a..631a035e92 100644 --- a/configure.in +++ b/configure.in @@ -111,7 +111,7 @@ case "$machine" in a29k | am29000) base_machine=a29k machine=a29k ;; alpha*) base_machine=alpha machine=alpha/$machine ;; hppa*) base_machine=hppa machine=hppa/$machine ;; -i[345]86) base_machine=i386 machine=i386/$machine ;; +i[3456]86) base_machine=i386 machine=i386/$machine ;; m680?0) base_machine=m68k machine=m68k/$machine ;; m68k) base_machine=m68k machine=m68k/m68020 ;; m88???) base_machine=m88k machine=m88k/$machine ;; diff --git a/grp/Makefile b/grp/Makefile index 273b7d17ea..091d8ba84b 100644 --- a/grp/Makefile +++ b/grp/Makefile @@ -23,7 +23,7 @@ subdir := grp routines := fgetgrent initgroups setgroups \ getgrent getgrgid getgrnam \ - getgrent_r getgrgid_r getgrnam_r + getgrent_r getgrgid_r getgrnam_r fgetgrent_r tests := testgrp diff --git a/grp/fgetgrent.c b/grp/fgetgrent.c index 38ccd15e6f..95ae2ecd6a 100644 --- a/grp/fgetgrent.c +++ b/grp/fgetgrent.c @@ -16,25 +16,8 @@ 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 <stdio.h> #include <grp.h> - -/* Define a line parsing function using the common code - used in the nss_files module. */ - -#define STRUCTURE group -#define ENTNAME grent -struct grent_data {}; - -#define TRAILING_LIST_MEMBER gr_mem -#define TRAILING_LIST_SEPARATOR_P(c) ((c) == ',') -#include "../nss/nss_files/files-parse.c" -LINE_PARSER -(, - STRING_FIELD (result->gr_name, ISCOLON, 0); - STRING_FIELD (result->gr_passwd, ISCOLON, 0); - INT_FIELD (result->gr_gid, ISCOLON, 0, 10,); - ) +#include <stdio.h> /* Read one entry from the given stream. */ @@ -43,21 +26,6 @@ fgetgrent (FILE *stream) { static char buffer[BUFSIZ]; static struct group result; - char *p; - - do - { - p = fgets (buffer, sizeof buffer, stream); - if (p == NULL) - return NULL; - - /* Skip leading blanks. */ - while (isspace (*p)) - ++p; - } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ - /* Parse the line. If it is invalid, loop to - get the next line of the file to parse. */ - ! parse_line (p, &result, (void *) buffer, sizeof buffer)); - return &result; + return __fgetgrent_r (stream, &result, buffer, sizeof buffer); } diff --git a/grp/getgrent.c b/grp/getgrent.c index 4e14bbcf17..d19e4d189b 100644 --- a/grp/getgrent.c +++ b/grp/getgrent.c @@ -25,6 +25,6 @@ Boston, MA 02111-1307, USA. */ #define GETFUNC_NAME getgrent #define ENDFUNC_NAME endgrent #define DATABASE_NAME group -#define BUFLEN 1024 +#define BUFLEN NSS_BUFLEN_GROUP #include "../nss/getXXent.c" diff --git a/grp/getgrent_r.c b/grp/getgrent_r.c index db692b20d6..1f60763ea8 100644 --- a/grp/getgrent_r.c +++ b/grp/getgrent_r.c @@ -25,6 +25,6 @@ Boston, MA 02111-1307, USA. */ #define GETFUNC_NAME getgrent #define ENDFUNC_NAME endgrent #define DATABASE_NAME group -#define BUFLEN 1024 +#define BUFLEN NSS_BUFLEN_GROUP #include "../nss/getXXent_r.c" diff --git a/grp/getgrgid.c b/grp/getgrgid.c index 855d31cbe9..b90000ba1e 100644 --- a/grp/getgrgid.c +++ b/grp/getgrgid.c @@ -25,6 +25,6 @@ Boston, MA 02111-1307, USA. */ #define DATABASE_NAME group #define ADD_PARAMS gid_t gid #define ADD_VARIABLES gid -#define BUFLEN 1024 +#define BUFLEN NSS_BUFLEN_GROUP #include "../nss/getXXbyYY.c" diff --git a/grp/getgrgid_r.c b/grp/getgrgid_r.c index 3b1719d644..6c7704dd52 100644 --- a/grp/getgrgid_r.c +++ b/grp/getgrgid_r.c @@ -25,6 +25,6 @@ Boston, MA 02111-1307, USA. */ #define DATABASE_NAME group #define ADD_PARAMS gid_t gid #define ADD_VARIABLES gid -#define BUFLEN 1024 +#define BUFLEN NSS_BUFLEN_GROUP #include "../nss/getXXbyYY_r.c" diff --git a/grp/getgrnam.c b/grp/getgrnam.c index 2104d87459..f060ea9f5f 100644 --- a/grp/getgrnam.c +++ b/grp/getgrnam.c @@ -25,6 +25,6 @@ Boston, MA 02111-1307, USA. */ #define DATABASE_NAME group #define ADD_PARAMS const char *name #define ADD_VARIABLES name -#define BUFLEN 1024 +#define BUFLEN NSS_BUFLEN_GROUP #include "../nss/getXXbyYY.c" @@ -110,6 +110,16 @@ extern struct group *getgrnam_r __P ((__const char *__name, struct group *__resultbuf, char *buffer, int __buflen)); +#ifdef __USE_SVID +/* Read a group entry from STREAM. */ +extern struct group *__fgetgrent_r __P ((FILE * __stream, + struct group *__resultbuf, + char *buffer, int __buflen)); +extern struct group *fgetgrent_r __P ((FILE * __stream, + struct group *__resultbuf, + char *buffer, int __buflen)); +#endif + #endif /* reentrant */ diff --git a/manual/maint.texi b/manual/maint.texi index 98467e4b7b..cd6c996719 100644 --- a/manual/maint.texi +++ b/manual/maint.texi @@ -206,12 +206,12 @@ compiler. We recommend GCC version 2.7.2 or later; earlier versions may have problems. @item -@code{binutils} 2.6 +@code{binutils} 2.7 Using the GNU @code{binutils} (assembler, linker, and related tools) is preferable when possible, and they are required to build an ELF shared C -library. We recommend @code{binutils} version 2.6 or later; earlier -versions are known to have problems. +library. We recommend @code{binutils} version 2.7 or later; earlier +versions are known to have problems or to not support all architectures. @end itemize @node Supported Configurations diff --git a/nss/Makefile b/nss/Makefile index aafa8e2810..f23f5f3fbb 100644 --- a/nss/Makefile +++ b/nss/Makefile @@ -28,7 +28,8 @@ distribute := nsswitch.h XXX-lookup.c getXXbyYY.c getXXbyYY_r.c \ routines = nsswitch $(addsuffix -lookup,$(databases)) # These are the databases that go through nss dispatch. -databases = proto service hosts network grp pwd rpc ethers +databases = proto service hosts network grp pwd rpc ethers \ + spwd # Specify rules for the nss_* modules. We have some services. services := files dns db diff --git a/nss/nss_files/files-pwd.c b/nss/nss_files/files-pwd.c index 9732bc6f23..a778d015d8 100644 --- a/nss/nss_files/files-pwd.c +++ b/nss/nss_files/files-pwd.c @@ -24,7 +24,7 @@ Cambridge, MA 02139, USA. */ #define DATABASE "passwd" struct pwent_data {}; -/* Our parser function is already defined in fgetpwent.c, so use that +/* Our parser function is already defined in fgetpwent_r.c, so use that to parse lines from the database file. */ #define EXTERN_PARSER #include "files-parse.c" diff --git a/pwd/Makefile b/pwd/Makefile index ce67d49ea9..68cdc4a991 100644 --- a/pwd/Makefile +++ b/pwd/Makefile @@ -23,6 +23,6 @@ subdir := pwd routines := fgetpwent getpw putpwent \ getpwent getpwnam getpwuid \ - getpwent_r getpwnam_r getpwuid_r + getpwent_r getpwnam_r getpwuid_r fgetpwent_r include ../Rules diff --git a/pwd/fgetpwent.c b/pwd/fgetpwent.c index f8548fe29b..215d6e07c8 100644 --- a/pwd/fgetpwent.c +++ b/pwd/fgetpwent.c @@ -16,27 +16,8 @@ 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 <stdio.h> #include <pwd.h> - -/* Define a line parsing function using the common code - used in the nss_files module. */ - -#define STRUCTURE passwd -#define ENTNAME pwent -struct pwent_data {}; - -#include "../nss/nss_files/files-parse.c" -LINE_PARSER -(, - STRING_FIELD (result->pw_name, ISCOLON, 0); - STRING_FIELD (result->pw_passwd, ISCOLON, 0); - INT_FIELD (result->pw_uid, ISCOLON, 0, 10,); - INT_FIELD (result->pw_gid, ISCOLON, 0, 10,); - STRING_FIELD (result->pw_gecos, ISCOLON, 0); - STRING_FIELD (result->pw_dir, ISCOLON, 0); - result->pw_shell = line; - ) +#include <stdio.h> /* Read one entry from the given stream. */ @@ -45,21 +26,6 @@ fgetpwent (FILE *stream) { static char buffer[BUFSIZ]; static struct passwd result; - char *p; - - do - { - p = fgets (buffer, sizeof buffer, stream); - if (p == NULL) - return NULL; - - /* Skip leading blanks. */ - while (isspace (*p)) - ++p; - } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */ - /* Parse the line. If it is invalid, loop to - get the next line of the file to parse. */ - ! parse_line (p, &result, (void *) buffer, sizeof buffer)); - return &result; + return __fgetpwent_r (stream, &result, buffer, sizeof buffer); } diff --git a/pwd/getpwent.c b/pwd/getpwent.c index 79edbd5db0..9b96c63c33 100644 --- a/pwd/getpwent.c +++ b/pwd/getpwent.c @@ -25,6 +25,6 @@ Boston, MA 02111-1307, USA. */ #define GETFUNC_NAME getpwent #define ENDFUNC_NAME endpwent #define DATABASE_NAME passwd -#define BUFLEN 1024 +#define BUFLEN NSS_BUFLEN_PASSWD #include "../nss/getXXent.c" diff --git a/pwd/getpwent_r.c b/pwd/getpwent_r.c index ced7f8a639..1c5bc02e7a 100644 --- a/pwd/getpwent_r.c +++ b/pwd/getpwent_r.c @@ -8,7 +8,7 @@ published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of +but WITHOUT ANY WARRANTY; without even the implied warranty of/tes MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. @@ -25,6 +25,6 @@ Boston, MA 02111-1307, USA. */ #define GETFUNC_NAME getpwent #define ENDFUNC_NAME endpwent #define DATABASE_NAME passwd -#define BUFLEN 1024 +#define BUFLEN NSS_BUFLEN_PASSWD #include "../nss/getXXent_r.c" diff --git a/pwd/getpwnam.c b/pwd/getpwnam.c index 597b8d1205..042fdae206 100644 --- a/pwd/getpwnam.c +++ b/pwd/getpwnam.c @@ -25,6 +25,6 @@ Boston, MA 02111-1307, USA. */ #define DATABASE_NAME passwd #define ADD_PARAMS const char *name #define ADD_VARIABLES name -#define BUFLEN 1024 +#define BUFLEN NSS_BUFLEN_PASSWD #include "../nss/getXXbyYY.c" diff --git a/pwd/getpwnam_r.c b/pwd/getpwnam_r.c index c2d1f84d81..93fadc5ed1 100644 --- a/pwd/getpwnam_r.c +++ b/pwd/getpwnam_r.c @@ -25,6 +25,6 @@ Boston, MA 02111-1307, USA. */ #define DATABASE_NAME passwd #define ADD_PARAMS const char *name #define ADD_VARIABLES name -#define BUFLEN 1024 +#define BUFLEN NSS_BUFLEN_PASSWD #include "../nss/getXXbyYY_r.c" diff --git a/pwd/getpwuid.c b/pwd/getpwuid.c index 130c251f89..2ad654f9b9 100644 --- a/pwd/getpwuid.c +++ b/pwd/getpwuid.c @@ -25,6 +25,6 @@ Boston, MA 02111-1307, USA. */ #define DATABASE_NAME passwd #define ADD_PARAMS uid_t uid #define ADD_VARIABLES uid -#define BUFLEN 1024 +#define BUFLEN NSS_BUFLEN_PASSWD #include "../nss/getXXbyYY.c" diff --git a/pwd/getpwuid_r.c b/pwd/getpwuid_r.c index e3bf7578ae..8e92ee2555 100644 --- a/pwd/getpwuid_r.c +++ b/pwd/getpwuid_r.c @@ -25,6 +25,6 @@ Boston, MA 02111-1307, USA. */ #define DATABASE_NAME passwd #define ADD_PARAMS uid_t uid #define ADD_VARIABLES uid -#define BUFLEN 1024 +#define BUFLEN NSS_BUFLEN_PASSWD #include "../nss/getXXbyYY_r.c" @@ -123,6 +123,17 @@ extern struct passwd *getpwnam_r __P ((__const char *__name, struct passwd *__resultbuf, char *__buffer, int __buflen)); + +#ifdef __USE_SVID +/* Read an entry from STREAM. */ +extern struct passwd *__fgetpwent_r __P ((FILE * __stream, + struct passwd *__resultbuf, + char *__buffer, int __buflen)); +extern struct passwd *fgetpwent_r __P ((FILE * __stream, + struct passwd *__resultbuf, + char *__buffer, int __buflen)); +#endif + #endif /* reentrant */ diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c index aa7d9c4ac0..267c01afc8 100644 --- a/sysdeps/unix/sysv/linux/init-first.c +++ b/sysdeps/unix/sysv/linux/init-first.c @@ -43,6 +43,10 @@ init (void *data) char **argv = (char **)data + 1; char **envp = &argv[argc + 1]; + /* XXX Another gcc bug. We marked the function as `unused' but it + is still optimized away. */ + volatile void *foo __attribute__ ((unused)) = &init; + #ifdef PIC if (&__libc_is_static != NULL) #endif |