pkg-config/glib-patches/win32-static-init.patch

33 lines
761 B
Diff
Raw Permalink Normal View History

When glib is built static, the threads and clock code are not
initialized since DllMain is never run. Instead, initialize them from
the glib constructor.
https://bugzilla.gnome.org/show_bug.cgi?id=678387
diff --git a/glib/glib/glib-init.c b/glib/glib/glib-init.c
index f4edd5c..3ec89a0 100644
--- a/glib/glib/glib-init.c
+++ b/glib/glib/glib-init.c
@@ -225,6 +225,10 @@ glib_init (void)
HMODULE glib_dll;
+#endif
+
+#if defined (G_OS_WIN32) && !defined (GLIB_STATIC_COMPILATION)
+
BOOL WINAPI
DllMain (HINSTANCE hinstDLL,
DWORD fdwReason,
@@ -261,6 +265,10 @@ G_DEFINE_CONSTRUCTOR(glib_init_ctor)
static void
glib_init_ctor (void)
{
+#ifdef G_OS_WIN32
+ g_clock_win32_init ();
+ g_thread_win32_init ();
+#endif
glib_init ();
}