diff options
Diffstat (limited to 'include/platform.h')
-rw-r--r-- | include/platform.h | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/include/platform.h b/include/platform.h index ad27bb31a..3fb1a2dc8 100644 --- a/include/platform.h +++ b/include/platform.h | |||
@@ -7,6 +7,20 @@ | |||
7 | #ifndef BB_PLATFORM_H | 7 | #ifndef BB_PLATFORM_H |
8 | #define BB_PLATFORM_H 1 | 8 | #define BB_PLATFORM_H 1 |
9 | 9 | ||
10 | #if ENABLE_PLATFORM_MINGW32 | ||
11 | # if !defined(__MINGW32__) /* HOSTCC is called */ | ||
12 | # undef ENABLE_PLATFORM_MINGW32 | ||
13 | # else | ||
14 | # undef __USE_MINGW_ANSI_STDIO | ||
15 | # define __USE_MINGW_ANSI_STDIO 0 | ||
16 | # undef _WIN32_WINNT | ||
17 | # define _WIN32_WINNT 0x502 | ||
18 | # endif | ||
19 | #else | ||
20 | # if defined(__MINGW32__) | ||
21 | # error "You must select target platform MS Windows, or it won't build" | ||
22 | # endif | ||
23 | #endif | ||
10 | 24 | ||
11 | /* Convenience macros to test the version of gcc. */ | 25 | /* Convenience macros to test the version of gcc. */ |
12 | #undef __GNUC_PREREQ | 26 | #undef __GNUC_PREREQ |
@@ -135,7 +149,7 @@ | |||
135 | 149 | ||
136 | /* Make all declarations hidden (-fvisibility flag only affects definitions) */ | 150 | /* Make all declarations hidden (-fvisibility flag only affects definitions) */ |
137 | /* (don't include system headers after this until corresponding pop!) */ | 151 | /* (don't include system headers after this until corresponding pop!) */ |
138 | #if __GNUC_PREREQ(4,1) && !defined(__CYGWIN__) | 152 | #if __GNUC_PREREQ(4,1) && !defined(__CYGWIN__) && !ENABLE_PLATFORM_MINGW32 |
139 | # define PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN _Pragma("GCC visibility push(hidden)") | 153 | # define PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN _Pragma("GCC visibility push(hidden)") |
140 | # define POP_SAVED_FUNCTION_VISIBILITY _Pragma("GCC visibility pop") | 154 | # define POP_SAVED_FUNCTION_VISIBILITY _Pragma("GCC visibility pop") |
141 | #else | 155 | #else |
@@ -164,6 +178,13 @@ | |||
164 | # define bswap_64 __bswap64 | 178 | # define bswap_64 __bswap64 |
165 | # define bswap_32 __bswap32 | 179 | # define bswap_32 __bswap32 |
166 | # define bswap_16 __bswap16 | 180 | # define bswap_16 __bswap16 |
181 | #elif ENABLE_PLATFORM_MINGW32 | ||
182 | # define __BIG_ENDIAN 0 | ||
183 | # define __LITTLE_ENDIAN 1 | ||
184 | # define __BYTE_ORDER __LITTLE_ENDIAN | ||
185 | # define bswap_16(x) ((((x) & 0xFF00) >> 8) | (((x) & 0xFF) << 8)) | ||
186 | # define bswap_32(x) ((bswap_16(((x) & 0xFFFF0000L) >> 16)) | (bswap_16((x) & 0xFFFFL) << 16)) | ||
187 | # define bswap_64(x) ((bswap_32(((x) & 0xFFFFFFFF00000000LL) >> 32)) | (bswap_32((x) & 0xFFFFFFFFLL) << 32)) | ||
167 | #else | 188 | #else |
168 | # include <byteswap.h> | 189 | # include <byteswap.h> |
169 | # include <endian.h> | 190 | # include <endian.h> |
@@ -442,6 +463,27 @@ typedef unsigned smalluint; | |||
442 | # endif | 463 | # endif |
443 | #endif | 464 | #endif |
444 | 465 | ||
466 | #if ENABLE_PLATFORM_MINGW32 | ||
467 | # undef HAVE_FDATASYNC | ||
468 | # undef HAVE_DPRINTF | ||
469 | # undef HAVE_GETLINE | ||
470 | # undef HAVE_MEMRCHR | ||
471 | # undef HAVE_MKDTEMP | ||
472 | # undef HAVE_SETBIT | ||
473 | # undef HAVE_STPCPY | ||
474 | # undef HAVE_STPNCPY | ||
475 | # undef HAVE_STRCASESTR | ||
476 | # undef HAVE_STRCHRNUL | ||
477 | # undef HAVE_STRSEP | ||
478 | # undef HAVE_STRVERSCMP | ||
479 | #if !defined(__MINGW64_VERSION_MAJOR) | ||
480 | # undef HAVE_VASPRINTF | ||
481 | #endif | ||
482 | # undef HAVE_UNLOCKED_STDIO | ||
483 | # undef HAVE_UNLOCKED_LINE_OPS | ||
484 | # undef HAVE_PRINTF_PERCENTM | ||
485 | #endif | ||
486 | |||
445 | #if defined(__WATCOMC__) | 487 | #if defined(__WATCOMC__) |
446 | # undef HAVE_DPRINTF | 488 | # undef HAVE_DPRINTF |
447 | # undef HAVE_GETLINE | 489 | # undef HAVE_GETLINE |
@@ -562,6 +604,7 @@ extern int dprintf(int fd, const char *format, ...); | |||
562 | #endif | 604 | #endif |
563 | 605 | ||
564 | #ifndef HAVE_MEMRCHR | 606 | #ifndef HAVE_MEMRCHR |
607 | #include <stddef.h> | ||
565 | extern void *memrchr(const void *s, int c, size_t n) FAST_FUNC; | 608 | extern void *memrchr(const void *s, int c, size_t n) FAST_FUNC; |
566 | #endif | 609 | #endif |
567 | 610 | ||
@@ -625,6 +668,7 @@ extern int usleep(unsigned) FAST_FUNC; | |||
625 | #endif | 668 | #endif |
626 | 669 | ||
627 | #ifndef HAVE_VASPRINTF | 670 | #ifndef HAVE_VASPRINTF |
671 | # include <stdarg.h> | ||
628 | extern int vasprintf(char **string_ptr, const char *format, va_list p) FAST_FUNC; | 672 | extern int vasprintf(char **string_ptr, const char *format, va_list p) FAST_FUNC; |
629 | #endif | 673 | #endif |
630 | 674 | ||