Builds a Windows 7-compatible flutter_windows.dll for Flutter 3.44.9
by patching the engine's third-party sources and rebuilding. The same DLL
runs unchanged on Windows 10/11: the API patches resolve missing symbols
dynamically and only fall back on Windows 7, rendering falls back to the
software compositor below Windows 10, and there is no separate Win7
artifact.
Stock Flutter ≥3.13 cannot start on Windows 7 because the engine statically imports nine Win8+ symbols. Each was traced to its caller through the official build's PDB:
| Symbol(s) | Caller | Fix |
|---|---|---|
GetCurrentThreadStackLimits |
dart::OSThread::GetCurrentStackBounds |
restore the TEB + VirtualQuery implementation (pre dart f94c325b) |
GetHostNameW |
dart::bin::Platform::LocalHostname |
restore ANSI gethostname() (pre dart 35c6cc62) |
RtlAddGrowableFunctionTable, RtlDeleteGrowableFunctionTable |
Dart unwinding records | restore the ntdll GetProcAddress shim removed in dart 34213ba6; on Win7 registration is skipped, Dart's original Win7 behavior |
PathAllocCanonicalize, PathCchCombineEx, PathCchRemoveFileSpec |
runtime/bin/file_win.cc (3 call sites) |
resolve from KernelBase at runtime, string-handling fallback on Win7 — the two years of long-path/symlink fixes stay in place |
WaitOnAddress, WakeByAddressSingle |
ANGLE SimpleMutex (not Dart) |
define ANGLE's own ANGLE_WINDOWS_NO_FUTEX escape hatch → std::mutex (SRWLock, Vista+) |
The patches apply against the exact revisions Flutter 3.44.9's DEPS pins
(Dart d684a576, ANGLE 84027aca).
Run the build workflow (manual dispatch). It checks out the engine source
via gclient, applies the patches, builds
flutter/shell/platform/windows:flutter_windows with the runner's VS
toolchain, verifies the produced DLL carries no Win8+ static import
(check_imports.py), and uploads the DLL + PDB as an artifact.
To use the result, overwrite
<flutter-sdk>/bin/cache/artifacts/engine/windows-x64-release/flutter_windows.dll
after flutter precache and build your app normally.
Note that the DLL is only one piece of running a Flutter app on Windows 7: your installer's floor and whatever your own native code imports are yours to handle.