mirror of git://git.musl-libc.org/musl
link.h: expose glibc/svr4 dynlinker debugging glue
this is already implemented in the dynliker (see struct debug), but was not exposed. we need it to do so to make wine happy...
This commit is contained in:
parent
58bba42d1b
commit
26cf9c3c6b
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include <elf.h>
|
||||
#define __NEED_size_t
|
||||
#define __NEED_uint32_t
|
||||
#include <bits/alltypes.h>
|
||||
|
||||
#if UINTPTR_MAX > 0xffffffff
|
||||
|
@ -11,6 +12,9 @@
|
|||
#define ElfW(type) Elf32_ ## type
|
||||
#endif
|
||||
|
||||
/* this is the same everywhere except alpha and s390 */
|
||||
typedef uint32_t Elf_Symndx;
|
||||
|
||||
struct dl_phdr_info {
|
||||
ElfW(Addr) dlpi_addr;
|
||||
const char *dlpi_name;
|
||||
|
@ -22,6 +26,21 @@ struct dl_phdr_info {
|
|||
void *dlpi_tls_data;
|
||||
};
|
||||
|
||||
struct link_map {
|
||||
ElfW(Addr) l_addr;
|
||||
char *l_name;
|
||||
ElfW(Dyn) *l_ld;
|
||||
struct link_map *l_next, *l_prev;
|
||||
};
|
||||
|
||||
struct r_debug {
|
||||
int r_version;
|
||||
struct link_map *r_map;
|
||||
ElfW(Addr) r_brk;
|
||||
enum { RT_CONSISTENT, RT_ADD, RT_DELETE } r_state;
|
||||
ElfW(Addr) r_ldbase;
|
||||
};
|
||||
|
||||
int dl_iterate_phdr(int (*)(struct dl_phdr_info *, size_t, void *), void *);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue