summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/autoload.h
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/autoload.h')
-rw-r--r--winsup/cygwin/autoload.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/winsup/cygwin/autoload.h b/winsup/cygwin/autoload.h
index b51df4121..c7f8e32e1 100644
--- a/winsup/cygwin/autoload.h
+++ b/winsup/cygwin/autoload.h
@@ -11,10 +11,20 @@ Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
#define LoadDLLinitfunc(dllname) \
+LoadDLLinitfuncdef(dllname) \
+{ \
+ return LoadDLLstdfunc(dllname); \
+}
+
+#define LoadDLLinitfuncdef(dllname) \
HANDLE NO_COPY dllname ## _handle = NULL; \
+LONG NO_COPY dllname ## _here = -1L; \
/*static*/ int dllname ## _init () __asm__ (#dllname "_init"); \
/*static*/ int dllname ## _init ()
+#define LoadDLLstdfunc(dllname) \
+ std_dll_init (dllname ## _handle, #dllname ".dll", dllname ## _here)
+
#define LoadDLLinitnow(dllname) \
({__asm__ ("movl $cygwin_dll_func_load, " #dllname "_init_holder"); dllname##_init ();})