From 26a0142f51a161caa2f6af12f8e99bdf36e4999a Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Wed, 12 Apr 2023 15:33:59 -0700 Subject: [PATCH] add nomath option for builds without a math library --- configure.ac | 21 ++++++++++++++++++++- wolfssl/wolfcrypt/settings.h | 5 +++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 1e5b54317..c29e558b0 100644 --- a/configure.ac +++ b/configure.ac @@ -536,6 +536,25 @@ fi # MATH LIBRARY SELECTION + +# no math library +AC_ARG_ENABLE([nomath], + [AS_HELP_STRING([--enable-nomath],[Enable no math library (default: disabled)])], + [ ENABLED_NOMATH=$enableval ], + [ ENABLED_NOMATH="no" ] + ) + +if test "$ENABLED_NOMATH" = "yes" +then + DEF_SP_MATH="no" + DEF_FAST_MATH="no" + ENABLED_SP_MATH_DEFAULT=no + AM_CFLAGS="$AM_CFLAGS -DWOLFSSL_NO_MATH" + ENABLED_HEAPMATH="no" + ENABLED_SP="no" + ENABLED_SP_MATH_ALL="no" +fi + # Single Precision maths implementation AC_ARG_ENABLE([sp], [AS_HELP_STRING([--enable-sp],[Enable Single Precision maths implementation (default: disabled)])], @@ -671,7 +690,7 @@ AC_ARG_ENABLE([heapmath], [ ENABLED_HEAPMATH=$enableval ], [ ENABLED_HEAPMATH=no] ) -if test "x$ENABLED_HEAPMATH" = "xyes" || (test "x$ENABLED_SP_MATH_ALL" = "xno" && test "x$ENABLED_FASTMATH" = "xno" && test "x$ENABLED_SP_MATH" = "xno") +if test "x$ENABLED_HEAPMATH" = "xyes" || (test "x$ENABLED_NOMATH" = "xno" && test "x$ENABLED_SP_MATH_ALL" = "xno" && test "x$ENABLED_FASTMATH" = "xno" && test "x$ENABLED_SP_MATH" = "xno") then AM_CFLAGS="$AM_CFLAGS -DUSE_INTEGER_HEAP_MATH" ENABLED_HEAPMATH="yes" diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h index e4675552e..2f74210fc 100644 --- a/wolfssl/wolfcrypt/settings.h +++ b/wolfssl/wolfcrypt/settings.h @@ -2036,6 +2036,11 @@ extern void uITRON4_free(void *p) ; * Constant time: Not supported * Enable: USE_INTEGER_HEAP_MATH */ + #elif defined(WOLFSSL_NO_MATH) + /* 5) No math library compiled in + * Does not support any public key operations or algorithms that + * require the math library. + */ #else /* default is SP Math. */ #define WOLFSSL_SP_MATH_ALL