Test if we need to put the .type directive inside a .def directive.

diff --git a/include/winnt.h b/include/winnt.h
index 05433b0..ece5eed 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -721,11 +721,17 @@
 # define __ASM_NAME(name) name
 #endif
 
+#ifdef NEED_TYPE_IN_DEF
+# define __ASM_TYPE(name) ".def " __ASM_NAME(#name) "; .scl 2; .type 32; .endef\n"
+#else
+# define __ASM_TYPE(name) ".type " __ASM_NAME(#name) ",@function\n"
+#endif
+
 #ifdef __GNUC__
 # define __ASM_GLOBAL_FUNC(name,code) \
       __asm__( ".align 4\n\t" \
                ".globl " __ASM_NAME(#name) "\n\t" \
-               ".type " __ASM_NAME(#name) ",@function\n" \
+               __ASM_TYPE(name) \
                __ASM_NAME(#name) ":\n\t" \
                code );
 #else  /* __GNUC__ */
@@ -733,7 +739,7 @@
       void __asm_dummy_##name(void) { \
           asm( ".align 4\n\t" \
                ".globl " __ASM_NAME(#name) "\n\t" \
-               ".type " __ASM_NAME(#name) ",@function\n" \
+               __ASM_TYPE(name) \
                __ASM_NAME(#name) ":\n\t" \
                code ); \
       }