mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-09 10:43:19 -05:00
1408944d2e
4af241b320 Merge bitcoin-core/secp256k1#1535: build: Replace hardcoded "auto" value with default one f473c959f0 Merge bitcoin-core/secp256k1#1543: cmake: Do not modify build types when integrating by downstream project d403eea484 Merge bitcoin-core/secp256k1#1546: cmake: Rename `SECP256K1_LATE_CFLAGS` and switch to Bitcoin Core's approach d7ae25ce6f Merge bitcoin-core/secp256k1#1550: fix: typos in secp256k1.c 0e2fadb20c fix: typos in secp256k1.c 69b2192ad4 Merge bitcoin-core/secp256k1#1545: cmake: Do not set `CTEST_TEST_TARGET_ALIAS` 5dd637f3cf Merge bitcoin-core/secp256k1#1548: README: mention ellswift module 7454a53736 README: mention ellswift module 4706be2cd0 cmake: Reimplement `SECP256K1_APPEND_CFLAGS` using Bitcoin Core approach c2764dbb99 cmake: Rename `SECP256K1_LATE_CFLAGS` to `SECP256K1_APPEND_CFLAGS` f87a3589f4 cmake: Do not set `CTEST_TEST_TARGET_ALIAS` 158f9e5eae cmake: Do not modify build types when integrating by downstream project 35c0fdc86b Merge bitcoin-core/secp256k1#1529: cmake: Fix cache issue when integrating by downstream project 4392f0f717 Merge bitcoin-core/secp256k1#1533: tests: refactor: tidy up util functions (#1491) bedffd53d8 Merge bitcoin-core/secp256k1#1488: ci: Add native macOS arm64 job 4b8d5eeacf Merge bitcoin-core/secp256k1#1532: cmake: Disable eager MSan in ctime_tests f55703ba49 autotools: Delete unneeded compiler test 396e885886 autotools: Align MSan checking code with CMake's implementation abde59f52d cmake: Report more compiler details in summary 7abf979a43 cmake: Disable `ctime_tests` if build with `-fsanitize=memory` 4d9645bee0 cmake: Remove "AUTO" value of `SECP256K1_ECMULT_GEN_KB` option a06805ee74 cmake: Remove "AUTO" value of `SECP256K1_ECMULT_WINDOW_SIZE` option 1791f6fce4 Merge bitcoin-core/secp256k1#1517: autotools: Disable eager MSan in ctime_tests 26b94ee92a autotools: Remove "auto" value of `--with-ecmult-gen-kb` option 122dbaeb37 autotools: Remove "auto" value of `--with-ecmult-window` option e73f6f8fd9 tests: refactor: drop `secp256k1_` prefix from testrand.h functions 0ee7453a99 tests: refactor: add `testutil_` prefix to testutil.h functions 0c6bc76dcd tests: refactor: move `random_` helpers from tests.c to testutil.h 0fef8479be tests: refactor: rename `random_field_element_magnitude` -> `random_fe_magnitude` 59db007f0f tests: refactor: rename `random_group_element_...` -> `random_ge_...` ebfb82ee2f ci: Add job with -fsanitize-memory-param-retval e1bef0961c configure: Move "experimental" warning to bottom 55e5d975db autotools: Disable eager MSan in ctime_tests ec4c002faa cmake: Simplify `PROJECT_IS_TOP_LEVEL` emulation cae9a7ad14 cmake: Do not set emulated PROJECT_IS_TOP_LEVEL as cache variable 218f0cc93b ci: Add native macOS arm64 job git-subtree-dir: src/secp256k1 git-subtree-split: 4af241b32099067464e015fa66daac5096206dea
91 lines
2.7 KiB
Text
91 lines
2.7 KiB
Text
dnl escape "$0x" below using the m4 quadrigaph @S|@, and escape it again with a \ for the shell.
|
|
AC_DEFUN([SECP_X86_64_ASM_CHECK],[
|
|
AC_MSG_CHECKING(for x86_64 assembly availability)
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <stdint.h>]],[[
|
|
uint64_t a = 11, tmp;
|
|
__asm__ __volatile__("movq \@S|@0x100000000,%1; mulq %%rsi" : "+a"(a) : "S"(tmp) : "cc", "%rdx");
|
|
]])], [has_x86_64_asm=yes], [has_x86_64_asm=no])
|
|
AC_MSG_RESULT([$has_x86_64_asm])
|
|
])
|
|
|
|
AC_DEFUN([SECP_ARM32_ASM_CHECK], [
|
|
AC_MSG_CHECKING(for ARM32 assembly availability)
|
|
SECP_ARM32_ASM_CHECK_CFLAGS_saved_CFLAGS="$CFLAGS"
|
|
CFLAGS="-x assembler"
|
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
|
.syntax unified
|
|
.eabi_attribute 24, 1
|
|
.eabi_attribute 25, 1
|
|
.text
|
|
.global main
|
|
main:
|
|
ldr r0, =0x002A
|
|
mov r7, #1
|
|
swi 0
|
|
]])], [has_arm32_asm=yes], [has_arm32_asm=no])
|
|
AC_MSG_RESULT([$has_arm32_asm])
|
|
CFLAGS="$SECP_ARM32_ASM_CHECK_CFLAGS_saved_CFLAGS"
|
|
])
|
|
|
|
AC_DEFUN([SECP_VALGRIND_CHECK],[
|
|
AC_MSG_CHECKING([for valgrind support])
|
|
if test x"$has_valgrind" != x"yes"; then
|
|
CPPFLAGS_TEMP="$CPPFLAGS"
|
|
CPPFLAGS="$VALGRIND_CPPFLAGS $CPPFLAGS"
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
#include <valgrind/memcheck.h>
|
|
]], [[
|
|
#if defined(NVALGRIND)
|
|
# error "Valgrind does not support this platform."
|
|
#endif
|
|
]])], [has_valgrind=yes])
|
|
CPPFLAGS="$CPPFLAGS_TEMP"
|
|
fi
|
|
AC_MSG_RESULT($has_valgrind)
|
|
])
|
|
|
|
AC_DEFUN([SECP_MSAN_CHECK], [
|
|
AC_MSG_CHECKING(whether MemorySanitizer is enabled)
|
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
|
#if defined(__has_feature)
|
|
# if __has_feature(memory_sanitizer)
|
|
/* MemorySanitizer is enabled. */
|
|
# elif
|
|
# error "MemorySanitizer is disabled."
|
|
# endif
|
|
#else
|
|
# error "__has_feature is not defined."
|
|
#endif
|
|
]])], [msan_enabled=yes], [msan_enabled=no])
|
|
AC_MSG_RESULT([$msan_enabled])
|
|
])
|
|
|
|
dnl SECP_TRY_APPEND_CFLAGS(flags, VAR)
|
|
dnl Append flags to VAR if CC accepts them.
|
|
AC_DEFUN([SECP_TRY_APPEND_CFLAGS], [
|
|
AC_MSG_CHECKING([if ${CC} supports $1])
|
|
SECP_TRY_APPEND_CFLAGS_saved_CFLAGS="$CFLAGS"
|
|
CFLAGS="$1 $CFLAGS"
|
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[char foo;]])], [flag_works=yes], [flag_works=no])
|
|
AC_MSG_RESULT($flag_works)
|
|
CFLAGS="$SECP_TRY_APPEND_CFLAGS_saved_CFLAGS"
|
|
if test x"$flag_works" = x"yes"; then
|
|
$2="$$2 $1"
|
|
fi
|
|
unset flag_works
|
|
AC_SUBST($2)
|
|
])
|
|
|
|
dnl SECP_SET_DEFAULT(VAR, default, default-dev-mode)
|
|
dnl Set VAR to default or default-dev-mode, depending on whether dev mode is enabled
|
|
AC_DEFUN([SECP_SET_DEFAULT], [
|
|
if test "${enable_dev_mode+set}" != set; then
|
|
AC_MSG_ERROR([[Set enable_dev_mode before calling SECP_SET_DEFAULT]])
|
|
fi
|
|
if test x"$enable_dev_mode" = x"yes"; then
|
|
$1="$3"
|
|
else
|
|
$1="$2"
|
|
fi
|
|
])
|