include: Specify explicit alignment for __int64 types.
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;