diff --git a/lib/std/builtin.zig b/lib/std/builtin.zig index b073d7300b..89acb0df60 100644 --- a/lib/std/builtin.zig +++ b/lib/std/builtin.zig @@ -26,7 +26,8 @@ pub const subsystem: ?SubSystem = blk: { if (is_test) { break :blk SubSystem.Console; } - if (@hasDecl(root, "WinMain") or + if (@hasDecl(root, "main") or + @hasDecl(root, "WinMain") or @hasDecl(root, "wWinMain") or @hasDecl(root, "WinMainCRTStartup") or @hasDecl(root, "wWinMainCRTStartup")) diff --git a/src/codegen.cpp b/src/codegen.cpp index 8ba0613334..bc66d08167 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -8229,9 +8229,9 @@ TargetSubsystem detect_subsystem(CodeGen *g) { if (g->zig_target->os == OsWindows) { if (g->have_dllmain_crt_startup || (g->out_type == OutTypeLib && g->is_dynamic)) return TargetSubsystemAuto; - if (g->have_c_main || g->is_test_build) + if (g->have_c_main || g->is_test_build || g->have_winmain_crt_startup) return TargetSubsystemConsole; - if (g->have_winmain || g->have_winmain_crt_startup) + if (g->have_winmain) return TargetSubsystemWindows; } else if (g->zig_target->os == OsUefi) { return TargetSubsystemEfiApplication;