include: Specify explicit alignment for __int64 types.
diff --git a/dlls/msvcrt/msvcrt.h b/dlls/msvcrt/msvcrt.h index 337a17c..1de0c7b 100644 --- a/dlls/msvcrt/msvcrt.h +++ b/dlls/msvcrt/msvcrt.h
@@ -64,8 +64,8 @@ typedef int MSVCRT__off_t; typedef int MSVCRT_clock_t; typedef int MSVCRT___time32_t; -typedef __int64 MSVCRT___time64_t; -typedef __int64 MSVCRT_fpos_t; +typedef __int64 DECLSPEC_ALIGN(8) MSVCRT___time64_t; +typedef __int64 DECLSPEC_ALIGN(8) MSVCRT_fpos_t; typedef void (*__cdecl MSVCRT_terminate_handler)(void); typedef void (*__cdecl MSVCRT_terminate_function)(void); @@ -316,7 +316,7 @@ MSVCRT___time32_t time_create; MSVCRT___time32_t time_access; MSVCRT___time32_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; char name[260]; }; @@ -334,7 +334,7 @@ MSVCRT___time64_t time_create; MSVCRT___time64_t time_access; MSVCRT___time64_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; char name[260]; }; @@ -352,7 +352,7 @@ MSVCRT___time32_t time_create; MSVCRT___time32_t time_access; MSVCRT___time32_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; MSVCRT_wchar_t name[260]; }; @@ -370,7 +370,7 @@ MSVCRT___time64_t time_create; MSVCRT___time64_t time_access; MSVCRT___time64_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; MSVCRT_wchar_t name[260]; };
diff --git a/include/msvcrt/crtdefs.h b/include/msvcrt/crtdefs.h index 2a101a9..61116e9 100644 --- a/include/msvcrt/crtdefs.h +++ b/include/msvcrt/crtdefs.h
@@ -80,6 +80,16 @@ # endif #endif +#ifndef DECLSPEC_ALIGN +# if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS) +# define DECLSPEC_ALIGN(x) __declspec(align(x)) +# elif defined(__GNUC__) +# define DECLSPEC_ALIGN(x) __attribute__((aligned(x))) +# else +# define DECLSPEC_ALIGN(x) +# endif +#endif + #ifndef _MSVCRT_LONG_DEFINED #define _MSVCRT_LONG_DEFINED /* we need 32-bit longs even on 64-bit */ @@ -129,7 +139,7 @@ #endif #ifndef _TIME64_T_DEFINED -typedef __int64 __time64_t; +typedef __int64 DECLSPEC_ALIGN(8) __time64_t; #define _TIME64_T_DEFINED #endif
diff --git a/include/msvcrt/io.h b/include/msvcrt/io.h index e15dff1..c7ba9ab 100644 --- a/include/msvcrt/io.h +++ b/include/msvcrt/io.h
@@ -44,7 +44,7 @@ time_t time_create; time_t time_access; time_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; char name[260]; }; #endif /* _FINDDATA_T_DEFINED */ @@ -65,7 +65,7 @@ time_t time_create; time_t time_access; time_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; wchar_t name[260]; }; #endif /* _WFINDDATA_T_DEFINED */
diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h index 1b3872c..b309ebb 100644 --- a/include/msvcrt/stdio.h +++ b/include/msvcrt/stdio.h
@@ -72,7 +72,7 @@ #endif /* _FILE_DEFINED */ #ifndef _FPOS_T_DEFINED -typedef __int64 fpos_t; +typedef __int64 DECLSPEC_ALIGN(8) fpos_t; #define _FPOS_T_DEFINED #endif
diff --git a/include/msvcrt/wchar.h b/include/msvcrt/wchar.h index fe76166..66d3a81 100644 --- a/include/msvcrt/wchar.h +++ b/include/msvcrt/wchar.h
@@ -111,7 +111,7 @@ time_t time_create; time_t time_access; time_t time_write; - __int64 size; + __int64 DECLSPEC_ALIGN(8) size; wchar_t name[260]; };
diff --git a/include/ws2def.h b/include/ws2def.h index f2f7223..585647b 100644 --- a/include/ws2def.h +++ b/include/ws2def.h
@@ -58,7 +58,7 @@ typedef struct WS(sockaddr_storage) { short ss_family; char __ss_pad1[WS(_SS_PAD1SIZE)]; - __int64 __ss_align; + __int64 DECLSPEC_ALIGN(8) __ss_align; char __ss_pad2[WS(_SS_PAD2SIZE)]; } SOCKADDR_STORAGE, *PSOCKADDR_STORAGE, *LPSOCKADDR_STORAGE;