aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog107
-rw-r--r--Makefile48
-rw-r--r--Makerules6
-rw-r--r--elf/dl-minimal.c4
-rw-r--r--features.h12
-rw-r--r--grp/fgetgrent_r.c5
-rw-r--r--nss/nss_files/files-grp.c6
-rw-r--r--nss/nss_files/files-pwd.c6
-rw-r--r--pwd/fgetpwent_r.c12
-rw-r--r--sysdeps/generic/_strerror.c20
-rw-r--r--sysdeps/generic/sysdep.h4
-rw-r--r--sysdeps/i386/__longjmp.S2
-rw-r--r--sysdeps/i386/bsd-_setjmp.S2
-rw-r--r--sysdeps/i386/bsd-setjmp.S2
-rw-r--r--sysdeps/i386/i486/strcat.S2
-rw-r--r--sysdeps/i386/i486/strlen.S2
-rw-r--r--sysdeps/i386/i586/memset.S2
-rw-r--r--sysdeps/i386/i586/strchr.S2
-rw-r--r--sysdeps/i386/i586/strlen.S2
-rw-r--r--sysdeps/i386/memchr.S2
-rw-r--r--sysdeps/i386/memcmp.S2
-rw-r--r--sysdeps/i386/setjmp.S2
-rw-r--r--sysdeps/i386/stpcpy.S2
-rw-r--r--sysdeps/i386/stpncpy.S2
-rw-r--r--sysdeps/i386/strchr.S2
-rw-r--r--sysdeps/i386/strcspn.S2
-rw-r--r--sysdeps/i386/strlen.c5
-rw-r--r--sysdeps/i386/strpbrk.S2
-rw-r--r--sysdeps/i386/strrchr.S2
-rw-r--r--sysdeps/i386/strspn.S2
-rw-r--r--sysdeps/i386/strtok.S2
-rw-r--r--sysdeps/i386/sysdep.h6
-rw-r--r--sysdeps/m68k/bsd-_setjmp.S2
-rw-r--r--sysdeps/m68k/bsd-setjmp.S2
-rw-r--r--sysdeps/mach/_strerror.c11
-rw-r--r--sysdeps/posix/getaddrinfo.c11
-rw-r--r--sysdeps/unix/i386/sysdep.S5
-rw-r--r--sysdeps/unix/sysv/i386/time.S3
-rw-r--r--sysdeps/unix/sysv/linux/i386/clone.S7
-rw-r--r--sysdeps/unix/sysv/linux/i386/mmap.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/socket.S9
-rw-r--r--sysdeps/unix/sysv/linux/i386/syscall.S5
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.S2
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h24
-rw-r--r--sysdeps/unix/sysv/linux/m68k/clone.S10
-rw-r--r--sysdeps/unix/sysv/linux/m68k/mmap.S3
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sigreturn.S4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/socket.S3
-rw-r--r--sysdeps/unix/sysv/linux/m68k/syscall.S3
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.S10
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sysdep.h10
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list12
-rw-r--r--version.h2
53 files changed, 275 insertions, 146 deletions
diff --git a/ChangeLog b/ChangeLog
index ed1258643b..00165e258a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
diff --git a/Makefile b/Makefile
index 29591284bd..774cf3bc23 100644
--- a/Makefile
+++ b/Makefile
@@ -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.
diff --git a/Makerules b/Makerules
index 4269e48ce4..aa56406854 100644
--- a/Makerules
+++ b/Makerules
@@ -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->