+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
(main): Before processing copy list add ©_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>
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
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
#include <gconv.h>
#include <sys/param.h>
-#ifndef STATIC_GCONV
-# include <elf/ldsodefs.h>
-#endif
+#include <ldsodefs.h>
int
internal_function
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;
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);
#include <string.h>
#include <bits/libc-lock.h>
-#ifndef STATIC_GCONV
-# include <elf/ldsodefs.h>
-#endif
-
+#include <ldsodefs.h>
#include <gconv_int.h>
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);
/* 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;
}
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
#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>
#ifndef STATIC_GCONV
# include <dlfcn.h>
-# include <elf/ldsodefs.h>
#endif
+#include <ldsodefs.h>
/* The direction objects. */
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
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)
{
--- /dev/null
+/* 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
CFLAGS-gethstbynm2_r.c = -DUSE_NSCD=1
endif
+
+ifeq ($(build-static-nss),yes)
+CFLAGS += -DSTATIC_NSS
+endif
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)
#include <bits/libc-lock.h>
#endif
-#ifdef HAVE_ELF
-#include <elf/ldsodefs.h>
-#endif
+#include <ldsodefs.h>
#include <stdio.h>
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
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)
{
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)
/* 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)
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;
}
#
# logfile <file>
# debug-level <level>
+# threads <#threads to use>
#
# enable-cache <service> <yes|no>
# positive-time-to-live <service> <time in seconds>
# 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
#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>
#include <nss.h>
#include <resolv.h>
#include <search.h>
-#include <elf/ldsodefs.h>
+#include <ldsodefs.h>
/* Actions performed after lookup finished. */
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)
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