Skip to content

Fable v3 windows#1207

Open
henderkes wants to merge 21 commits into
v3from
fable-v3-windows
Open

Fable v3 windows#1207
henderkes wants to merge 21 commits into
v3from
fable-v3-windows

Conversation

@henderkes

Copy link
Copy Markdown
Collaborator

What does this PR do?

Checklist before merging

  • If you modified *.php or *.yml, run them locally to ensure your changes are valid:
    • composer cs-fix
    • composer analyse
    • composer test
    • bin/spc dev:lint-config

henderkes and others added 5 commits June 14, 2026 11:51
…lang >= 20

Go passes the MinGW-only -mthreads flag to the C compiler for cgo builds
(golang/go#16932); Clang >= 20 rejects it for the MSVC target, so the final
frankenphp go build fails on current windows-latest (VS 18 / LLVM 20+).

Wrap Clang with a generated .bat that drops the -mthreads token and forwards
the rest, used only when the detected Clang refuses the flag.
@crazywhalecc crazywhalecc added the need-test This PR has not been tested yet, cannot merge now label Jul 8, 2026
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

StaticPHP Test Bot

Detected: Extensions: imagick, pgsql | Libraries: imagemagick, libiconv-win, libzip, openssl, postgresql | Targets: curl
Active labels: none
Available labels: need-test (gate), test/linux test/windows test/macos (platform), test/tier2 (extra arch), test/php-83 test/php-84 (PHP version)
Config: Linux x86_64 + Windows x86_64 + macOS arm64 | PHP 8.5 NTS

@crazywhalecc

crazywhalecc commented Jul 8, 2026

Copy link
Copy Markdown
Owner

postgresql build depends on meson that we haven't installed in our procedure. Either install in msys2, or add a separate tool package to install, if we really need to build pgsql from source.

@m-this

m-this commented Jul 8, 2026

Copy link
Copy Markdown

Fixes for the three failing Windows tests are in #1208 (four separate bugs, details over there). Hope it helps getting this branch merged 🙂

m-this and others added 14 commits July 8, 2026 11:15
- the meson build assumed meson/ninja/win_flex/win_bison/perl on PATH,
  which only held on machines that had them installed
- add meson, ninja and winflexbison tool packages and declare them via
  tools@windows on postgresql, together with the existing strawberry-perl
- meson no longer ships a Windows MSI, so the wheel is installed offline
  into a venv: postgres re-invokes meson through find_program, which
  needs the real meson.exe launcher pip generates
- php.exe already links with /FORCE:MULTIPLE for extension-bundled
  duplicate symbols, cgi and micro did not
- imagick's MagickCore defines gettimeofday, also defined in php's
  time.obj, and both links failed with LNK2005
- libpq authenticates through SSPI and the static libcrypto behind it
  reads the system cert store; php.exe failed to link with unresolved
  Cert* and SSPI symbols when the openssl extension is not in the build
- static-libs@windows listed both libiconv.lib (the dll import lib) and
  libiconv_a.lib; the import lib came first, so php.exe ended up
  importing libiconv.dll and the cli smoke test died with
  STATUS_DLL_NOT_FOUND on machines without it
- add a python-win tool package that unzips the official python.org
  nuget package into the pkgroot (venv and ensurepip included)
- meson uses it to build its venv and only falls back to a system
  python, so no manual environment setup is needed
…dle hash storage for both file and directory targets
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

need-test This PR has not been tested yet, cannot merge now

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants