Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 9 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,13 @@ env:
# `mbregex` in BOTH lists alongside `mbstring`.
#
# NOTE on shmop/sockets: added for downstream consumers that ship them
# (PAM's reviewed extension surface). They are NOT in WIN_PHP_EXTENSIONS —
# PHP supports both on Windows, but neither has ever been through spc's
# Windows toolchain here and the Windows leg is the longest and most
# fragile in this workflow. Validate with a `release_tag_suffix` dispatch
# before adding them there.
# (PAM's reviewed extension surface); sockets is also required by phpIPAM and
# other apps that call socket_*(). `sockets` IS in WIN_PHP_EXTENSIONS: PHP's
# ext/sockets/config.w32 needs only ws2_32.lib + Iphlpapi.lib; ext/standard
# already links iphlpapi and ephpm links ws2_32. `shmop` is NOT —
# PHP supports it on Windows, but it has never been through spc's Windows
# toolchain here and the Windows leg is the longest and most fragile in this
# workflow. Validate with a `release_tag_suffix` dispatch before adding it.
#
# NOTE on ffi: deliberately absent. spc's ext-ffi passes
# `--enable-zend-signals`, and its extension args land AFTER the target
Expand Down Expand Up @@ -1053,7 +1055,7 @@ jobs:
# (links against LIBPQ.DLL) instead of a static build
# Re-add as spc grows Windows support for its underlying library.
env:
WIN_PHP_EXTENSIONS: "bcmath,bz2,calendar,ctype,curl,dom,exif,fileinfo,filter,ftp,gd,gettext,hash,iconv,intl,mbregex,mbstring,mysqli,mysqlnd,opcache,openssl,pcre,pdo,pdo_mysql,pdo_sqlite,phar,session,simplexml,soap,sodium,sqlite3,tokenizer,xml,xmlreader,xmlwriter,xsl,zip,zlib"
WIN_PHP_EXTENSIONS: "bcmath,bz2,calendar,ctype,curl,dom,exif,fileinfo,filter,ftp,gd,gettext,hash,iconv,intl,mbregex,mbstring,mysqli,mysqlnd,opcache,openssl,pcre,pdo,pdo_mysql,pdo_sqlite,phar,session,simplexml,soap,sockets,sodium,sqlite3,tokenizer,xml,xmlreader,xmlwriter,xsl,zip,zlib"
steps:
- name: Clean up previous builds
shell: powershell
Expand Down Expand Up @@ -1606,7 +1608,7 @@ jobs:
# Same extension set as the MSVC lane — the artifact must differ ONLY in
# the compiler and VM kind.
env:
WIN_PHP_EXTENSIONS: "bcmath,bz2,calendar,ctype,curl,dom,exif,fileinfo,filter,ftp,gd,gettext,hash,iconv,intl,mbregex,mbstring,mysqli,mysqlnd,opcache,openssl,pcre,pdo,pdo_mysql,pdo_sqlite,phar,session,simplexml,soap,sodium,sqlite3,tokenizer,xml,xmlreader,xmlwriter,xsl,zip,zlib"
WIN_PHP_EXTENSIONS: "bcmath,bz2,calendar,ctype,curl,dom,exif,fileinfo,filter,ftp,gd,gettext,hash,iconv,intl,mbregex,mbstring,mysqli,mysqlnd,opcache,openssl,pcre,pdo,pdo_mysql,pdo_sqlite,phar,session,simplexml,soap,sockets,sodium,sqlite3,tokenizer,xml,xmlreader,xmlwriter,xsl,zip,zlib"
# Pinned LLVM toolchain (see job comment: VS-bundled clang 19 is slower
# than MSVC; 22.1.8 is the measured-good floor).
LLVM_VERSION: "22.1.8"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ sysvsem, sysvshm, tokenizer, xml, xmlreader, xmlwriter, xsl, zip, zlib

The NTS variants additionally include `ffi`.

Windows drops the Unix-only entries (`pcntl`, `posix`, `sysv*`), plus `gmp`, `pgsql` and `pdo_pgsql`, which static-php-cli cannot build statically on Windows today. It also does not yet carry `shmop` or `sockets` — PHP supports both there, but neither has been validated through spc's Windows toolchain from this repo.
Windows drops the Unix-only entries (`pcntl`, `posix`, `sysv*`), plus `gmp`, `pgsql` and `pdo_pgsql`, which static-php-cli cannot build statically on Windows today. It also does not yet carry `shmop` — PHP supports it there, but it has not been validated through spc's Windows toolchain from this repo. `sockets` is carried on Windows too (it needs only `ws2_32` and `Iphlpapi`).

`ffi` is not in the shared extension set on purpose. static-php-cli's `ext-ffi` passes `--enable-zend-signals`, and extension arguments land after the target arguments on the configure line, so it would override the `--disable-zend-signals` that spc emits for ZTS builds — silently changing signal behavior in the SDK ePHPm links. NTS builds emit no `--disable-zend-signals`, so `ffi` rides along there.

Expand Down
4 changes: 2 additions & 2 deletions tools/windows-shared/package.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ $WantedExtensions = @(
'bcmath', 'bz2', 'calendar', 'ctype', 'curl', 'dom', 'mbstring', 'exif',
'fileinfo', 'filter', 'ftp', 'gd', 'gettext', 'hash', 'iconv', 'intl',
'mysqlnd', 'mysqli', 'opcache', 'openssl', 'pcre', 'pdo', 'pdo_mysql',
'pdo_sqlite', 'phar', 'session', 'simplexml', 'soap', 'sodium', 'sqlite3',
'tokenizer', 'xml', 'xmlreader', 'xmlwriter', 'xsl', 'zip', 'zlib'
'pdo_sqlite', 'phar', 'session', 'simplexml', 'soap', 'sockets', 'sodium',
'sqlite3', 'tokenizer', 'xml', 'xmlreader', 'xmlwriter', 'xsl', 'zip', 'zlib'
)
# Loaded with zend_extension= rather than extension= when shipped as a DLL
# (PHP 8.3/8.4; 8.5 compiles OPcache into php8ts.dll).
Expand Down
Loading