add hooks to support the dladdr function.
This commit is contained in:
parent
1d46ce41ea
commit
c0cf420b69
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: common.c,v 1.4 1999/08/19 20:52:36 kleink Exp $ */
|
||||
/* $NetBSD: common.c,v 1.5 2000/02/07 21:40:40 scottb Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1995 Christopher G. Demetriou
|
||||
@ -61,6 +61,7 @@ __weak_alias(dlopen,_dlopen);
|
||||
__weak_alias(dlclose,_dlclose);
|
||||
__weak_alias(dlsym,_dlsym);
|
||||
__weak_alias(dlerror,_dlerror);
|
||||
__weak_alias(dladdr,_dladdr);
|
||||
#endif
|
||||
|
||||
void
|
||||
@ -131,4 +132,13 @@ dlerror()
|
||||
return ("Dynamic linker interface not available");
|
||||
return (__mainprog_obj->dlerror)();
|
||||
}
|
||||
|
||||
int
|
||||
dladdr(void *addr, Dl_info *dli)
|
||||
{
|
||||
|
||||
if (__mainprog_obj == NULL)
|
||||
return -1;
|
||||
return (__mainprog_obj->dladdr)(addr, dli);
|
||||
}
|
||||
#endif /* DYNAMIC */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: common.h,v 1.3 1999/08/19 20:52:36 kleink Exp $ */
|
||||
/* $NetBSD: common.h,v 1.4 2000/02/07 21:40:40 scottb Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1995 Christopher G. Demetriou
|
||||
@ -42,6 +42,7 @@
|
||||
#define dlclose _dlclose
|
||||
#define dlsym _dlsym
|
||||
#define dlerror _dlerror
|
||||
#define dladdr _dladdr
|
||||
#endif
|
||||
#include <dlfcn.h>
|
||||
#include "rtld.h"
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: reloc.c,v 1.24 1999/12/08 08:47:10 itohy Exp $ */
|
||||
/* $NetBSD: reloc.c,v 1.25 2000/02/07 21:40:41 scottb Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 1996 John D. Polstra.
|
||||
@ -625,6 +625,7 @@ _rtld_relocate_objects(first, bind_now, dodebug)
|
||||
obj->dlsym = _rtld_dlsym;
|
||||
obj->dlerror = _rtld_dlerror;
|
||||
obj->dlclose = _rtld_dlclose;
|
||||
obj->dladdr = _rtld_dladdr;
|
||||
|
||||
/* Set the special PLTGOT entries. */
|
||||
if (obj->pltgot != NULL) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: rtld.h,v 1.22 1999/12/15 05:22:37 christos Exp $ */
|
||||
/* $NetBSD: rtld.h,v 1.23 2000/02/07 21:40:42 scottb Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 1996 John D. Polstra.
|
||||
@ -193,6 +193,7 @@ typedef struct Struct_Obj_Entry {
|
||||
void *(*dlsym) __P((void *, const char *));
|
||||
char *(*dlerror) __P((void));
|
||||
int (*dlclose) __P((void *));
|
||||
int (*dladdr) __P((void *, Dl_info *));
|
||||
|
||||
int mainprog:1; /* True if this is the main program */
|
||||
int rtld:1; /* True if this is the dynamic linker */
|
||||
|
Loading…
Reference in New Issue
Block a user