crt: fix _MINGW_UDERSCORE_PREFIX for arm
diff --git a/mingw-w64-headers/crt/_mingw_mac.h b/mingw-w64-headers/crt/_mingw_mac.h
index 65d0e70..843aebd 100644
--- a/mingw-w64-headers/crt/_mingw_mac.h
+++ b/mingw-w64-headers/crt/_mingw_mac.h
@@ -36,48 +36,9 @@
#define __MINGW32_MAJOR_VERSION 3
#define __MINGW32_MINOR_VERSION 11
-#ifdef _WIN64
- /* MS does not prefix symbols by underscores for 64-bit. */
-# ifndef __MINGW_USE_UNDERSCORE_PREFIX
- /* As we have to support older gcc version, which are using underscores
- as symbol prefix for x64, we have to check here for the user label
- prefix defined by gcc. */
-# ifdef __USER_LABEL_PREFIX__
-# pragma push_macro ("_")
-# undef _
-# define _ 1
-# if (__USER_LABEL_PREFIX__ + 0) != 0
-# define __MINGW_USE_UNDERSCORE_PREFIX 1
-# else
-# define __MINGW_USE_UNDERSCORE_PREFIX 0
-# endif
-# undef _
-# pragma pop_macro ("_")
-# else /* ! __USER_LABEL_PREFIX__ */
-# define __MINGW_USE_UNDERSCORE_PREFIX 0
-# endif /* __USER_LABEL_PREFIX__ */
-# endif
-#else /* ! ifdef _WIN64 */
- /* For 32-bits we have always to prefix by underscore. */
-# undef __MINGW_USE_UNDERSCORE_PREFIX
-# define __MINGW_USE_UNDERSCORE_PREFIX 1
-#endif /* ifdef _WIN64 */
-
-#if __MINGW_USE_UNDERSCORE_PREFIX == 0
-# define __MINGW_IMP_SYMBOL(sym) __imp_##sym
-# define __MINGW_IMP_LSYMBOL(sym) __imp_##sym
-# define __MINGW_USYMBOL(sym) sym
-# define __MINGW_LSYMBOL(sym) _##sym
-#else /* ! if __MINGW_USE_UNDERSCORE_PREFIX == 0 */
-# define __MINGW_IMP_SYMBOL(sym) _imp__##sym
-# define __MINGW_IMP_LSYMBOL(sym) __imp__##sym
-# define __MINGW_USYMBOL(sym) _##sym
-# define __MINGW_LSYMBOL(sym) sym
-#endif /* if __MINGW_USE_UNDERSCORE_PREFIX == 0 */
-
/* Set VC specific compiler target macros. */
#if defined(__x86_64) && defined(_X86_)
-# undef _X86_ /* _X86_ is not for __x86_64 */
+# undef _X86_ /* _X86_ is not for __x86_64 */
#endif
#if defined(_X86_) && !defined(_M_IX86) && !defined(_M_IA64) \
@@ -104,13 +65,58 @@
# define _M_IA64 100
#endif
-#if defined(__arm__) && !defined(_M_ARM)
+#if defined(__arm__) && !defined(_M_ARM) && !defined(_M_ARMT) \
+ && !defined(_M_THUMB)
# define _M_ARM 100
+# define _M_ARMT 100
+# define _M_THUMB 100
# ifndef _ARM_
# define _ARM_ 1
# endif
+# ifndef _M_ARM_NT
+# define _M_ARM_NT 1
+# endif
#endif
+#ifndef _X86_
+ /* MS does not prefix symbols by underscores for 64-bit. */
+# ifndef __MINGW_USE_UNDERSCORE_PREFIX
+ /* As we have to support older gcc version, which are using underscores
+ as symbol prefix for x64, we have to check here for the user label
+ prefix defined by gcc. */
+# ifdef __USER_LABEL_PREFIX__
+# pragma push_macro ("_")
+# undef _
+# define _ 1
+# if (__USER_LABEL_PREFIX__ + 0) != 0
+# define __MINGW_USE_UNDERSCORE_PREFIX 1
+# else
+# define __MINGW_USE_UNDERSCORE_PREFIX 0
+# endif
+# undef _
+# pragma pop_macro ("_")
+# else /* ! __USER_LABEL_PREFIX__ */
+# define __MINGW_USE_UNDERSCORE_PREFIX 0
+# endif /* __USER_LABEL_PREFIX__ */
+# endif
+#else /* ! ifndef _X86_ */
+ /* For x86 we have always to prefix by underscore. */
+# undef __MINGW_USE_UNDERSCORE_PREFIX
+# define __MINGW_USE_UNDERSCORE_PREFIX 1
+#endif /* ifndef _X86_ */
+
+#if __MINGW_USE_UNDERSCORE_PREFIX == 0
+# define __MINGW_IMP_SYMBOL(sym) __imp_##sym
+# define __MINGW_IMP_LSYMBOL(sym) __imp_##sym
+# define __MINGW_USYMBOL(sym) sym
+# define __MINGW_LSYMBOL(sym) _##sym
+#else /* ! if __MINGW_USE_UNDERSCORE_PREFIX == 0 */
+# define __MINGW_IMP_SYMBOL(sym) _imp__##sym
+# define __MINGW_IMP_LSYMBOL(sym) __imp__##sym
+# define __MINGW_USYMBOL(sym) _##sym
+# define __MINGW_LSYMBOL(sym) sym
+#endif /* if __MINGW_USE_UNDERSCORE_PREFIX == 0 */
+
#ifndef __PTRDIFF_TYPE__
# ifdef _WIN64
# define __PTRDIFF_TYPE__ long long int