mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-23 06:32:05 +03:00
implement minimal dlinfo function
This commit is contained in:
parent
2b0af609ef
commit
780cbbe63a
@ -17,6 +17,8 @@ extern "C" {
|
||||
#define RTLD_NEXT ((void *)-1)
|
||||
#define RTLD_DEFAULT ((void *)0)
|
||||
|
||||
#define RTLD_DI_LINKMAP 2
|
||||
|
||||
int dlclose(void *);
|
||||
char *dlerror(void);
|
||||
void *dlopen(const char *, int);
|
||||
@ -30,6 +32,7 @@ typedef struct {
|
||||
void *dli_saddr;
|
||||
} Dl_info;
|
||||
int dladdr(void *, Dl_info *);
|
||||
int dlinfo(void *, int, void *);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
8
src/ldso/dlinfo.c
Normal file
8
src/ldso/dlinfo.c
Normal file
@ -0,0 +1,8 @@
|
||||
#include <dlfcn.h>
|
||||
|
||||
int __dlinfo(void *, int, void *);
|
||||
|
||||
int dlinfo(void *dso, int req, void *res)
|
||||
{
|
||||
return __dlinfo(dso, req, res);
|
||||
}
|
@ -1273,6 +1273,18 @@ int __dladdr (void *addr, Dl_info *info)
|
||||
}
|
||||
#endif
|
||||
|
||||
int __dlinfo(void *dso, int req, void *res)
|
||||
{
|
||||
if (invalid_dso_handle(dso)) return -1;
|
||||
if (req != RTLD_DI_LINKMAP) {
|
||||
snprintf(errbuf, sizeof errbuf, "Unsupported request %d", req);
|
||||
errflag = 1;
|
||||
return -1;
|
||||
}
|
||||
*(struct link_map **)res = dso;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *dlerror()
|
||||
{
|
||||
if (!errflag) return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user