summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ldso/dlopen.c13
-rw-r--r--src/ldso/dynlink.c5
2 files changed, 13 insertions, 5 deletions
diff --git a/src/ldso/dlopen.c b/src/ldso/dlopen.c
new file mode 100644
index 00000000..dcdb4398
--- /dev/null
+++ b/src/ldso/dlopen.c
@@ -0,0 +1,13 @@
+#include <dlfcn.h>
+#include "libc.h"
+
+__attribute__((__visibility__("hidden")))
+void __dl_seterr(const char *, ...);
+
+static void *stub_dlopen(const char *file, int mode)
+{
+ __dl_seterr("Dynamic loading not supported");
+ return 0;
+}
+
+weak_alias(stub_dlopen, dlopen);
diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c
index 2598063e..43f86fa3 100644
--- a/src/ldso/dynlink.c
+++ b/src/ldso/dynlink.c
@@ -1914,11 +1914,6 @@ int dl_iterate_phdr(int(*callback)(struct dl_phdr_info *info, size_t size, void
return ret;
}
#else
-void *dlopen(const char *file, int mode)
-{
- error("Dynamic loading not supported");
- return 0;
-}
void *__dlsym(void *restrict p, const char *restrict s, void *restrict ra)
{
error("Symbol not found: %s", s);