about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog40
-rw-r--r--Makeconfig4
-rw-r--r--debug/Makefile4
-rw-r--r--iconv/gconv.c13
-rw-r--r--iconv/gconv_db.c17
-rw-r--r--iconv/gconv_dl.c2
-rw-r--r--iconv/skeleton.c19
-rw-r--r--include/ldsodefs.h15
-rw-r--r--inet/Makefile4
-rw-r--r--login/Makefile5
-rw-r--r--malloc/mtrace.c4
-rw-r--r--nscd/Makefile5
-rw-r--r--nscd/cache.c4
-rw-r--r--nscd/connections.c6
-rw-r--r--nscd/nscd.conf4
-rw-r--r--nss/nsswitch.c2
-rw-r--r--nss/nsswitch.h2
-rw-r--r--sunrpc/Makefile5
-rw-r--r--sysdeps/unix/sysv/linux/arm/syscalls.list6
19 files changed, 101 insertions, 60 deletions
diff --git a/ChangeLog b/ChangeLog
index 726fee9ace..410a6572ae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,41 @@
+1998-10-19  Ulrich Drepper  <drepper@cygnus.com>
+
+	* include/ldsodefs.h: New file.
+
+	* iconv/gconv.c: Include ldsodefs.h, not elf/ldsodefs.h.
+	Remove change to avoid using _CALL_DL_FCT.
+	* iconv/gconv_db.c: Likewise.
+	* iconv/gconv_dl.c: Likewise.
+	* iconv/skeleton.c: Likewise, here for DL_CALL_FCT.
+	* malloc/mtrace.c: Include ldsodefs.h, not elf/ldsodefs.h.
+	* nss/nsswitch.c: Likewise.
+	* nss/nsswitch.h: Likewise.
+
+1998-10-19  Philip Blundell  <pb@nexus.co.uk>
+
+	* sunrpc/Makefile (otherlibs): If static NSS is in use, set to the
+	required libraries.
+	* login/Makefile (otherlibs): Likewise.
+	* nscd/Makefile (otherlibs): Likewise.
+	* Makeconfig (link-libc) [! build_shared]: Add $(otherlibs).
+
+	* debug/Makefile (install-bin): Only build catchsegv if using ELF.
+
+	* inet/Makefile: Add -DSTATIC_NSS to CFLAGS.
+
+1998-10-19  Philip Blundell  <pb@nexus.co.uk>
+
+	* sysdeps/unix/sysv/linux/arm/syscalls.list: Added setfsgid
+	and setfsuid.
+
+1998-10-19  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* nscd/connections.c: Fix typos in comments and strings.
+
+	* nscd/nscd.conf: Update according to recent changes to nscd.
+
+	* nscd/cache.c (prune_cache): Remove wrong comment.
+
 1998-10-19 13:24  Ulrich Drepper  <drepper@cygnus.com>
 
 	* locale/programs/ld-collate.c (collate_startup): Clear bit for this
@@ -14,7 +52,7 @@
 	(main): Before processing copy list add &copy_posix to copy_list.
 	* locale/programs/locales.h: Add definition of copy_def_list_t.
 	* locale/programs/locfile.c: Clear bit for appropriate category in
-	case of an copy instruction.
+	copy_posix.mask for copy instruction.
 
 1998-10-19  Ulrich Drepper  <drepper@cygnus.com>
 
diff --git a/Makeconfig b/Makeconfig
index 18773ff4f7..237f48f4df 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -417,7 +417,9 @@ $(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(
 elfobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)elf)
 dbobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)db2)
 else
-link-libc = $(common-objpfx)libc.a $(gnulib) $(common-objpfx)libc.a
+nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
+resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv)
+link-libc = $(common-objpfx)libc.a $(otherlibs) $(gnulib) $(common-objpfx)libc.a
 endif
 endif
 
diff --git a/debug/Makefile b/debug/Makefile
index 698ad07d12..e9f085c966 100644
--- a/debug/Makefile
+++ b/debug/Makefile
@@ -36,8 +36,12 @@ extra-libs-others = $(extra-libs)
 libSegFault-routines = segfault
 libSegFault-inhibit-o = $(filter-out .os,$(object-suffixes))
 
+include ../Makeconfig
+
 distribute += catchsegv.sh
+ifeq ($(elf),yes)
 install-bin = catchsegv
+endif
 generated = catchsegv
 
 include ../Rules
diff --git a/iconv/gconv.c b/iconv/gconv.c
index ceefffcc87..cc61e03954 100644
--- a/iconv/gconv.c
+++ b/iconv/gconv.c
@@ -23,9 +23,7 @@
 #include <gconv.h>
 #include <sys/param.h>
 
-#ifndef STATIC_GCONV
-# include <elf/ldsodefs.h>
-#endif
+#include <ldsodefs.h>
 
 int
 internal_function
@@ -43,12 +41,8 @@ __gconv (gconv_t cd, const char **inbuf, const char *inbufend, char **outbuf,
 
   if (inbuf == NULL || *inbuf == NULL)
     /* We just flush.  */
-#ifdef _CALL_DL_FCT
     result = _CALL_DL_FCT (cd->steps->fct,
 			   (cd->steps, cd->data, NULL, NULL, converted, 1));
-#else
-    result = cd->steps->fct (cd->steps, cd->data, NULL, NULL, converted, 1);
-#endif
   else
     {
       const char *last_start;
@@ -60,14 +54,9 @@ __gconv (gconv_t cd, const char **inbuf, const char *inbufend, char **outbuf,
       do
 	{
 	  last_start = *inbuf;
-#ifdef _CALL_DL_FCT
 	  result = _CALL_DL_FCT (cd->steps->fct,
 				 (cd->steps, cd->data, inbuf, inbufend,
 				  converted, 0));
-#else
-	  result = cd->steps->fct (cd->steps, cd->data, inbuf, inbufend,
-				   converted, 0);
-#endif
 	}
       while (result == GCONV_EMPTY_INPUT && last_start != *inbuf
 	     && *inbuf + cd->steps->min_needed_from <= inbufend);
diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c
index cbaaf18339..443e5bf878 100644
--- a/iconv/gconv_db.c
+++ b/iconv/gconv_db.c
@@ -23,10 +23,7 @@
 #include <string.h>
 #include <bits/libc-lock.h>
 
-#ifndef STATIC_GCONV
-# include <elf/ldsodefs.h>
-#endif
-
+#include <ldsodefs.h>
 #include <gconv_int.h>
 
 
@@ -158,11 +155,7 @@ free_derivation (void *p)
 
   for (cnt = 0; cnt < deriv->nsteps; ++cnt)
     if (deriv->steps[cnt].end_fct)
-#ifdef _CALL_DL_FCT
       _CALL_DL_FCT (deriv->steps[cnt].end_fct, (&deriv->steps[cnt]));
-#else
-      deriv->steps[cnt].end_fct (&deriv->steps[cnt]);
-#endif
 
   free ((struct gconv_step *) deriv->steps);
   free (deriv);
@@ -228,11 +221,7 @@ gen_steps (struct derivation_step *best, const char *toset,
 
 	  /* Call the init function.  */
 	  if (result[step_cnt].init_fct != NULL)
-#ifdef _CALL_DL_FCT
 	    _CALL_DL_FCT (result[step_cnt].init_fct, (&result[step_cnt]));
-#else
-	    result[step_cnt].init_fct (&result[step_cnt]);
-#endif
 
 	  current = current->last;
 	}
@@ -243,11 +232,7 @@ gen_steps (struct derivation_step *best, const char *toset,
 	  while (++step_cnt < *nsteps)
 	    {
 	      if (result[step_cnt].end_fct != NULL)
-#ifdef _CALL_DL_FCT
 		_CALL_DL_FCT (result[step_cnt].end_fct, (&result[step_cnt]));
-#else
-		result[step_cnt].end_fct (&result[step_cnt]);
-#endif
 #ifndef STATIC_GCONV
 	      __gconv_release_shlib (result[step_cnt].shlib_handle);
 #endif
diff --git a/iconv/gconv_dl.c b/iconv/gconv_dl.c
index 1c04dee169..7c64a912d9 100644
--- a/iconv/gconv_dl.c
+++ b/iconv/gconv_dl.c
@@ -24,9 +24,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include <bits/libc-lock.h>
-#include <elf/ldsodefs.h>
 #include <sys/param.h>
 
+#include <ldsodefs.h>
 #include <gconv_int.h>
 
 
diff --git a/iconv/skeleton.c b/iconv/skeleton.c
index bae82be3ed..b1e96ebbcb 100644
--- a/iconv/skeleton.c
+++ b/iconv/skeleton.c
@@ -85,8 +85,8 @@
 
 #ifndef STATIC_GCONV
 # include <dlfcn.h>
-# include <elf/ldsodefs.h>
 #endif
+#include <ldsodefs.h>
 
 
 /* The direction objects.  */
@@ -222,15 +222,9 @@ FUNCTION_NAME (struct gconv_step *step, struct gconv_step_data *data,
 
 	  if (status == GCONV_OK)
 #endif
-	    {
-	      /* Give the modules below the same chance.  */
-#ifdef DL_CALL_FCT
-	      status = DL_CALL_FCT (fct, (next_step, next_data, NULL, NULL,
-					  written, 1));
-#else
-	      status = (*fct) (next_step, next_data, NULL, NULL, written, 1);
-#endif
-	    }
+	    /* Give the modules below the same chance.  */
+	    status = DL_CALL_FCT (fct, (next_step, next_data, NULL, NULL,
+					written, 1));
 	}
     }
   else
@@ -296,13 +290,8 @@ FUNCTION_NAME (struct gconv_step *step, struct gconv_step_data *data,
 	      const char *outerr = data->outbuf;
 	      int result;
 
-#ifdef DL_CALL_FCT
 	      result = DL_CALL_FCT (fct, (next_step, next_data, &outerr,
 					  outbuf, written, 0));
-#else
-	      result = (*fct) (next_step, next_data, &outerr, outbuf,
-			       written, 0);
-#endif
 
 	      if (result != GCONV_EMPTY_INPUT)
 		{
diff --git a/include/ldsodefs.h b/include/ldsodefs.h
new file mode 100644
index 0000000000..ffc7b3c067
--- /dev/null
+++ b/include/ldsodefs.h
@@ -0,0 +1,15 @@
+/* We must use the appropriate version for the system.  */
+#ifdef __ELF__
+# include <elf/ldsodefs.h>
+#else
+/* We have no dynamic loading.  Define the macros we need here as dummy
+   versions.  */
+# ifndef _LDSODEFS_H
+# define _LDSODEFS_H	1
+
+/* Call a function through a pointer.  */
+# define _CALL_DL_FCT(fctp, args) (*fctp) args
+# define CALL_DL_FCT(fctp, args) (*fctp) args
+
+# endif	/* ldsodefs.h */
+#endif
diff --git a/inet/Makefile b/inet/Makefile
index d1b984a4f5..d37cfc7e71 100644
--- a/inet/Makefile
+++ b/inet/Makefile
@@ -62,3 +62,7 @@ CFLAGS-gethstbynm_r.c = -DUSE_NSCD=1
 CFLAGS-gethstbynm2_r.c = -DUSE_NSCD=1
 
 endif
+
+ifeq ($(build-static-nss),yes)
+CFLAGS += -DSTATIC_NSS
+endif
diff --git a/login/Makefile b/login/Makefile
index f6dc62f524..638421eca5 100644
--- a/login/Makefile
+++ b/login/Makefile
@@ -53,6 +53,11 @@ libutil-routines:= login login_tty logout logwtmp openpty forkpty
 
 include ../Rules
 
+ifeq (yes,$(build-static-nss))
+otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
+	     $(resolvobjdir)/libresolv.a $(common-objpfx)libc.a
+endif
+
 # pt_chown needs to be setuid root.
 $(inst_libexecdir)/pt_chown: $(objpfx)pt_chown $(+force)
 	$(make-target-directory)
diff --git a/malloc/mtrace.c b/malloc/mtrace.c
index ec551ff49e..57c9dffd58 100644
--- a/malloc/mtrace.c
+++ b/malloc/mtrace.c
@@ -28,9 +28,7 @@
 #include <bits/libc-lock.h>
 #endif
 
-#ifdef HAVE_ELF
-#include <elf/ldsodefs.h>
-#endif
+#include <ldsodefs.h>
 
 #include <stdio.h>
 
diff --git a/nscd/Makefile b/nscd/Makefile
index 278bca6bbe..d915aa70f4 100644
--- a/nscd/Makefile
+++ b/nscd/Makefile
@@ -38,6 +38,11 @@ extra-objs := $(nscd-modules:=.o)
 
 endif
 
+ifeq (yes,$(build-static-nss))
+otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
+	     $(resolvobjdir)/libresolv.a
+endif
+
 distribute := nscd.h nscd-client.h dbg_log.h \
 	      $(nscd-modules:=.c) TODO nscd.conf nscd.init \
 	      nscd_proto.h
diff --git a/nscd/cache.c b/nscd/cache.c
index e957a577c0..4ab83db6e2 100644
--- a/nscd/cache.c
+++ b/nscd/cache.c
@@ -118,9 +118,7 @@ cache_add (int type, void *key, size_t len, const void *packet, size_t total,
    must be invalidated and remember them.  Then we get the lock and
    actually remove them.  This is complicated by the way we have to
    free the data structures since some hash table entries share the same
-   data.
-
-   This function must be called with the write-lock held.  */
+   data.  */
 void
 prune_cache (struct database *table, time_t now)
 {
diff --git a/nscd/connections.c b/nscd/connections.c
index 5ef13bf850..591e300511 100644
--- a/nscd/connections.c
+++ b/nscd/connections.c
@@ -197,7 +197,7 @@ static void
 handle_request (int fd, request_header *req, void *key)
 {
   if (debug_level > 0)
-    dbg_log (_("handle_requests: request received (Version = %d)"),
+    dbg_log (_("handle_request: request received (Version = %d)"),
 	     req->version);
 
   if (req->version != NSCD_VERSION)
@@ -219,7 +219,7 @@ cannot handle old request version %d; current version is %d"),
       /* Is this service enabled?  */
       if (!db->enabled)
 	{
-	  /* No sent the prepared record.  */
+	  /* No, sent the prepared record.  */
 	  if (TEMP_FAILURE_RETRY (write (fd, db->disabled_iov->iov_base,
 					 db->disabled_iov->iov_len))
 	      != db->disabled_iov->iov_len)
@@ -372,7 +372,7 @@ nscd_run (void *p)
 	     to 1kb.  */
 	  if (req.key_len < 0 || req.key_len > 1024)
 	    {
-	      dbg_log (_("key length in request to long: %Zd"), req.key_len);
+	      dbg_log (_("key length in request too long: %Zd"), req.key_len);
 	      close (fd);
 	      continue;
 	    }
diff --git a/nscd/nscd.conf b/nscd/nscd.conf
index 5e327e86fe..d2b53a7aa3 100644
--- a/nscd/nscd.conf
+++ b/nscd/nscd.conf
@@ -7,6 +7,7 @@
 #
 #	logfile			<file>
 #	debug-level		<level>
+#	threads			<#threads to use>
 #
 #       enable-cache		<service> <yes|no>
 #	positive-time-to-live	<service> <time in seconds>
@@ -14,11 +15,12 @@
 #       suggested-size		<service> <prime number>
 #	check-files		<service> <yes|no>
 #
-# Currently supported cache names (services): passwd, group
+# Currently supported cache names (services): passwd, group, hosts
 #
 
 
 #	logfile			/var/adm/nscd.log
+#	threads			6
 
 	debug-level		0
 
diff --git a/nss/nsswitch.c b/nss/nsswitch.c
index b3b540917e..b6720fd62e 100644
--- a/nss/nsswitch.c
+++ b/nss/nsswitch.c
@@ -26,7 +26,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <elf/ldsodefs.h>	/* We need some help from ld.so.  */
+#include <ldsodefs.h>		/* We need some help from ld.so.  */
 
 #if !defined DO_STATIC_NSS || defined PIC
 # include <gnu/lib-names.h>
diff --git a/nss/nsswitch.h b/nss/nsswitch.h
index cb16fe1542..ecb2b1bde2 100644
--- a/nss/nsswitch.h
+++ b/nss/nsswitch.h
@@ -26,7 +26,7 @@
 #include <nss.h>
 #include <resolv.h>
 #include <search.h>
-#include <elf/ldsodefs.h>
+#include <ldsodefs.h>
 
 
 /* Actions performed after lookup finished.  */
diff --git a/sunrpc/Makefile b/sunrpc/Makefile
index c96fe4fa64..2a6614c977 100644
--- a/sunrpc/Makefile
+++ b/sunrpc/Makefile
@@ -84,6 +84,11 @@ all: # Make this the default target; it will be defined in Rules.
 
 include ../Makeconfig
 
+ifeq (yes,$(build-static-nss))
+otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
+	     $(resolvobjdir)/libresolv.a
+endif
+
 ifeq (no,$(cross-compiling))
 # We can only build this library if we can run the rpcgen we build.
 headers += $(rpcsvc:%.x=rpcsvc/%.h)
diff --git a/sysdeps/unix/sysv/linux/arm/syscalls.list b/sysdeps/unix/sysv/linux/arm/syscalls.list
index 3adc087d15..e3fe1d7b8d 100644
--- a/sysdeps/unix/sysv/linux/arm/syscalls.list
+++ b/sysdeps/unix/sysv/linux/arm/syscalls.list
@@ -2,10 +2,12 @@
 
 s_getgroups	getgroups getgroups	2	__syscall_getgroups
 s_llseek	llseek	_llseek		5	__sys_llseek
+s_setfsgid	setfsgid setfsgid	1	__syscall_setfsgid
+s_setfsuid	setfsuid setfsuid	1	__syscall_setfsuid
 s_setgid	setgid	setgid		1	__syscall_setgid
 s_setgroups	setgroups setgroups	2	__syscall_setgroups
-s_setresuid	setresuid setresuid	3	__syscall_setresuid
 s_setresgid	setresgid setresgid	3	__syscall_setresgid
+s_setresuid	setresuid setresuid	3	__syscall_setresuid
 s_setuid	setuid	setuid		1	__syscall_setuid
-vm86		-	vm86		1	__vm86		vm86
 syscall		-	syscall		5	syscall
+vm86		-	vm86		1	__vm86		vm86