From fa9540e1f1263efc50c5b87fbbfbeca88817d785 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Thu, 16 Feb 2012 01:51:45 +0000 Subject: [PATCH] make ZEND_SIGNALS configurable, off by default also make ZEND_SIGNALS enabled and disabled binary-compatible --- NEWS | 2 ++ Zend/Zend.m4 | 10 ++++++++-- Zend/zend.h | 4 ---- main/main.c | 2 -- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/NEWS b/NEWS index 269d9993dc2..4e7cbebc11b 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,8 @@ PHP NEWS - Core: . Added ability to reset user opcode handlers (Yoram). . Improved max_input_vars directive to check nested variables (Dmitry). + . Made ZEND_SIGNALS configurable via --enable-zend-signals, off by + default (Stas). . Fixed bug #60965 (Buffer overflow on htmlspecialchars/entities with $double=false). (Gustavo) diff --git a/Zend/Zend.m4 b/Zend/Zend.m4 index 67b9ba09d76..945409eb1e1 100644 --- a/Zend/Zend.m4 +++ b/Zend/Zend.m4 @@ -393,14 +393,20 @@ int main() AC_CHECK_FUNCS(mremap) +AC_ARG_ENABLE(zend-signals, +[ --enable-zend-signals Use zend signal handling],[ + ZEND_SIGNALS=$enableval +],[ + ZEND_SIGNALS=no +]) + AC_CHECK_FUNC(sigaction, [ - ZEND_SIGNALS=yes - AC_DEFINE(ZEND_SIGNALS, 1, [Use zend signal handling]) AC_DEFINE(HAVE_SIGACTION, 1, [Whether sigaction() is available]) ], [ ZEND_SIGNALS=no ]) if test "$ZEND_SIGNALS" = "yes"; then + AC_DEFINE(ZEND_SIGNALS, 1, [Use zend signal handling]) CFLAGS="$CFLAGS -DZEND_SIGNALS" fi diff --git a/Zend/zend.h b/Zend/zend.h index e8bd10725e4..3226f8ce03e 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -531,10 +531,8 @@ typedef struct _zend_utility_functions { int (*write_function)(const char *str, uint str_length); FILE *(*fopen_function)(const char *filename, char **opened_path TSRMLS_DC); void (*message_handler)(long message, const void *data TSRMLS_DC); -#ifndef ZEND_SIGNALS void (*block_interruptions)(void); void (*unblock_interruptions)(void); -#endif int (*get_configuration_directive)(const char *name, uint name_length, zval *contents); void (*ticks_function)(int ticks); void (*on_timeout)(int seconds TSRMLS_DC); @@ -677,10 +675,8 @@ BEGIN_EXTERN_C() extern ZEND_API int (*zend_printf)(const char *format, ...) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 1, 2); extern ZEND_API zend_write_func_t zend_write; extern ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path TSRMLS_DC); -#ifndef ZEND_SIGNALS extern ZEND_API void (*zend_block_interruptions)(void); extern ZEND_API void (*zend_unblock_interruptions)(void); -#endif extern ZEND_API void (*zend_ticks_function)(int ticks); extern ZEND_API void (*zend_error_cb)(int type, const char *error_filename, const uint error_lineno, const char *format, va_list args) ZEND_ATTRIBUTE_PTR_FORMAT(printf, 4, 0); extern ZEND_API void (*zend_on_timeout)(int seconds TSRMLS_DC); diff --git a/main/main.c b/main/main.c index 1f1101ef611..ac78976e899 100644 --- a/main/main.c +++ b/main/main.c @@ -1999,10 +1999,8 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod zuf.write_function = php_output_wrapper; zuf.fopen_function = php_fopen_wrapper_for_zend; zuf.message_handler = php_message_handler_for_zend; -#ifndef ZEND_SIGNALS zuf.block_interruptions = sapi_module.block_interruptions; zuf.unblock_interruptions = sapi_module.unblock_interruptions; -#endif zuf.get_configuration_directive = php_get_configuration_directive_for_zend; zuf.ticks_function = php_run_ticks; zuf.on_timeout = php_on_timeout;