runtime object patch for shared extensions

This commit is contained in:
DubbleClick
2025-06-25 14:32:00 +07:00
parent 55f01149e4
commit 9a3a536479
4 changed files with 17 additions and 1 deletions

View File

@@ -215,7 +215,16 @@ class Extension
*/
public function patchBeforeSharedMake(): bool
{
return false;
if (!str_contains(getenv('CC'), 'zig')) {
return false;
}
$extra = getenv('ZIG_SHARED_EXTENSION_EXTRA_OBJECTS');
FileSystem::replaceFileRegex(
$this->source_dir . '/Makefile',
"/^(shared_objects_{$this->getName()}\s*=.*)$/m",
"$1 {$extra}",
);
return true;
}
/**

View File

@@ -20,6 +20,7 @@ class uv extends Extension
public function patchBeforeSharedMake(): bool
{
parent::patchBeforeSharedMake();
if (PHP_OS_FAMILY !== 'Linux' || arch2gnu(php_uname('m')) !== 'aarch64') {
return false;
}

View File

@@ -308,6 +308,9 @@ class LinuxBuilder extends UnixBuilderBase
}
if (file_exists($libphpRelease)) {
chdir(BUILD_LIB_PATH);
if (file_exists($libphpPath)) {
unlink($libphpPath);
}
symlink($realLibName, 'libphp.so');
}
if (is_dir(BUILD_MODULES_PATH)) {