rasmus Tue Mar 18 21:14:28 2008 UTC
Modified files: (Branch: PHP_5_3)
/ZendEngine2 Zend.m4 zend.c zend.h zend_globals.h
/php-src/win32/build config.w32.h.in
Log:
Make the sigsetjmp change more robust. On systems that don't have
sigsetjmp use setjmp. Windows is of course weird in that it seems to
have sigsetjmp but not sigjmp_buf (??) so force it to use setjmp in
config.w32.h.in
http://cvs.php.net/viewvc.cgi/ZendEngine2/Zend.m4?r1=1.58.4.4.2.2&r2=1.58.4.4.2.3&diff_format=u
Index: ZendEngine2/Zend.m4
diff -u ZendEngine2/Zend.m4:1.58.4.4.2.2 ZendEngine2/Zend.m4:1.58.4.4.2.3
--- ZendEngine2/Zend.m4:1.58.4.4.2.2 Sun Mar 16 21:05:33 2008
+++ ZendEngine2/Zend.m4 Tue Mar 18 21:14:27 2008
@@ -1,5 +1,5 @@
dnl
-dnl $Id: Zend.m4,v 1.58.4.4.2.2 2008/03/16 21:05:33 helly Exp $
+dnl $Id: Zend.m4,v 1.58.4.4.2.3 2008/03/18 21:14:27 rasmus Exp $
dnl
dnl This file contains Zend specific autoconf functions.
dnl
@@ -109,7 +109,7 @@
AC_FUNC_VPRINTF
AC_FUNC_MEMCMP
AC_FUNC_ALLOCA
-AC_CHECK_FUNCS(memcpy strdup getpid kill strtod strtol finite fpclass)
+AC_CHECK_FUNCS(memcpy strdup getpid kill strtod strtol finite fpclass
sigsetjmp)
AC_ZEND_BROKEN_SPRINTF
AC_CHECK_FUNCS(finite isfinite isinf isnan)
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend.c?r1=1.308.2.12.2.35.2.14&r2=1.308.2.12.2.35.2.15&diff_format=u
Index: ZendEngine2/zend.c
diff -u ZendEngine2/zend.c:1.308.2.12.2.35.2.14
ZendEngine2/zend.c:1.308.2.12.2.35.2.15
--- ZendEngine2/zend.c:1.308.2.12.2.35.2.14 Tue Mar 18 18:34:11 2008
+++ ZendEngine2/zend.c Tue Mar 18 21:14:27 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend.c,v 1.308.2.12.2.35.2.14 2008/03/18 18:34:11 rasmus Exp $ */
+/* $Id: zend.c,v 1.308.2.12.2.35.2.15 2008/03/18 21:14:27 rasmus Exp $ */
#include "zend.h"
#include "zend_extensions.h"
@@ -794,7 +794,7 @@
CG(unclean_shutdown) = 1;
CG(in_compilation) = EG(in_execution) = 0;
EG(current_execute_data) = NULL;
- siglongjmp(*EG(bailout), FAILURE);
+ LONGJMP(*EG(bailout), FAILURE);
}
/* }}} */
END_EXTERN_C()
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend.h?r1=1.293.2.11.2.9.2.19&r2=1.293.2.11.2.9.2.20&diff_format=u
Index: ZendEngine2/zend.h
diff -u ZendEngine2/zend.h:1.293.2.11.2.9.2.19
ZendEngine2/zend.h:1.293.2.11.2.9.2.20
--- ZendEngine2/zend.h:1.293.2.11.2.9.2.19 Tue Mar 18 18:34:11 2008
+++ ZendEngine2/zend.h Tue Mar 18 21:14:27 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend.h,v 1.293.2.11.2.9.2.19 2008/03/18 18:34:11 rasmus Exp $ */
+/* $Id: zend.h,v 1.293.2.11.2.9.2.20 2008/03/18 21:14:27 rasmus Exp $ */
#ifndef ZEND_H
#define ZEND_H
@@ -520,13 +520,23 @@
#define zend_bailout() _zend_bailout(__FILE__, __LINE__)
+#ifdef HAVE_SIGSETJMP
+# define SETJMP(a) sigsetjmp(a, 0)
+# define LONGJMP(a,b) siglongjmp(a, b)
+# define JMP_BUF sigjmp_buf
+#else
+# define SETJMP(a) setjmp(a)
+# define LONGJMP(a,b) longjmp(a, b)
+# define JMP_BUF jmp_buf
+#endif
+
#define zend_try
\
{
\
- sigjmp_buf *__orig_bailout = EG(bailout);
\
- sigjmp_buf __bailout;
\
+ JMP_BUF *__orig_bailout = EG(bailout);
\
+ JMP_BUF __bailout;
\
\
EG(bailout) = &__bailout;
\
- if (sigsetjmp(__bailout, 0)==0) {
+ if (SETJMP(__bailout)==0) {
#define zend_catch
\
} else {
\
EG(bailout) = __orig_bailout;
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_globals.h?r1=1.141.2.3.2.7.2.12&r2=1.141.2.3.2.7.2.13&diff_format=u
Index: ZendEngine2/zend_globals.h
diff -u ZendEngine2/zend_globals.h:1.141.2.3.2.7.2.12
ZendEngine2/zend_globals.h:1.141.2.3.2.7.2.13
--- ZendEngine2/zend_globals.h:1.141.2.3.2.7.2.12 Tue Mar 18 18:34:11 2008
+++ ZendEngine2/zend_globals.h Tue Mar 18 21:14:27 2008
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_globals.h,v 1.141.2.3.2.7.2.12 2008/03/18 18:34:11 rasmus Exp $ */
+/* $Id: zend_globals.h,v 1.141.2.3.2.7.2.13 2008/03/18 21:14:27 rasmus Exp $ */
#ifndef ZEND_GLOBALS_H
#define ZEND_GLOBALS_H
@@ -161,7 +161,7 @@
HashTable included_files; /* files already included */
- sigjmp_buf *bailout;
+ JMP_BUF *bailout;
int error_reporting;
int orig_error_reporting;
http://cvs.php.net/viewvc.cgi/php-src/win32/build/config.w32.h.in?r1=1.7.2.4.2.3&r2=1.7.2.4.2.3.2.1&diff_format=u
Index: php-src/win32/build/config.w32.h.in
diff -u php-src/win32/build/config.w32.h.in:1.7.2.4.2.3
php-src/win32/build/config.w32.h.in:1.7.2.4.2.3.2.1
--- php-src/win32/build/config.w32.h.in:1.7.2.4.2.3 Wed Jul 11 17:36:56 2007
+++ php-src/win32/build/config.w32.h.in Tue Mar 18 21:14:28 2008
@@ -1,6 +1,6 @@
/*
Build Configuration Template for Win32.
- $Id: config.w32.h.in,v 1.7.2.4.2.3 2007/07/11 17:36:56 johannes Exp $
+ $Id: config.w32.h.in,v 1.7.2.4.2.3.2.1 2008/03/18 21:14:28 rasmus Exp $
*/
/* Default PHP / PEAR directories */
@@ -54,6 +54,7 @@
#define NEED_ISBLANK 1
#define DISCARD_PATH 0
#undef HAVE_SETITIMER
+#undef HAVE_SIGSETJMP
#undef HAVE_IODBC
#define HAVE_LIBDL 1
#define HAVE_GETTIMEOFDAY 1
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php