about summary refs log tree commit diff
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)
downloadglibc-5ad49c070734c57f35cfe045572fb22158870c78.tar.gz
glibc-5ad49c070734c57f35cfe045572fb22158870c78.tar.xz
glibc-5ad49c070734c57f35cfe045572fb22158870c78.zip
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.  */