Subject: bug#9960: Compiling Emacs trunk with MSVC

From: Christoph Scholtes <[email-masked]>
Date: Sat, 05 Nov 2011 07:58:12 -0600

On 11/5/2011 7:22 AM, Eli Zaretskii wrote:

> Does this patch give good results?

Yes. Better. Thanks.

Then it can't find a definition of `mode_t' in `strmode'.

This patch will fix this error:

  /* Define to the equivalent of the C99 'restrict' keyword, or to
     nothing if this is not supported.  Do not define if restrict is
@@ -341,6 +345,13 @@
  # define restrict
  #endif

+/* Define to `int' if <sys/types.h> does not define. */
+#ifdef __GNUC__
+/* No action required for gcc */
+#else /* MSVC */
+#define mode_t int
+#endif
+
  /* A va_copy replacement for MSVC.  */
  #ifdef _MSC_VER
  # ifdef _WIN64

After that, I get a link error for ctags:

ctags.obj : error LNK2019: unresolved external symbol _sys_stat 
referenced in fu
nction _process_file_name
obj/i386/ctags.exe : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual 
Studio 9.0\
VC\BIN\link.EXE"' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual 
Studio 9.0\
VC\BIN\nmake.exe"' : return code '0x2'
Stop.

I am not sure what to do about _sys_stat.

Christoph