diff options
53 files changed, 275 insertions, 146 deletions
@@ -1,3 +1,105 @@ +Tue Oct 22 21:38:21 1996 Ulrich Drepper <drepper@cygnus.com> + + * version.h: Bump version number to 1.97. + + * features.h: Undo change of Sun Oct 20 22:19:58 1996. + Include libc-version.h. + * features.h.in: Removed. + * Makefile: Change rules to generate libc-version.h instead of + features.h. + + * malloc/free.c: Add cast to prevent warning. + * malloc/malloc-walk.c: Likewise. + * malloc/ralloc.c: Likewise. + * malloc/realloc.c: Likewise. + + * grp/fgetgrent_r.c: Accept empty numeric field if name start with + + or -. + * pwd/fgetpwent_r.c: Likewise. + * nss/nss_files/files-grp.c: Don't accept entries with names starting + with + or - in lookup functions. + * nss/nss_files/files-pwd.c: Likewise. + + * Makerules: Call autolock.sh using $(SHELL). + +Mon Oct 21 22:52:16 1996 NIIBE Yutaka <gniibe@mri.co.jp> + + * elf/dl-minimal.c: Don't define `dgettext' replacement but + `dcgettext'. When optimizing the macros in <libintl.h> define + `dgettext' as a macro and so this function will never be called. + +Mon Oct 21 15:41:59 1996 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/i386/sysdep.h: Define END to use .size when available. + (PSEUDO_END): Use END. + * sysdeps/unix/sysv/linux/i386/sysdep.h: Define PSEUDO_END to + define SYSCALL_ERROR_HANDLER before using END. + (SYSCALL_ERROR_HANDLER): Don't use .size directive. + * sysdeps/unix/sysv/linux/clone.S: Don't use SYSCALL_ERROR_HANDLER + and .size directive but PSEUDO_END. + * sysdeps/unix/sysv/linux/mmap.S: Likewise. + * sysdeps/unix/sysv/linux/socket.S: Likewise. + * sysdeps/unix/sysv/linux/syscall.S: Likewise. + * sysdeps/unix/sysv/linux/sysdep.S (__errno_location): Use END. + * sysdeps/unix/i386/sysdep.S (__syscall_error): Likewise. + * sysdeps/i386/__longjmp.S: Use END instead of PSEUDO_END. + * sysdeps/i386/bsd-_setjmp.S: Likewise. + * sysdeps/i386/bsd-setjmp.S: Likewise. + * sysdeps/i386/memchr.S: Likewise. + * sysdeps/i386/memcmp.S: Likewise. + * sysdeps/i386/setjmp.S: Likewise. + * sysdeps/i386/stpcpy.S: Likewise. + * sysdeps/i386/stpncpy.S: Likewise. + * sysdeps/i386/strchr.S: Likewise. + * sysdeps/i386/strcspn.S: Likewise. + * sysdeps/i386/strpbrk.S: Likewise. + * sysdeps/i386/strrchr.S: Likewise. + * sysdeps/i386/strspn.S: Likewise. + * sysdeps/i386/strtok.S: Likewise. + * sysdeps/i386/i486/strcat.S: Likewise. + * sysdeps/i386/i486/strlen.S: Likewise. + * sysdeps/i386/i586/memset.S: Likewise. + * sysdeps/i386/i586/strchr.S: Likewise. + * sysdeps/i386/i586/strlen.S: Likewise. + + * sysdeps/i386/strlen.c: De-ANSI-fy. + + * sysdeps/generic/_strerror.c: Undo change of Mon Oct 21 01:32:36 1996. + Define dgettext if not defined to use dcgettext. + * sysdeps/mach/_strerror.c: Likewise. + + * sysdeps/unix/sysv/i386/time.S: Add PSEUDO_END to get + __syscall_error defined.. + +Sat Oct 19 12:27:50 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * sysdeps/unix/sysv/linux/m68k/mmap.S: Fix braino: CALL_MCOUNT is + already included in the ENTRY macro. Remove SYSCALL_ERROR_HANDLER + now provided by PSEUDO_END. + * sysdeps/unix/sysv/linux/m68k/sigreturn.S: Likewise. + * sysdeps/unix/sysv/linux/m68k/socket.S: Likewise. + * sysdeps/unix/sysv/linux/m68k/syscall.S: Likewise. + * sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise. + * sysdeps/unix/sysv/linux/m68k/clone.S: Likewise. Use JUMPTARGET. + + * sysdeps/generic/sysdep.h (END): Provide default empty + definition. + * sysdeps/unix/sysv/linux/m68k/sysdep.h (END): Redefine to use + size directive. + (PSEUDO): Don't include SYSCALL_ERROR_HANDLER. + (PSEUDO_END): Include it here instead. + (SYSCALL_ERROR_HANDLER): Remove type directive. + * sysdeps/m68k/bsd-_setjmp.S: Use END, not PSEUDO_END. + * sysdeps/m68k/bsd-setjmp.S: Likewise. + * sysdeps/unix/sysv/linux/m68k/sigreturn.S: Likewise. + * sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise. + (__syscall_error): Can't use ENTRY macro. + +Sat Oct 19 12:13:24 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * sysdeps/unix/sysv/linux/syscalls.list (getresuid, setresuid): + Set caller to EXTRA. + Mon Oct 21 01:32:36 1996 Ulrich Drepper <drepper@cygnus.com> * elf/rtld.c (dl_main): Move initialization of `_dl_starting_up' @@ -261,6 +363,11 @@ Tue Oct 15 02:13:21 1996 Ulrich Drepper <drepper@cygnus.com> Tue Oct 15 14:37:40 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> * sysdeps/mach/hurd/fcntlbits.h (O_HURD): Add O_EXLOCK and + O_SHLOCK. + +Tue Oct 15 14:37:40 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> + + * sysdeps/mach/hurd/fcntlbits.h (O_HURD): Add O_EXLOCK and O_SHLOCK. Sun Oct 13 19:16:10 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> @@ -82,9 +82,9 @@ subdirs := $(filter mach,$(subdirs)) $(filter hurd,$(subdirs)) \ $(addprefix install-, no-libc.a bin lib data headers others) headers := errno.h sys/errno.h errnos.h limits.h values.h \ - features.h gnu-versions.h libc-lock.h + features.h gnu-versions.h libc-lock.h libc-version.h aux = sysdep $(libc-init) version -before-compile = $(objpfx)version-info.h $(objpfx)features.h +before-compile = $(objpfx)version-info.h $(objpfx)libc-version.h echo-headers: subdir_echo-headers @@ -145,28 +145,42 @@ $(objpfx)version-info.h: $(+sysdir_pfx)config.make $(all-Banner-files) echo "\"Available extensions:"; \ sed -e '/^#/d' -e 's/^[[:space:]]*/ /' $$files; \ echo "\""; \ - fi) > $@-tmp - mv -f $@-tmp $@ + fi) > $@T + mv -f $@T $@ +generated += version-info.h version.c-objects := $(addprefix $(objpfx)version,$(object-suffixes)) $(version.c-objects): $(objpfx)version-info.h -$(objpfx)features.h: features.h.in Makefile $(common-objpfx)soversions.mk +$(objpfx)libc-version.h: Makefile $(common-objpfx)soversions.mk \ + $(common-objpfx)version.mk nr="$(libc.so-version)"; \ + lnr=`echo $(version) | sed 's/[.].*//'`; \ + lmnr=`echo $(version) | sed 's/[^.]*[.]//'`; \ if test -n $$nr; then \ - nr=`echo $$nr | sed 's/^[.]//'`; \ - tmpfile=$${TMPDIR:-/tmp}/sedtmp.$$$$; \ - rm -f $$tmpfile; \ - (echo '/^INTERFACENUMBER/ { i\'; \ - echo '/* Interface number of the shared library. */\'; \ - echo "#define __GNU_LIBRARY_INTERFACE__ $$nr"; \ - echo ' s/^INTERFACENUMBER//'; \ - echo '}') > $$tmpfile; \ - sed -f $$tmpfile < $< > $@; \ - rm -f $$tmpfile; \ + nr=`echo $$nr | sed 's/^[.]\([0-9]*\).*/\1/'`; \ else \ - sed -e '/^INTERFACENUMBER/d' < $< > $@; \ - fi + nr="$$lnr"; \ + fi; \ + rm -f $@T; \ + (echo '#ifndef __LIBC_VERSION_H'; \ + echo '#define __LIBC_VERSION_H 1'; \ + echo; \ + if test -n "$(libc.so-version)"; then \ + echo '/* Show that this is the GNU C Library. The value is the'; \ + echo ' interface number of the shared library. */'; \ + else \ + echo '/* Show that this is the GNU C Library. */'; \ + fi; \ + echo "#define __GNU_LIBRARY__ $$nr"; \ + echo; \ + echo '/* Version numbers for GNU libc release. */'; \ + echo "#define __GLIBC__ $$lnr"; \ + echo "#define __GLIBC_MINOR__ $$lmnr"; \ + echo; \ + echo '#endif /* libc-version.h */') > $@T + mv -f $@T $@ +generated += libc-version.h # Makerules creates a file `stub-$(subdir)' for each subdirectory, which # contains `#define __stub_FUNCTION' for each function which is a stub. @@ -492,8 +492,8 @@ include $(o-iterator) define do-ar topdir=`cd $(..).; pwd`; \ $(patsubst %/,cd %;,$(objpfx)) \ -$$topdir/autolock.sh ${O%-lib}.lck $(AR) cru$(verbose) ${O%-lib} \ - $(patsubst $(objpfx)%,%,$^) +$(SHELL) $$topdir/autolock.sh ${O%-lib}.lck $(AR) cru$(verbose) ${O%-lib} \ + $(patsubst $(objpfx)%,%,$^) rm -f $@ touch $@ endef @@ -507,7 +507,7 @@ define o-iterator-doit $(common-objpfx)$(patsubst %,$(libtype$o),c)($(ar-symtab-name)): \ $(common-objpfx)$(patsubst %,$(libtype$o),c)(\ $(patsubst $(objpfx)%,%,$(o-objects))) $(subdirs-stamp-o); \ - $$(..)./autolock.sh \ + $(SHELL) $$(..)./autolock.sh \ $$(common-objpfx)$$(patsubst %,$$(libtype$o),c).lck \ $$(RANLIB) $$(common-objpfx)$$(patsubst %,$$(libtype$o),c) endef diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c index 61615cd9a9..dd5fa200dd 100644 --- a/elf/dl-minimal.c +++ b/elf/dl-minimal.c @@ -113,12 +113,12 @@ longjmp (jmp_buf env, int val) { __longjmp (env[0].__jmpbuf, val); } English-only in the dynamic linker keeps it smaller. */ char * weak_function -__dgettext (const char *domainname, const char *msgid) +__dcgettext (const char *domainname, const char *msgid, int category) { assert (domainname == _libc_intl_domainname); return (char *) msgid; } -weak_alias (__dgettext, dgettext) +weak_alias (__dcgettext, dcgettext) #ifndef NDEBUG diff --git a/features.h b/features.h index 83977e9c95..abf20250b6 100644 --- a/features.h +++ b/features.h @@ -144,14 +144,8 @@ Cambridge, MA 02139, USA. */ #endif -/* This macro indicates that the installed library is the GNU C Library. - Its value must be incremented whenever any existing library interface - changes such that callers must be recompiled with the new header files. - This value should always coincide with the major version number used for - the shared C library corresponding to this set of header files. */ - -#undef __GNU_LIBRARY__ -#define __GNU_LIBRARY__ 6 +/* Include header with information of libc version numbers. */ +#include <libc-version.h> #if !defined (__GNUC__) || __GNUC__ < 2 @@ -180,4 +174,4 @@ Cambridge, MA 02139, USA. */ #include <stubs.h> #endif -#endif /* __features.h */ +#endif /* features.h */ diff --git a/grp/fgetgrent_r.c b/grp/fgetgrent_r.c index f8b8d97d25..d8a8bfb2e1 100644 --- a/grp/fgetgrent_r.c +++ b/grp/fgetgrent_r.c @@ -34,7 +34,10 @@ LINE_PARSER (, STRING_FIELD (result->gr_name, ISCOLON, 0); STRING_FIELD (result->gr_passwd, ISCOLON, 0); - INT_FIELD (result->gr_gid, ISCOLON, 0, 10,); + if (result->gr_name[0] == '+' || result->gr_name[0] == '-') + INT_FIELD_MAYBE_NULL (result->gr_gid, ISCOLON, 0, 10, , 0) + else + INT_FIELD (result->gr_gid, ISCOLON, 0, 10,) ) diff --git a/nss/nss_files/files-grp.c b/nss/nss_files/files-grp.c index 8e047b6475..20a723b650 100644 --- a/nss/nss_files/files-grp.c +++ b/nss/nss_files/files-grp.c @@ -32,12 +32,14 @@ struct grent_data {}; DB_LOOKUP (grnam, 1 + strlen (name), (".%s", name), { - if (! strcmp (name, result->gr_name)) + if (name[0] != '-' && name[0] != '+' + && ! strcmp (name, result->gr_name)) break; }, const char *name) DB_LOOKUP (grgid, 20, ("=%lu", (unsigned long int) gid), { - if (result->gr_gid == gid) + if (result->gr_gid == gid && result->gr_name[0] != '+' + && result->gr_name[0] != '-') break; }, gid_t gid) diff --git a/nss/nss_files/files-pwd.c b/nss/nss_files/files-pwd.c index a778d015d8..30008559ae 100644 --- a/nss/nss_files/files-pwd.c +++ b/nss/nss_files/files-pwd.c @@ -32,12 +32,14 @@ struct pwent_data {}; DB_LOOKUP (pwnam, 1 + strlen (name), (".%s", name), { - if (! strcmp (name, result->pw_name)) + if (name[0] != '+' && name[0] != '-' + && ! strcmp (name, result->pw_name)) break; }, const char *name) DB_LOOKUP (pwuid, 20, ("=%lu", (unsigned long int) uid), { - if (result->pw_uid == uid) + if (result->pw_uid == uid && result->pw_name[0] != '+' + && result->pw_name[0] != '-') break; }, uid_t uid) diff --git a/pwd/fgetpwent_r.c b/pwd/fgetpwent_r.c index 9b58e61009..bd380bd48c 100644 --- a/pwd/fgetpwent_r.c +++ b/pwd/fgetpwent_r.c @@ -32,8 +32,16 @@ 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,); + if (result-> |
