summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-devtools
diff options
context:
space:
mode:
authorAnuj Mittal <anuj.mittal@intel.com>2018-04-03 17:50:15 +0800
committerArmin Kuster <akuster808@gmail.com>2018-04-08 17:00:06 -0700
commit0d052a48c9fd6d2207f150729a20804e416c91b1 (patch)
tree4e745b1c89b739a9f627a5042fec6a54e339dbed /meta-oe/recipes-devtools
parent1816eb77793140a1e5940e3dbc005df48ada6384 (diff)
downloadmeta-openembedded-0d052a48c9fd6d2207f150729a20804e416c91b1.tar.gz
php: add opcache extension to PACKAGECONFIG
OPcache improves PHP performance by storing precompiled script bytecode in shared memory, thereby removing the need for PHP to load and parse scripts on each request [1]. Add an option to enable opcache in php. AC_CHECK_FUNC isn't suitable for a cross-compile environment, so pass the configure options instead to force dlopen detection that is necessary to have extension support enabled. On a standard phpbench test, I see a performance improvement of > 40%. [1] http://php.net/manual/en/book.opcache.php Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
Diffstat (limited to 'meta-oe/recipes-devtools')
-rw-r--r--meta-oe/recipes-devtools/php/php.inc14
-rw-r--r--meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch39
-rw-r--r--meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch385
-rw-r--r--meta-oe/recipes-devtools/php/php/configure.patch21
-rw-r--r--meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch387
-rw-r--r--meta-oe/recipes-devtools/php/php_5.6.35.bb1
-rw-r--r--meta-oe/recipes-devtools/php/php_7.2.4.bb1
7 files changed, 822 insertions, 26 deletions
diff --git a/meta-oe/recipes-devtools/php/php.inc b/meta-oe/recipes-devtools/php/php.inc
index fbc750df8..8ba218c72 100644
--- a/meta-oe/recipes-devtools/php/php.inc
+++ b/meta-oe/recipes-devtools/php/php.inc
@@ -21,7 +21,7 @@ SRC_URI_append_class-target = " \
21 file://php_exec_native.patch \ 21 file://php_exec_native.patch \
22 file://php-fpm.conf \ 22 file://php-fpm.conf \
23 file://php-fpm-apache.conf \ 23 file://php-fpm-apache.conf \
24 file://configure.patch \ 24 file://0001-acinclude.m4-don-t-unset-cache-variables.patch \
25 file://70_mod_php${PHP_MAJOR_VERSION}.conf \ 25 file://70_mod_php${PHP_MAJOR_VERSION}.conf \
26 file://php-fpm.service \ 26 file://php-fpm.service \
27 " 27 "
@@ -40,7 +40,6 @@ PHP_LIBDIR = "${libdir}/php${PHP_MAJOR_VERSION}"
40COMMON_EXTRA_OECONF = "--enable-sockets \ 40COMMON_EXTRA_OECONF = "--enable-sockets \
41 --enable-pcntl \ 41 --enable-pcntl \
42 --enable-shared \ 42 --enable-shared \
43 --disable-opcache \
44 --disable-rpath \ 43 --disable-rpath \
45 --with-pic \ 44 --with-pic \
46 --libdir=${PHP_LIBDIR} \ 45 --libdir=${PHP_LIBDIR} \
@@ -59,6 +58,9 @@ EXTRA_OECONF = "--enable-mbstring \
59 ${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'ac_cv_lib_pam_pam_start=no', d)} \ 58 ${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'ac_cv_lib_pam_pam_start=no', d)} \
60 ${COMMON_EXTRA_OECONF} \ 59 ${COMMON_EXTRA_OECONF} \
61" 60"
61
62CACHED_CONFIGUREVARS += "ac_cv_func_dlopen=yes ac_cv_lib_dl_dlopen=yes"
63
62EXTRA_OECONF_class-native = " \ 64EXTRA_OECONF_class-native = " \
63 --with-zlib=${STAGING_LIBDIR_NATIVE}/.. \ 65 --with-zlib=${STAGING_LIBDIR_NATIVE}/.. \
64 --without-iconv \ 66 --without-iconv \
@@ -89,7 +91,7 @@ PACKAGECONFIG[imap] = "--with-imap=${STAGING_DIR_HOST} \
89 ,--without-imap --without-imap-ssl \ 91 ,--without-imap --without-imap-ssl \
90 ,uw-imap" 92 ,uw-imap"
91PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," 93PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
92 94PACKAGECONFIG[opcache] = ",--disable-opcache"
93 95
94export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}" 96export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}"
95export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php" 97export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php"
@@ -196,14 +198,14 @@ php_sysroot_preprocess () {
196 198
197MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', '${PN}-modphp', '', d)}" 199MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', '${PN}-modphp', '', d)}"
198 200
199PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}" 201PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}-opcache ${PN}"
200 202
201RDEPENDS_${PN} += "libgcc" 203RDEPENDS_${PN} += "libgcc"
202RDEPENDS_${PN}-pear = "${PN}" 204RDEPENDS_${PN}-pear = "${PN}"
203RDEPENDS_${PN}-phar = "${PN}-cli" 205RDEPENDS_${PN}-phar = "${PN}-cli"
204RDEPENDS_${PN}-cli = "${PN}" 206RDEPENDS_${PN}-cli = "${PN}"
205RDEPENDS_${PN}-modphp = "${PN} apache2" 207RDEPENDS_${PN}-modphp = "${PN} apache2"
206RDEPENDS_${PN}-dev = "${PN}" 208RDEPENDS_${PN}-opcache = "${PN}"
207 209
208INITSCRIPT_PACKAGES = "${PN}-fpm" 210INITSCRIPT_PACKAGES = "${PN}-fpm"
209inherit update-rc.d 211inherit update-rc.d
@@ -232,6 +234,8 @@ FILES_${PN}-dev = "${includedir}/php ${PHP_LIBDIR}/build ${bindir}/phpize \
232 ${bindir}/php-config ${PHP_LIBDIR}/php/.depdb \ 234 ${bindir}/php-config ${PHP_LIBDIR}/php/.depdb \
233 ${PHP_LIBDIR}/php/.depdblock ${PHP_LIBDIR}/php/.filemap \ 235 ${PHP_LIBDIR}/php/.depdblock ${PHP_LIBDIR}/php/.filemap \
234 ${PHP_LIBDIR}/php/.lock ${PHP_LIBDIR}/php/test" 236 ${PHP_LIBDIR}/php/.lock ${PHP_LIBDIR}/php/test"
237FILES_${PN}-staticdev += "${PHP_LIBDIR}/extensions/*/*.a"
238FILES_${PN}-opcache = "${PHP_LIBDIR}/extensions/*/opcache${SOLIBSDEV}"
235FILES_${PN} = "${PHP_LIBDIR}/php" 239FILES_${PN} = "${PHP_LIBDIR}/php"
236FILES_${PN} += "${bindir}" 240FILES_${PN} += "${bindir}"
237 241
diff --git a/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch b/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch
new file mode 100644
index 000000000..a250cac83
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch
@@ -0,0 +1,39 @@
1From dfebe81f946a83fe2499fc84d4f3dbdc5612276c Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Tue, 3 Apr 2018 11:35:03 +0800
4Subject: [PATCH] acinclude.m4: don't unset cache variables
5
6Unsetting prevents cache variable from being passed to configure.
7
8Upstream-Status: Inappropriate [OE-specific]
9
10Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
11---
12 acinclude.m4 | 4 ----
13 1 file changed, 4 deletions(-)
14
15diff --git a/acinclude.m4 b/acinclude.m4
16index f6a55ec..d3346df 100644
17--- a/acinclude.m4
18+++ b/acinclude.m4
19@@ -1890,8 +1890,6 @@ define([phpshift],[ifelse(index([$@],[,]),-1,,[substr([$@],incr(index([$@],[,]))
20 dnl
21 AC_DEFUN([PHP_CHECK_FUNC_LIB],[
22 ifelse($2,,:,[
23- unset ac_cv_lib_$2[]_$1
24- unset ac_cv_lib_$2[]___$1
25 unset found
26 AC_CHECK_LIB($2, $1, [found=yes], [
27 AC_CHECK_LIB($2, __$1, [found=yes], [found=no])
28@@ -1923,8 +1921,6 @@ dnl in the default libraries and as a fall back in the specified library.
29 dnl Defines HAVE_func and HAVE_library if found and adds the library to LIBS.
30 dnl
31 AC_DEFUN([PHP_CHECK_FUNC],[
32- unset ac_cv_func_$1
33- unset ac_cv_func___$1
34 unset found
35
36 AC_CHECK_FUNC($1, [found=yes],[ AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ])
37--
382.7.4
39
diff --git a/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch b/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
new file mode 100644
index 000000000..0d24d34f2
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
@@ -0,0 +1,385 @@
1From b2fb725dc404d471371731b663234e87cb0fca84 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Mon, 2 Apr 2018 17:54:52 +0800
4Subject: [PATCH] opcache/config.m4: enable opcache
5
6We can't use AC_TRY_RUN to run programs in a cross compile environment. Set
7the variables directly instead since we know that we'd be running on latest
8enough linux kernel.
9
10Upstream-Status: Inappropriate [Configuration]
11
12Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
13---
14 ext/opcache/config.m4 | 349 ++------------------------------------------------
15 1 file changed, 8 insertions(+), 341 deletions(-)
16
17diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
18index 7b500f0..10bb99a 100644
19--- a/ext/opcache/config.m4
20+++ b/ext/opcache/config.m4
21@@ -28,353 +28,20 @@ if test "$PHP_OPCACHE" != "no"; then
22
23 AC_CHECK_HEADERS([unistd.h sys/uio.h])
24
25- AC_MSG_CHECKING(for sysvipc shared memory support)
26- AC_TRY_RUN([
27-#include <sys/types.h>
28-#include <sys/wait.h>
29-#include <sys/ipc.h>
30-#include <sys/shm.h>
31-#include <unistd.h>
32-#include <string.h>
33+ AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
34
35-int main() {
36- pid_t pid;
37- int status;
38- int ipc_id;
39- char *shm;
40- struct shmid_ds shmbuf;
41+ AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
42
43- ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W));
44- if (ipc_id == -1) {
45- return 1;
46- }
47+ AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
48
49- shm = shmat(ipc_id, NULL, 0);
50- if (shm == (void *)-1) {
51- shmctl(ipc_id, IPC_RMID, NULL);
52- return 2;
53- }
54-
55- if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) {
56- shmdt(shm);
57- shmctl(ipc_id, IPC_RMID, NULL);
58- return 3;
59- }
60-
61- shmbuf.shm_perm.uid = getuid();
62- shmbuf.shm_perm.gid = getgid();
63- shmbuf.shm_perm.mode = 0600;
64-
65- if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) {
66- shmdt(shm);
67- shmctl(ipc_id, IPC_RMID, NULL);
68- return 4;
69- }
70-
71- shmctl(ipc_id, IPC_RMID, NULL);
72-
73- strcpy(shm, "hello");
74-
75- pid = fork();
76- if (pid < 0) {
77- return 5;
78- } else if (pid == 0) {
79- strcpy(shm, "bye");
80- return 6;
81- }
82- if (wait(&status) != pid) {
83- return 7;
84- }
85- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
86- return 8;
87- }
88- if (strcmp(shm, "bye") != 0) {
89- return 9;
90- }
91- return 0;
92-}
93-],dnl
94- AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
95- msg=yes,msg=no,msg=no)
96- AC_MSG_RESULT([$msg])
97-
98- AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
99- AC_TRY_RUN([
100-#include <sys/types.h>
101-#include <sys/wait.h>
102-#include <sys/mman.h>
103-#include <unistd.h>
104-#include <string.h>
105-
106-#ifndef MAP_ANON
107-# ifdef MAP_ANONYMOUS
108-# define MAP_ANON MAP_ANONYMOUS
109-# endif
110-#endif
111-#ifndef MAP_FAILED
112-# define MAP_FAILED ((void*)-1)
113-#endif
114-
115-int main() {
116- pid_t pid;
117- int status;
118- char *shm;
119-
120- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
121- if (shm == MAP_FAILED) {
122- return 1;
123- }
124-
125- strcpy(shm, "hello");
126-
127- pid = fork();
128- if (pid < 0) {
129- return 5;
130- } else if (pid == 0) {
131- strcpy(shm, "bye");
132- return 6;
133- }
134- if (wait(&status) != pid) {
135- return 7;
136- }
137- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
138- return 8;
139- }
140- if (strcmp(shm, "bye") != 0) {
141- return 9;
142- }
143- return 0;
144-}
145-],dnl
146- AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
147- msg=yes,msg=no,msg=no)
148- AC_MSG_RESULT([$msg])
149-
150- AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support)
151- AC_TRY_RUN([
152-#include <sys/types.h>
153-#include <sys/wait.h>
154-#include <sys/mman.h>
155-#include <sys/stat.h>
156-#include <fcntl.h>
157-#include <unistd.h>
158-#include <string.h>
159-
160-#ifndef MAP_FAILED
161-# define MAP_FAILED ((void*)-1)
162-#endif
163-
164-int main() {
165- pid_t pid;
166- int status;
167- int fd;
168- char *shm;
169-
170- fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR);
171- if (fd == -1) {
172- return 1;
173- }
174-
175- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
176- if (shm == MAP_FAILED) {
177- return 2;
178- }
179-
180- strcpy(shm, "hello");
181-
182- pid = fork();
183- if (pid < 0) {
184- return 5;
185- } else if (pid == 0) {
186- strcpy(shm, "bye");
187- return 6;
188- }
189- if (wait(&status) != pid) {
190- return 7;
191- }
192- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
193- return 8;
194- }
195- if (strcmp(shm, "bye") != 0) {
196- return 9;
197- }
198- return 0;
199-}
200-],dnl
201- AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
202- msg=yes,msg=no,msg=no)
203- AC_MSG_RESULT([$msg])
204-
205- AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
206- AC_TRY_RUN([
207-#include <sys/types.h>
208-#include <sys/wait.h>
209-#include <sys/mman.h>
210-#include <sys/stat.h>
211-#include <fcntl.h>
212-#include <unistd.h>
213-#include <string.h>
214-#include <stdlib.h>
215-#include <stdio.h>
216-
217-#ifndef MAP_FAILED
218-# define MAP_FAILED ((void*)-1)
219-#endif
220-
221-int main() {
222- pid_t pid;
223- int status;
224- int fd;
225- char *shm;
226- char tmpname[4096];
227-
228- sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
229- if (mktemp(tmpname) == NULL) {
230- return 1;
231- }
232- fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
233- if (fd == -1) {
234- return 2;
235- }
236- if (ftruncate(fd, 4096) < 0) {
237- close(fd);
238- shm_unlink(tmpname);
239- return 3;
240- }
241-
242- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
243- if (shm == MAP_FAILED) {
244- return 4;
245- }
246- shm_unlink(tmpname);
247- close(fd);
248-
249- strcpy(shm, "hello");
250-
251- pid = fork();
252- if (pid < 0) {
253- return 5;
254- } else if (pid == 0) {
255- strcpy(shm, "bye");
256- return 6;
257- }
258- if (wait(&status) != pid) {
259- return 7;
260- }
261- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
262- return 8;
263- }
264- if (strcmp(shm, "bye") != 0) {
265- return 9;
266- }
267- return 0;
268-}
269-],dnl
270- AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
271- msg=yes,msg=no,msg=no)
272- AC_MSG_RESULT([$msg])
273+ AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
274
275 AC_MSG_CHECKING(for mmap() using regular file shared memory support)
276- AC_TRY_RUN([
277-#include <sys/types.h>
278-#include <sys/wait.h>
279-#include <sys/mman.h>
280-#include <sys/stat.h>
281-#include <fcntl.h>
282-#include <unistd.h>
283-#include <string.h>
284-#include <stdlib.h>
285-#include <stdio.h>
286-
287-#ifndef MAP_FAILED
288-# define MAP_FAILED ((void*)-1)
289-#endif
290-
291-int main() {
292- pid_t pid;
293- int status;
294- int fd;
295- char *shm;
296- char tmpname[4096];
297-
298- sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
299- if (mktemp(tmpname) == NULL) {
300- return 1;
301- }
302- fd = open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
303- if (fd == -1) {
304- return 2;
305- }
306- if (ftruncate(fd, 4096) < 0) {
307- close(fd);
308- unlink(tmpname);
309- return 3;
310- }
311-
312- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
313- if (shm == MAP_FAILED) {
314- return 4;
315- }
316- unlink(tmpname);
317- close(fd);
318-
319- strcpy(shm, "hello");
320-
321- pid = fork();
322- if (pid < 0) {
323- return 5;
324- } else if (pid == 0) {
325- strcpy(shm, "bye");
326- return 6;
327- }
328- if (wait(&status) != pid) {
329- return 7;
330- }
331- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
332- return 8;
333- }
334- if (strcmp(shm, "bye") != 0) {
335- return 9;
336- }
337- return 0;
338-}
339-],dnl
340- AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
341- msg=yes,msg=no,msg=no)
342- AC_MSG_RESULT([$msg])
343-
344-flock_type=unknown
345-AC_MSG_CHECKING("whether flock struct is linux ordered")
346-AC_TRY_RUN([
347- #include <fcntl.h>
348- struct flock lock = { 1, 2, 3, 4, 5 };
349- int main() {
350- if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) {
351- return 0;
352- }
353- return 1;
354- }
355-], [
356- flock_type=linux
357- AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
358- AC_MSG_RESULT("yes")
359-], AC_MSG_RESULT("no") )
360+
361+ AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
362
363-AC_MSG_CHECKING("whether flock struct is BSD ordered")
364-AC_TRY_RUN([
365- #include <fcntl.h>
366- struct flock lock = { 1, 2, 3, 4, 5 };
367- int main() {
368- if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) {
369- return 0;
370- }
371- return 1;
372- }
373-], [
374- flock_type=bsd
375- AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type])
376- AC_MSG_RESULT("yes")
377-], AC_MSG_RESULT("no") )
378+ flock_type=linux
379+ AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
380
381 if test "$flock_type" = "unknown"; then
382 AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no])
383--
3842.7.4
385
diff --git a/meta-oe/recipes-devtools/php/php/configure.patch b/meta-oe/recipes-devtools/php/php/configure.patch
deleted file mode 100644
index d9d913f9d..000000000
--- a/meta-oe/recipes-devtools/php/php/configure.patch
+++ /dev/null
@@ -1,21 +0,0 @@
1From 617d01ef2ac2f436cd8e06555b608db56079b851 Mon Sep 17 00:00:00 2001
2From: Paul Eggleton <paul.eggleton@linux.intel.com>
3Date: Tue, 17 Jul 2012 11:31:54 +0100
4
5---
6 configure | 2 --
7 1 file changed, 2 deletions(-)
8
9diff --git a/configure b/configure
10index 1f1ef32..392fb76 100755
11--- a/configure
12+++ b/configure
13@@ -11642,8 +11642,6 @@ $as_echo "#define HAVE_LIBNSL 1" >>confdefs.h
14
15
16
17- unset ac_cv_func_dlopen
18- unset ac_cv_func___dlopen
19 unset found
20
21 ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
diff --git a/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch b/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch
new file mode 100644
index 000000000..7be67ea94
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch
@@ -0,0 +1,387 @@
1From fafcfac0933c17e1bf551600080eb0541186caf5 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Mon, 2 Apr 2018 17:54:52 +0800
4Subject: [PATCH] opcache/config.m4: enable opcache
5
6We can't use AC_TRY_RUN to run programs in a cross compile environment. Set
7the variables directly instead since we know that we'd be running on latest
8enough linux kernel.
9
10Upstream-Status: Inappropriate [Configuration]
11
12Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
13
14%% original patch: php5-0001-opcache-config.m4-enable-opcache.patch
15---
16 ext/opcache/config.m4 | 349 ++------------------------------------------------
17 1 file changed, 8 insertions(+), 341 deletions(-)
18
19diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
20index 5a8b86c..6e87fa5 100644
21--- a/ext/opcache/config.m4
22+++ b/ext/opcache/config.m4
23@@ -11,353 +11,20 @@ if test "$PHP_OPCACHE" != "no"; then
24 AC_DEFINE(HAVE_MPROTECT, 1, [Define if you have mprotect() function])
25 ])
26
27- AC_MSG_CHECKING(for sysvipc shared memory support)
28- AC_TRY_RUN([
29-#include <sys/types.h>
30-#include <sys/wait.h>
31-#include <sys/ipc.h>
32-#include <sys/shm.h>
33-#include <unistd.h>
34-#include <string.h>
35+ AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
36
37-int main() {
38- pid_t pid;
39- int status;
40- int ipc_id;
41- char *shm;
42- struct shmid_ds shmbuf;
43+ AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
44
45- ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W));
46- if (ipc_id == -1) {
47- return 1;
48- }
49+ AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
50
51- shm = shmat(ipc_id, NULL, 0);
52- if (shm == (void *)-1) {
53- shmctl(ipc_id, IPC_RMID, NULL);
54- return 2;
55- }
56-
57- if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) {
58- shmdt(shm);
59- shmctl(ipc_id, IPC_RMID, NULL);
60- return 3;
61- }
62-
63- shmbuf.shm_perm.uid = getuid();
64- shmbuf.shm_perm.gid = getgid();
65- shmbuf.shm_perm.mode = 0600;
66-
67- if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) {
68- shmdt(shm);
69- shmctl(ipc_id, IPC_RMID, NULL);
70- return 4;
71- }
72-
73- shmctl(ipc_id, IPC_RMID, NULL);
74-
75- strcpy(shm, "hello");
76-
77- pid = fork();
78- if (pid < 0) {
79- return 5;
80- } else if (pid == 0) {
81- strcpy(shm, "bye");
82- return 6;
83- }
84- if (wait(&status) != pid) {
85- return 7;
86- }
87- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
88- return 8;
89- }
90- if (strcmp(shm, "bye") != 0) {
91- return 9;
92- }
93- return 0;
94-}
95-],dnl
96- AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
97- msg=yes,msg=no,msg=no)
98- AC_MSG_RESULT([$msg])
99-
100- AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
101- AC_TRY_RUN([
102-#include <sys/types.h>
103-#include <sys/wait.h>
104-#include <sys/mman.h>
105-#include <unistd.h>
106-#include <string.h>
107-
108-#ifndef MAP_ANON
109-# ifdef MAP_ANONYMOUS
110-# define MAP_ANON MAP_ANONYMOUS
111-# endif
112-#endif
113-#ifndef MAP_FAILED
114-# define MAP_FAILED ((void*)-1)
115-#endif
116-
117-int main() {
118- pid_t pid;
119- int status;
120- char *shm;
121-
122- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
123- if (shm == MAP_FAILED) {
124- return 1;
125- }
126-
127- strcpy(shm, "hello");
128-
129- pid = fork();
130- if (pid < 0) {
131- return 5;
132- } else if (pid == 0) {
133- strcpy(shm, "bye");
134- return 6;
135- }
136- if (wait(&status) != pid) {
137- return 7;
138- }
139- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
140- return 8;
141- }
142- if (strcmp(shm, "bye") != 0) {
143- return 9;
144- }
145- return 0;
146-}
147-],dnl
148- AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
149- msg=yes,msg=no,msg=no)
150- AC_MSG_RESULT([$msg])
151-
152- AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support)
153- AC_TRY_RUN([
154-#include <sys/types.h>
155-#include <sys/wait.h>
156-#include <sys/mman.h>
157-#include <sys/stat.h>
158-#include <fcntl.h>
159-#include <unistd.h>
160-#include <string.h>
161-
162-#ifndef MAP_FAILED
163-# define MAP_FAILED ((void*)-1)
164-#endif
165-
166-int main() {
167- pid_t pid;
168- int status;
169- int fd;
170- char *shm;
171-
172- fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR);
173- if (fd == -1) {
174- return 1;
175- }
176-
177- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
178- if (shm == MAP_FAILED) {
179- return 2;
180- }
181-
182- strcpy(shm, "hello");
183-
184- pid = fork();
185- if (pid < 0) {
186- return 5;
187- } else if (pid == 0) {
188- strcpy(shm, "bye");
189- return 6;
190- }
191- if (wait(&status) != pid) {
192- return 7;
193- }
194- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
195- return 8;
196- }
197- if (strcmp(shm, "bye") != 0) {
198- return 9;
199- }
200- return 0;
201-}
202-],dnl
203- AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
204- msg=yes,msg=no,msg=no)
205- AC_MSG_RESULT([$msg])
206-
207- AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
208- AC_TRY_RUN([
209-#include <sys/types.h>
210-#include <sys/wait.h>
211-#include <sys/mman.h>
212-#include <sys/stat.h>
213-#include <fcntl.h>
214-#include <unistd.h>
215-#include <string.h>
216-#include <stdlib.h>
217-#include <stdio.h>
218-
219-#ifndef MAP_FAILED
220-# define MAP_FAILED ((void*)-1)
221-#endif
222-
223-int main() {
224- pid_t pid;
225- int status;
226- int fd;
227- char *shm;
228- char tmpname[4096];
229-
230- sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
231- if (mktemp(tmpname) == NULL) {
232- return 1;
233- }
234- fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
235- if (fd == -1) {
236- return 2;
237- }
238- if (ftruncate(fd, 4096) < 0) {
239- close(fd);
240- shm_unlink(tmpname);
241- return 3;
242- }
243-
244- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
245- if (shm == MAP_FAILED) {
246- return 4;
247- }
248- shm_unlink(tmpname);
249- close(fd);
250-
251- strcpy(shm, "hello");
252-
253- pid = fork();
254- if (pid < 0) {
255- return 5;
256- } else if (pid == 0) {
257- strcpy(shm, "bye");
258- return 6;
259- }
260- if (wait(&status) != pid) {
261- return 7;
262- }
263- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
264- return 8;
265- }
266- if (strcmp(shm, "bye") != 0) {
267- return 9;
268- }
269- return 0;
270-}
271-],dnl
272- AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
273- msg=yes,msg=no,msg=no)
274- AC_MSG_RESULT([$msg])
275+ AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
276
277 AC_MSG_CHECKING(for mmap() using regular file shared memory support)
278- AC_TRY_RUN([
279-#include <sys/types.h>
280-#include <sys/wait.h>
281-#include <sys/mman.h>
282-#include <sys/stat.h>
283-#include <fcntl.h>
284-#include <unistd.h>
285-#include <string.h>
286-#include <stdlib.h>
287-#include <stdio.h>
288-
289-#ifndef MAP_FAILED
290-# define MAP_FAILED ((void*)-1)
291-#endif
292-
293-int main() {
294- pid_t pid;
295- int status;
296- int fd;
297- char *shm;
298- char tmpname[4096];
299-
300- sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
301- if (mktemp(tmpname) == NULL) {
302- return 1;
303- }
304- fd = open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
305- if (fd == -1) {
306- return 2;
307- }
308- if (ftruncate(fd, 4096) < 0) {
309- close(fd);
310- unlink(tmpname);
311- return 3;
312- }
313-
314- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
315- if (shm == MAP_FAILED) {
316- return 4;
317- }
318- unlink(tmpname);
319- close(fd);
320-
321- strcpy(shm, "hello");
322-
323- pid = fork();
324- if (pid < 0) {
325- return 5;
326- } else if (pid == 0) {
327- strcpy(shm, "bye");
328- return 6;
329- }
330- if (wait(&status) != pid) {
331- return 7;
332- }
333- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
334- return 8;
335- }
336- if (strcmp(shm, "bye") != 0) {
337- return 9;
338- }
339- return 0;
340-}
341-],dnl
342- AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
343- msg=yes,msg=no,msg=no)
344- AC_MSG_RESULT([$msg])
345-
346-flock_type=unknown
347-AC_MSG_CHECKING("whether flock struct is linux ordered")
348-AC_TRY_RUN([
349- #include <fcntl.h>
350- struct flock lock = { 1, 2, 3, 4, 5 };
351- int main() {
352- if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) {
353- return 0;
354- }
355- return 1;
356- }
357-], [
358- flock_type=linux
359- AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
360- AC_MSG_RESULT("yes")
361-], AC_MSG_RESULT("no") )
362+
363+ AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
364
365-AC_MSG_CHECKING("whether flock struct is BSD ordered")
366-AC_TRY_RUN([
367- #include <fcntl.h>
368- struct flock lock = { 1, 2, 3, 4, 5 };
369- int main() {
370- if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) {
371- return 0;
372- }
373- return 1;
374- }
375-], [
376- flock_type=bsd
377- AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type])
378- AC_MSG_RESULT("yes")
379-], AC_MSG_RESULT("no") )
380+ flock_type=linux
381+ AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
382
383 if test "$flock_type" = "unknown"; then
384 AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no])
385--
3862.7.4
387
diff --git a/meta-oe/recipes-devtools/php/php_5.6.35.bb b/meta-oe/recipes-devtools/php/php_5.6.35.bb
index 5ccbfa1ad..c17c0d6a2 100644
--- a/meta-oe/recipes-devtools/php/php_5.6.35.bb
+++ b/meta-oe/recipes-devtools/php/php_5.6.35.bb
@@ -12,6 +12,7 @@ SRC_URI += "file://php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
12SRC_URI_append_class-target = " \ 12SRC_URI_append_class-target = " \
13 file://php5-pear-makefile.patch \ 13 file://php5-pear-makefile.patch \
14 file://php5-phar-makefile.patch \ 14 file://php5-phar-makefile.patch \
15 file://php5-0001-opcache-config.m4-enable-opcache.patch \
15 " 16 "
16 17
17SRC_URI[md5sum] = "905ae5f586351f3ca29d044c9484d475" 18SRC_URI[md5sum] = "905ae5f586351f3ca29d044c9484d475"
diff --git a/meta-oe/recipes-devtools/php/php_7.2.4.bb b/meta-oe/recipes-devtools/php/php_7.2.4.bb
index 1a9c8ffad..04d9b167d 100644
--- a/meta-oe/recipes-devtools/php/php_7.2.4.bb
+++ b/meta-oe/recipes-devtools/php/php_7.2.4.bb
@@ -9,6 +9,7 @@ SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
9SRC_URI_append_class-target = " \ 9SRC_URI_append_class-target = " \
10 file://pear-makefile.patch \ 10 file://pear-makefile.patch \
11 file://phar-makefile.patch \ 11 file://phar-makefile.patch \
12 file://0001-opcache-config.m4-enable-opcache.patch \
12 " 13 "
13 14
14SRC_URI[md5sum] = "864c64ffd2f1686b035ef8ce6a6d8478" 15SRC_URI[md5sum] = "864c64ffd2f1686b035ef8ce6a6d8478"