From 9ed2b18d0623294fcdea8a7dececfc89a319d8cb Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Wed, 29 Apr 2026 15:44:44 +0800 Subject: [PATCH] Forward-port #1107 --- src/Package/Extension/decimal.php | 10 ++++++++-- src/Package/Library/krb5.php | 13 +++++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/Package/Extension/decimal.php b/src/Package/Extension/decimal.php index c5059e2e..93e3d28b 100644 --- a/src/Package/Extension/decimal.php +++ b/src/Package/Extension/decimal.php @@ -22,8 +22,14 @@ class decimal extends PhpExtensionPackage { FileSystem::replaceFileStr( $this->getSourceDir() . '/php_decimal.c', - 'zend_module_entry decimal_module_entry', - 'zend_module_entry php_decimal_module_entry' + [ + 'zend_module_entry decimal_module_entry', + 'ZEND_GET_MODULE(decimal)', + ], + [ + 'zend_module_entry php_decimal_module_entry', + 'ZEND_GET_MODULE(php_decimal)', + ] ); } diff --git a/src/Package/Library/krb5.php b/src/Package/Library/krb5.php index ad6ca137..1370afcc 100644 --- a/src/Package/Library/krb5.php +++ b/src/Package/Library/krb5.php @@ -10,6 +10,8 @@ use StaticPHP\Package\LibraryPackage; use StaticPHP\Package\PackageInstaller; use StaticPHP\Runtime\Executor\UnixAutoconfExecutor; use StaticPHP\Runtime\SystemTarget; +use StaticPHP\Toolchain\Interface\ToolchainInterface; +use StaticPHP\Toolchain\ZigToolchain; use StaticPHP\Util\SPCConfigUtil; #[Library('krb5')] @@ -17,7 +19,7 @@ class krb5 { #[BuildFor('Linux')] #[BuildFor('Darwin')] - public function build(LibraryPackage $lib, PackageInstaller $installer): void + public function build(LibraryPackage $lib, PackageInstaller $installer, ToolchainInterface $toolchain): void { if (!file_exists($lib->getSourceRoot() . '/configure')) { shell()->cd($lib->getSourceRoot())->exec('autoreconf -if'); @@ -45,12 +47,15 @@ class krb5 $extraEnv['LDFLAGS'] = '-framework Kerberos'; $args[] = 'ac_cv_func_secure_getenv=no'; } - UnixAutoconfExecutor::create($lib) + $executor = UnixAutoconfExecutor::create($lib) ->appendEnv($extraEnv) ->optionalPackage('ldap', '--with-ldap', '--without-ldap') ->optionalPackage('libedit', '--with-libedit', '--without-libedit') - ->configure(...$args) - ->make(); + ->configure(...$args); + if ($toolchain instanceof ZigToolchain) { + $executor->exec('find . -name Makefile -exec sed -i "s/-Werror=incompatible-pointer-types//g" {} +'); + } + $executor->make(); $lib->patchPkgconfPrefix([ 'krb5-gssapi.pc', 'krb5.pc',