mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-22 22:22:05 +03:00
f419bcb9dc
based on patches submitted by boris brezillon. this commit also fixes the issue whereby the main application and libc don't have the address ranges of their mappings stored, which was theoretically a problem for RTLD_NEXT support in dlsym; it didn't actually matter because libc never calls dlsym, and it seemed to be doing the right thing (by chance) for symbols in the main program as well.
36 lines
557 B
C
36 lines
557 B
C
#ifndef _DLFCN_H
|
|
#define _DLFCN_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define RTLD_LAZY 1
|
|
#define RTLD_NOW 2
|
|
#define RTLD_GLOBAL 256
|
|
#define RTLD_LOCAL 0
|
|
|
|
#define RTLD_NEXT ((void *)-1)
|
|
#define RTLD_DEFAULT ((void *)0)
|
|
|
|
int dlclose(void *);
|
|
char *dlerror(void);
|
|
void *dlopen(const char *, int);
|
|
void *dlsym(void *, const char *);
|
|
|
|
#ifdef _GNU_SOURCE
|
|
typedef struct {
|
|
const char *dli_fname;
|
|
void *dli_fbase;
|
|
const char *dli_sname;
|
|
void *dli_saddr;
|
|
} Dl_info;
|
|
int dladdr(void *, Dl_info *);
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|