From 8b9f38fc51d555ac48bf1f29671a427564a3a041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= Date: Thu, 22 Sep 2022 12:22:53 +0200 Subject: [PATCH 1/5] Set SA_ONSTACK in zend_sigaction --- Zend/zend_signal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Zend/zend_signal.c b/Zend/zend_signal.c index 68bc3de3ff252..be48a91d3d88b 100644 --- a/Zend/zend_signal.c +++ b/Zend/zend_signal.c @@ -248,7 +248,7 @@ ZEND_API void zend_sigaction(int signo, const struct sigaction *act, struct siga if (SIGG(handlers)[signo-1].handler == (void *) SIG_IGN) { sa.sa_sigaction = (void *) SIG_IGN; } else { - sa.sa_flags = SA_SIGINFO | (act->sa_flags & SA_FLAGS_MASK); + sa.sa_flags = SA_ONSTACK | SA_SIGINFO | (act->sa_flags & SA_FLAGS_MASK); sa.sa_sigaction = zend_signal_handler_defer; sa.sa_mask = global_sigmask; } From bed381d922db2bdae82c3dcd6109325b02e0d50d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= Date: Tue, 10 May 2022 15:54:55 +0200 Subject: [PATCH 2/5] opcache: add FrankenPHP to the allow list --- ext/opcache/ZendAccelerator.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c index 0c956fe846935..f78ae8755f336 100644 --- a/ext/opcache/ZendAccelerator.c +++ b/ext/opcache/ZendAccelerator.c @@ -2824,6 +2824,7 @@ static inline int accel_find_sapi(void) "litespeed", "uwsgi", "fuzzer", + "frankenphp", NULL }; const char **sapi_name; @@ -3156,7 +3157,7 @@ static int accel_startup(zend_extension *extension) strcmp(sapi_module.name, "cli") == 0) { zps_startup_failure("Opcode Caching is disabled for CLI", NULL, accelerator_remove_cb); } else { - zps_startup_failure("Opcode Caching is only supported in Apache, FPM, FastCGI and LiteSpeed SAPIs", NULL, accelerator_remove_cb); + zps_startup_failure("Opcode Caching is only supported in Apache, FPM, FastCGI, FrankenPHP, LiteSpeed and uWSGI SAPIs", NULL, accelerator_remove_cb); } return SUCCESS; } From bb7729169efafaef7a303fff3028abca1a3036a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= Date: Thu, 13 Oct 2022 07:06:55 +0200 Subject: [PATCH 3/5] support using SIGALARM instead of SIGPROF for Go compatibility --- Zend/zend_execute_API.c | 2 +- Zend/zend_signal.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 3e19c0cfa8ee9..d84ea79192a36 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -1463,7 +1463,7 @@ static void zend_set_timeout_ex(zend_long seconds, bool reset_signals) /* {{{ */ t_r.it_value.tv_sec = seconds; t_r.it_value.tv_usec = t_r.it_interval.tv_sec = t_r.it_interval.tv_usec = 0; -# if defined(__CYGWIN__) || defined(__PASE__) +# if defined(__CYGWIN__) || defined(__PASE__) || defined(NO_SIGPROF) setitimer(ITIMER_REAL, &t_r, NULL); } signo = SIGALRM; diff --git a/Zend/zend_signal.c b/Zend/zend_signal.c index be48a91d3d88b..fef8c199b2ff2 100644 --- a/Zend/zend_signal.c +++ b/Zend/zend_signal.c @@ -64,7 +64,7 @@ ZEND_API zend_signal_globals_t zend_signal_globals; static void zend_signal_handler(int signo, siginfo_t *siginfo, void *context); static int zend_signal_register(int signo, void (*handler)(int, siginfo_t*, void*)); -#if defined(__CYGWIN__) || defined(__PASE__) +#if defined(__CYGWIN__) || defined(__PASE__) || defined(NO_SIGPROF) /* Matches zend_execute_API.c; these platforms don't support ITIMER_PROF. */ #define TIMEOUT_SIG SIGALRM #else From e908f7878249a8cbbbe2f1edef37277a5449f63a Mon Sep 17 00:00:00 2001 From: Alexander Schranz Date: Tue, 18 Oct 2022 19:44:46 +0200 Subject: [PATCH 4/5] Add FrankenPHP to SAPI credits --- ext/standard/credits_sapi.h | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/standard/credits_sapi.h b/ext/standard/credits_sapi.h index d6553ea04c1e9..e35d36f0e1b9e 100644 --- a/ext/standard/credits_sapi.h +++ b/ext/standard/credits_sapi.h @@ -17,3 +17,4 @@ CREDIT_LINE("Embed", "Edin Kadribasic"); CREDIT_LINE("FastCGI Process Manager", "Andrei Nigmatulin, dreamcat4, Antony Dovgal, Jerome Loyet"); CREDIT_LINE("litespeed", "George Wang"); CREDIT_LINE("phpdbg", "Felipe Pena, Joe Watkins, Bob Weinand"); +CREDIT_LINE("FrankenPHP", "Kévin Dunglas"); From 1ee4c451a60da06093af3320b9021db399cdbb82 Mon Sep 17 00:00:00 2001 From: Alexander Schranz Date: Tue, 18 Oct 2022 19:52:55 +0200 Subject: [PATCH 5/5] Add FrankenPHP Extensions and Credits --- EXTENSIONS | 5 +++++ sapi/frankenphp/CREDITS | 2 ++ 2 files changed, 7 insertions(+) create mode 100644 sapi/frankenphp/CREDITS diff --git a/EXTENSIONS b/EXTENSIONS index 1b745557bf5c8..8526ab3119cd7 100644 --- a/EXTENSIONS +++ b/EXTENSIONS @@ -63,6 +63,11 @@ PRIMARY MAINTAINER: Joe Watkins , Bob Weinand MAINTENANCE: Unknown STATUS: 5.6 ------------------------------------------------------------------------------- +EXTENSION: frankenPHP +PRIMARY MAINTAINER: Kévin Dunglas +MAINTENANCE: Maintained +STATUS: 8.2 +------------------------------------------------------------------------------- == Database extensions == diff --git a/sapi/frankenphp/CREDITS b/sapi/frankenphp/CREDITS new file mode 100644 index 0000000000000..a5226fe2bc606 --- /dev/null +++ b/sapi/frankenphp/CREDITS @@ -0,0 +1,2 @@ +FrankenPHP +Kévin Dunglas