Commit e0547649 authored by Gustavo Zacarias's avatar Gustavo Zacarias Committed by Thomas Petazzoni
Browse files

php: add opcache option



Add a Zend OPcache option and tweak the build system into being
cross-compile friendly.
The OPcache extension allows for a neat intermediate bytecode cache in
memory to avoid reinterpreting/recompiling php scripts on multiple runs.
Make it an option since this takes up valuable RAM.

Signed-off-by: default avatarGustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 4959dabe
Loading
Loading
Loading
Loading
+48 −0
Original line number Diff line number Diff line
OPcache: flock mechanism is obviously linux so force it.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>

diff -Nura php-5.6.7.orig/ext/opcache/config.m4 php-5.6.7/ext/opcache/config.m4
--- php-5.6.7.orig/ext/opcache/config.m4	2015-04-08 11:08:11.125845540 -0300
+++ php-5.6.7/ext/opcache/config.m4	2015-04-08 11:57:23.648831436 -0300
@@ -326,38 +326,8 @@
     msg=yes,msg=no,msg=no)
   AC_MSG_RESULT([$msg])
 
-flock_type=unknown
-AC_MSG_CHECKING("whether flock struct is linux ordered")
-AC_TRY_RUN([
-  #include <fcntl.h>
-  struct flock lock = { 1, 2, 3, 4, 5 };
-  int main() { 
-    if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) {
-		return 0;
-    }
-    return 1;
-  } 
-], [
-	flock_type=linux
-    AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
-    AC_MSG_RESULT("yes")
-], AC_MSG_RESULT("no") )
-
-AC_MSG_CHECKING("whether flock struct is BSD ordered")
-AC_TRY_RUN([
-  #include <fcntl.h>
-  struct flock lock = { 1, 2, 3, 4, 5 };
-  int main() { 
-    if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) {
-		return 0;
-    }
-    return 1;
-  } 
-], [
-	flock_type=bsd
-    AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type]) 
-    AC_MSG_RESULT("yes")
-], AC_MSG_RESULT("no") )
+flock_type=linux
+AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
 
 if test "$flock_type" == "unknown"; then
 	AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no])
+5 −0
Original line number Diff line number Diff line
@@ -10,6 +10,11 @@ config BR2_PACKAGE_PHP_EXT_FILEINFO
	help
	  File Information support

config BR2_PACKAGE_PHP_EXT_OPCACHE
	bool "OPcache"
	help
	  Enable the Zend OPcache accelerator.

config BR2_PACKAGE_PHP_EXT_READLINE
	bool "Readline"
	select BR2_PACKAGE_NCURSES
+13 −0
Original line number Diff line number Diff line
@@ -38,6 +38,19 @@ PHP_CONFIG_SCRIPTS = php-config

PHP_CFLAGS = $(TARGET_CFLAGS)

# The OPcache extension isn't cross-compile friendly
# Throw some defines here to avoid patching heavily
ifeq ($(BR2_PACKAGE_PHP_EXT_OPCACHE),y)
PHP_CONF_OPTS += --enable-opcache
PHP_CONF_ENV += ac_cv_func_mprotect=yes
PHP_CFLAGS += \
	-DHAVE_SHM_IPC \
	-DHAVE_SHM_MMAP_ANON \
	-DHAVE_SHM_MMAP_ZERO \
	-DHAVE_SHM_MMAP_POSIX \
	-DHAVE_SHM_MMAP_FILE
endif

# We need to force dl "detection"
ifeq ($(BR2_STATIC_LIBS),)
PHP_CONF_ENV += ac_cv_func_dlopen=yes ac_cv_lib_dl_dlopen=yes