mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-18 04:44:53 +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
|
; EXTRA_LDFLAGS_PROGRAM for `make` php
|
||||||
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM="-all-static -pie"
|
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]
|
[macos]
|
||||||
; compiler environments
|
; compiler environments
|
||||||
CC=clang
|
CC=clang
|
||||||
|
|||||||
@ -215,8 +215,17 @@ class Extension
|
|||||||
*/
|
*/
|
||||||
public function patchBeforeSharedMake(): bool
|
public function patchBeforeSharedMake(): bool
|
||||||
{
|
{
|
||||||
|
if (!str_contains(getenv('CC'), 'zig')) {
|
||||||
return false;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
|
|||||||
@ -20,6 +20,7 @@ class uv extends Extension
|
|||||||
|
|
||||||
public function patchBeforeSharedMake(): bool
|
public function patchBeforeSharedMake(): bool
|
||||||
{
|
{
|
||||||
|
parent::patchBeforeSharedMake();
|
||||||
if (PHP_OS_FAMILY !== 'Linux' || arch2gnu(php_uname('m')) !== 'aarch64') {
|
if (PHP_OS_FAMILY !== 'Linux' || arch2gnu(php_uname('m')) !== 'aarch64') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -308,6 +308,9 @@ class LinuxBuilder extends UnixBuilderBase
|
|||||||
}
|
}
|
||||||
if (file_exists($libphpRelease)) {
|
if (file_exists($libphpRelease)) {
|
||||||
chdir(BUILD_LIB_PATH);
|
chdir(BUILD_LIB_PATH);
|
||||||
|
if (file_exists($libphpPath)) {
|
||||||
|
unlink($libphpPath);
|
||||||
|
}
|
||||||
symlink($realLibName, 'libphp.so');
|
symlink($realLibName, 'libphp.so');
|
||||||
}
|
}
|
||||||
if (is_dir(BUILD_MODULES_PATH)) {
|
if (is_dir(BUILD_MODULES_PATH)) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user