| ... | ... | @@ -7872,7 +7872,6 @@ Buf *codegen_generate_builtin_source(CodeGen *g) { |
| 7872 | 7872 | { |
| 7873 | 7873 | buf_appendf(contents, |
| 7874 | 7874 | "pub const SubSystem = enum {\n" |
| 7875 | | " Auto,\n" |
| 7876 | 7875 | " Console,\n" |
| 7877 | 7876 | " Windows,\n" |
| 7878 | 7877 | " Posix,\n" |
| ... | ... | @@ -7883,7 +7882,6 @@ Buf *codegen_generate_builtin_source(CodeGen *g) { |
| 7883 | 7882 | " EfiRuntimeDriver,\n" |
| 7884 | 7883 | "};\n\n"); |
| 7885 | 7884 | |
| 7886 | | assert(TargetSubsystemAuto == 0); |
| 7887 | 7885 | assert(TargetSubsystemConsole == 1); |
| 7888 | 7886 | assert(TargetSubsystemWindows == 2); |
| 7889 | 7887 | assert(TargetSubsystemPosix == 3); |
| ... | ... | @@ -7911,7 +7909,6 @@ Buf *codegen_generate_builtin_source(CodeGen *g) { |
| 7911 | 7909 | |
| 7912 | 7910 | { |
| 7913 | 7911 | static const char* subsystem_strings[] = { |
| 7914 | | "Auto", |
| 7915 | 7912 | "Console", |
| 7916 | 7913 | "Windows", |
| 7917 | 7914 | "Posix", |
| ... | ... | @@ -7921,7 +7918,19 @@ Buf *codegen_generate_builtin_source(CodeGen *g) { |
| 7921 | 7918 | "EfiRom", |
| 7922 | 7919 | "EfiRuntimeDriver", |
| 7923 | 7920 | }; |
| 7924 | | buf_appendf(contents, "pub const subsystem = SubSystem.%s;\n", subsystem_strings[g->subsystem]); |
| 7921 | |
| 7922 | if (g->subsystem == TargetSubsystemAuto) { |
| 7923 | if (g->have_c_main || g->have_pub_main) { |
| 7924 | buf_appendf(contents, "pub const subsystem = SubSystem.%s;\n", subsystem_strings[TargetSubsystemConsole - 1]); |
| 7925 | } else if (g->have_winmain || g->have_winmain_crt_startup) { |
| 7926 | buf_appendf(contents, "pub const subsystem = SubSystem.%s;\n", subsystem_strings[TargetSubsystemWindows - 1]); |
| 7927 | } else if (g->have_dllmain_crt_startup || g->out_type == OutTypeLib) { |
| 7928 | buf_appendf(contents, "pub const subsystem = null;\n"); |
| 7929 | } |
| 7930 | } else { |
| 7931 | buf_appendf(contents, "pub const subsystem = SubSystem.%s;\n", subsystem_strings[g->subsystem - 1]); |
| 7932 | } |
| 7933 | |
| 7925 | 7934 | } |
| 7926 | 7935 | |
| 7927 | 7936 | if (g->is_test_build) { |
| ... | ... | @@ -7967,7 +7976,7 @@ static Error define_builtin_compile_vars(CodeGen *g) { |
| 7967 | 7976 | cache_bool(&cache_hash, g->have_err_ret_tracing); |
| 7968 | 7977 | cache_bool(&cache_hash, g->libc_link_lib != nullptr); |
| 7969 | 7978 | cache_bool(&cache_hash, g->valgrind_support); |
| 7970 | | cache_int(&cache_hash, g->subsystem); |
| 7979 | cache_int(&cache_hash, g->subsystem - 1); |
| 7971 | 7980 | |
| 7972 | 7981 | Buf digest = BUF_INIT; |
| 7973 | 7982 | buf_resize(&digest, 0); |