From 1bbe166e15e2c005c49c0aa53b8d106315d95ad0 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sun, 9 Sep 2018 01:12:30 -0400 Subject: [PATCH] move tlsdesc and internal dl function declarations to dynlink.h --- ldso/dynlink.c | 4 ---- src/internal/dynlink.h | 10 ++++++++++ src/ldso/__dlsym.c | 3 +-- src/ldso/dlclose.c | 3 +-- src/ldso/dlerror.c | 3 +-- src/ldso/dlinfo.c | 5 +---- src/ldso/dlopen.c | 3 +-- src/ldso/dlsym.c | 3 +-- src/ldso/tlsdesc.c | 3 +-- 9 files changed, 17 insertions(+), 20 deletions(-) diff --git a/ldso/dynlink.c b/ldso/dynlink.c index f78a02e6..7200c817 100644 --- a/ldso/dynlink.c +++ b/ldso/dynlink.c @@ -299,8 +299,6 @@ static struct symdef find_sym(struct dso *dso, const char *s, int need_def) return def; } -hidden ptrdiff_t __tlsdesc_static(), __tlsdesc_dynamic(); - static void do_relocs(struct dso *dso, size_t *rel, size_t rel_size, size_t stride) { unsigned char *base = dso->base; @@ -2048,8 +2046,6 @@ int dl_iterate_phdr(int(*callback)(struct dl_phdr_info *info, size_t size, void return ret; } -hidden void __dl_vseterr(const char *, va_list); - static void error(const char *fmt, ...) { va_list ap; diff --git a/src/internal/dynlink.h b/src/internal/dynlink.h index 5717627a..90b6e481 100644 --- a/src/internal/dynlink.h +++ b/src/internal/dynlink.h @@ -4,6 +4,8 @@ #include #include #include +#include +#include "libc.h" #if UINTPTR_MAX == 0xffffffff typedef Elf32_Ehdr Ehdr; @@ -95,4 +97,12 @@ struct fdpic_dummy_loadmap { 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 diff --git a/src/ldso/__dlsym.c b/src/ldso/__dlsym.c index bf99dff8..012994a7 100644 --- a/src/ldso/__dlsym.c +++ b/src/ldso/__dlsym.c @@ -1,8 +1,7 @@ #include +#include "dynlink.h" #include "libc.h" -hidden void __dl_seterr(const char *, ...); - static void *stub_dlsym(void *restrict p, const char *restrict s, void *restrict ra) { __dl_seterr("Symbol not found: %s", s); diff --git a/src/ldso/dlclose.c b/src/ldso/dlclose.c index a774209d..b839fe2f 100644 --- a/src/ldso/dlclose.c +++ b/src/ldso/dlclose.c @@ -1,8 +1,7 @@ #include +#include "dynlink.h" #include "libc.h" -hidden int __dl_invalid_handle(void *); - int dlclose(void *p) { return __dl_invalid_handle(p); diff --git a/src/ldso/dlerror.c b/src/ldso/dlerror.c index c8c718ab..7e5ec23d 100644 --- a/src/ldso/dlerror.c +++ b/src/ldso/dlerror.c @@ -2,6 +2,7 @@ #include #include #include "pthread_impl.h" +#include "dynlink.h" #include "libc.h" char *dlerror() @@ -50,8 +51,6 @@ hidden void __dl_seterr(const char *fmt, ...) va_end(ap); } -hidden int __dl_invalid_handle(void *); - static int stub_invalid_handle(void *h) { __dl_seterr("Invalid library handle %p", (void *)h); diff --git a/src/ldso/dlinfo.c b/src/ldso/dlinfo.c index 1e2c5500..a8a5ad56 100644 --- a/src/ldso/dlinfo.c +++ b/src/ldso/dlinfo.c @@ -1,11 +1,8 @@ #define _GNU_SOURCE #include +#include "dynlink.h" #include "libc.h" -hidden int __dl_invalid_handle(void *); - -hidden void __dl_seterr(const char *, ...); - int dlinfo(void *dso, int req, void *res) { if (__dl_invalid_handle(dso)) return -1; diff --git a/src/ldso/dlopen.c b/src/ldso/dlopen.c index 6b1d792a..9544741b 100644 --- a/src/ldso/dlopen.c +++ b/src/ldso/dlopen.c @@ -1,8 +1,7 @@ #include +#include "dynlink.h" #include "libc.h" -hidden void __dl_seterr(const char *, ...); - static void *stub_dlopen(const char *file, int mode) { __dl_seterr("Dynamic loading not supported"); diff --git a/src/ldso/dlsym.c b/src/ldso/dlsym.c index c0f50e92..65eb2765 100644 --- a/src/ldso/dlsym.c +++ b/src/ldso/dlsym.c @@ -1,6 +1,5 @@ #include - -void *__dlsym(void *restrict, const char *restrict, void *restrict); +#include "dynlink.h" void *dlsym(void *restrict p, const char *restrict s) { diff --git a/src/ldso/tlsdesc.c b/src/ldso/tlsdesc.c index df7eb9c9..caf8dc08 100644 --- a/src/ldso/tlsdesc.c +++ b/src/ldso/tlsdesc.c @@ -1,8 +1,7 @@ #include +#include #include "libc.h" -hidden ptrdiff_t __tlsdesc_static(), __tlsdesc_dynamic(); - ptrdiff_t __tlsdesc_static() { return 0;