diff options
author | Jacob Masen-Smith <smith.jacob@gmail.com> | 2017-11-22 01:11:31 -0800 |
---|---|---|
committer | Jacob Masen-Smith <smith.jacob@gmail.com> | 2017-11-22 01:11:49 -0800 |
commit | 33e0be73f7d7b398b246933f67c643a467b7f8f2 (patch) | |
tree | e3579d0e9df7fc0bbbe994dc9765907466ff6e69 /src/include/ndpi_win32.h | |
parent | 6e62367b56d7b79f840b02604c9d5e8f6340a0c5 (diff) |
Fixed ndpi_win32.h so that it compiles on MinGW+GCC
Diffstat (limited to 'src/include/ndpi_win32.h')
-rw-r--r-- | src/include/ndpi_win32.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/include/ndpi_win32.h b/src/include/ndpi_win32.h index 8a952b293..d4109dcb2 100644 --- a/src/include/ndpi_win32.h +++ b/src/include/ndpi_win32.h @@ -24,7 +24,18 @@ #ifndef __NDPI_WIN32_H__ #define __NDPI_WIN32_H__ +// fix a MinGW build issue "error: multiple storage classes in declaration specifiers" due to MinGW +// defining extern for __forceinline types +#if (defined(__MINGW32__) || defined(__MINGW64__)) && defined(__GNUC__) +// MinGW winnt.h uses FORCEINLINE which is originally defined as __forceinline, but requires extern +#undef FORCEINLINE +#define FORCEINLINE extern __inline__ __attribute__((__always_inline__,__gnu_inline__)) +#undef __forceinline +#define __forceinline __inline__ __attribute__((__always_inline__,__gnu_inline__)) +#endif + #include <winsock2.h> +#include <windows.h> #include <ws2tcpip.h> #include <process.h> #include <io.h> @@ -40,7 +51,7 @@ #define IPVERSION 4 /* on *nix it is defined in netinet/ip.h */ -extern char* strsep(char **sp, const char *sep); +extern char* strsep(char **sp, char *sep); typedef unsigned char u_char; typedef unsigned short u_short; |