summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2018-09-09 01:12:30 -0400
committerRich Felker <dalias@aerifal.cx>2018-09-12 14:34:31 -0400
commit1bbe166e15e2c005c49c0aa53b8d106315d95ad0 (patch)
tree5ba53e9b0734e39e67617c2a3449f4b4c4fe9bfa
parent15230afc8dd5e6493da7cb5fcf0153672dab79d6 (diff)
downloadmusl-1bbe166e15e2c005c49c0aa53b8d106315d95ad0.tar.gz
musl-1bbe166e15e2c005c49c0aa53b8d106315d95ad0.tar.bz2
musl-1bbe166e15e2c005c49c0aa53b8d106315d95ad0.tar.xz
musl-1bbe166e15e2c005c49c0aa53b8d106315d95ad0.zip
move tlsdesc and internal dl function declarations to dynlink.h
-rw-r--r--ldso/dynlink.c4
-rw-r--r--src/internal/dynlink.h10
-rw-r--r--src/ldso/__dlsym.c3
-rw-r--r--src/ldso/dlclose.c3
-rw-r--r--src/ldso/dlerror.c3
-rw-r--r--src/ldso/dlinfo.c5
-rw-r--r--src/ldso/dlopen.c3
-rw-r--r--src/ldso/dlsym.c3
-rw-r--r--src/ldso/tlsdesc.c3
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 <features.h>
#include <elf.h>
#include <stdint.h>
+#include <stddef.h>
+#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 <dlfcn.h>
+#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 <dlfcn.h>
+#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 <stdlib.h>
#include <stdarg.h>
#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 <dlfcn.h>
+#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 <dlfcn.h>
+#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 <dlfcn.h>
-
-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 <stddef.h>
+#include <dynlink.h>
#include "libc.h"
-hidden ptrdiff_t __tlsdesc_static(), __tlsdesc_dynamic();
-
ptrdiff_t __tlsdesc_static()
{
return 0;