diff --git a/ChangeLog b/ChangeLog index e083e56a0..803942412 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2013-10-15 Vladimir Serbinenko + + Allow compilation with mingw64 albeit with warnings due to lack of + %llx/%llu. + + * grub-core/gnulib/msvc-inval.c: Use __cdecl rather than cdecl. + * grub-core/lib/posix_wrap/wchar.h: Define wint_t. + * grub-core/lib/posix_wrap/wctype.h: Define wctype_t. + * include/grub/osdep/hostfile_windows.h: Don't define fseeko/ftello + on mingw64. + * include/grub/types.h: Allow sizeof (long) != sizeof (void *). + 2013-10-15 Vladimir Serbinenko Remove leftover references to some of the system headers. diff --git a/grub-core/gnulib/msvc-inval.c b/grub-core/gnulib/msvc-inval.c index 72a6b6ee8..7e57731eb 100644 --- a/grub-core/gnulib/msvc-inval.c +++ b/grub-core/gnulib/msvc-inval.c @@ -28,7 +28,7 @@ # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING -static void cdecl +static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, diff --git a/grub-core/lib/posix_wrap/wchar.h b/grub-core/lib/posix_wrap/wchar.h index d5d7741de..e0e04a6a0 100644 --- a/grub-core/lib/posix_wrap/wchar.h +++ b/grub-core/lib/posix_wrap/wchar.h @@ -21,6 +21,7 @@ #include +#define wint_t grub_posix_wint_t #define wchar_t grub_posix_wchar_t #define mbstate_t grub_posix_mbstate_t diff --git a/grub-core/lib/posix_wrap/wctype.h b/grub-core/lib/posix_wrap/wctype.h index 0dab48b97..3771dc5cb 100644 --- a/grub-core/lib/posix_wrap/wctype.h +++ b/grub-core/lib/posix_wrap/wctype.h @@ -22,6 +22,8 @@ #include #include +#define wctype_t grub_posix_wctype_t + typedef enum { GRUB_CTYPE_INVALID, GRUB_CTYPE_ALNUM, GRUB_CTYPE_CNTRL, GRUB_CTYPE_LOWER, GRUB_CTYPE_SPACE, GRUB_CTYPE_ALPHA, GRUB_CTYPE_DIGIT, diff --git a/include/grub/osdep/hostfile_windows.h b/include/grub/osdep/hostfile_windows.h index 21419de3c..13c4cb650 100644 --- a/include/grub/osdep/hostfile_windows.h +++ b/include/grub/osdep/hostfile_windows.h @@ -64,6 +64,12 @@ enum grub_util_fd_open_flags_t GRUB_UTIL_FD_O_SYNC = 0, }; +#if defined (__MINGW32__) && !defined (__MINGW64__) + +#define fseeko fseeko64 + +#endif + LPTSTR grub_util_utf8_to_tchar (const char *in); char * @@ -73,9 +79,6 @@ grub_util_tchar_to_utf8 (LPCTSTR in); int fsync (int fno); -#define fseeko fseeko64 -#define ftello ftello64 - #endif #endif diff --git a/include/grub/types.h b/include/grub/types.h index 7c6c28601..1620227cd 100644 --- a/include/grub/types.h +++ b/include/grub/types.h @@ -50,14 +50,14 @@ # endif #endif /* ! GRUB_UTIL */ -#if GRUB_CPU_SIZEOF_VOID_P != GRUB_CPU_SIZEOF_LONG -# error "This architecture is not supported because sizeof(void *) != sizeof(long)" -#endif - #if GRUB_CPU_SIZEOF_VOID_P != 4 && GRUB_CPU_SIZEOF_VOID_P != 8 # error "This architecture is not supported because sizeof(void *) != 4 and sizeof(void *) != 8" #endif +#if GRUB_CPU_SIZEOF_LONG != 4 && GRUB_CPU_SIZEOF_LONG != 8 +# error "This architecture is not supported because sizeof(long) != 4 and sizeof(long) != 8" +#endif + #if !defined (GRUB_UTIL) && !defined (GRUB_TARGET_WORDSIZE) # if GRUB_TARGET_SIZEOF_VOID_P == 4 # define GRUB_TARGET_WORDSIZE 32