mirror of git://anongit.mindrot.org/openssh.git
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:
parent
e8a0f19b56
commit
273581210c
14
configure.ac
14
configure.ac
|
@ -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>]],
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
Loading…
Reference in New Issue