1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
From 8e305b0035df336620f66d0ca4bb2a162a4977ed Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Mon, 25 Jan 2021 08:39:31 +0100
Subject: [PATCH 1/2] call omp_pause_resource_all when available
---
config.m4 | 2 ++
imagick.c | 8 ++++++++
2 files changed, 10 insertions(+)
diff --git a/config.m4 b/config.m4
index 15260dc..dfb73a1 100644
--- a/config.m4
+++ b/config.m4
@@ -58,6 +58,8 @@ IM_FIND_IMAGEMAGICK([6.2.4], [$PHP_IMAGICK])
LIBS=$old_LIBS
+ PHP_CHECK_FUNC(omp_pause_resource_all, gomp)
+
PHP_SUBST(IMAGICK_SHARED_LIBADD)
AC_DEFINE(HAVE_IMAGICK,1,[ ])
PHP_NEW_EXTENSION(imagick, imagick_file.c imagick_class.c imagickdraw_class.c imagickpixel_class.c imagickpixeliterator_class.c imagick_helpers.c imagick.c imagickkernel_class.c shim_im6_to_im7.c, $ext_shared,, $IM_IMAGEMAGICK_CFLAGS)
diff --git a/imagick.c b/imagick.c
index cd7f98e..5822b36 100644
--- a/imagick.c
+++ b/imagick.c
@@ -35,6 +35,10 @@
/* For the countable interface */
#include "ext/spl/spl_iterators.h"
+#if HAVE_OMP_PAUSE_RESOURCE_ALL
+#include <omp.h>
+#endif
+
ZEND_DECLARE_MODULE_GLOBALS(imagick)
#ifdef IMAGICK_WITH_KERNEL
@@ -3953,6 +3957,9 @@ PHP_MSHUTDOWN_FUNCTION(imagick)
MagickWandTerminus();
+#if HAVE_OMP_PAUSE_RESOURCE_ALL
+ omp_pause_resource_all(omp_pause_hard);
+#else
// Sleep for a bit to hopefully allow OpenMP to
// shut down the threads it created, and avoid a segfault
// This hack won't be needed once everyone is compiling ImageMagick
@@ -3960,6 +3967,7 @@ PHP_MSHUTDOWN_FUNCTION(imagick)
for (i = 0; i < 100 && i < IMAGICK_G(shutdown_sleep_count); i += 1) {
usleep(1000);
}
+#endif
#if defined(ZTS) && defined(PHP_WIN32)
tsrm_mutex_free(imagick_mutex);
From 071d6441ba02664e50cf021f8653b8e4d3014608 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Mon, 25 Jan 2021 15:15:14 +0100
Subject: [PATCH 2/2] improve check
---
config.m4 | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/config.m4 b/config.m4
index dfb73a1..b92db01 100644
--- a/config.m4
+++ b/config.m4
@@ -58,7 +58,18 @@ IM_FIND_IMAGEMAGICK([6.2.4], [$PHP_IMAGICK])
LIBS=$old_LIBS
- PHP_CHECK_FUNC(omp_pause_resource_all, gomp)
+ AC_MSG_CHECKING(omp_pause_resource_all usability)
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include <omp.h>
+ ]],[[
+ omp_pause_resource_all(omp_pause_hard);
+ ]])],[
+ AC_MSG_RESULT(yes)
+ PHP_CHECK_FUNC(omp_pause_resource_all, gomp)
+ PHP_ADD_LIBRARY(gomp,, GMAGICK_SHARED_LIBADD)
+ ],[
+ AC_MSG_RESULT(no)
+ ])
PHP_SUBST(IMAGICK_SHARED_LIBADD)
AC_DEFINE(HAVE_IMAGICK,1,[ ])
From d507dd74ee46ca8db0b659e4151f5e5440056aca Mon Sep 17 00:00:00 2001
From: Danack <Danack@basereality.com>
Date: Mon, 7 Jun 2021 22:01:14 +0100
Subject: [PATCH] Tpyo.
---
config.m4 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/config.m4 b/config.m4
index 9037f7ab..d1310a3e 100644
--- a/config.m4
+++ b/config.m4
@@ -68,7 +68,7 @@ IM_FIND_IMAGEMAGICK([6.2.4], [$PHP_IMAGICK])
]])],[
AC_MSG_RESULT(yes)
PHP_CHECK_FUNC(omp_pause_resource_all, gomp)
- PHP_ADD_LIBRARY(gomp,, GMAGICK_SHARED_LIBADD)
+ PHP_ADD_LIBRARY(gomp,, IMAGICK_SHARED_LIBADD)
],[
AC_MSG_RESULT(no)
])
|