X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Finternal%2Fdynlink.h;h=764e3a1a8fa932ab613e854998055cff3e7e0638;hb=41b290ba397067a09525b6ac89b4040728349046;hp=48890b2db50ec5bc6178b506964c6eb900f6bdb4;hpb=c18d05f0e8909ec54252b251c441b5dd903268f8;p=musl diff --git a/src/internal/dynlink.h b/src/internal/dynlink.h index 48890b2d..764e3a1a 100644 --- a/src/internal/dynlink.h +++ b/src/internal/dynlink.h @@ -4,6 +4,8 @@ #include #include #include +#include +#include #if UINTPTR_MAX == 0xffffffff typedef Elf32_Ehdr Ehdr; @@ -11,12 +13,14 @@ typedef Elf32_Phdr Phdr; typedef Elf32_Sym Sym; #define R_TYPE(x) ((x)&255) #define R_SYM(x) ((x)>>8) +#define R_INFO ELF32_R_INFO #else typedef Elf64_Ehdr Ehdr; typedef Elf64_Phdr Phdr; typedef Elf64_Sym Sym; #define R_TYPE(x) ((x)&0x7fffffff) #define R_SYM(x) ((x)>>32) +#define R_INFO ELF64_R_INFO #endif /* These enum constants provide unmatchable default values for @@ -24,6 +28,7 @@ typedef Elf64_Sym Sym; enum { REL_NONE = 0, REL_SYMBOLIC = -100, + REL_USYMBOLIC, REL_GOT, REL_PLT, REL_RELATIVE, @@ -91,6 +96,13 @@ struct fdpic_dummy_loadmap { #define DYN_CNT 32 typedef void (*stage2_func)(unsigned char *, size_t *); -typedef _Noreturn void (*stage3_func)(size_t *); + +hidden void *__dlsym(void *restrict, const char *restrict, void *restrict); + +hidden void __dl_seterr(const char *, ...); +hidden int __dl_invalid_handle(void *); +hidden void __dl_vseterr(const char *, va_list); + +hidden ptrdiff_t __tlsdesc_static(), __tlsdesc_dynamic(); #endif