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.
This commit is contained in:
Damien Miller 2024-09-09 17:30:38 +10:00
parent e8a0f19b56
commit 273581210c
No known key found for this signature in database
2 changed files with 2 additions and 18 deletions

View File

@ -353,20 +353,6 @@ AC_COMPILE_IFELSE(
[ AC_MSG_RESULT([no]) ] [ 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_MSG_CHECKING([if compiler accepts variable declarations after code])
AC_COMPILE_IFELSE( AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[#include <stdlib.h>]], [AC_LANG_PROGRAM([[#include <stdlib.h>]],

View File

@ -940,10 +940,8 @@ struct winsize {
* so only enable if the compiler supports them. * so only enable if the compiler supports them.
*/ */
#if defined(VARIABLE_LENGTH_ARRAYS) && defined(VARIABLE_DECLARATION_AFTER_CODE) #if defined(VARIABLE_LENGTH_ARRAYS) && defined(VARIABLE_DECLARATION_AFTER_CODE)
# define USE_SNTRUP761X25519 1 # define USE_SNTRUP761X25519 1
#endif /* The ML-KEM768 implementation also uses C89 features */
/* The ML-KEM768 imlementation similarly uses C99 compound literals */
#ifdef COMPOUND_LITERALS
# define USE_MLKEM768X25519 1 # define USE_MLKEM768X25519 1
#endif #endif
#endif /* _DEFINES_H */ #endif /* _DEFINES_H */