Re: [PATCH] Modify mingw_main() workaround to avoid link errors
From: Johannes Sixt <hidden>
Date: 2016-06-15 22:45:06
Zitat von Steffen Prohaska [off-list ref]:
With MinGW's gcc.exe (GCC) 3.4.5 (mingw special) GNU ld version 2.17.50 20060824 the old define caused link errors: git.o: In function `main': C:/msysgit/git/git.c:500: undefined reference to `mingw_main' collect2: ld returned 1 exit status The modified define works. Signed-off-by: Steffen Prohaska <redacted>
Acked-by: Johannes Sixt <redacted> I was not aware that my version (block-scoped static function forward declaration) is not valid C. Thanks, Björn, for pointing out the gcc bugzilla entries. -- Hannes
quoted hunk ↗ jump to hunk
--- compat/mingw.h | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)diff --git a/compat/mingw.h b/compat/mingw.h index 290a9e6..a52e657 100644 --- a/compat/mingw.h +++ b/compat/mingw.h@@ -228,9 +228,10 @@ char **env_setenv(char **env, const char *name); * A replacement of main() that ensures that argv[0] has a path */ -#define main(c,v) main(int argc, const char **argv) \ +#define main(c,v) dummy_decl_mingw_main(); \ +static int mingw_main(); \ +int main(int argc, const char **argv) \ { \ - static int mingw_main(); \ argv[0] = xstrdup(_pgmptr); \ return mingw_main(argc, argv); \ } \ --1.6.0.rc0.42.g186458