]> granicus.if.org Git - php/commitdiff
Added support for GNU Hurd. (Svante Signell)
authorDmitry Stogov <dmitry@zend.com>
Fri, 27 Sep 2013 09:43:25 +0000 (13:43 +0400)
committerDmitry Stogov <dmitry@zend.com>
Fri, 27 Sep 2013 09:43:25 +0000 (13:43 +0400)
NEWS
ext/opcache/ZendAccelerator.h
ext/opcache/config.m4
sapi/cgi/cgi_main.c

diff --git a/NEWS b/NEWS
index bdc0cd5fb653206a2d84427bf5b3c5f9ba408b08..c03d31905676c2afff17f04da750f6032364b8aa 100644 (file)
--- 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).
index f223f126e43a87f768a46de8c39fc2f7539a0517..b9d7ef34704d860c2aa0006f5d76f210d5391004 100644 (file)
@@ -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
index 1798fe13fa80df493aef31fa704add5bfa506688..60edeed966b36d5bc8e015a36572aa9fe9ee9b23 100644 (file)
@@ -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 \
index 4c78fcafec08ff819741788595213989e475101d..4f3d5040e1b8c1d7ec51875067daf86e2febcbf1 100644 (file)
@@ -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;