Fixes problem with windows dll linking.
2014-05-31 Niels Möller <nisse@lysator.liu.se>
+ * configure.ac: Check for COFF type directives.
+ (ASM_COFF_STYLE): New substituted variable.
+ * config.m4.in: Set COFF_STYLE from configure.
+ * asm.m4 (PROLOGUE): Use COFF type directive, if enabled by
+ configure. Fixes problem with windows dll linking.
+
* asm.m4: Deleted unused offsets for struct aes_ctx.
2014-05-28 Niels Möller <nisse@lysator.liu.se>
<.globl C_NAME($1)
.type C_NAME($1),TYPE_FUNCTION
C_NAME($1):>,
+COFF_STYLE, <yes>,
+<.globl C_NAME($1)
+.def C_NAME($1)
+.scl 2
+.type 32
+.endef
+C_NAME($1):>,
<.globl C_NAME($1)
C_NAME($1):>)>)
define(<srcdir>, <<@srcdir@>>)dnl
define(<C_NAME>, <@ASM_SYMBOL_PREFIX@><$1>)dnl
define(<ELF_STYLE>, <@ASM_ELF_STYLE@>)dnl
+define(<COFF_STYLE>, <@ASM_COFF_STYLE@>)dnl
define(<TYPE_FUNCTION>, <@ASM_TYPE_FUNCTION@>)dnl
define(<TYPE_PROGBITS>, <@ASM_TYPE_PROGBITS@>)dnl
define(<ALIGN_LOG>, <@ASM_ALIGN_LOG@>)dnl
ASM_SYMBOL_PREFIX=''
ASM_ELF_STYLE='no'
+ASM_COFF_STYLE='no'
# GNU as default is to use @
ASM_TYPE_FUNCTION='@function'
ASM_TYPE_PROGBITS='@progbits'
fi
fi
+ AC_CACHE_CHECK([for COFF-style .type directive],
+ [nettle_cv_asm_coff_type],
+ [GMP_TRY_ASSEMBLE([
+.text
+.globl _foo
+.def _foo
+.scl 2
+.type 32
+.endef
+_foo:
+],
+ [nettle_cv_asm_coff_type=yes],
+ [nettle_cv_asm_coff_type=no])])
+ if test "x$nettle_cv_asm_coff_type" = "xyes" ; then
+ ASM_COFF_STYLE=yes
+ fi
+
AC_CACHE_CHECK([if we should use a .note.GNU-stack section],
nettle_cv_asm_gnu_stack,
[ # Default
AC_SUBST(ASM_SYMBOL_PREFIX)
AC_SUBST(ASM_ELF_STYLE)
+AC_SUBST(ASM_COFF_STYLE)
AC_SUBST(ASM_TYPE_FUNCTION)
AC_SUBST(ASM_TYPE_PROGBITS)
AC_SUBST(ASM_MARK_NOEXEC_STACK)