From: Niels Möller Date: Sat, 31 May 2014 11:47:55 +0000 (+0200) Subject: Check for COFF type directive, and use in assembly RPOLOGUE. X-Git-Tag: nettle_3.0_release_20140607~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1851417eb69ca20c87167301aa20bf828fbdd316;p=thirdparty%2Fnettle.git Check for COFF type directive, and use in assembly RPOLOGUE. Fixes problem with windows dll linking. --- diff --git a/ChangeLog b/ChangeLog index a084e866..6ee1bb0a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2014-05-31 Niels Möller + * 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 diff --git a/asm.m4 b/asm.m4 index 97cb6a0e..d59191e1 100644 --- a/asm.m4 +++ b/asm.m4 @@ -19,6 +19,13 @@ define(, <.globl C_NAME($1) .type C_NAME($1),TYPE_FUNCTION C_NAME($1):>, +COFF_STYLE, , +<.globl C_NAME($1) +.def C_NAME($1) +.scl 2 +.type 32 +.endef +C_NAME($1):>, <.globl C_NAME($1) C_NAME($1):>)>) diff --git a/config.m4.in b/config.m4.in index bcfb95e5..3f7700bb 100644 --- a/config.m4.in +++ b/config.m4.in @@ -1,6 +1,7 @@ define(, <<@srcdir@>>)dnl define(, <@ASM_SYMBOL_PREFIX@><$1>)dnl define(, <@ASM_ELF_STYLE@>)dnl +define(, <@ASM_COFF_STYLE@>)dnl define(, <@ASM_TYPE_FUNCTION@>)dnl define(, <@ASM_TYPE_PROGBITS@>)dnl define(, <@ASM_ALIGN_LOG@>)dnl diff --git a/configure.ac b/configure.ac index 34d339ab..31b2839d 100644 --- a/configure.ac +++ b/configure.ac @@ -487,6 +487,7 @@ AC_SUBST([CCPIC_MAYBE]) 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' @@ -554,6 +555,23 @@ foo: 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 @@ -589,6 +607,7 @@ fi 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)