Commit: f90483001236c863abe1070d05ee2214db5a0a97 Author: Dmitry Stogov <dmi...@zend.com> Fri, 27 Sep 2013 13:43:25 +0400 Parents: ea0f832f1000a47553a483e52633377a0d37800f Branches: PHP-5.5 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=f90483001236c863abe1070d05ee2214db5a0a97 Log: Added support for GNU Hurd. (Svante Signell) Changed paths: M NEWS M ext/opcache/ZendAccelerator.h M ext/opcache/config.m4 M sapi/cgi/cgi_main.c Diff: diff --git a/NEWS b/NEWS index bdc0cd5..c03d319 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,7 @@ PHP NEWS imap). (ryotakatsuki at gmail dot com) - OPcache: + . Added support for GNU Hurd. (Svante Signell) . Added function opcache_compile_file() to load PHP scripts into cache without execution. (Julien) . Fixed bug #65665 (Exception not properly caught when opcache enabled). diff --git a/ext/opcache/ZendAccelerator.h b/ext/opcache/ZendAccelerator.h index f223f12..b9d7ef3 100644 --- a/ext/opcache/ZendAccelerator.h +++ b/ext/opcache/ZendAccelerator.h @@ -80,6 +80,9 @@ # endif # include <direct.h> #else +# ifndef MAXPATHLEN +# define MAXPATHLEN 4096 +# endif # include <sys/param.h> #endif @@ -100,7 +103,7 @@ extern int lock_file; # elif defined(__svr4__) # define FLOCK_STRUCTURE(name, type, whence, start, len) \ struct flock name = {type, whence, start, len} -# elif defined(__linux__) || defined(__hpux) +# elif defined(__linux__) || defined(__hpux) || defined(__GNU__) # define FLOCK_STRUCTURE(name, type, whence, start, len) \ struct flock name = {type, whence, start, len, 0} # elif defined(_AIX) @@ -111,6 +114,12 @@ extern int lock_file; # define FLOCK_STRUCTURE(name, type, whence, start, len) \ struct flock name = {type, whence, start, len} # endif +# elif defined(HAVE_FLOCK_BSD) +# define FLOCK_STRUCTURE(name, type, whence, start, len) \ + struct flock name = {start, len, -1, type, whence} +# elif defined(HAVE_FLOCK_LINUX) +# define FLOCK_STRUCTURE(name, type, whence, start, len) \ + struct flock name = {type, whence, start, len} # else # error "Don't know how to define struct flock" # endif diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4 index 1798fe1..60edeed 100644 --- a/ext/opcache/config.m4 +++ b/ext/opcache/config.m4 @@ -326,40 +326,42 @@ int main() { msg=yes,msg=no,msg=no) AC_MSG_RESULT([$msg]) - AC_MSG_CHECKING(for known struct flock definition) - dnl Copied from ZendAccelerator.h - AC_TRY_RUN([ -#include <fcntl.h> -#include <stdlib.h> - -#ifndef ZEND_WIN32 -extern int lock_file; - -# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || (defined(__APPLE__) && defined(__MACH__)/* Darwin */) || defined(__OpenBSD__) || defined(__NetBSD__) -# define FLOCK_STRUCTURE(name, type, whence, start, len) \ - struct flock name = {start, len, -1, type, whence} -# elif defined(__svr4__) -# define FLOCK_STRUCTURE(name, type, whence, start, len) \ - struct flock name = {type, whence, start, len} -# elif defined(__linux__) || defined(__hpux) -# define FLOCK_STRUCTURE(name, type, whence, start, len) \ - struct flock name = {type, whence, start, len, 0} -# elif defined(_AIX) -# if defined(_LARGE_FILES) || defined(__64BIT__) -# define FLOCK_STRUCTURE(name, type, whence, start, len) \ - struct flock name = {type, whence, 0, 0, 0, start, len } -# else -# define FLOCK_STRUCTURE(name, type, whence, start, len) \ - struct flock name = {type, whence, start, len} -# endif -# else -# error "Don't know how to define struct flock" -# endif -#endif -int main() { return 0; } -], -[AC_MSG_RESULT([done])], -[AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no])], []) +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") ) + +if test "$flock_type" == "unknown"; then + AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no]) +fi PHP_NEW_EXTENSION(opcache, ZendAccelerator.c \ diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c index 4c78fca..4f3d504 100644 --- a/sapi/cgi/cgi_main.c +++ b/sapi/cgi/cgi_main.c @@ -154,6 +154,7 @@ static const opt_struct OPTIONS[] = { {'?', 0, "usage"},/* help alias (both '?' and 'usage') */ {'v', 0, "version"}, {'z', 1, "zend-extension"}, + {'W', 1, "warmup"}, {'T', 1, "timing"}, {'-', 0, NULL} /* end of args */ }; @@ -1754,6 +1755,7 @@ int main(int argc, char *argv[]) int fcgi_fd = 0; fcgi_request *request = NULL; int repeats = 1; + int warmup_repeats = 0; int benchmark = 0; #if HAVE_GETTIMEOFDAY struct timeval start, end; @@ -2103,6 +2105,9 @@ consult the installation file that came with this distribution, or visit \n\ time(&start); #endif break; + case 'W': + warmup_repeats = atoi(php_optarg); + break; case 'h': case '?': if (request) { @@ -2516,12 +2521,24 @@ fastcgi_request_done: if (!fastcgi) { if (benchmark) { - repeats--; - if (repeats > 0) { - script_file = NULL; - php_optind = orig_optind; - php_optarg = orig_optarg; + if (warmup_repeats) { + warmup_repeats--; + if (!warmup_repeats) { +#ifdef HAVE_GETTIMEOFDAY + gettimeofday(&start, NULL); +#else + time(&start); +#endif + } continue; + } else { + repeats--; + if (repeats > 0) { + script_file = NULL; + php_optind = orig_optind; + php_optarg = orig_optarg; + continue; + } } } break; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php