diff options
author | Damien Miller <djm@mindrot.org> | 2024-09-09 08:46:40 +0200 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2024-09-09 08:46:40 +0200 |
commit | e8a0f19b56dfa20f98ea9876d7171ec315fb338a (patch) | |
tree | 4d61f25d4f3f6acc63cbca3bc61c8192f069f5cf | |
parent | test for compiler feature needed for ML-KEM (diff) | |
download | openssh-e8a0f19b56dfa20f98ea9876d7171ec315fb338a.tar.xz openssh-e8a0f19b56dfa20f98ea9876d7171ec315fb338a.zip |
fix previous; check for C99 compound literals
The previous commit was incorrect (or at least insufficient), the
ML-KEM code is actually using compound literals, so test for them.
-rw-r--r-- | configure.ac | 13 | ||||
-rw-r--r-- | defines.h | 4 |
2 files changed, 9 insertions, 8 deletions
diff --git a/configure.ac b/configure.ac index 9b8b1ded3..954de6caf 100644 --- a/configure.ac +++ b/configure.ac @@ -353,16 +353,17 @@ AC_COMPILE_IFELSE( [ AC_MSG_RESULT([no]) ] ) -AC_MSG_CHECKING([if compiler supports named struct initialisers]) +AC_MSG_CHECKING([if compiler supports compound literals]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <stdlib.h>]], - [[ struct foo { int bar; int baz; }; - struct foo blerg = {.bar = 1, .baz = 2}; - exit((blerg.bar == 1 && blerg.baz == 2) ? 0 : 1); + [[ struct foo { int bar; int baz; }; + void *fooc = &(struct foo){.bar = 1, .baz = 2}; + struct foo *foo2 = (struct foo *)fooc; + return (foo2->bar == 1 && foo2->baz == 2) ? 0 : 1; ]])], [ AC_MSG_RESULT([yes]) - AC_DEFINE(NAMED_STRUCT_INITIALISERS, [1], - [compiler supports named struct initializers]) ], + AC_DEFINE(COMPOUND_LITERALS, [1], + [compiler supports compound literals]) ], [ AC_MSG_RESULT([no]) ] ) @@ -942,8 +942,8 @@ struct winsize { #if defined(VARIABLE_LENGTH_ARRAYS) && defined(VARIABLE_DECLARATION_AFTER_CODE) # define USE_SNTRUP761X25519 1 #endif -/* The ML-KEM768 imlementation similarly uses named struct initialisers */ -#ifdef NAMED_STRUCT_INITIALISERS +/* The ML-KEM768 imlementation similarly uses C99 compound literals */ +#ifdef COMPOUND_LITERALS # define USE_MLKEM768X25519 1 #endif #endif /* _DEFINES_H */ |