diff --git a/src/SPC/builder/unix/UnixBuilderBase.php b/src/SPC/builder/unix/UnixBuilderBase.php index 49a0369d..b31dcee2 100644 --- a/src/SPC/builder/unix/UnixBuilderBase.php +++ b/src/SPC/builder/unix/UnixBuilderBase.php @@ -13,6 +13,8 @@ use SPC\store\CurlHook; use SPC\store\Downloader; use SPC\store\FileSystem; use SPC\store\pkg\GoXcaddy; +use SPC\toolchain\GccNativeToolchain; +use SPC\toolchain\ToolchainManager; use SPC\util\DependencyUtil; use SPC\util\GlobalEnvManager; use SPC\util\SPCConfigUtil; @@ -280,10 +282,17 @@ abstract class UnixBuilderBase extends BuilderBase } $config = (new SPCConfigUtil($this))->config($this->ext_list, $this->lib_list); + $libs = $config['libs']; + + if ((str_contains((string) getenv('SPC_DEFAULT_C_FLAGS'), '-fprofile') || + str_contains((string) getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS'), '-fprofile')) && + ToolchainManager::getToolchainClass() === GccNativeToolchain::class) { + $libs .= ' -lgcov'; + } $env = [ 'CGO_ENABLED' => '1', 'CGO_CFLAGS' => clean_spaces("{$this->arch_c_flags} {$config['cflags']} " . getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS')), - 'CGO_LDFLAGS' => "{$this->arch_ld_flags} {$staticFlags} {$config['ldflags']} {$config['libs']} {$lrt}", + 'CGO_LDFLAGS' => "{$this->arch_ld_flags} {$staticFlags} {$config['ldflags']} {$libs} {$lrt}", 'XCADDY_GO_BUILD_FLAGS' => '-buildmode=pie ' . '-ldflags \"-linkmode=external ' . $extLdFlags . ' ' . $debugFlags . '-X \'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP ' . diff --git a/src/SPC/util/SPCConfigUtil.php b/src/SPC/util/SPCConfigUtil.php index 6d3e7729..d19cc858 100644 --- a/src/SPC/util/SPCConfigUtil.php +++ b/src/SPC/util/SPCConfigUtil.php @@ -8,8 +8,6 @@ use SPC\builder\BuilderBase; use SPC\builder\BuilderProvider; use SPC\exception\WrongUsageException; use SPC\store\Config; -use SPC\toolchain\GccNativeToolchain; -use SPC\toolchain\ToolchainManager; use Symfony\Component\Console\Input\ArgvInput; class SPCConfigUtil @@ -89,9 +87,6 @@ class SPCConfigUtil if (SPCTarget::getTargetOS() === 'Darwin') { $libs .= " {$this->getFrameworksString($extensions)}"; } - if (str_contains((string) getenv('SPC_DEFAULT_C_FLAGS'), '-fprofile') && ToolchainManager::getToolchainClass() === GccNativeToolchain::class) { - $libs .= ' -lgcov'; - } if ($this->builder->hasCpp()) { $libcpp = SPCTarget::getTargetOS() === 'Darwin' ? '-lc++' : '-lstdc++'; $libs = str_replace($libcpp, '', $libs) . " {$libcpp}";