diff --git a/asm.m4 b/asm.m4
index 99c72c01fc2604f63fcbae3aec87da2621ea68b9..199f08828dcceb231c4c884246f13637c60be843 100644
--- a/asm.m4
+++ b/asm.m4
@@ -23,6 +23,10 @@ define(<EPILOGUE>,
 <.L$1end:
 .size C_NAME($1), .L$1end - C_NAME($1)>,)>)
 
+dnl Argument to ALIGN is always logarithmic
+dnl Can't use << operator with our choice of quote characters...
+define(<ALIGN>,
+<.align ifelse(ALIGN_LOG,yes,$1,eval(2 ** $1))>)
 
 dnl Struct defining macros
 
diff --git a/config.m4.in b/config.m4.in
index e7e3ae29df448fc40ec8c8b610242ed234bb2e6e..ec625731e575115cefda47208ad95672b1ed8b1e 100644
--- a/config.m4.in
+++ b/config.m4.in
@@ -1,7 +1,8 @@
 define(<srcdir>, <<@srcdir@>>)dnl
-define(<C_NAME>, <@ASM_SYMBOL_PREFIX@><$1>)
-define(<ELF_STYLE>, <@ASM_ELF_STYLE@>)
-define(<TYPE_FUNCTION>, <@ASM_TYPE_FUNCTION@>)
+define(<C_NAME>, <@ASM_SYMBOL_PREFIX@><$1>)dnl
+define(<ELF_STYLE>, <@ASM_ELF_STYLE@>)dnl
+define(<TYPE_FUNCTION>, <@ASM_TYPE_FUNCTION@>)dnl
+define(<ALIGN_LOG>, <@ASM_ALIGN_LOG@>)dnl
 divert(1)
 @ASM_MARK_NOEXEC_STACK@
 divert