vendor/libsodium/configure.ac in rbnacl-libsodium-1.0.15.1 vs vendor/libsodium/configure.ac in rbnacl-libsodium-1.0.16

- old
+ new

@@ -1,7 +1,7 @@ AC_PREREQ([2.65]) -AC_INIT([libsodium],[1.0.15], +AC_INIT([libsodium],[1.0.16], [https://github.com/jedisct1/libsodium/issues], [libsodium], [https://github.com/jedisct1/libsodium]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) @@ -15,13 +15,13 @@ AC_SUBST(VERSION) ISODATE=`date +%Y-%m-%d` AC_SUBST(ISODATE) SODIUM_LIBRARY_VERSION_MAJOR=10 -SODIUM_LIBRARY_VERSION_MINOR=0 +SODIUM_LIBRARY_VERSION_MINOR=1 DLL_VERSION=8 -SODIUM_LIBRARY_VERSION=23:0:0 +SODIUM_LIBRARY_VERSION=24:0:1 # | | | # +------+ | +---+ # | | | # current:revision:age # | | | @@ -125,14 +125,15 @@ [ ], [withval="yes"]) AS_IF([test "x$withval" = "xyes"], [ AX_PTHREAD([ AC_DEFINE([HAVE_PTHREAD], [1], [Define if you have POSIX threads libraries and header files]) + with_threads="yes" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC"]) -]) +], [with_threads="no"]) AC_ARG_WITH(safecode, [AS_HELP_STRING(--with-safecode,For maintainers only - please do not use)], [AS_IF([test "x$withval" = "xyes"], [ AC_ARG_VAR([SAFECODE_HOME], [set to the safecode base directory]) @@ -141,10 +142,18 @@ LIBS="$LIBS -lsc_dbg_rt -lpoolalloc_bitmap -lstdc++" CFLAGS="$CFLAGS -fmemsafety" ]) ]) +AC_ARG_WITH(ctgrind, +[AS_HELP_STRING(--with-ctgrind,For maintainers only - please do not use)], +[AS_IF([test "x$withval" = "xyes"], [ + AC_CHECK_LIB(ctgrind, ct_poison) + ]) +]) + +ENABLE_CWFLAGS=no AC_ARG_ENABLE(debug, [AS_HELP_STRING(--enable-debug,For maintainers only - please do not use)], [ AS_IF([test "x$enableval" = "xyes"], [ AS_IF([test "x$LX_CFLAGS" = "xNONE"], [ @@ -153,21 +162,23 @@ AS_CASE([$flag], [-O*], [ ], [-g*], [ ], [*], [AS_VAR_APPEND([nxflags], [" $flag"])]) done - CFLAGS="$nxflags -O0 -g3" + CFLAGS="$nxflags -O -g3" ]) - CPPFLAGS="$CPPFLAGS -DDEBUG=1 -UFORTIFY_SOURCE" + ENABLE_CWFLAGS=yes + CPPFLAGS="$CPPFLAGS -DDEBUG=1 -U_FORTIFY_SOURCE" ]) ]) AC_ARG_ENABLE(opt, [AS_HELP_STRING(--enable-opt,Optimize for the native CPU - The resulting library will be faster but not portable)], [ AS_IF([test "x$enableval" = "xyes"], [ AX_CHECK_COMPILE_FLAG([-Ofast], [CFLAGS="$CFLAGS -Ofast"]) + AX_CHECK_COMPILE_FLAG([-fomit-frame-pointer], [CFLAGS="$CFLAGS -fomit-frame-pointer"]) AX_CHECK_COMPILE_FLAG([-march=native], [CFLAGS="$CFLAGS -march=native"]) ]) ]) AC_SUBST([MAINT]) @@ -177,10 +188,11 @@ dnl Checks AC_PROG_CC_C99 AM_PROG_AS AC_USE_SYSTEM_EXTENSIONS +AC_C_VARARRAYS AC_CHECK_DEFINE([__native_client__], [NATIVECLIENT="yes"], []) AC_CHECK_DEFINE([_FORTIFY_SOURCE], [], [ AX_CHECK_COMPILE_FLAG([-D_FORTIFY_SOURCE=2], @@ -260,18 +272,14 @@ ) ]) ]) ]) -AX_CHECK_COMPILE_FLAG([-Wwrite-strings], [CFLAGS="$CFLAGS -Wwrite-strings"]) -AX_CHECK_COMPILE_FLAG([-Wdiv-by-zero], [CFLAGS="$CFLAGS -Wdiv-by-zero"]) -AX_CHECK_COMPILE_FLAG([-Wsometimes-uninitialized], [CFLAGS="$CFLAGS -Wsometimes-uninitialized"]) - AC_ARG_VAR([CWFLAGS], [define to compilation flags for generating extra warnings]) -AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wall], [CWFLAGS="$CWFLAGS -Wall"]) -AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wextra], [CWFLAGS="$CWFLAGS -Wextra"]) +AX_CHECK_COMPILE_FLAG([$CFLAGS -Wall], [CWFLAGS="$CFLAGS -Wall"]) +AX_CHECK_COMPILE_FLAG([$CFLAGS -Wextra], [CWFLAGS="$CFLAGS -Wextra"]) AC_MSG_CHECKING(for clang) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ #ifndef __clang__ #error Not clang @@ -283,29 +291,36 @@ ], [AC_MSG_RESULT(no) ]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wbad-function-cast], [CWFLAGS="$CWFLAGS -Wbad-function-cast"]) -AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wcast-align], [CWFLAGS="$CWFLAGS -Wcast-align"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wcast-qual], [CWFLAGS="$CWFLAGS -Wcast-qual"]) +AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wdiv-by-zero], [CWFLAGS="$CWFLAGS -Wdiv-by-zero"]) +AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wduplicated-branches], [CWFLAGS="$CWFLAGS -Wduplicated-branches"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wduplicated-cond], [CWFLAGS="$CWFLAGS -Wduplicated-cond"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wfloat-equal], [CWFLAGS="$CWFLAGS -Wfloat-equal"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wformat=2], [CWFLAGS="$CWFLAGS -Wformat=2"]) +AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wlogical-op], [CWFLAGS="$CWFLAGS -Wlogical-op"]) +AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wmaybe-uninitialized], [CWFLAGS="$CWFLAGS -Wmaybe-uninitialized"]) +AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wmisleading-indentation], [CWFLAGS="$CWFLAGS -Wmisleading-indentation"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wmissing-declarations], [CWFLAGS="$CWFLAGS -Wmissing-declarations"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wmissing-prototypes], [CWFLAGS="$CWFLAGS -Wmissing-prototypes"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wnested-externs], [CWFLAGS="$CWFLAGS -Wnested-externs"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wno-type-limits], [CWFLAGS="$CWFLAGS -Wno-type-limits"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wno-unknown-pragmas], [CWFLAGS="$CWFLAGS -Wno-unknown-pragmas"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wnormalized=id], [CWFLAGS="$CWFLAGS -Wnormalized=id"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wnull-dereference], [CWFLAGS="$CWFLAGS -Wnull-dereference"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wold-style-declaration], [CWFLAGS="$CWFLAGS -Wold-style-declaration"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wpointer-arith], [CWFLAGS="$CWFLAGS -Wpointer-arith"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wredundant-decls], [CWFLAGS="$CWFLAGS -Wredundant-decls"]) +AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wrestrict], [CWFLAGS="$CWFLAGS -Wrestrict"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wshorten-64-to-32], [CWFLAGS="$CWFLAGS -Wshorten-64-to-32"]) +AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wsometimes-uninitialized], [CWFLAGS="$CWFLAGS -Wsometimes-uninitialized"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wstrict-prototypes], [CWFLAGS="$CWFLAGS -Wstrict-prototypes"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wswitch-enum], [CWFLAGS="$CWFLAGS -Wswitch-enum"]) AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wvariable-decl], [CWFLAGS="$CWFLAGS -Wvariable-decl"]) +AX_CHECK_COMPILE_FLAG([$CWFLAGS -Wwrite-strings], [CWFLAGS="$CWFLAGS -Wwrite-strings"]) AX_CHECK_LINK_FLAG([-Wl,-z,relro], [LDFLAGS="$LDFLAGS -Wl,-z,relro"]) AX_CHECK_LINK_FLAG([-Wl,-z,now], [LDFLAGS="$LDFLAGS -Wl,-z,now"]) AX_CHECK_LINK_FLAG([-Wl,-z,noexecstack], [LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"]) @@ -323,10 +338,14 @@ ]) AX_CHECK_CATCHABLE_SEGV AX_CHECK_CATCHABLE_ABRT +AS_IF([test "x$with_threads" = "xyes"], [ + AX_TLS([AC_MSG_RESULT(thread local storage is supported)], + [AC_MSG_RESULT(thread local storage is not supported)]) ]) + LT_INIT AC_SUBST(LIBTOOL_DEPS) AC_ARG_VAR([AR], [path to the ar utility]) AC_CHECK_TOOL([AR], [ar], [ar]) @@ -492,10 +511,27 @@ AX_CHECK_COMPILE_FLAG([-mpclmul], [CFLAGS_PCLMUL="-mpclmul"]) ], [AC_MSG_RESULT(no)]) CFLAGS="$oldcflags" + oldcflags="$CFLAGS" + AX_CHECK_COMPILE_FLAG([-mrdrnd], [CFLAGS="$CFLAGS -mrdrnd"]) + AC_MSG_CHECKING(for RDRAND) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#ifdef __native_client__ +# error NativeClient detected - Avoiding RDRAND opcodes +#endif +#pragma GCC target("rdrnd") +#include <immintrin.h> +]], [[ unsigned long long x; _rdrand64_step(&x); ]])], + [AC_MSG_RESULT(yes) + AC_DEFINE([HAVE_RDRAND], [1], [rdrand is available]) + AX_CHECK_COMPILE_FLAG([-mrdrnd], [CFLAGS_RDRAND="-mrdrnd"]) + ], + [AC_MSG_RESULT(no)]) + CFLAGS="$oldcflags" + ]) AC_SUBST(CFLAGS_MMX) AC_SUBST(CFLAGS_SSE2) AC_SUBST(CFLAGS_SSE3) @@ -504,10 +540,11 @@ AC_SUBST(CFLAGS_AVX) AC_SUBST(CFLAGS_AVX2) AC_SUBST(CFLAGS_AVX512F) AC_SUBST(CFLAGS_AESNI) AC_SUBST(CFLAGS_PCLMUL) +AC_SUBST(CFLAGS_RDRAND) AC_CHECK_HEADERS([sys/mman.h intrin.h]) AC_MSG_CHECKING([if _xgetbv() is available]) AC_LINK_IFELSE( @@ -730,10 +767,11 @@ AC_DEFINE([HAVE_ATOMIC_OPS], [1], [atomic operations are supported])], [AC_MSG_RESULT(no)]) dnl Checks for functions and headers +AC_FUNC_ALLOCA AS_IF([test "x$EMSCRIPTEN" = "x"],[ AC_CHECK_FUNCS([arc4random arc4random_buf]) AC_CHECK_FUNCS([mmap mlock madvise mprotect memset_s explicit_bzero nanosleep]) ]) AC_CHECK_FUNCS([posix_memalign getpid]) @@ -762,9 +800,13 @@ AH_VERBATIM([NDEBUG], [/* Always evaluate assert() calls */ #ifdef NDEBUG #/**/undef/**/ NDEBUG #endif]) + +AS_IF([test "x$ENABLE_CWFLAGS" = "xyes"], [ + CFLAGS="$CFLAGS $CWFLAGS" +]) AC_CONFIG_FILES([Makefile builds/Makefile contrib/Makefile dist-build/Makefile