summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2024-11-17 22:49:16 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2024-11-17 22:49:16 +0900
commit8fe8021f5a5b48520f9c1095e7cfa1fd416b6dfd (patch)
treecaf659d510e67c95f952e972981cbb00da3325fe
parent36d02dc33e2bd47c653a7ad06ed92973f3dcab37 (diff)
Win32: Expose wchar main routine only
Warned if both of `main` and `wmain` are exposed: ``` LINK : warning LNK4067: ambiguous entry point; selected 'mainCRTStartup' ```
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/12108
-rw-r--r--main.c10
-rw-r--r--win32/winmain.c4
2 files changed, 8 insertions, 6 deletions
diff --git a/main.c b/main.c
index 5e29de8009..8b2252c2c5 100644
--- a/main.c
+++ b/main.c
@@ -48,6 +48,12 @@ int rb_wasm_rt_start(int (main)(int argc, char **argv), int argc, char **argv);
#define rb_main(argc, argv) rb_wasm_rt_start(rb_main, argc, argv)
#endif
+#ifdef _WIN32
+#define main(argc, argv) w32_main(argc, argv)
+static int main(int argc, char **argv);
+int wmain(void) {return main(0, NULL);}
+#endif
+
int
main(int argc, char **argv)
{
@@ -62,10 +68,6 @@ main(int argc, char **argv)
return rb_main(argc, argv);
}
-#ifdef _WIN32
-int wmain(void) {return main(0, NULL);}
-#endif
-
#ifdef RUBY_ASAN_ENABLED
/* Compile in the ASAN options Ruby needs, rather than relying on environment variables, so
* that even tests which fork ruby with a clean environment will run ASAN with the right
diff --git a/win32/winmain.c b/win32/winmain.c
index 467a835d29..a9f38099db 100644
--- a/win32/winmain.c
+++ b/win32/winmain.c
@@ -1,10 +1,10 @@
#include <windows.h>
#include <stdio.h>
-extern int main(int, char**);
+extern int wmain(int, WCHAR**);
int WINAPI
WinMain(HINSTANCE current, HINSTANCE prev, LPSTR cmdline, int showcmd)
{
- return main(0, NULL);
+ return wmain(0, NULL);
}