Skip to content

Commit 55e7f2c

Browse files
committed
Squashed 'src/secp256k1/' changes from 21ffe4b22a..05ffe54341
05ffe54341 Add doc/ellswift.md with ElligatorSwift explanation d6044a1788 Add ellswift testing to CI f80822f13d Add ElligatorSwift ctime tests eb5d6a5aed Add tests for ElligatorSwift cb0b0a1dd7 Add ElligatorSwift benchmarks 9c22cbbbea Add ellswift module implementing ElligatorSwift ba0f1dcef0 Add functions to test if X coordinate is valid 86e7f04dea Add benchmark for key generation 6799c79bf1 Add exhaustive tests for ecmult_const_xonly c51d2d0096 Add x-only ecmult_const version for x=n/d 8b2ae08328 doc: Describe Jacobi calculation in safegcd_implementation.md c527c0563c Add secp256k1_fe_is_square_var function 0b7ee51192 Native jacobi symbol algorithm 9da56d548b Make secp256k1_modinv64_det_check_pow2 support abs val 3d27313650 Make secp256k1_i128_check_pow2 support -(2^n) 2b77240b3b Merge bitcoin-core/secp256k1#1172: benchmarks: fix bench_scalar_split eb6bebaee3 scalar: restrict split_lambda args, improve doc and VERIFY_CHECKs 7f49aa7f2d ci: add test job with -DVERIFY 620ba3d74b benchmarks: fix bench_scalar_split 5fbff5d348 Merge bitcoin-core/secp256k1#1170: contexts: Forbid destroying, cloning and randomizing the static context 233822d849 Merge bitcoin-core/secp256k1#1195: ctime_tests: improve output when CHECKMEM_RUNNING is not defined ad7433b140 Merge bitcoin-core/secp256k1#1196: Drop no longer used variables from the build system e39d954f11 tests: Add CHECK_ILLEGAL(_VOID) macros and use in static ctx tests 2cd4e3c0a9 Drop no longer used `SECP_{LIBS,INCLUDE}` variables 613626f94c Drop no longer used `SECP_TEST_{LIBS,INCLUDE}` variables 61841fc9ee contexts: Forbid randomizing secp256k1_context_static 4b6df5e33e contexts: Forbid cloning/destroying secp256k1_context_static b1579cf5fb Merge bitcoin-core/secp256k1#1194: Ensure safety of ctz_debruijn implementation. 8f51229e03 ctime_tests: improve output when CHECKMEM_RUNNING is not defined d6ff738d5b Ensure safety of ctz_debruijn implementation. a01a7d86dc Merge bitcoin-core/secp256k1#1192: Switch to exhaustive groups with small B coefficient a7a7bfaf3d Merge bitcoin-core/secp256k1#1190: Make all non-API functions (except main) static f29a327092 Merge bitcoin-core/secp256k1#1169: Add support for msan instead of valgrind (for memcheck and ctime test) ff8edf89e2 Merge bitcoin-core/secp256k1#1193: Add `noverify_tests` to `.gitignore` ce60785b26 Introduce SECP256K1_B macro for curve b coefficient 4934aa7995 Switch to exhaustive groups with small B coefficient d4a6b58df7 Add `noverify_tests` to `.gitignore` 88e80722d2 Merge bitcoin-core/secp256k1#1160: Makefile: add `-I$(top_srcdir)/{include,src}` to `CPPFLAGS` for precomputed 0f088ec112 Rename CTIMETEST -> CTIMETESTS 74b026f05d Add runtime checking for DECLASSIFY flag 5e2e6fcfc0 Run ctime test in Linux MSan CI job 18974061a3 Make ctime tests building configurable 5048be17e9 Rename valgrind_ctime_test -> ctime_tests 6eed6c18de Update error messages to suggest msan as well 8e11f89a68 Add support for msan integration to checkmem.h 8dc64079eb Add compile-time error to valgrind_ctime_test 0db05a770e Abstract interactions with valgrind behind new checkmem.h 4f1a54e41d Move valgrind CPPFLAGS into SECP_CONFIG_DEFINES cc3b8a4f40 Merge bitcoin-core/secp256k1#1187: refactor: Rename global variables in tests 9a93f48f50 refactor: Rename STTC to STATIC_CTX in tests 3385a2648d refactor: Rename global variables to uppercase in tests e03ef86559 Make all non-API functions (except main) static cbe41ac138 Merge bitcoin-core/secp256k1#1188: tests: Add noverify_tests which is like tests but without VERIFY 203760023c tests: Add noverify_tests which is like tests but without VERIFY e862c4af0c Makefile: add -I$(top_srcdir)/src to CPPFLAGS for precomputed 0eb3000417 Merge bitcoin-core/secp256k1#1186: tests: Tidy context tests 39e8f0e3d7 refactor: Separate run_context_tests into static vs proper contexts a4a09379b1 tests: Clean up and improve run_context_tests() further fc90bb5695 refactor: Tidy up main() f32a36f620 tests: Don't use global context for context tests ce4f936c4f tests: Tidy run_context_tests() by extracting functions 18e0db30cb tests: Don't recreate global context in scratch space test b19806122e tests: Use global copy of secp256k1_context_static instead of clone 2a39ac162e Merge bitcoin-core/secp256k1#1185: Drop `SECP_CONFIG_DEFINES` from examples 2f9ca284e2 Drop `SECP_CONFIG_DEFINES` from examples 31ed5386e8 Merge bitcoin-core/secp256k1#1183: Bugfix: pass SECP_CONFIG_DEFINES to bench compilation c0a555b2ae Bugfix: pass SECP_CONFIG_DEFINES to bench compilation 01b819a8c7 Merge bitcoin-core/secp256k1#1158: Add a secp256k1_i128_to_u64 function. eacad90f69 Merge bitcoin-core/secp256k1#1171: Change ARG_CHECK_NO_RETURN to ARG_CHECK_VOID which returns (void) 3f57b9f774 Merge bitcoin-core/secp256k1#1177: Some improvements to the changelog c30b889f17 Clarify that the ABI-incompatible versions are earlier 881fc33d0c Consistency in naming of modules 665ba77e79 Merge bitcoin-core/secp256k1#1178: Drop `src/libsecp256k1-config.h` 75d7b7f5ba Merge bitcoin-core/secp256k1#1154: ci: set -u in cirrus.sh to treat unset variables as an error 7a74688201 ci: add missing CFLAGS & CPPFLAGS variable to print_environment c2e0fdadeb ci: set -u in cirrus.sh to treat unset variables as an error 9c5a4d21bb Do not define unused `HAVE_VALGRIND` macro ad8647f548 Drop no longer relevant files from `.gitignore` b627ba7050 Remove dependency on `src/libsecp256k1-config.h` 9ecf8149a1 Reduce font size in changelog 2dc133a67f Add more changelog entries ac233e181a Add links to diffs to changelog cee8223ef6 Mention semantic versioning in changelog 9a8d65f07f Merge bitcoin-core/secp256k1#1174: release cleanup: bump version after 0.2.0 02ebc290f7 release cleanup: bump version after 0.2.0 b6b360efaf doc: improve message of cleanup commit a49e0940ad docs: Fix typo 2551cdac90 tests: Fix code formatting c635c1bfd5 Change ARG_CHECK_NO_RETURN to ARG_CHECK_VOID which returns (void) cf66f2357c refactor: Add helper function secp256k1_context_is_proper() d216475205 test secp256k1_i128_to_i64 4bc429019d Add a secp256k1_i128_to_u64 function. git-subtree-dir: src/secp256k1 git-subtree-split: 05ffe5434157c156bf60f7aee6bfeddbb5a8f318
1 parent 9d47e7b commit 55e7f2c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+4299
-1605
lines changed

.cirrus.yml

+31-18
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
env:
22
### compiler options
33
HOST:
4+
WRAPPER_CMD:
45
# Specific warnings can be disabled with -Wno-error=foo.
56
# -pedantic-errors is not equivalent to -Werror=pedantic and thus not implied by -Werror according to the GCC manual.
67
WERROR_CFLAGS: -Werror -pedantic-errors
@@ -18,11 +19,12 @@ env:
1819
ECDH: no
1920
RECOVERY: no
2021
SCHNORRSIG: no
22+
ELLSWIFT: no
2123
### test options
2224
SECP256K1_TEST_ITERS:
2325
BENCH: yes
2426
SECP256K1_BENCH_ITERS: 2
25-
CTIMETEST: yes
27+
CTIMETESTS: yes
2628
# Compile and run the tests
2729
EXAMPLES: yes
2830

@@ -35,10 +37,12 @@ cat_logs_snippet: &CAT_LOGS
3537
always:
3638
cat_tests_log_script:
3739
- cat tests.log || true
40+
cat_noverify_tests_log_script:
41+
- cat noverify_tests.log || true
3842
cat_exhaustive_tests_log_script:
3943
- cat exhaustive_tests.log || true
40-
cat_valgrind_ctime_test_log_script:
41-
- cat valgrind_ctime_test.log || true
44+
cat_ctime_tests_log_script:
45+
- cat ctime_tests.log || true
4246
cat_bench_log_script:
4347
- cat bench.log || true
4448
cat_config_log_script:
@@ -71,16 +75,17 @@ task:
7175
<< : *LINUX_CONTAINER
7276
matrix: &ENV_MATRIX
7377
- env: {WIDEMUL: int64, RECOVERY: yes}
74-
- env: {WIDEMUL: int64, ECDH: yes, SCHNORRSIG: yes}
78+
- env: {WIDEMUL: int64, ECDH: yes, SCHNORRSIG: yes, ELLSWIFT: yes}
7579
- env: {WIDEMUL: int128}
76-
- env: {WIDEMUL: int128_struct}
77-
- env: {WIDEMUL: int128, RECOVERY: yes, SCHNORRSIG: yes}
80+
- env: {WIDEMUL: int128_struct, ELLSWIFT: yes}
81+
- env: {WIDEMUL: int128, RECOVERY: yes, SCHNORRSIG: yes, ELLSWIFT: yes}
7882
- env: {WIDEMUL: int128, ECDH: yes, SCHNORRSIG: yes}
79-
- env: {WIDEMUL: int128, ASM: x86_64}
83+
- env: {WIDEMUL: int128, ASM: x86_64 , ELLSWIFT: yes}
8084
- env: { RECOVERY: yes, SCHNORRSIG: yes}
81-
- env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
85+
- env: {CTIMETESTS: no, RECOVERY: yes, ECDH: yes, SCHNORRSIG: yes, CPPFLAGS: -DVERIFY}
86+
- env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETESTS: no, BENCH: no}
8287
- env: {CPPFLAGS: -DDETERMINISTIC}
83-
- env: {CFLAGS: -O0, CTIMETEST: no}
88+
- env: {CFLAGS: -O0, CTIMETESTS: no}
8489
- env: { ECMULTGENPRECISION: 2, ECMULTWINDOW: 2 }
8590
- env: { ECMULTGENPRECISION: 8, ECMULTWINDOW: 4 }
8691
matrix:
@@ -125,7 +130,7 @@ task:
125130
env:
126131
ASM: no
127132
WITH_VALGRIND: no
128-
CTIMETEST: no
133+
CTIMETESTS: no
129134
matrix:
130135
- env:
131136
CC: gcc
@@ -150,7 +155,8 @@ task:
150155
ECDH: yes
151156
RECOVERY: yes
152157
SCHNORRSIG: yes
153-
CTIMETEST: no
158+
ELLSWIFT: yes
159+
CTIMETESTS: no
154160
<< : *MERGE_BASE
155161
test_script:
156162
# https://sourceware.org/bugzilla/show_bug.cgi?id=27008
@@ -169,7 +175,8 @@ task:
169175
ECDH: yes
170176
RECOVERY: yes
171177
SCHNORRSIG: yes
172-
CTIMETEST: no
178+
ELLSWIFT: yes
179+
CTIMETESTS: no
173180
matrix:
174181
- env: {}
175182
- env: {EXPERIMENTAL: yes, ASM: arm}
@@ -189,7 +196,8 @@ task:
189196
ECDH: yes
190197
RECOVERY: yes
191198
SCHNORRSIG: yes
192-
CTIMETEST: no
199+
ELLSWIFT: yes
200+
CTIMETESTS: no
193201
<< : *MERGE_BASE
194202
test_script:
195203
- ./ci/cirrus.sh
@@ -206,7 +214,8 @@ task:
206214
ECDH: yes
207215
RECOVERY: yes
208216
SCHNORRSIG: yes
209-
CTIMETEST: no
217+
ELLSWIFT: yes
218+
CTIMETESTS: no
210219
<< : *MERGE_BASE
211220
test_script:
212221
- ./ci/cirrus.sh
@@ -220,7 +229,7 @@ task:
220229
ECDH: yes
221230
RECOVERY: yes
222231
SCHNORRSIG: yes
223-
CTIMETEST: no
232+
CTIMETESTS: no
224233
matrix:
225234
- name: "x86_64 (mingw32-w64): Windows (Debian stable, Wine)"
226235
env:
@@ -243,7 +252,8 @@ task:
243252
RECOVERY: yes
244253
EXPERIMENTAL: yes
245254
SCHNORRSIG: yes
246-
CTIMETEST: no
255+
ELLSWIFT: yes
256+
CTIMETESTS: no
247257
# Use a MinGW-w64 host to tell ./configure we're building for Windows.
248258
# This will detect some MinGW-w64 tools but then make will need only
249259
# the MSVC tools CC, AR and NM as specified below.
@@ -282,7 +292,8 @@ task:
282292
ECDH: yes
283293
RECOVERY: yes
284294
SCHNORRSIG: yes
285-
CTIMETEST: no
295+
ELLSWIFT: yes
296+
CTIMETESTS: no
286297
matrix:
287298
- name: "Valgrind (memcheck)"
288299
container:
@@ -327,10 +338,11 @@ task:
327338
ECDH: yes
328339
RECOVERY: yes
329340
SCHNORRSIG: yes
330-
CTIMETEST: no
341+
CTIMETESTS: yes
331342
CC: clang
332343
SECP256K1_TEST_ITERS: 32
333344
ASM: no
345+
WITH_VALGRIND: no
334346
container:
335347
memory: 2G
336348
matrix:
@@ -356,6 +368,7 @@ task:
356368
ECDH: yes
357369
RECOVERY: yes
358370
SCHNORRSIG: yes
371+
ELLSWIFT: yes
359372
<< : *MERGE_BASE
360373
test_script:
361374
- ./ci/cirrus.sh

.gitignore

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
bench
22
bench_ecmult
33
bench_internal
4+
noverify_tests
45
tests
56
exhaustive_tests
67
precompute_ecmult_gen
78
precompute_ecmult
8-
valgrind_ctime_test
9+
ctime_tests
910
ecdh_example
1011
ecdsa_example
1112
schnorr_example
@@ -42,8 +43,6 @@ coverage.*.html
4243
*.gcno
4344
*.gcov
4445

45-
src/libsecp256k1-config.h
46-
src/libsecp256k1-config.h.in
4746
build-aux/ar-lib
4847
build-aux/config.guess
4948
build-aux/config.sub
@@ -58,5 +57,4 @@ build-aux/m4/ltversion.m4
5857
build-aux/missing
5958
build-aux/compile
6059
build-aux/test-driver
61-
src/stamp-h1
6260
libsecp256k1.pc

CHANGELOG.md

+22-7
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,43 @@
11
# Changelog
22

3-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
47

58
## [Unreleased]
69

10+
#### Changed
11+
- Forbade cloning or destroying `secp256k1_context_static`. Create a new context instead of cloning the static context. (If this change breaks your code, your code is probably wrong.)
12+
- Forbade randomizing (copies of) `secp256k1_context_static`. Randomizing a copy of `secp256k1_context_static` did not have any effect and did not provide defense-in-depth protection against side-channel attacks. Create a new context if you want to benefit from randomization.
13+
714
## [0.2.0] - 2022-12-12
815

9-
### Added
16+
#### Added
17+
- Added usage examples for common use cases in a new `examples/` directory.
1018
- Added `secp256k1_selftest`, to be used in conjunction with `secp256k1_context_static`.
19+
- Added support for 128-bit wide multiplication on MSVC for x86_64 and arm64, giving roughly a 20% speedup on those platforms.
1120

12-
### Changed
13-
- Enabled modules schnorrsig, extrakeys and ECDH by default in `./configure`.
21+
#### Changed
22+
- Enabled modules `schnorrsig`, `extrakeys` and `ecdh` by default in `./configure`.
23+
- The `secp256k1_nonce_function_rfc6979` nonce function, used by default by `secp256k1_ecdsa_sign`, now reduces the message hash modulo the group order to match the specification. This only affects improper use of ECDSA signing API.
1424

15-
### Deprecated
25+
#### Deprecated
1626
- Deprecated context flags `SECP256K1_CONTEXT_VERIFY` and `SECP256K1_CONTEXT_SIGN`. Use `SECP256K1_CONTEXT_NONE` instead.
1727
- Renamed `secp256k1_context_no_precomp` to `secp256k1_context_static`.
28+
- Module `schnorrsig`: renamed `secp256k1_schnorrsig_sign` to `secp256k1_schnorrsig_sign32`.
1829

19-
### ABI Compatibility
30+
#### ABI Compatibility
2031

2132
Since this is the first release, we do not compare application binary interfaces.
22-
However, there are unreleased versions of libsecp256k1 that are *not* ABI compatible with this version.
33+
However, there are earlier unreleased versions of libsecp256k1 that are *not* ABI compatible with this version.
2334

2435
## [0.1.0] - 2013-03-05 to 2021-12-25
2536

2637
This version was in fact never released.
2738
The number was given by the build system since the introduction of autotools in Jan 2014 (ea0fe5a5bf0c04f9cc955b2966b614f5f378c6f6).
2839
Therefore, this version number does not uniquely identify a set of source files.
40+
41+
[unreleased]: https://github.com/bitcoin-core/secp256k1/compare/v0.2.0...HEAD
42+
[0.2.0]: https://github.com/bitcoin-core/secp256k1/compare/423b6d19d373f1224fd671a982584d7e7900bc93..v0.2.0
43+
[0.1.0]: https://github.com/bitcoin-core/secp256k1/commit/423b6d19d373f1224fd671a982584d7e7900bc93

Makefile.am

+40-30
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ noinst_HEADERS += src/modinv64_impl.h
4747
noinst_HEADERS += src/precomputed_ecmult.h
4848
noinst_HEADERS += src/precomputed_ecmult_gen.h
4949
noinst_HEADERS += src/assumptions.h
50+
noinst_HEADERS += src/checkmem.h
5051
noinst_HEADERS += src/util.h
5152
noinst_HEADERS += src/int128.h
5253
noinst_HEADERS += src/int128_impl.h
@@ -73,7 +74,9 @@ noinst_HEADERS += examples/random.h
7374
PRECOMPUTED_LIB = libsecp256k1_precomputed.la
7475
noinst_LTLIBRARIES = $(PRECOMPUTED_LIB)
7576
libsecp256k1_precomputed_la_SOURCES = src/precomputed_ecmult.c src/precomputed_ecmult_gen.c
76-
libsecp256k1_precomputed_la_CPPFLAGS = $(SECP_INCLUDES)
77+
# We need `-I$(top_srcdir)/src` in VPATH builds if libsecp256k1_precomputed_la_SOURCES have been recreated in the build tree.
78+
# This helps users and packagers who insist on recreating the precomputed files (e.g., Gentoo).
79+
libsecp256k1_precomputed_la_CPPFLAGS = -I$(top_srcdir)/src $(SECP_CONFIG_DEFINES)
7780

7881
if USE_EXTERNAL_ASM
7982
COMMON_LIB = libsecp256k1_common.la
@@ -92,55 +95,58 @@ endif
9295
endif
9396

9497
libsecp256k1_la_SOURCES = src/secp256k1.c
95-
libsecp256k1_la_CPPFLAGS = $(SECP_INCLUDES)
96-
libsecp256k1_la_LIBADD = $(SECP_LIBS) $(COMMON_LIB) $(PRECOMPUTED_LIB)
98+
libsecp256k1_la_CPPFLAGS = $(SECP_CONFIG_DEFINES)
99+
libsecp256k1_la_LIBADD = $(COMMON_LIB) $(PRECOMPUTED_LIB)
97100
libsecp256k1_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION_CURRENT):$(LIB_VERSION_REVISION):$(LIB_VERSION_AGE)
98101

99-
if VALGRIND_ENABLED
100-
libsecp256k1_la_CPPFLAGS += -DVALGRIND
101-
endif
102-
103102
noinst_PROGRAMS =
104103
if USE_BENCHMARK
105104
noinst_PROGRAMS += bench bench_internal bench_ecmult
106105
bench_SOURCES = src/bench.c
107-
bench_LDADD = libsecp256k1.la $(SECP_LIBS) $(SECP_TEST_LIBS) $(COMMON_LIB)
106+
bench_LDADD = libsecp256k1.la $(COMMON_LIB)
107+
bench_CPPFLAGS = $(SECP_CONFIG_DEFINES)
108108
bench_internal_SOURCES = src/bench_internal.c
109-
bench_internal_LDADD = $(SECP_LIBS) $(COMMON_LIB) $(PRECOMPUTED_LIB)
110-
bench_internal_CPPFLAGS = $(SECP_INCLUDES)
109+
bench_internal_LDADD = $(COMMON_LIB) $(PRECOMPUTED_LIB)
110+
bench_internal_CPPFLAGS = $(SECP_CONFIG_DEFINES)
111111
bench_ecmult_SOURCES = src/bench_ecmult.c
112-
bench_ecmult_LDADD = $(SECP_LIBS) $(COMMON_LIB) $(PRECOMPUTED_LIB)
113-
bench_ecmult_CPPFLAGS = $(SECP_INCLUDES)
112+
bench_ecmult_LDADD = $(COMMON_LIB) $(PRECOMPUTED_LIB)
113+
bench_ecmult_CPPFLAGS = $(SECP_CONFIG_DEFINES)
114114
endif
115115

116116
TESTS =
117117
if USE_TESTS
118+
TESTS += noverify_tests
119+
noinst_PROGRAMS += noverify_tests
120+
noverify_tests_SOURCES = src/tests.c
121+
noverify_tests_CPPFLAGS = $(SECP_CONFIG_DEFINES)
122+
noverify_tests_LDADD = $(COMMON_LIB) $(PRECOMPUTED_LIB)
123+
noverify_tests_LDFLAGS = -static
124+
if !ENABLE_COVERAGE
125+
TESTS += tests
118126
noinst_PROGRAMS += tests
119-
tests_SOURCES = src/tests.c
120-
tests_CPPFLAGS = $(SECP_INCLUDES) $(SECP_TEST_INCLUDES)
121-
if VALGRIND_ENABLED
122-
tests_CPPFLAGS += -DVALGRIND
123-
noinst_PROGRAMS += valgrind_ctime_test
124-
valgrind_ctime_test_SOURCES = src/valgrind_ctime_test.c
125-
valgrind_ctime_test_LDADD = libsecp256k1.la $(SECP_LIBS) $(COMMON_LIB)
127+
tests_SOURCES = $(noverify_tests_SOURCES)
128+
tests_CPPFLAGS = $(noverify_tests_CPPFLAGS) -DVERIFY
129+
tests_LDADD = $(noverify_tests_LDADD)
130+
tests_LDFLAGS = $(noverify_tests_LDFLAGS)
126131
endif
127-
if !ENABLE_COVERAGE
128-
tests_CPPFLAGS += -DVERIFY
129132
endif
130-
tests_LDADD = $(SECP_LIBS) $(SECP_TEST_LIBS) $(COMMON_LIB) $(PRECOMPUTED_LIB)
131-
tests_LDFLAGS = -static
132-
TESTS += tests
133+
134+
if USE_CTIME_TESTS
135+
noinst_PROGRAMS += ctime_tests
136+
ctime_tests_SOURCES = src/ctime_tests.c
137+
ctime_tests_LDADD = libsecp256k1.la $(COMMON_LIB)
138+
ctime_tests_CPPFLAGS = $(SECP_CONFIG_DEFINES)
133139
endif
134140

135141
if USE_EXHAUSTIVE_TESTS
136142
noinst_PROGRAMS += exhaustive_tests
137143
exhaustive_tests_SOURCES = src/tests_exhaustive.c
138-
exhaustive_tests_CPPFLAGS = $(SECP_INCLUDES)
144+
exhaustive_tests_CPPFLAGS = $(SECP_CONFIG_DEFINES)
139145
if !ENABLE_COVERAGE
140146
exhaustive_tests_CPPFLAGS += -DVERIFY
141147
endif
142148
# Note: do not include $(PRECOMPUTED_LIB) in exhaustive_tests (it uses runtime-generated tables).
143-
exhaustive_tests_LDADD = $(SECP_LIBS) $(COMMON_LIB)
149+
exhaustive_tests_LDADD = $(COMMON_LIB)
144150
exhaustive_tests_LDFLAGS = -static
145151
TESTS += exhaustive_tests
146152
endif
@@ -184,12 +190,12 @@ EXTRA_PROGRAMS = precompute_ecmult precompute_ecmult_gen
184190
CLEANFILES = $(EXTRA_PROGRAMS)
185191

186192
precompute_ecmult_SOURCES = src/precompute_ecmult.c
187-
precompute_ecmult_CPPFLAGS = $(SECP_INCLUDES)
188-
precompute_ecmult_LDADD = $(SECP_LIBS) $(COMMON_LIB)
193+
precompute_ecmult_CPPFLAGS = $(SECP_CONFIG_DEFINES)
194+
precompute_ecmult_LDADD = $(COMMON_LIB)
189195

190196
precompute_ecmult_gen_SOURCES = src/precompute_ecmult_gen.c
191-
precompute_ecmult_gen_CPPFLAGS = $(SECP_INCLUDES)
192-
precompute_ecmult_gen_LDADD = $(SECP_LIBS) $(COMMON_LIB)
197+
precompute_ecmult_gen_CPPFLAGS = $(SECP_CONFIG_DEFINES)
198+
precompute_ecmult_gen_LDADD = $(COMMON_LIB)
193199

194200
# See Automake manual, Section "Errors with distclean".
195201
# We don't list any dependencies for the prebuilt files here because
@@ -241,3 +247,7 @@ endif
241247
if ENABLE_MODULE_SCHNORRSIG
242248
include src/modules/schnorrsig/Makefile.am.include
243249
endif
250+
251+
if ENABLE_MODULE_ELLSWIFT
252+
include src/modules/ellswift/Makefile.am.include
253+
endif

build-aux/m4/bitcoin_secp.m4

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ if test x"$has_valgrind" != x"yes"; then
2020
#if defined(NVALGRIND)
2121
# error "Valgrind does not support this platform."
2222
#endif
23-
]])], [has_valgrind=yes; AC_DEFINE(HAVE_VALGRIND,1,[Define this symbol if valgrind is installed, and it supports the host platform])])
23+
]])], [has_valgrind=yes])
2424
fi
2525
AC_MSG_RESULT($has_valgrind)
2626
])

0 commit comments

Comments
 (0)