summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2024-09-09 09:30:38 +0200
committerDamien Miller <djm@mindrot.org>2024-09-09 09:30:38 +0200
commit273581210c99ce7275b8efdefbb9f89e1c22e341 (patch)
tree9afb17c5c11c7482fad04c3826804b8920d4d297
parentfix previous; check for C99 compound literals (diff)
downloadopenssh-273581210c99ce7275b8efdefbb9f89e1c22e341.tar.xz
openssh-273581210c99ce7275b8efdefbb9f89e1c22e341.zip
declare defeat trying to detect C89 compilers
I can't find a reliable way to detect the features the ML-KEM code requires in configure. Give up for now and use VLA support (that we can detect) as a proxy for "old compiler" and turn off ML-KEM if it isn't supported.
-rw-r--r--configure.ac14
-rw-r--r--defines.h6
2 files changed, 2 insertions, 18 deletions
diff --git a/configure.ac b/configure.ac
index 954de6caf..591d5a388 100644
--- a/configure.ac
+++ b/configure.ac
@@ -353,20 +353,6 @@ AC_COMPILE_IFELSE(
[ AC_MSG_RESULT([no]) ]
)
-AC_MSG_CHECKING([if compiler supports compound literals])
-AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM([[#include <stdlib.h>]],
- [[ 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(COMPOUND_LITERALS, [1],
- [compiler supports compound literals]) ],
- [ AC_MSG_RESULT([no]) ]
-)
-
AC_MSG_CHECKING([if compiler accepts variable declarations after code])
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[#include <stdlib.h>]],
diff --git a/defines.h b/defines.h
index 3d03b033a..ed860e78b 100644
--- a/defines.h
+++ b/defines.h
@@ -940,10 +940,8 @@ struct winsize {
* so only enable if the compiler supports them.
*/
#if defined(VARIABLE_LENGTH_ARRAYS) && defined(VARIABLE_DECLARATION_AFTER_CODE)
-# define USE_SNTRUP761X25519 1
-#endif
-/* The ML-KEM768 imlementation similarly uses C99 compound literals */
-#ifdef COMPOUND_LITERALS
+# define USE_SNTRUP761X25519 1
+/* The ML-KEM768 implementation also uses C89 features */
# define USE_MLKEM768X25519 1
#endif
#endif /* _DEFINES_H */