Remove DllMain from static glib2 libraries

This commit is contained in:
Jeroen Ooms
2016-08-02 16:05:31 +02:00
parent 6fa557dbc4
commit 3fa9b918d4
4 changed files with 52 additions and 10 deletions

View File

@@ -0,0 +1,29 @@
--- gdk-pixbuf-2.35.1-orig/gdk-pixbuf/gdk-pixbuf-io.c 2016-04-26 21:34:17.000000000 +0200
+++ gdk-pixbuf-2.35.1/gdk-pixbuf/gdk-pixbuf-io.c 2016-08-02 17:27:21.952759200 +0200
@@ -191,7 +191,7 @@
return file_formats;
}
-#ifdef G_OS_WIN32
+#if defined (G_OS_WIN32) && defined (DLL_EXPORT)
/* DllMain function needed to tuck away the gdk-pixbuf DLL handle */
@@ -221,7 +221,7 @@
static gchar *toplevel = NULL;
if (toplevel == NULL) {
-#if defined(G_OS_WIN32)
+#if defined (G_OS_WIN32) && defined (DLL_EXPORT)
toplevel = g_win32_get_package_installation_directory_of_module (gdk_pixbuf_dll);
#elif defined(OS_DARWIN)
char pathbuf[PATH_MAX + 1];
@@ -232,7 +232,7 @@
bin_dir = g_dirname(pathbuf);
toplevel = g_build_path (G_DIR_SEPARATOR_S, bin_dir, "..", NULL);
g_free (bin_dir);
-#elif defined (OS_LINUX)
+#elif defined (OS_LINUX) || defined(__MINGW32__)
gchar *exe_path, *bin_dir;
exe_path = g_file_read_link ("/proc/self/exe", NULL);

View File

@@ -24,15 +24,18 @@ options=('emptydirs')
install=${_realname}-${CARCH}.install
source=("https://download.gnome.org/sources/gdk-pixbuf/${pkgver%.*}/gdk-pixbuf-${pkgver}.tar.xz"
0001-Use-a-regex-to-properly-export-the-symbols.patch
0002-gdk-pixbuf-introspection.patch)
0002-gdk-pixbuf-introspection.patch
0003-fix-dllmain.patch)
sha256sums=('51eba2550262bc1f1ad3569b4420f55b9261d2fc477e33a8d9b34c7e7f0d5631'
'e8d278e30c44e973e14e3c61e8ab195621d6a9a402e0da557db4616955ca4543'
'dd496d66f0a6b369410fb4039e116ac7d6c2808c97998932a1f8f70b58f88ce2')
'dd496d66f0a6b369410fb4039e116ac7d6c2808c97998932a1f8f70b58f88ce2'
'21bd9b2ba1447267c84f1b445cbcf50c62299254856c1c227cc7ba4babc9f27e')
prepare() {
cd ${srcdir}/gdk-pixbuf-${pkgver}
patch -p1 -i "${srcdir}"/0001-Use-a-regex-to-properly-export-the-symbols.patch
patch -p1 -i "${srcdir}"/0002-gdk-pixbuf-introspection.patch
patch -p1 -i "${srcdir}"/0003-fix-dllmain.patch
autoreconf -fi
}

View File

@@ -1,7 +1,6 @@
diff -Naur glib-2.46.0-orig/glib/glib-init.c glib-2.46.0/glib/glib-init.c
--- glib-2.46.0-orig/glib/glib-init.c 2015-09-12 18:13:45.000000000 +0300
+++ glib-2.46.0/glib/glib-init.c 2015-09-22 09:09:00.512195800 +0300
@@ -238,12 +238,14 @@
--- glib-2.48.1-orig/glib/glib-init.c 2016-05-10 10:54:30.000000000 +0200
+++ glib-2.48.1/glib/glib-init.c 2016-08-02 15:34:00.453365600 +0200
@@ -245,12 +245,14 @@
#if defined (G_OS_WIN32)
@@ -18,7 +17,7 @@ diff -Naur glib-2.46.0-orig/glib/glib-init.c glib-2.46.0/glib/glib-init.c
BOOL WINAPI
DllMain (HINSTANCE hinstDLL,
DWORD fdwReason,
@@ -253,11 +255,6 @@
@@ -260,11 +262,6 @@
{
case DLL_PROCESS_ATTACH:
glib_dll = hinstDLL;
@@ -30,7 +29,7 @@ diff -Naur glib-2.46.0-orig/glib/glib-init.c glib-2.46.0/glib/glib-init.c
break;
case DLL_THREAD_DETACH:
@@ -274,7 +271,10 @@
@@ -288,7 +285,10 @@
return TRUE;
}
@@ -42,7 +41,7 @@ diff -Naur glib-2.46.0-orig/glib/glib-init.c glib-2.46.0/glib/glib-init.c
#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA
#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(glib_init_ctor)
@@ -284,6 +284,12 @@
@@ -298,6 +298,12 @@
static void
glib_init_ctor (void)
{
@@ -55,3 +54,14 @@ diff -Naur glib-2.46.0-orig/glib/glib-init.c glib-2.46.0/glib/glib-init.c
glib_init ();
}
--- glib-2.48.1-orig/gobject/gtype.c 2016-02-29 15:32:08.000000000 +0100
+++ glib-2.48.1/gobject/gtype.c 2016-08-02 15:34:05.794575300 +0200
@@ -4459,7 +4459,7 @@
_g_signal_init ();
}
-#if defined (G_OS_WIN32)
+#if defined (G_OS_WIN32) && defined (DLL_EXPORT)
BOOL WINAPI DllMain (HINSTANCE hinstDLL,
DWORD fdwReason,

View File

@@ -33,7 +33,7 @@ source=("https://download.gnome.org/sources/glib/${pkgver%.*}/glib-${pkgver}.tar
sha256sums=('74411bff489cb2a3527bac743a51018841a56a4d896cc1e0d0d54f8166a14612'
'ef81e82e15fb3a71bad770be17fe4fea3f4d9cdee238d6caa39807eeea5da3e3'
'1b24cc928f69f73599f83269a7b3eb7bf7efbe114109251e6765053a1e1f4cd6'
'7b099af0c562f397458542482d6d1debe437f220762aa2ed94b2e6c4d43dd8a6'
'7155b0cdba60a154901336cd231dc2bfc771dc2abfd7d5a577a79c29d5facbb4'
'e916e4913632485b314269a5c8888e2eff25bb7034f244bc235c08ba7f28b5ea'
'd1d35bb7865527422e28635ed373731e800c30ff5732c7bf8c66be37158509fb'
'5cb481295ff86c2802030984d8b2bf6a3b1dcd5e5fe7b0be68b22d9116305837'