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

Reply via email to