1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-02 20:42:29 +03:00
* sysdeps/gnu/Makefile (libdl-routines): Add eval.

1999-07-06  Zack Weinberg  <zack@rabi.columbia.edu>

	* dlfcn: New directory.  Move the following files from elf:
	dladdr.c, dlclose.c, dlerror.c, dlfcn.h, dlopen.c,
	dlopenold.c, dlsym.c, dlvsym.c.
	* dlfcn/Makefile: New file.
	* dlfcn/Versions: New file.
	* dlfcn/dlsym.c: All ELF-specific code split out to new
	function _dl_sym.
	* dlfcn/dlvsym.c: All ELF-specific code split out to new
	function _dl_vsym.
	* elf/dl-sym.c: New file.  _dl_sym and _dl_vsym are
	implemented here.

	* dlfcn/dladdr.c: Remove all references to ELF data structures
	or headers.
	* dlfcn/dlclose.c: Likewise.
	* dlfcn/dlerror.c: Likewise.
	* dlfcn/dlopen.c: Likewise.
	* dlfcn/dlopenold.c: Likewise.

	* Makeconfig (dlfcn): New variable - set to `dlfcn' if elf is
	yes, empty otherwise.
	(libdl): Set to dlfcn/libdl.so or libdl.a if elf is yes,
	depending on build-shared.
	(subdirs): Add $(dlfcn).
	(rpath-dirs): Add dlfcn.
	* elf/Makefile: Remove all references to libdl or its
	components, except the ones relating to the test cases.
	(routines): Add dl-sym.
	* elf/Versions (libc): Add _dl_sym and _dl_vsym for GLIBC_2.2.
	(libdl): Delete.

	* elf/dl-close.c (_dl_close): Change argument to void *.
	* elf/dl-open.c (_dl_open): Change return type to void *.
	* elf/eval.c: Removed.
	* elf/ldsodefs.h: Move prototypes of _dl_catch_error,
	_dlerror_run, _dl_open, _dl_close, _dl_addr, and
	_dl_mcount_wrapper_check to include/dlfcn.h.  Delete
	_CALL_DL_FCT macro.
	* include/dlfcn.h: Also prototype _dl_sym and _dl_vsym here.
	Include real header from dlfcn directory.
	* include/ldsodefs.h: Removed.

	* grp/initgroups.c: Use DL_CALL_FCT not _CALL_DL_FCT.
	* nss/getXXbyYY_r.c: Likewise.
	* nss/getXXent_r.c: Likewise.
	* iconv/gconv.c: Likewise.  Don't include ldsodefs.h.
	* iconv/gconv_db.c: Likewise.  Don't include ldsodefs.h.
	* iconv/skeleton.c: Don't include ldsodefs.h.
	* nss/nsswitch.h: Don't include ldsodefs.h.  Include dlfcn.h.

1999-07-07  Ulrich Drepper  <drepper@cygnus.com>
This commit is contained in:
Ulrich Drepper
1999-07-07 18:39:33 +00:00
parent 2556bfe6fd
commit 94e365c612
31 changed files with 674 additions and 367 deletions

View File

@ -26,7 +26,6 @@
#include <sys/types.h>
#include <nsswitch.h>
/* Type of the lookup function. */
typedef enum nss_status (*initgroups_function) (const char *, gid_t,
long int *, long int *,
@ -67,7 +66,7 @@ compat_call (service_user *nip, const char *user, gid_t group, long int *start,
setgrent_fct = __nss_lookup_function (nip, "setgrent");
if (setgrent_fct)
{
status = _CALL_DL_FCT (setgrent_fct, ());
status = DL_CALL_FCT (setgrent_fct, ());
if (status != NSS_STATUS_SUCCESS)
return status;
}
@ -78,7 +77,7 @@ compat_call (service_user *nip, const char *user, gid_t group, long int *start,
do
{
while ((status = _CALL_DL_FCT (getgrent_fct,
while ((status = DL_CALL_FCT (getgrent_fct,
(&grpbuf, tmpbuf, buflen, errnop)),
status == NSS_STATUS_TRYAGAIN)
&& *errnop == ERANGE)
@ -122,7 +121,7 @@ compat_call (service_user *nip, const char *user, gid_t group, long int *start,
done:
if (endgrent_fct)
_CALL_DL_FCT (endgrent_fct, ());
DL_CALL_FCT (endgrent_fct, ());
return NSS_STATUS_SUCCESS;
}
@ -190,7 +189,7 @@ initgroups (user, group)
break;
}
else
status = _CALL_DL_FCT (fct, (user, group, &start, &size, groups, limit,
status = DL_CALL_FCT (fct, (user, group, &start, &size, groups, limit,
&errno));
/* This is really only for debugging. */