move static-linked stub dlopen out of dynlink.c
diff --git a/src/ldso/dlopen.c b/src/ldso/dlopen.c
new file mode 100644
index 0000000..dcdb439
--- /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 2598063..43f86fa 100644
--- a/src/ldso/dynlink.c
+++ b/src/ldso/dynlink.c
@@ -1914,11 +1914,6 @@
 	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);