From 7d454159906373025e2bbf8ae613448190390030 Mon Sep 17 00:00:00 2001 From: DubbleClick Date: Fri, 20 Jun 2025 15:25:07 +0700 Subject: [PATCH] patch before make for uv --- src/SPC/builder/Extension.php | 14 ++++++++++++++ src/SPC/builder/extension/uv.php | 12 ++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/SPC/builder/Extension.php b/src/SPC/builder/Extension.php index a457d82e..d6dde237 100644 --- a/src/SPC/builder/Extension.php +++ b/src/SPC/builder/Extension.php @@ -208,6 +208,16 @@ class Extension return false; } + /** + * Patch code before shared extension make + * If you need to patch some code, overwrite this + * return true if you patched something, false if not + */ + public function patchBeforeSharedMake(): bool + { + return false; + } + /** * @return string * returns a command line string with all required shared extensions to load @@ -408,6 +418,10 @@ class Extension '$1 ' . $staticLibString ); + if ($this->patchBeforeSharedMake()) { + logger()->info('ext [ . ' . $this->getName() . '] patching before shared make'); + } + shell()->cd($this->source_dir) ->setEnv($env) ->exec('make clean') diff --git a/src/SPC/builder/extension/uv.php b/src/SPC/builder/extension/uv.php index 67ead54e..d3583fe2 100644 --- a/src/SPC/builder/extension/uv.php +++ b/src/SPC/builder/extension/uv.php @@ -5,6 +5,8 @@ declare(strict_types=1); namespace SPC\builder\extension; use SPC\builder\Extension; +use SPC\builder\linux\SystemUtil; +use SPC\store\FileSystem; use SPC\util\CustomExt; #[CustomExt('uv')] @@ -17,10 +19,12 @@ class uv extends Extension } } - public function getStaticAndSharedLibs(): array + public function patchBeforeSharedMake(): bool { - [$static, $shared] = parent::getStaticAndSharedLibs(); - $shared .= ' -lpthread'; - return [$static, $shared]; + if (SystemUtil::getLibcVersionIfExists() >= '2.17') { + return false; + } + FileSystem::replaceFileRegex($this->source_dir . '/Makefile', '/^(LDFLAGS =.*)$/', '$1 -luv -ldl -lrt -pthread'); + return true; } }