From f0c39c17709ab62ccec6a2fa2b87737346ebe046 Mon Sep 17 00:00:00 2001 From: henderkes Date: Wed, 8 Oct 2025 09:46:20 +0200 Subject: [PATCH] fix #19871 --- src/SPC/builder/extension/readline.php | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/SPC/builder/extension/readline.php b/src/SPC/builder/extension/readline.php index ccf489cb..70829aff 100644 --- a/src/SPC/builder/extension/readline.php +++ b/src/SPC/builder/extension/readline.php @@ -7,6 +7,7 @@ namespace SPC\builder\extension; use SPC\builder\Extension; use SPC\store\FileSystem; use SPC\util\CustomExt; +use SPC\util\SPCTarget; #[CustomExt('readline')] class readline extends Extension @@ -34,4 +35,32 @@ class readline extends Extension } parent::buildUnixShared(); } + + public function patchBeforeMake(): bool + { + if (SPCTarget::getTargetOS() === 'Linux' && SPCTarget::isStatic() && $this->builder->getOption('build-cli')) { + FileSystem::replaceFileStr( + SOURCE_PATH . '/php-src/ext/readline/readline_cli.c', + "/*\n#ifdef COMPILE_DL_READLINE", + "#ifdef COMPILE_DL_READLINE\n/*" + ); + FileSystem::replaceFileRegex( + SOURCE_PATH . '/php-src/ext/readline/readline_cli.c', + '/\/\*#else\s+?#define GET_SHELL_CB\(cb\) \(cb\) = php_cli_get_shell_callbacks\(\)\s+#endif\*\//s', + "#else\n#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()\n#endif" + ); + } else { + FileSystem::replaceFileStr( + SOURCE_PATH . '/php-src/ext/readline/readline_cli.c', + "#ifdef COMPILE_DL_READLINE\n/*", + "/*\n#ifdef COMPILE_DL_READLINE" + ); + FileSystem::replaceFileRegex( + SOURCE_PATH . '/php-src/ext/readline/readline_cli.c', + '/#else\s+?#define GET_SHELL_CB\(cb\) \(cb\) = php_cli_get_shell_callbacks\(\)\s+#endif/s', + "/*#else\n#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()\n#endif*/" + ); + } + return false; + } }