summaryrefslogtreecommitdiff
path: root/nss
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-06-18 16:51:12 +0000
committerUlrich Drepper <drepper@redhat.com>1998-06-18 16:51:12 +0000
commit5ad49c070734c57f35cfe045572fb22158870c78 (patch)
treed17a62167c0996bbe744522fcb819446817cdc04 /nss
parent2827300fbe8b237b825aa29b95f24026aedd4b20 (diff)
Update.
1998-06-18 16:40 Ulrich Drepper <drepper@cygnus.com> * libc.map: Add _dl_profile_map, _dl_profile_output, _dl_start_profile, _dl_mcount, _dl_mcount_wrapper. * elf/Makefile (routines): Add dl-profstub. * elf/dl-profstub.c: New file. * elf/dl-support.c: Don't define _dl_profile_map. * elf/rtld.c: Likewise. * elf/dlfcn.h: Define DL_CALL_FCT macro. * elf/ldsodefs.h: Declare _dl_profile_output, _dl_mcount_wrapper. Define _CALL_DL_FCT. * iconv/gconv.c: Use _CALL_DL_FCT to call function from dynamically loaded object. * iconv/gconv_db.c: Likewise. * iconv/skeleton.c: Likewise. * nss/getXXbyYY_r.c: Likewise. * nss/getXXent_r.c: Likewise. * nss/nsswitch.c: Likewise.
Diffstat (limited to 'nss')
-rw-r--r--nss/getXXbyYY_r.c4
-rw-r--r--nss/getXXent_r.c9
-rw-r--r--nss/nsswitch.h3
3 files changed, 9 insertions, 7 deletions
diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c
index 2e5cc81a2b..c8d6b08009 100644
--- a/nss/getXXbyYY_r.c
+++ b/nss/getXXbyYY_r.c
@@ -161,8 +161,8 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
while (no_more == 0)
{
- status = (*fct) (ADD_VARIABLES, resbuf, buffer, buflen,
- &errno H_ERRNO_VAR);
+ status = _CALL_DL_FCT (fct, (ADD_VARIABLES, resbuf, buffer, buflen,
+ &errno H_ERRNO_VAR));
/* The status is NSS_STATUS_TRYAGAIN and errno is ERANGE the
provided buffer is too small. In this case we should give
diff --git a/nss/getXXent_r.c b/nss/getXXent_r.c
index 49064619ae..02a723d6bc 100644
--- a/nss/getXXent_r.c
+++ b/nss/getXXent_r.c
@@ -164,7 +164,7 @@ SETFUNC_NAME (STAYOPEN)
while (! no_more)
{
int is_last_nip = nip == last_nip;
- enum nss_status status = (*fct) (STAYOPEN_VAR);
+ enum nss_status status = _CALL_DL_FCT (fct, (STAYOPEN_VAR));
no_more = __nss_next (&nip, SETFUNC_NAME_STRING, (void **) &fct,
status, 0);
@@ -201,7 +201,7 @@ ENDFUNC_NAME (void)
while (! no_more)
{
/* Ignore status, we force check in __NSS_NEXT. */
- (void) (*fct) ();
+ _CALL_DL_FCT (fct, ());
if (nip == last_nip)
/* We have processed all services which were used. */
@@ -245,7 +245,8 @@ INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer, size_t buflen,
{
int is_last_nip = nip == last_nip;
- status = (*fct) (resbuf, buffer, buflen, &errno H_ERRNO_VAR);
+ status = _CALL_DL_FCT (fct,
+ (resbuf, buffer, buflen, &errno H_ERRNO_VAR));
/* The the status is NSS_STATUS_TRYAGAIN and errno is ERANGE the
provided buffer is too small. In this case we should give
@@ -276,7 +277,7 @@ INTERNAL (REENTRANT_GETNAME) (LOOKUP_TYPE *resbuf, char *buffer, size_t buflen,
(void **) &sfct);
if (! no_more)
- status = (*sfct) (STAYOPEN_TMPVAR);
+ status = _CALL_DL_FCT (sfct, (STAYOPEN_TMPVAR));
else
status = NSS_STATUS_NOTFOUND;
}
diff --git a/nss/nsswitch.h b/nss/nsswitch.h
index 8ba0294ae5..412936976a 100644
--- a/nss/nsswitch.h
+++ b/nss/nsswitch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998 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
@@ -26,6 +26,7 @@
#include <nss.h>
#include <resolv.h>
#include <search.h>
+#include <elf/ldsodefs.h>
/* Actions performed after lookup finished. */