mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-17 20:34:51 +08:00
runtime object patch for shared extensions
This commit is contained in:
parent
55f01149e4
commit
9a3a536479
@ -108,6 +108,9 @@ SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS=""
|
||||
; EXTRA_LDFLAGS_PROGRAM for `make` php
|
||||
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM="-all-static -pie"
|
||||
|
||||
# Zig
|
||||
ZIG_SHARED_EXTENSION_EXTRA_OBJECTS="/usr/lib/gcc/x86_64-redhat-linux/14/crtbeginS.o /usr/lib/gcc/x86_64-redhat-linux/14/crtendS.o"
|
||||
|
||||
[macos]
|
||||
; compiler environments
|
||||
CC=clang
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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)) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user