vendor/libsodium/configure.ac in rbnacl-libsodium-0.4.5 vs vendor/libsodium/configure.ac in rbnacl-libsodium-0.5.0
- old
+ new
@@ -1,7 +1,7 @@
AC_PREREQ([2.65])
-AC_INIT([libsodium],[0.4.5],
+AC_INIT([libsodium],[0.5.0],
[https://github.com/jedisct1/libsodium/issues],
[libsodium],
[https://github.com/jedisct1/libsodium])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR([src/libsodium/sodium/version.c])
@@ -13,25 +13,25 @@
AC_SUBST(VERSION)
ISODATE=`date +%Y-%m-%d`
AC_SUBST(ISODATE)
-SODIUM_LIBRARY_VERSION_MAJOR=4
-SODIUM_LIBRARY_VERSION_MINOR=4
-DLL_VERSION=4
-SODIUM_LIBRARY_VERSION=9:0:5
-# | | |
-# +------+ | +---+
-# | | |
-# current:revision:age
-# | | |
-# | | +- increment if interfaces have been added
-# | | set to zero if interfaces have been removed
-# | | or changed
-# | +- increment if source code has changed
-# | set to zero if current is incremented
-# +- increment if interfaces have been added, removed or changed
+SODIUM_LIBRARY_VERSION_MAJOR=5
+SODIUM_LIBRARY_VERSION_MINOR=0
+DLL_VERSION=5
+SODIUM_LIBRARY_VERSION=10:0:0
+# | | |
+# +------+ | +---+
+# | | |
+# current:revision:age
+# | | |
+# | | +- increment if interfaces have been added
+# | | set to zero if interfaces have been removed
+# | | or changed
+# | +- increment if source code has changed
+# | set to zero if current is incremented
+# +- increment if interfaces have been added, removed or changed
AC_SUBST(SODIUM_LIBRARY_VERSION_MAJOR)
AC_SUBST(SODIUM_LIBRARY_VERSION_MINOR)
AC_SUBST(SODIUM_LIBRARY_VERSION)
AC_SUBST(DLL_VERSION)
@@ -117,11 +117,11 @@
AC_SUBST([MAINT])
dnl Checks
-PKG_PROG_PKG_CONFIG([0.25])
+PKG_PROG_PKG_CONFIG([0.23])
AM_CONDITIONAL([HAVE_PKG_CONFIG], [test "x$PKG_CONFIG" != "x"])
AC_SUBST(HAVE_PKG_CONFIG)
AC_PROG_CC_C99
AM_PROG_AS
@@ -149,11 +149,20 @@
AX_CHECK_COMPILE_FLAG([-fwrapv], [CFLAGS="$CFLAGS -fwrapv"])
AX_CHECK_COMPILE_FLAG([-fno-strict-aliasing], [CFLAGS="$CFLAGS -fno-strict-aliasing"])
AX_CHECK_COMPILE_FLAG([-fno-strict-overflow], [CFLAGS="$CFLAGS -fno-strict-overflow"])
-LIBTOOL_EXTRA_FLAGS="-version-info $SODIUM_LIBRARY_VERSION"
+LIBTOOL_OLD_FLAGS="$LIBTOOL_EXTRA_FLAGS"
+LIBTOOL_EXTRA_FLAGS="$LIBTOOL_EXTRA_FLAGS -version-info $SODIUM_LIBRARY_VERSION"
+AC_ARG_ENABLE(soname-versions,
+ [AC_HELP_STRING([--enable-soname-versions], [enable soname versions (must be disabled for android) (default: enabled)])],
+ [
+ AS_IF([test "x$enableval" = "xno"], [
+ LIBTOOL_EXTRA_FLAGS="$LIBTOOL_OLD_FLAGS -avoid-version"
+ ])
+ ]
+)
AS_CASE([$host_os],
[cygwin* | mingw* | pw32* | cegcc*], [
AX_CHECK_LINK_FLAG([-Wl,--dynamicbase], [LDFLAGS="$LDFLAGS -Wl,--dynamicbase"])
AX_CHECK_LINK_FLAG([-Wl,--nxcompat], [LDFLAGS="$LDFLAGS -Wl,--nxcompat"])
@@ -230,60 +239,53 @@
AC_ARG_VAR([AR], [path to the ar utility])
AC_CHECK_TOOL([AR], [ar], [ar])
dnl Checks for headers
-AC_CHECK_HEADERS([emmintrin.h], [], [], [
-#pragma GCC target("sse2")
-])
-AC_CHECK_HEADERS([tmmintrin.h], [], [], [
-#pragma GCC target("ssse3")
-])
+AS_IF([test "x$EMSCRIPTEN" = "x"],[
-AC_CHECK_HEADERS([smmintrin.h], [], [], [
-#pragma GCC target("sse4.1")
-])
+ AC_MSG_CHECKING(for MMX instructions set)
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#pragma GCC target("mmx")
+#include <mmintrin.h>
+]], [[ __m64 x = _mm_setzero_si64(); ]])],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_MMINTRIN_H], [1], [mmx is available])],
+ [AC_MSG_RESULT(no)])
-AC_CHECK_HEADERS([immintrin.h], [], [], [
-#pragma GCC target("avx")
-])
+ AC_MSG_CHECKING(for SSE2 instructions set)
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#pragma GCC target("sse2")
+#include <emmintrin.h>
+]], [[ __m128d x = _mm_setzero_pd(); ]])],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_EMMINTRIN_H], [1], [sse2 is available])],
+ [AC_MSG_RESULT(no)])
-AC_CHECK_HEADERS([avxintrin.h], [], [], [
-#pragma GCC target("avx")
-])
+ AC_MSG_CHECKING(for SSE3 instructions set)
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#pragma GCC target("sse3")
+#include <pmmintrin.h>
+]], [[ __m128 x = _mm_addsub_ps(_mm_cvtpd_ps(_mm_setzero_pd()),
+ _mm_cvtpd_ps(_mm_setzero_pd())); ]])],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_PMMINTRIN_H], [1], [sse3 is available])],
+ [AC_MSG_RESULT(no)])
-AC_CHECK_HEADERS([x86intrin.h], [], [], [
-#pragma GCC target("xop")
])
-AC_CHECK_HEADERS([wmmintrin.h], [], [], [
-#pragma GCC target("aes")
-])
+AC_CHECK_HEADERS([sys/mman.h])
-AC_MSG_CHECKING(for access to floating-point rounding mode)
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- #include <fenv.h>
- #pragma STDC FENV_ACCESS ON
-]], [[
- const int previous_rounding_mode = fegetround();
- fesetround(FE_TONEAREST);
- fesetround(previous_rounding_mode);
-]])],
-[AC_MSG_RESULT(yes)
- AC_DEFINE([HAVE_FENV_H], [1], [floating-point rounding mode is accessible])
-],
-[AC_MSG_RESULT(no)])
-
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
AC_C_BIGENDIAN(
AC_DEFINE(NATIVE_BIG_ENDIAN, 1, [machine is bigendian]),
AC_DEFINE(NATIVE_LITTLE_ENDIAN, 1, [machine is littleendian]),
AC_MSG_ERROR([unknown endianess]),
- AC_MSG_WARN([universal endianess])
+ AC_MSG_ERROR([universal endianess is not supported - compile separately and use lipo(1)])
)
AC_MSG_CHECKING(whether __STDC_LIMIT_MACROS is required)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <limits.h>
@@ -342,38 +344,56 @@
HAVE_TI_MODE_V=1],
[AC_MSG_RESULT(no)])
AM_CONDITIONAL([HAVE_TI_MODE], [test $HAVE_TI_MODE_V = 1])
AC_SUBST(HAVE_TI_MODE_V)
-AC_MSG_CHECKING(for cpuid instruction)
HAVE_CPUID_V=0
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[
-__asm__("movl %ebx,%esi\n"
- "cpuid\n"
- "movl %esi,%ebx");
-]])],
-[AC_MSG_RESULT(yes)
- AC_DEFINE([HAVE_CPUID], [1], [cpuid instruction is available])
- HAVE_CPUID_V=1],
-[AC_MSG_RESULT(no)])
-AM_CONDITIONAL([HAVE_CPUID], [test $HAVE_CPUID_V = 1])
+AS_IF([test "$enable_asm" != "no"],[
+ AC_MSG_CHECKING(for cpuid instruction)
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[
+unsigned int cpu_info[4];
+__asm__ __volatile__ ("xchgl %%ebx, %k1; cpuid; xchgl %%ebx, %k1" :
+ "=a" (cpu_info[0]), "=&r" (cpu_info[1]),
+ "=c" (cpu_info[2]), "=d" (cpu_info[3]) :
+ "0" (0U), "2" (0U));
+ ]])],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_CPUID], [1], [cpuid instruction is available])
+ HAVE_CPUID_V=1],
+ [AC_MSG_RESULT(no)])
+ ])
AC_SUBST(HAVE_CPUID_V)
AS_CASE([$host_cpu],
[i*86 | x86_64 | powerpc* | s390*],
[AC_MSG_NOTICE([data alignment is not required on this target])],
[*],
[AC_MSG_NOTICE([data alignment is required on this target])
AC_DEFINE([CPU_ALIGNED_ACCESS_REQUIRED], [1], [data alignment is required])]
)
+AC_MSG_CHECKING(for memset_s)
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <string.h>
+]], [[
+char dummy[42];
+(void) memset_s(dummy, (rsize_t) sizeof dummy, 0, (rsize_t) sizeof dummy);
+]])],
+[AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_MEMSET_S], [1], [memset_s is available])],
+[AC_MSG_RESULT(no)])
+
dnl Checks for functions and headers
AC_CHECK_FUNC(clock_gettime, , [AC_CHECK_LIB(rt, clock_gettime)])
AC_CHECK_FUNC(fegetenv, , [AC_CHECK_LIB(m, fegetenv)])
-AC_CHECK_FUNCS([SecureZeroMemory arc4random arc4random_buf])
+AS_IF([test "x$EMSCRIPTEN" = "x"],[
+ AC_CHECK_FUNCS([arc4random arc4random_buf])
+])
+AC_CHECK_FUNCS([mlock VirtualLock])
+AC_CHECK_FUNCS([SecureZeroMemory explicit_bzero posix_memalign])
AC_SUBST([LIBTOOL_EXTRA_FLAGS])
dnl Libtool.
@@ -390,16 +410,15 @@
AS_IF([test "x$PKG_CONFIG" != "x"], [
AC_CONFIG_FILES([libsodium.pc])
])
AC_CONFIG_FILES([Makefile
+ dist-build/Makefile
msvc-scripts/Makefile
src/Makefile
src/libsodium/Makefile
src/libsodium/include/Makefile
src/libsodium/include/sodium/version.h
- src/libsodium/include/sodium/crypto_scalarmult_curve25519.h
- src/libsodium/include/sodium/crypto_stream_salsa20.h
test/default/Makefile
test/Makefile
])
AC_OUTPUT