Blob Blame History Raw
--- glib/glib-init.c.orig	2013-03-23 12:07:27.009718160 +0100
+++ glib/glib-init.c	2013-03-23 13:00:24.460030271 +0100
@@ -223,12 +223,14 @@
 
 #if defined (G_OS_WIN32)
 
+HMODULE glib_dll = NULL;
+
+#if defined (DLL_EXPORT)
+
 BOOL WINAPI DllMain (HINSTANCE hinstDLL,
                      DWORD     fdwReason,
                      LPVOID    lpvReserved);
 
-HMODULE glib_dll;
-
 BOOL WINAPI
 DllMain (HINSTANCE hinstDLL,
          DWORD     fdwReason,
@@ -238,9 +240,6 @@
     {
     case DLL_PROCESS_ATTACH:
       glib_dll = hinstDLL;
-      g_clock_win32_init ();
-      g_thread_win32_init ();
-      glib_init ();
       break;
 
     case DLL_THREAD_DETACH:
@@ -255,7 +254,10 @@
   return TRUE;
 }
 
-#elif defined (G_HAS_CONSTRUCTORS)
+#endif /* defined (DLL_EXPORT) */
+#endif /* defined (G_OS_WIN32) */
+
+#if defined (G_HAS_CONSTRUCTORS)
 
 #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
 #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(glib_init_ctor)
@@ -265,6 +267,10 @@
 static void
 glib_init_ctor (void)
 {
+#if defined (G_OS_WIN32)
+  g_clock_win32_init ();
+  g_thread_win32_init ();
+#endif
   glib_init ();
 }