libsodium-1.0.19-stable.tar.gz
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4490 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
199
deps/libsodium/configure.ac
vendored
199
deps/libsodium/configure.ac
vendored
@@ -1,5 +1,5 @@
|
||||
AC_PREREQ([2.69])
|
||||
AC_INIT([libsodium],[1.0.18],[https://github.com/jedisct1/libsodium/issues],[libsodium],[https://libsodium.org])
|
||||
AC_INIT([libsodium],[1.0.19],[https://github.com/jedisct1/libsodium/issues],[libsodium],[https://libsodium.org])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_CONFIG_SRCDIR([src/libsodium/sodium/version.c])
|
||||
@@ -12,10 +12,10 @@ AM_DEP_TRACK
|
||||
|
||||
AC_SUBST(VERSION)
|
||||
|
||||
SODIUM_LIBRARY_VERSION_MAJOR=10
|
||||
SODIUM_LIBRARY_VERSION_MINOR=3
|
||||
DLL_VERSION=24
|
||||
SODIUM_LIBRARY_VERSION=26:0:3
|
||||
SODIUM_LIBRARY_VERSION_MAJOR=26
|
||||
SODIUM_LIBRARY_VERSION_MINOR=1
|
||||
DLL_VERSION=26
|
||||
SODIUM_LIBRARY_VERSION=27:0:1
|
||||
# | | |
|
||||
# +------+ | +---+
|
||||
# | | |
|
||||
@@ -131,7 +131,7 @@ AM_CONDITIONAL([MINIMAL], [test x$enable_minimal = xyes])
|
||||
AC_SUBST(SODIUM_LIBRARY_MINIMAL_DEF)
|
||||
|
||||
AC_ARG_WITH(pthreads, AS_HELP_STRING([--with-pthreads],
|
||||
[use pthreads library, or --without-pthreads to disable threading support.]),
|
||||
[use pthreads library, or --without-pthreads to disable threading support]),
|
||||
[ ], [withval="yes"])
|
||||
|
||||
AS_IF([test "x$withval" = "xyes"], [
|
||||
@@ -293,23 +293,6 @@ AS_CASE([$host_os],
|
||||
])
|
||||
])
|
||||
|
||||
AC_MSG_CHECKING(for a broken Xcode version)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
|
||||
#if !defined(__APPLE_CC__) || __APPLE_CC__ != 6000
|
||||
#error Not Apple
|
||||
#endif
|
||||
#if !defined(__clang_major__) || __clang_major__ != 11
|
||||
#error Not Xcode 11
|
||||
#endif
|
||||
]])],
|
||||
[AC_MSG_RESULT(yes)
|
||||
AC_MSG_WARN([Using unsupported Xcode version])
|
||||
AX_CHECK_COMPILE_FLAG([$CFLAGS -fno-stack-check],
|
||||
[CFLAGS="$CFLAGS -fno-stack-check"])
|
||||
],
|
||||
[AC_MSG_RESULT(no)
|
||||
])
|
||||
|
||||
AS_IF([test "x$enable_ssp" != "xno"],[
|
||||
|
||||
AS_CASE([$host_os],
|
||||
@@ -324,6 +307,7 @@ AS_CASE([$host_os],
|
||||
])
|
||||
|
||||
AX_CHECK_COMPILE_FLAG([$CFLAGS -Wall], [CWFLAGS="$CFLAGS -Wall"])
|
||||
AX_CHECK_COMPILE_FLAG([$CFLAGS -Wno-deprecated-declarations], [CFLAGS="$CFLAGS -Wno-deprecated-declarations"])
|
||||
AX_CHECK_COMPILE_FLAG([$CFLAGS -Wno-unknown-pragmas], [CFLAGS="$CFLAGS -Wno-unknown-pragmas"])
|
||||
|
||||
AC_ARG_VAR([CWFLAGS], [compilation flags for generating extra warnings])
|
||||
@@ -392,14 +376,101 @@ AC_SUBST(LIBTOOL_DEPS)
|
||||
AC_ARG_VAR([AR], [path to the ar utility])
|
||||
AC_CHECK_TOOL([AR], [ar], [ar])
|
||||
|
||||
dnl Checks for headers
|
||||
dnl Checks for headers and codegen feature flags
|
||||
|
||||
target_cpu_aarch64=no
|
||||
AC_MSG_CHECKING(for ARM64 target)
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([
|
||||
#ifndef __aarch64__
|
||||
#error Not aarch64
|
||||
#endif
|
||||
#include <arm_neon.h>
|
||||
], [(void) 0])],
|
||||
[AC_MSG_RESULT(yes)
|
||||
target_cpu_aarch64=yes],
|
||||
[AC_MSG_RESULT(no)
|
||||
target_cpu_aarch64=no])
|
||||
|
||||
AS_IF([test "x$EMSCRIPTEN" = "x"], [
|
||||
|
||||
AS_IF([test "x$target_cpu_aarch64" = "xyes"], [
|
||||
have_armcrypto=no
|
||||
AC_MSG_CHECKING(for ARM crypto instructions set)
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#ifdef __clang__
|
||||
# pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
|
||||
#elif defined(__GNUC__)
|
||||
# pragma GCC target("+simd+crypto")
|
||||
#endif
|
||||
#ifndef __ARM_FEATURE_CRYPTO
|
||||
# define __ARM_FEATURE_CRYPTO 1
|
||||
#endif
|
||||
#ifndef __ARM_FEATURE_AES
|
||||
# define __ARM_FEATURE_AES 1
|
||||
#endif
|
||||
|
||||
#include <arm_neon.h>
|
||||
]], [[
|
||||
int64x2_t x = { 0, 0 };
|
||||
vaeseq_u8(vmovq_n_u8(0), vmovq_n_u8(0));
|
||||
vmull_high_p64(vreinterpretq_p64_s64(x), vreinterpretq_p64_s64(x));
|
||||
|
||||
#ifdef __clang__
|
||||
# pragma clang attribute pop
|
||||
#endif
|
||||
(void) 0
|
||||
]])],
|
||||
[
|
||||
AC_MSG_RESULT(yes)
|
||||
have_armcrypto=yes
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT(no)
|
||||
oldcflags="$CFLAGS"
|
||||
AX_CHECK_COMPILE_FLAG([-march=armv8-a+crypto+aes], [
|
||||
CFLAGS="$CFLAGS -march=armv8-a+crypto+aes"
|
||||
AC_MSG_CHECKING(for ARM crypto instructions set with -march=armv8-a+crypto+aes)
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#ifdef __clang__
|
||||
# pragma clang attribute push(__attribute__((target("neon,crypto,aes"))), apply_to = function)
|
||||
#elif defined(__GNUC__)
|
||||
# pragma GCC target("+simd+crypto")
|
||||
#endif
|
||||
#ifndef __ARM_FEATURE_CRYPTO
|
||||
# define __ARM_FEATURE_CRYPTO 1
|
||||
#endif
|
||||
#ifndef __ARM_FEATURE_AES
|
||||
# define __ARM_FEATURE_AES 1
|
||||
#endif
|
||||
|
||||
#include <arm_neon.h>
|
||||
]], [[
|
||||
int64x2_t x = { 0, 0 };
|
||||
vaeseq_u8(vmovq_n_u8(0), vmovq_n_u8(0));
|
||||
vmull_high_p64(vreinterpretq_p64_s64(x), vreinterpretq_p64_s64(x));
|
||||
|
||||
#ifdef __clang__
|
||||
# pragma clang attribute pop
|
||||
#endif
|
||||
(void) 0
|
||||
]])],
|
||||
[
|
||||
AC_MSG_RESULT(yes - with addition of -march=armv8-a+crypto+aes)
|
||||
have_armcrypto=yes
|
||||
CFLAGS_ARMCRYPTO="-march=armv8-a+crypto+aes"
|
||||
],
|
||||
[AC_MSG_RESULT(no)])
|
||||
CFLAGS="$oldcflags"
|
||||
])
|
||||
])
|
||||
AS_IF([test "$have_armcrypto" = "yes"],[AC_DEFINE([HAVE_ARMCRYPTO], [1], [ARM crypto extensions are available])])
|
||||
])
|
||||
|
||||
oldcflags="$CFLAGS"
|
||||
AX_CHECK_COMPILE_FLAG([-mmmx], [CFLAGS="$CFLAGS -mmmx"])
|
||||
AC_MSG_CHECKING(for MMX instructions set)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#pragma GCC target("mmx")
|
||||
#include <mmintrin.h>
|
||||
]], [[ __m64 x = _mm_setzero_si64(); ]])],
|
||||
@@ -412,7 +483,7 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
|
||||
oldcflags="$CFLAGS"
|
||||
AX_CHECK_COMPILE_FLAG([-msse2], [CFLAGS="$CFLAGS -msse2"])
|
||||
AC_MSG_CHECKING(for SSE2 instructions set)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#pragma GCC target("sse2")
|
||||
#ifndef __SSE2__
|
||||
# define __SSE2__
|
||||
@@ -429,7 +500,7 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
|
||||
oldcflags="$CFLAGS"
|
||||
AX_CHECK_COMPILE_FLAG([-msse3], [CFLAGS="$CFLAGS -msse3"])
|
||||
AC_MSG_CHECKING(for SSE3 instructions set)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#pragma GCC target("sse3")
|
||||
#include <pmmintrin.h>
|
||||
]], [[ __m128 x = _mm_addsub_ps(_mm_cvtpd_ps(_mm_setzero_pd()),
|
||||
@@ -443,7 +514,7 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
|
||||
oldcflags="$CFLAGS"
|
||||
AX_CHECK_COMPILE_FLAG([-mssse3], [CFLAGS="$CFLAGS -mssse3"])
|
||||
AC_MSG_CHECKING(for SSSE3 instructions set)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#pragma GCC target("ssse3")
|
||||
#include <tmmintrin.h>
|
||||
]], [[ __m64 x = _mm_abs_pi32(_m_from_int(0)); ]])],
|
||||
@@ -456,7 +527,7 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
|
||||
oldcflags="$CFLAGS"
|
||||
AX_CHECK_COMPILE_FLAG([-msse4.1], [CFLAGS="$CFLAGS -msse4.1"])
|
||||
AC_MSG_CHECKING(for SSE4.1 instructions set)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#pragma GCC target("sse4.1")
|
||||
#include <smmintrin.h>
|
||||
]], [[ __m128i x = _mm_minpos_epu16(_mm_setzero_si128()); ]])],
|
||||
@@ -469,7 +540,7 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
|
||||
oldcflags="$CFLAGS"
|
||||
AX_CHECK_COMPILE_FLAG([-mavx], [CFLAGS="$CFLAGS -mavx"])
|
||||
AC_MSG_CHECKING(for AVX instructions set)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#pragma GCC target("avx")
|
||||
#include <immintrin.h>
|
||||
]], [[ _mm256_zeroall(); ]])],
|
||||
@@ -482,7 +553,7 @@ AS_IF([test "x$EMSCRIPTEN" = "x"], [
|
||||
oldcflags="$CFLAGS"
|
||||
AX_CHECK_COMPILE_FLAG([-mavx2], [CFLAGS="$CFLAGS -mavx2"])
|
||||
AC_MSG_CHECKING(for AVX2 instructions set)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#pragma GCC target("avx2")
|
||||
#include <immintrin.h>
|
||||
]], [[
|
||||
@@ -494,7 +565,7 @@ return _mm256_movemask_ps(_mm256_cmp_ps(x, y, _CMP_NEQ_OQ));
|
||||
AC_DEFINE([HAVE_AVX2INTRIN_H], [1], [AVX2 is available])
|
||||
AX_CHECK_COMPILE_FLAG([-mavx2], [CFLAGS_AVX2="-mavx2"])
|
||||
AC_MSG_CHECKING(if _mm256_broadcastsi128_si256 is correctly defined)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#pragma GCC target("avx2")
|
||||
#include <immintrin.h>
|
||||
]], [[ __m256i y = _mm256_broadcastsi128_si256(_mm_setzero_si128()); ]])],
|
||||
@@ -509,7 +580,7 @@ return _mm256_movemask_ps(_mm256_cmp_ps(x, y, _CMP_NEQ_OQ));
|
||||
oldcflags="$CFLAGS"
|
||||
AX_CHECK_COMPILE_FLAG([-mavx512f], [CFLAGS="$CFLAGS -mavx512f"])
|
||||
AC_MSG_CHECKING(for AVX512F instructions set)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#pragma GCC target("avx512f")
|
||||
#include <immintrin.h>
|
||||
]], [[
|
||||
@@ -542,7 +613,7 @@ __m512i y = _mm512_permutexvar_epi64(_mm512_setr_epi64(0, 1, 4, 5, 2, 3, 6, 7),
|
||||
AX_CHECK_COMPILE_FLAG([-maes], [CFLAGS="$CFLAGS -maes"])
|
||||
AX_CHECK_COMPILE_FLAG([-mpclmul], [CFLAGS="$CFLAGS -mpclmul"])
|
||||
AC_MSG_CHECKING(for AESNI instructions set and PCLMULQDQ)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#pragma GCC target("aes")
|
||||
#pragma GCC target("pclmul")
|
||||
#include <wmmintrin.h>
|
||||
@@ -559,7 +630,7 @@ __m512i y = _mm512_permutexvar_epi64(_mm512_setr_epi64(0, 1, 4, 5, 2, 3, 6, 7),
|
||||
oldcflags="$CFLAGS"
|
||||
AX_CHECK_COMPILE_FLAG([-mrdrnd], [CFLAGS="$CFLAGS -mrdrnd"])
|
||||
AC_MSG_CHECKING(for RDRAND)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#pragma GCC target("rdrnd")
|
||||
#include <immintrin.h>
|
||||
]], [[ unsigned long long x; _rdrand64_step(&x); ]])],
|
||||
@@ -572,6 +643,7 @@ __m512i y = _mm512_permutexvar_epi64(_mm512_setr_epi64(0, 1, 4, 5, 2, 3, 6, 7),
|
||||
|
||||
])
|
||||
|
||||
AC_SUBST(CFLAGS_ARMCRYPTO)
|
||||
AC_SUBST(CFLAGS_MMX)
|
||||
AC_SUBST(CFLAGS_SSE2)
|
||||
AC_SUBST(CFLAGS_SSE3)
|
||||
@@ -584,7 +656,9 @@ AC_SUBST(CFLAGS_AESNI)
|
||||
AC_SUBST(CFLAGS_PCLMUL)
|
||||
AC_SUBST(CFLAGS_RDRAND)
|
||||
|
||||
AC_CHECK_HEADERS([sys/mman.h sys/param.h sys/random.h intrin.h])
|
||||
AC_CHECK_HEADERS([sys/mman.h sys/param.h sys/random.h intrin.h sys/auxv.h])
|
||||
AC_CHECK_HEADERS([CommonCrypto/CommonRandom.h])
|
||||
AC_CHECK_HEADERS([cet.h])
|
||||
|
||||
AC_MSG_CHECKING([if _xgetbv() is available])
|
||||
AC_LINK_IFELSE(
|
||||
@@ -608,7 +682,7 @@ AC_C_BIGENDIAN(
|
||||
)
|
||||
|
||||
AC_MSG_CHECKING(whether __STDC_LIMIT_MACROS is required)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <limits.h>
|
||||
#include <stdint.h>
|
||||
]], [[
|
||||
@@ -792,23 +866,6 @@ void f(void *x) { __dummy(x); }
|
||||
AC_DEFINE([HAVE_WEAK_SYMBOLS], [1], [weak symbols are supported])],
|
||||
[AC_MSG_RESULT(no)])
|
||||
|
||||
AC_MSG_CHECKING(if data alignment is required)
|
||||
aligned_access_required=yes
|
||||
AS_CASE([$host_cpu],
|
||||
[i?86|amd64|x86_64|powerpc*|s390*],
|
||||
[aligned_access_required=no],
|
||||
[arm*],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
#ifndef __ARM_FEATURE_UNALIGNED
|
||||
# error data alignment is required
|
||||
#endif
|
||||
]], [[]])], [aligned_access_required=no], [])]
|
||||
)
|
||||
AS_IF([test "x$aligned_access_required" = "xyes"],
|
||||
[AC_MSG_RESULT(yes)],
|
||||
[AC_MSG_RESULT(no)
|
||||
AC_DEFINE([CPU_UNALIGNED_ACCESS], [1], [unaligned memory access is supported])])
|
||||
|
||||
AC_MSG_CHECKING(if atomic operations are supported)
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[
|
||||
static volatile int _sodium_lock;
|
||||
@@ -820,6 +877,26 @@ __sync_lock_release(&_sodium_lock);
|
||||
AC_DEFINE([HAVE_ATOMIC_OPS], [1], [atomic operations are supported])],
|
||||
[AC_MSG_RESULT(no)])
|
||||
|
||||
AC_MSG_CHECKING(if C11 memory fences are supported)
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <stdatomic.h>
|
||||
]], [[
|
||||
atomic_thread_fence(memory_order_acquire);
|
||||
]]
|
||||
)],
|
||||
[AC_MSG_RESULT(yes)
|
||||
AC_DEFINE([HAVE_C11_MEMORY_FENCES], [1], [C11 memory fences are supported])],
|
||||
[AC_MSG_RESULT(no)])
|
||||
|
||||
AC_MSG_CHECKING(if gcc memory fences are supported)
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[
|
||||
__atomic_thread_fence(__ATOMIC_ACQUIRE);
|
||||
]]
|
||||
)],
|
||||
[AC_MSG_RESULT(yes)
|
||||
AC_DEFINE([HAVE_GCC_MEMORY_FENCES], [1], [GCC memory fences are supported])],
|
||||
[AC_MSG_RESULT(no)])
|
||||
|
||||
dnl Checks for functions and headers
|
||||
|
||||
AC_FUNC_ALLOCA
|
||||
@@ -839,12 +916,11 @@ AS_IF([test "x$EMSCRIPTEN" = "x"],[
|
||||
#ifdef HAVE_SYS_RANDOM_H
|
||||
# include <sys/random.h>
|
||||
#endif
|
||||
#ifdef __SANITIZE_ADDRESS__
|
||||
# error A recent libasan version on an old system may intercept nonexistent functions
|
||||
#endif
|
||||
]], [[
|
||||
unsigned char buf;
|
||||
(void) getrandom((void *) &buf, 1U, 0U);
|
||||
if (&getrandom != NULL) {
|
||||
(void) getrandom((void *) &buf, 1U, 0U);
|
||||
}
|
||||
]])],
|
||||
[AC_MSG_RESULT(yes)
|
||||
AC_CHECK_FUNCS([getrandom])],
|
||||
@@ -860,12 +936,8 @@ unsigned char buf;
|
||||
#ifdef HAVE_SYS_RANDOM_H
|
||||
# include <sys/random.h>
|
||||
#endif
|
||||
#ifdef __SANITIZE_ADDRESS__
|
||||
# error A recent libasan version on an old system may intercept nonexistent functions
|
||||
#endif
|
||||
]], [[
|
||||
unsigned char buf;
|
||||
|
||||
if (&getentropy != NULL) {
|
||||
(void) getentropy((void *) &buf, 1U);
|
||||
}
|
||||
@@ -878,7 +950,7 @@ if (&getentropy != NULL) {
|
||||
|
||||
AS_IF([test "x$WASI" = "x"],[
|
||||
AC_CHECK_FUNCS([getpid])
|
||||
AC_CHECK_FUNCS([getauxva elf_aux_info])
|
||||
AC_CHECK_FUNCS([getauxval elf_aux_info])
|
||||
])
|
||||
|
||||
AC_CHECK_FUNCS([posix_memalign nanosleep clock_gettime])
|
||||
@@ -922,7 +994,6 @@ AC_CONFIG_FILES([Makefile
|
||||
dist-build/Makefile
|
||||
libsodium.pc
|
||||
libsodium-uninstalled.pc
|
||||
msvc-scripts/Makefile
|
||||
src/Makefile
|
||||
src/libsodium/Makefile
|
||||
src/libsodium/include/Makefile
|
||||
|
||||
Reference in New Issue
Block a user