Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

runkit0.9がPHP5.2系でbuildできない


パッチが出てますね。
で、念のため、cvs.php.netでdiff取ってみると、若干違うようです。

--- runkit_import.c     2006/06/06 20:08:51     1.8
+++ runkit_import.c     2006/10/26 16:18:52     1.10
@@ -2,6 +2,8 @@
   +----------------------------------------------------------------------+
   | PHP Version 5                                                        |
   +----------------------------------------------------------------------+
+  | Copyright (c) 1997-2006 The PHP Group                                |
+  +----------------------------------------------------------------------+
   | This source file is subject to version 3.0 of the PHP license,       |
   | that is bundled with this package in the file LICENSE, and is        |
   | available through the world-wide-web at the following url:           |
@@ -14,7 +16,7 @@
   +----------------------------------------------------------------------+
 */

-/* $Id: runkit_import.c,v 1.8 2006/06/06 20:08:51 pollita Exp $ */
+/* $Id: runkit_import.c,v 1.10 2006/10/26 16:18:52 pollita Exp $ */

 #include "php_runkit.h"

@@ -226,7 +228,9 @@
                if (zend_hash_get_current_key_ex(&ce->default_properties, &key, &key_len, &idx, 0, &pos) == HASH_KEY_IS_STRING) {
                        char *cname = NULL, *pname = key;

-#ifdef ZEND_ENGINE_2
+#ifdef ZEND_ENGINE_2_2
+                       zend_unmangle_property_name(key, key_len - 1, &cname, &pname);
+#elif defined(ZEND_ENGINE_2)
                        zend_unmangle_property_name(key, &cname, &pname);
 #endif
                        if (zend_hash_exists(&dce->default_properties, key, key_len)) {

これに合わせて、php_runkit.hも変更されています。

--- php_runkit.h	2006/06/06 20:38:59	1.28
+++ php_runkit.h	2006/10/26 16:18:52	1.30
@@ -2,7 +2,7 @@
   +----------------------------------------------------------------------+
   | PHP Version 5                                                        |
   +----------------------------------------------------------------------+
-  | Copyright (c) 1997-2004 The PHP Group                                |
+  | Copyright (c) 1997-2006 The PHP Group                                |
   +----------------------------------------------------------------------+
   | This source file is subject to version 3.0 of the PHP license,       |
   | that is bundled with this package in the file LICENSE, and is        |
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: php_runkit.h,v 1.28 2006/06/06 20:38:59 pollita Exp $ */
+/* $Id: php_runkit.h,v 1.30 2006/10/26 16:18:52 pollita Exp $ */
 
 #ifndef PHP_RUNKIT_H
 #define PHP_RUNKIT_H
@@ -40,6 +40,13 @@
 #define PHP_RUNKIT_IMPORT_CLASS_PROPS		0x0008
 #define PHP_RUNKIT_IMPORT_CLASSES			(PHP_RUNKIT_IMPORT_CLASS_METHODS|PHP_RUNKIT_IMPORT_CLASS_CONSTS|PHP_RUNKIT_IMPORT_CLASS_PROPS)
 #define PHP_RUNKIT_IMPORT_OVERRIDE			0x0010
+
+#if ZEND_MODULE_API_NO > 20050922
+#define ZEND_ENGINE_2_2
+#endif
+#if ZEND_MODULE_API_NO > 20050921
+#define ZEND_ENGINE_2_1
+#endif
 
 /* The TSRM interpreter patch required by runkit_sandbox was added in 5.1, but this package includes diffs for older versions
  * Those diffs include an additional #define to indicate that they've been applied

この2つのパッチを当てると、ちゃんとbuildされました。