From 82ec7733bafd8152ec20df7edc0341b93c224c87 Mon Sep 17 00:00:00 2001 From: DubbleClick Date: Thu, 19 Jun 2025 11:59:41 +0700 Subject: [PATCH] musl: all-static! --- src/SPC/builder/unix/UnixBuilderBase.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/SPC/builder/unix/UnixBuilderBase.php b/src/SPC/builder/unix/UnixBuilderBase.php index d88605ae..a13a8e72 100644 --- a/src/SPC/builder/unix/UnixBuilderBase.php +++ b/src/SPC/builder/unix/UnixBuilderBase.php @@ -331,7 +331,13 @@ abstract class UnixBuilderBase extends BuilderBase if (getenv('SPC_CMD_VAR_PHP_EMBED_TYPE') === 'shared') { $libphpVersion = preg_replace('/\.\d$/', '', $libphpVersion); } - $debugFlags = $this->getOption('--with-debug') ? "'-w -s' " : ''; + $debugFlags = $this->getOption('no-strip') ? "'-w -s' " : ''; + $extLdFlags = "-extldflags '-pie'"; + $muslTags = ''; + if (PHP_OS_FAMILY === 'Linux' && getenv('SPC_LIBC') === 'musl') { + $extLdFlags = "-extldflags '-static-pie -Wl,-z,stack-size=0x80000'"; + $muslTags = 'static_build,'; + } $config = (new SPCConfigUtil($this))->config($this->ext_list, $this->lib_list, with_dependencies: true); @@ -344,10 +350,10 @@ abstract class UnixBuilderBase extends BuilderBase 'CGO_CFLAGS' => $config['cflags'], 'CGO_LDFLAGS' => "{$config['ldflags']} {$config['libs']} {$lrt}", 'XCADDY_GO_BUILD_FLAGS' => '-buildmode=pie ' . - '-ldflags \"-linkmode=external -extldflags \'-pie\' ' . $debugFlags . + '-ldflags \"-linkmode=external ' . $extLdFlags . ' ' . $debugFlags . '-X \'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP ' . "{$frankenPhpVersion} PHP {$libphpVersion} Caddy'\\\" " . - "-tags=nobadger,nomysql,nopgx{$nobrotli}{$nowatcher}", + "-tags={$muslTags}nobadger,nomysql,nopgx{$nobrotli}{$nowatcher}", 'LD_LIBRARY_PATH' => BUILD_LIB_PATH, ]; shell()->cd(BUILD_BIN_PATH)