Skip to content

Commit

Permalink
update from main arcive 961210
Browse files Browse the repository at this point in the history
Wed Dec 11 01:04:30 1996  Ulrich Drepper  <drepper@cygnus.com>

	Add NIS NSS implementation.
	* shlib-versions: Add versions for NIS libraries.
	* sysdeps/unix/inet/Subdirs: Add nis.
	* nis/Banner: New file.
	* nis/Makefile: New file.
	* nis/nss-nis.h: New file.
	* nis/yp_xdr.h: New file.
	* nis/ypclnt.h: New file.
	* nis/ypupdate_xdr.c: New file.
	* nis/nss_compat/compat-grp.c: New file.
	* nis/nss_compat/compat-pwd.c: New file.
	* nis/nss_compat/compat-spwd.c: New file.
	* nis/nss_nis/nis-alias.c: New file.
	* nis/nss_nis/nis-ethers.c: New file.
	* nis/nss_nis/nis-grp.c: New file.
	* nis/nss_nis/nis-hosts.c: New file.
	* nis/nss_nis/nis-netgrp.c: New file.
	* nis/nss_nis/nis-network.c: New file.
	* nis/nss_nis/nis-proto.c: New file.
	* nis/nss_nis/nis-publickey.c: New file.
	* nis/nss_nis/nis-pwd.c: New file.
	* nis/nss_nis/nis-rpc.c: New file.
	* nis/nss_nis/nis-service.c: New file.
	* nis/nss_nis/nis-spwd.c: New file.
	* nis/rpcsvc/yp.h: New file.
	* nis/rpcsvc/yp.x: New file.
	* nis/rpcsvc/yp_prot.h: New file.
	* nis/rpcsvc/ypclnt.h: New file.
	* nis/rpcsvc/ypupd.h: New file.

	* libio/_G_config.h: Define _G_HAVE_SYS_WAIT and _G_HAVE_PRINTF_FP.

	* locale/C-numeric.c: Update copyright.

	* locale/Makefile: Add rules to build libBrokenLocale.
	* locale/broken_cur_max.c: New file.
	* locale/mb_cur_max.c: Update copyright.
	(__ctype_get_mb_cur_max): Make function weak.

	* new-malloc/malloc.c: Correct copyright.
	* new-malloc/thread-m.h: Correct key handling.

	* shadow/lckpwdf.c: Update copyright.
	(PWD_LOCKFILE): Change to /etc/.pwd.lock.

	* stdlib/strtod.c: Add another assertion.
	* stdlib/tst-strtod.c: Add another test case.

	* sysdeps/generic/paths.h: Add _PATH_PRESERVE.  Needed by nvi.
	* sysdeps/unix/sysv/linux/paths.h: Likewise.

	* sysdeps/gnu/utmpbits.h: Rename ut_addr field to ut_addr_v6.
	ut_addr names a single element in ut_addr_v6.

	* sysdeps/mach/hurd/xmknod.c: Remove alias from __mknod to mknod.
	Patch by Thomas Bushnell, n/BSG.

Tue Dec 10 11:35:28 1996  Richard Henderson  <rth@tamu.edu>

	* sysdeps/alpha/strncmp.S: Fix aligned short truncated compare
	corner condition.

	* sysdeps/alpha/memchr.S: Don't read ahead, even if the load
	did fit nicely into that delay slot (patch from David Mosberger-Tang).

Mon Dec  9 23:53:43 1996  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/ttyname_r.c (__ttyname_r): Renamed from
	`ttyname_r'.
	(ttyname_r): New alias.

	* stdio-common/printf_fp.c (__guess_grouping): Fix off by one
  • Loading branch information
Ulrich Drepper committed Dec 11, 1996
1 parent aee321f commit 6259ec0
Show file tree
Hide file tree
Showing 46 changed files with 7,861 additions and 97 deletions.
75 changes: 74 additions & 1 deletion ChangeLog
Original file line number Diff line number Diff line change
@@ -1,6 +1,79 @@
Wed Dec 11 01:04:30 1996 Ulrich Drepper <drepper@cygnus.com>

Add NIS NSS implementation.
* shlib-versions: Add versions for NIS libraries.
* sysdeps/unix/inet/Subdirs: Add nis.
* nis/Banner: New file.
* nis/Makefile: New file.
* nis/nss-nis.h: New file.
* nis/yp_xdr.h: New file.
* nis/ypclnt.h: New file.
* nis/ypupdate_xdr.c: New file.
* nis/nss_compat/compat-grp.c: New file.
* nis/nss_compat/compat-pwd.c: New file.
* nis/nss_compat/compat-spwd.c: New file.
* nis/nss_nis/nis-alias.c: New file.
* nis/nss_nis/nis-ethers.c: New file.
* nis/nss_nis/nis-grp.c: New file.
* nis/nss_nis/nis-hosts.c: New file.
* nis/nss_nis/nis-netgrp.c: New file.
* nis/nss_nis/nis-network.c: New file.
* nis/nss_nis/nis-proto.c: New file.
* nis/nss_nis/nis-publickey.c: New file.
* nis/nss_nis/nis-pwd.c: New file.
* nis/nss_nis/nis-rpc.c: New file.
* nis/nss_nis/nis-service.c: New file.
* nis/nss_nis/nis-spwd.c: New file.
* nis/rpcsvc/yp.h: New file.
* nis/rpcsvc/yp.x: New file.
* nis/rpcsvc/yp_prot.h: New file.
* nis/rpcsvc/ypclnt.h: New file.
* nis/rpcsvc/ypupd.h: New file.

* libio/_G_config.h: Define _G_HAVE_SYS_WAIT and _G_HAVE_PRINTF_FP.

* locale/C-numeric.c: Update copyright.

* locale/Makefile: Add rules to build libBrokenLocale.
* locale/broken_cur_max.c: New file.
* locale/mb_cur_max.c: Update copyright.
(__ctype_get_mb_cur_max): Make function weak.

* new-malloc/malloc.c: Correct copyright.
* new-malloc/thread-m.h: Correct key handling.

* shadow/lckpwdf.c: Update copyright.
(PWD_LOCKFILE): Change to /etc/.pwd.lock.

* stdlib/strtod.c: Add another assertion.
* stdlib/tst-strtod.c: Add another test case.

* sysdeps/generic/paths.h: Add _PATH_PRESERVE. Needed by nvi.
* sysdeps/unix/sysv/linux/paths.h: Likewise.

* sysdeps/gnu/utmpbits.h: Rename ut_addr field to ut_addr_v6.
ut_addr names a single element in ut_addr_v6.

* sysdeps/mach/hurd/xmknod.c: Remove alias from __mknod to mknod.
Patch by Thomas Bushnell, n/BSG.

Tue Dec 10 11:35:28 1996 Richard Henderson <rth@tamu.edu>

* sysdeps/alpha/strncmp.S: Fix aligned short truncated compare
corner condition.

* sysdeps/alpha/memchr.S: Don't read ahead, even if the load
did fit nicely into that delay slot (patch from David Mosberger-Tang).

Mon Dec 9 23:53:43 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>

* sysdeps/mach/hurd/ttyname_r.c (__ttyname_r): Renamed from
`ttyname_r'.
(ttyname_r): New alias.

Tue Dec 10 02:17:31 1996 Ulrich Drepper <drepper@cygnus.com>

* stdio-common/printf_fp.c (__guess_grouping): Fix of by one
* stdio-common/printf_fp.c (__guess_grouping): Fix off by one
error in computation of number of groups.
Patch sent by Harald Schreiber <Harald.Schreiber@post.rwth-aachen.de>.

Expand Down
3 changes: 3 additions & 0 deletions libio/_G_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,13 @@

/* These library features are always available in the GNU C library. */
#define _G_HAVE_ATEXIT 1
#define _G_HAVE_SYS_CDEFS 1
#define _G_HAVE_SYS_WAIT 1
#define _G_NEED_STDARG_H 1
#define _G_va_list __gnuc_va_list

#define _G_HAVE_PRINTF_FP 1

/* This is defined by <statbuf.h> if `st_blksize' exists. */
#define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE)

Expand Down
28 changes: 14 additions & 14 deletions locale/C-numeric.c
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
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
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
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., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
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., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */

#include "localeinfo.h"

Expand Down
10 changes: 10 additions & 0 deletions locale/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ install-bin = localedef locale
extra-objs = $(localedef-modules:=.o) $(locale-modules:=.o) \
$(lib-modules:=.o)

extra-libs = libBrokenLocale
extra-libs-others = $(extra-libs)

libBrokenLocale-routines = broken_cur_max

subdir-dirs = programs
vpath %.c programs
vpath %.h programs
Expand Down Expand Up @@ -74,3 +79,8 @@ CPPFLAGS := -DLOCALE_PATH='$(localepath)' \

CFLAGS-charmap.c = -Wno-write-strings
CFLAGS-locfile.c = -Wno-write-strings

# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
# This ensures they will load libc.so for needed symbols if loaded by
# a statically-linked program that hasn't already loaded it.
$(objpfx)libBrokenLocale.so: $(common-objpfx)libc.so
50 changes: 50 additions & 0 deletions locale/broken_cur_max.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/* Return number of characters in multibyte representation for current
character set.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
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
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
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., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */

#include <langinfo.h>
#include <locale.h>
#include <stdlib.h>
#include "localeinfo.h"


/* This is a gross hack to get borken programs running.
ISO C provides no mean to find out how many bytes the wide
character representation really uses. But it defines MB_CUR_LEN to
return the information for the multi-byte character representation.
Many programmers don't know the difference between the two and
thing this means the same. But assuming all characters have a size
of MB_CUR_LEN after they have been processed by `mbrtowc' is wrong.
Instead the maximal number of character used for the conversion is
MB_CURLEN.
It is known that some Motif applications have this problem. To
cure this one has to make sure the glibc uses the function in this
file instead of the one in locale/mb_cur_max.c. This can either be
done by linking with this file or by using the LD_PRELOAD feature
of the dynamic linker. */
int
__ctype_get_mb_cur_max (void)
{
int correct_value = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MB_CUR_MAX);

return ((int []) { 1, 1, 1, 2, 2, 3, 4 })[correct_value];
}
31 changes: 16 additions & 15 deletions locale/mb_cur_max.c
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
/* Return number of characters in multibyte representation for current
character set.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
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
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
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., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
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., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */

#include <langinfo.h>
#include <locale.h>
Expand All @@ -26,6 +26,7 @@ Boston, MA 02111-1307, USA. */


int
weak_function
__ctype_get_mb_cur_max (void)
{
return _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MB_CUR_MAX);
Expand Down
3 changes: 2 additions & 1 deletion malloc/malloc.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
/* Malloc implementation for multiple threads without lock contention.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>, 1996.
Contributed by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
and Doug Lea <dl@cs.oswego.edu>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
Expand Down
21 changes: 14 additions & 7 deletions malloc/thread-m.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */

/* One out of _LIBC, USE_PTHREADS, USE_THR, or USE_SPROC should be
/* One out of _LIBC, USE_PTHREADS, USE_THR or USE_SPROC should be
defined, otherwise the token NO_THREADS and dummy implementations
of the macros will be defined. */

Expand All @@ -42,12 +42,19 @@ typedef pthread_key_t tsd_key_t;

#define MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER

#define tsd_key_create(key, destr) \
if (__pthread_key_create != NULL) { __pthread_key_create(key, destr); }
#define tsd_setspecific(key, data) \
if (__pthread_setspecific != NULL) { __pthread_setspecific(key, data); }
#define tsd_getspecific(key, vptr) \
(vptr = (__pthread_getspecific != NULL ? __pthread_getspecific(key) : NULL))
static Void_t *malloc_key_data;

#define tsd_key_create(key, destr) \
if (__pthread_key_create != NULL) { \
__pthread_key_create(key, destr); \
} else { *(key) = (tsd_key_t) 0; }
#define tsd_setspecific(key, data) \
if (__pthread_setspecific != NULL) { \
__pthread_setspecific(key, data); \
} else { malloc_key_data = (Void_t *) data; }
#define tsd_getspecific(key, vptr) \
(vptr = (__pthread_getspecific != NULL \
? __pthread_getspecific(key) : malloc_key_data))

#define mutex_init(m) \
(__pthread_mutex_init != NULL ? __pthread_mutex_init (m, NULL) : 0)
Expand Down
1 change: 1 addition & 0 deletions nis/Banner
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
NIS(YP) NSS modules 0.8 by Thorsten Kukuk
100 changes: 100 additions & 0 deletions nis/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Copyright (C) 1996 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
# modify it under the terms of the GNU Library General Public License as
# 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
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# 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., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.

#
# Makefile for NIS part.
#
subdir := nis

headers := $(wildcard rpcsvc/*.[hx])

# These are the databases available for the nis (and perhaps later nisplus)
# service. This must be a superset of the services in nss.
databases = proto service hosts network grp pwd rpc ethers \
spwd netgrp alias

# Specify rules for the nss_* modules. Later we may have nisplus as well.
services := nis compat

extra-libs = libnsl $(services:%=libnss_%)
# These libraries will be built in the `others' pass rather than
# the `lib' pass, because they depend on libc.so being built already.
extra-libs-others = $(extra-libs)

others = ypcat ypmatch yppoll ypset ypwhich
install-bin = ypcat ypmatch ypwhich
install-sbin = ypset yppoll

# The sources are found in the appropriate subdir.
subdir-dirs = bsd-tools $(services:%=nss_%)
vpath %.c $(subdir-dirs)

libnsl-routines = yp_xdr ypclnt ypupdate_xdr

libnss_compat-routines := $(addprefix compat-,grp pwd spwd)
libnss_compat-inhibit-o = $(filter-out .so,$(object-suffixes))

libnss_nis-routines := $(addprefix nis-,$(databases))
libnss_nis-inhibit-o = $(filter-out .so,$(object-suffixes))


# Sun's header files are not too clean.
CFLAGS-compat-pwd.c = -Wno-strict-prototypes
CFLAGS-compat-spwd.c = -Wno-strict-prototypes
CFLAGS-compat-grp.c = -Wno-strict-prototypes
CFLAGS-nis-alias.c = -Wno-strict-prototypes
CFLAGS-nis-ethers.c = -Wno-strict-prototypes
CFLAGS-nis-grp.c = -Wno-strict-prototypes
CFLAGS-nis-hosts.c = -Wno-strict-prototypes
CFLAGS-nis-netgrp.c = -Wno-strict-prototypes
CFLAGS-nis-network.c = -Wno-strict-prototypes
CFLAGS-nis-proto.c = -Wno-strict-prototypes
CFLAGS-nis-publickey.c = -Wno-strict-prototypes
CFLAGS-nis-pwd.c = -Wno-strict-prototypes
CFLAGS-nis-rpc.c = -Wno-strict-prototypes
CFLAGS-nis-service.c = -Wno-strict-prototypes
CFLAGS-nis-spwd.c = -Wno-strict-prototypes
CFLAGS-ypclnt.c = -Wno-strict-prototypes -Wno-write-strings
CFLAGS-yp_xdr.c = -Wno-strict-prototypes
CFLAGS-ypupdate_xdr.c = -Wno-strict-prototypes
CFLAGS-ypcat.c = -Wno-strict-prototypes
CFLAGS-ypmatch.c = -Wno-strict-prototypes
CFLAGS-ypwhich.c = -Wno-strict-prototypes
CFLAGS-ypset.c = -Wno-strict-prototypes
CFLAGS-yppoll.c = -Wno-strict-prototypes


include ../Rules


$(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version) \
$(common-objpfx)nss/libnss_files.so
$(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \
$(common-objpfx)nss/libnss_files.so

# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
# This ensures they will load libc.so for needed symbols if loaded by
# a statically-linked program that hasn't already loaded it.
$(services:%=$(objpfx)libnss_%.so): $(common-objpfx)libc.so


ifeq ($(build-shared),yes)
$(others:%=$(objpfx)%): $(objpfx)libnsl.so$(libnsl.so-version)
else
$(others:%=$(objpfx)%): $(objpfx)libnsl.a
endif
Loading

0 comments on commit 6259ec0

Please sign in to comment.