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 ); \
}