Modify mingw_main() workaround to avoid link errors
authorSteffen Prohaska <prohaska@zib.de>
Sat, 26 Jul 2008 09:41:44 +0000 (11:41 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 3 Aug 2008 21:18:23 +0000 (14:18 -0700)
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 <prohaska@zib.de>
Acked-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/mingw.h

index 290a9e6f822df97984b9f769508aab36419eaf02..a52e657c51916a0032908a87b4d4df259547f4e8 100644 (file)
@@ -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); \
 } \