diff options
author | Darren Tucker <dtucker@dtucker.net> | 2021-08-18 12:51:30 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@dtucker.net> | 2021-08-18 12:51:30 +1000 |
commit | 464ba22f1e38d25402e5ec79a9b8d34a32df5a3f (patch) | |
tree | 26d1a96e50a71b6e4af191b6d203cfef2e4a9ae8 | |
parent | 7d878679a4b155a359d32104ff473f789501748d (diff) |
Check compiler for c99 declarations after code.
The sntrup761 reference code contains c99-style declarations after code
so don't try to build that if the compiler doesn't support it.
-rw-r--r-- | configure.ac | 10 | ||||
-rw-r--r-- | defines.h | 6 |
2 files changed, 13 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac index e728e323..01e7d2a4 100644 --- a/configure.ac +++ b/configure.ac @@ -307,6 +307,16 @@ AC_COMPILE_IFELSE( [ AC_MSG_RESULT([no]) ] ) +AC_MSG_CHECKING([if compiler accepts variable declarations after code]) +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include <stdlib.h>]], + [[ int a; a = 1; int b = 1; exit(a-b); ]])], + [ AC_MSG_RESULT([yes]) + AC_DEFINE(VARIABLE_DECLARATION_AFTER_CODE, [1], + [compiler variable declarations after code]) ], + [ AC_MSG_RESULT([no]) ] +) + if test "x$no_attrib_nonnull" != "x1" ; then AC_DEFINE([HAVE_ATTRIBUTE__NONNULL__], [1], [Have attribute nonnull]) fi @@ -901,10 +901,10 @@ struct winsize { #endif /* - * sntrup761 uses variable length arrays, only enable if the compiler - * supports them. + * sntrup761 uses variable length arrays and c99-style declarations after code, + * so only enable if the compiler supports them. */ -#ifdef VARIABLE_LENGTH_ARRAYS +#if defined(VARIABLE_LENGTH_ARRAYS) && defined(VARIABLE_DECLARATION_AFTER_CODE) # define USE_SNTRUP761X25519 1 #endif #endif /* _DEFINES_H */ |