From a67d223f9b54b2dae030480c2e208aa412bceb38 Mon Sep 17 00:00:00 2001 From: Luca Bolognese Date: Wed, 22 Jul 2026 16:58:10 +0200 Subject: [PATCH] Remove explicit Windows GUI entrypoint flag Drop the forced -Wl,--entry,mainCRTStartup override while keeping the Windows GUI subsystem flag. This is prepared as cleanup only; it should land after native hosted Windows canvas runtime validation succeeds. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 725fc8ac-054b-49ff-b657-3236717d9fbe --- README.md | 2 +- tests/test_build_common.ps1 | 2 +- tools/build_common.ps1 | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9c6c1b1..8dce67b 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ Switch to a TrueType font (`TT`) and bump the size (`16pt`) for a clean, modern | Platform | Default | Runtime | Notes | | --- | --- | --- | --- | -| Windows x86-64 | `native` | hosted libc (`--libc`) | Links QuickJS, WinHTTP, Winsock, gzip bridge, and miniz. Release builds pass the Windows GUI subsystem flags. | +| Windows x86-64 | `native` | hosted libc (`--libc`) | Links QuickJS, WinHTTP, Winsock, gzip bridge, and miniz. Release builds pass the Windows GUI subsystem flag. | | Linux x86-64 | `native` | hosted libc (`--libc`) | Adds `-D_GNU_SOURCE` for bundled QuickJS and `-static` so release/test binaries do not depend on a host musl loader, avoids the known QuickJS/freestanding crash path, and links gzip bridge + miniz through the native backend. | | macOS x86-64 | `c` | C backend | Native backend is not supported on macOS, so macOS intentionally stays on the C backend. | diff --git a/tests/test_build_common.ps1 b/tests/test_build_common.ps1 index c474a56..f103b6a 100644 --- a/tests/test_build_common.ps1 +++ b/tests/test_build_common.ps1 @@ -102,7 +102,7 @@ $windowsNative = @(Add-OscaWebPlatformLinkArgs -InputArgs @('input.osc') -Config Assert-ContainsSequence -Name 'Windows uses extra-lib for WinHTTP when supported' -ActualArgs $windowsNative -Sequence @('--extra-lib', 'winhttp') Assert-ContainsSequence -Name 'Windows uses extra-lib for Winsock when supported' -ActualArgs $windowsNative -Sequence @('--extra-lib', 'ws2_32') Assert-ContainsSequence -Name 'Windows GUI keeps subsystem driver flag' -ActualArgs $windowsNative -Sequence @('--extra-cflags', '-Wl,--subsystem,windows') -Assert-ContainsSequence -Name 'Windows GUI keeps mainCRTStartup driver flag' -ActualArgs $windowsNative -Sequence @('--extra-cflags', '-Wl,--entry,mainCRTStartup') +Assert-NotContainsSequence -Name 'Windows GUI does not override CRT entrypoint' -ActualArgs $windowsNative -Sequence @('--extra-cflags', '-Wl,--entry,mainCRTStartup') $windowsLegacy = @(Add-OscaWebPlatformLinkArgs -InputArgs @('input.osc') -Config (New-TestConfig -Backend native -SupportsExtraLib $false) -Platform windows) Assert-ContainsSequence -Name 'Windows falls back to extra-cflags library syntax for old oscan' -ActualArgs $windowsLegacy -Sequence @('--extra-cflags', '-lwinhttp') diff --git a/tools/build_common.ps1 b/tools/build_common.ps1 index bbbd9ad..61a4f39 100644 --- a/tools/build_common.ps1 +++ b/tools/build_common.ps1 @@ -166,7 +166,6 @@ function Add-OscaWebPlatformLinkArgs { $out = Add-OscaWebExtraLibArg -InputArgs $out -Config $Config -Library 'ws2_32' if ($WindowsGui) { $out = Add-OscaWebExtraCFlagArg -InputArgs $out -Flag '-Wl,--subsystem,windows' - $out = Add-OscaWebExtraCFlagArg -InputArgs $out -Flag '-Wl,--entry,mainCRTStartup' } } elseif ($Platform -eq 'linux' -and $Config.Backend -eq 'native') { $out = Add-OscaWebExtraCFlagArg -InputArgs $out -Flag '-D_GNU_SOURCE'