Skip to content

Commit 065b6db

Browse files
committed
Squashed 'src/secp256k1/' changes from 0559fc6..d8a2463
d8a2463 Merge bitcoin-core/secp256k1#899: Reduce stratch space needed by ecmult_strauss_wnaf. 0a40a48 Merge bitcoin-core/secp256k1#1049: Faster fixed-input ecmult tests 070e772 Faster fixed-input ecmult tests c8aa516 Merge bitcoin-core/secp256k1#1064: Modulo-reduce msg32 inside RFC6979 nonce fn to match spec. Fixes bitcoin#1063 b797a50 Create a SECP256K1_ECMULT_TABLE_VERIFY macro. a731200 Replace ECMULT_TABLE_GET_GE_STORAGE macro with a function. fe34d9f Eliminate input_pos state field from ecmult_strauss_wnaf. 0397d00 Eliminate na_1 and na_lam state fields from ecmult_strauss_wnaf. 7ba3ffc Remove the unused pre_a_lam allocations. b3b57ad Eliminate the pre_a_lam array from ecmult_strauss_wnaf. ae7ba0f Remove the unused prej allocations. e5c1889 Eliminate the prej array from ecmult_strauss_wnaf. c9da1ba Move secp256k1_fe_one to field.h 45f37b6 Modulo-reduce msg32 inside RFC6979 nonce fn to match spec. Fixes bitcoin#1063. a1102b1 Merge bitcoin-core/secp256k1#1029: Simpler and faster ecdh skew fixup e82144e Fixup skew before global Z fixup 40b624c Add tests for _gej_cmov 8c13a9b ECDH skews by 0 or 1 1515099 Simpler and faster ecdh skew fixup 39a36db Merge bitcoin-core/secp256k1#1054: tests: Fix test whose result is implementation-defined a310e79 Merge bitcoin-core/secp256k1#1052: Use xoshiro256++ instead of RFC6979 for tests 423b6d1 Merge bitcoin-core/secp256k1#964: Add release-process.md 9281c9f Merge bitcoin-core/secp256k1#1053: ecmult: move `_ecmult_odd_multiples_table_globalz_windowa` 77a1975 Use xoshiro256++ PRNG instead of RFC6979 in tests 5f2efe6 secp256k1_testrand_int(2**N) -> secp256k1_testrand_bits(N) 05e049b ecmult: move `_ecmult_odd_multiples_table_globalz_windowa` 3d7cbaf tests: Fix test whose result is implementation-defined 3ed0d02 doc: add CHANGELOG template 6f42dc1 doc: add release_process.md 0bd3e42 build: set library version to 0.0.0 explicitly b4b02fd build: change libsecp version from 0.1 to 0.1.0-pre 09971a3 Merge bitcoin-core/secp256k1#1047: ci: Various improvements 0b83b20 Merge bitcoin-core/secp256k1#1030: doc: Fix upper bounds + cleanup in field_5x52_impl.h comment 1287786 doc: Add comment to top of field_10x26_impl.h 58da5bd doc: Fix upper bounds + cleanup in field_5x52_impl.h comment b39d431 Merge bitcoin-core/secp256k1#1044: Add another ecmult_multi test b4ac1a1 ci: Run valgrind/memcheck tasks with 2 CPUs e70acab ci: Use Cirrus "greedy" flag to use idle CPU time when available d07e301 ci: Update brew on macOS 22382f0 ci: Test different ecmult window sizes a69df3a Merge bitcoin-core/secp256k1#816: Improve checks at top of _fe_negate methods 22d25c8 Add another ecmult_multi test 515e795 Improve checks at top of _fe_negate methods 26a022a ci: Remove STATICPRECOMPUTATION 10461d8 precompute_ecmult: Always compute all tables up to default WINDOW_G be6944a Merge bitcoin-core/secp256k1#1042: Follow-ups to making all tables fully static e05da9e Fix c++ build c45386d Cleanup preprocessor indentation in precompute{,d}_ecmult{,_gen} 19d96e1 Split off .c file from precomputed_ecmult.h 1a6691a Split off .c file from precomputed_ecmult_gen.h bb36331 Simplify precompute_ecmult_print_* 38cd84a Compute ecmult tables at runtime for tests_exhaustive e458ec2 Move ecmult table computation code to separate file fc1bf9f Split ecmult table computation and printing 31feab0 Rename function secp256k1_ecmult_gen_{create_prec -> compute}_table 725370c Rename ecmult_gen_prec -> ecmult_gen_compute_table 075252c Rename ecmult_static_pre_g -> precomputed_ecmult 7cf47f7 Rename ecmult_gen_static_prec_table -> precomputed_ecmult_gen f95b810 Rename gen_ecmult_static_pre_g -> precompute_ecmult bae7768 Rename gen_ecmult_gen_static_prec_table -> precompute_ecmult_gen git-subtree-dir: src/secp256k1 git-subtree-split: d8a2463
1 parent 86dbc4d commit 065b6db

34 files changed

+1028
-689
lines changed

.cirrus.yml

+27-43
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ env:
44
# Specific warnings can be disabled with -Wno-error=foo.
55
# -pedantic-errors is not equivalent to -Werror=pedantic and thus not implied by -Werror according to the GCC manual.
66
WERROR_CFLAGS: -Werror -pedantic-errors
7-
MAKEFLAGS: -j2
7+
MAKEFLAGS: -j4
88
BUILD: check
99
### secp256k1 config
10-
STATICPRECOMPUTATION: yes
10+
ECMULTWINDOW: auto
1111
ECMULTGENPRECISION: auto
1212
ASM: no
1313
WIDEMUL: auto
@@ -50,14 +50,19 @@ merge_base_script_snippet: &MERGE_BASE
5050
- git config --global user.name "ci"
5151
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts
5252

53-
task:
54-
name: "x86_64: Linux (Debian stable)"
53+
linux_container_snippet: &LINUX_CONTAINER
5554
container:
5655
dockerfile: ci/linux-debian.Dockerfile
5756
# Reduce number of CPUs to be able to do more builds in parallel.
5857
cpu: 1
58+
# Gives us more CPUs for free if they're available.
59+
greedy: true
5960
# More than enough for our scripts.
6061
memory: 1G
62+
63+
task:
64+
name: "x86_64: Linux (Debian stable)"
65+
<< : *LINUX_CONTAINER
6166
matrix: &ENV_MATRIX
6267
- env: {WIDEMUL: int64, RECOVERY: yes}
6368
- env: {WIDEMUL: int64, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
@@ -66,12 +71,11 @@ task:
6671
- env: {WIDEMUL: int128, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
6772
- env: {WIDEMUL: int128, ASM: x86_64}
6873
- env: { RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
69-
- env: { STATICPRECOMPUTATION: no}
7074
- env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
7175
- env: {CPPFLAGS: -DDETERMINISTIC}
7276
- env: {CFLAGS: -O0, CTIMETEST: no}
73-
- env: { ECMULTGENPRECISION: 2 }
74-
- env: { ECMULTGENPRECISION: 8 }
77+
- env: { ECMULTGENPRECISION: 2, ECMULTWINDOW: 2 }
78+
- env: { ECMULTGENPRECISION: 8, ECMULTWINDOW: 4 }
7579
matrix:
7680
- env:
7781
CC: gcc
@@ -84,10 +88,7 @@ task:
8488

8589
task:
8690
name: "i686: Linux (Debian stable)"
87-
container:
88-
dockerfile: ci/linux-debian.Dockerfile
89-
cpu: 1
90-
memory: 1G
91+
<< : *LINUX_CONTAINER
9192
env:
9293
HOST: i686-linux-gnu
9394
ECDH: yes
@@ -134,8 +135,9 @@ task:
134135
## - rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
135136
##
136137
brew_valgrind_pre_script:
138+
- brew update
137139
- brew config
138-
- brew tap --shallow LouisBrunner/valgrind
140+
- brew tap LouisBrunner/valgrind
139141
# Fetch valgrind source but don't build it yet.
140142
- brew fetch --HEAD LouisBrunner/valgrind/valgrind
141143
brew_valgrind_cache:
@@ -165,10 +167,7 @@ task:
165167

166168
task:
167169
name: "s390x (big-endian): Linux (Debian stable, QEMU)"
168-
container:
169-
dockerfile: ci/linux-debian.Dockerfile
170-
cpu: 1
171-
memory: 1G
170+
<< : *LINUX_CONTAINER
172171
env:
173172
WRAPPER_CMD: qemu-s390x
174173
SECP256K1_TEST_ITERS: 16
@@ -188,10 +187,7 @@ task:
188187

189188
task:
190189
name: "ARM32: Linux (Debian stable, QEMU)"
191-
container:
192-
dockerfile: ci/linux-debian.Dockerfile
193-
cpu: 1
194-
memory: 1G
190+
<< : *LINUX_CONTAINER
195191
env:
196192
WRAPPER_CMD: qemu-arm
197193
SECP256K1_TEST_ITERS: 16
@@ -212,10 +208,7 @@ task:
212208

213209
task:
214210
name: "ARM64: Linux (Debian stable, QEMU)"
215-
container:
216-
dockerfile: ci/linux-debian.Dockerfile
217-
cpu: 1
218-
memory: 1G
211+
<< : *LINUX_CONTAINER
219212
env:
220213
WRAPPER_CMD: qemu-aarch64
221214
SECP256K1_TEST_ITERS: 16
@@ -233,10 +226,7 @@ task:
233226

234227
task:
235228
name: "ppc64le: Linux (Debian stable, QEMU)"
236-
container:
237-
dockerfile: ci/linux-debian.Dockerfile
238-
cpu: 1
239-
memory: 1G
229+
<< : *LINUX_CONTAINER
240230
env:
241231
WRAPPER_CMD: qemu-ppc64le
242232
SECP256K1_TEST_ITERS: 16
@@ -254,10 +244,7 @@ task:
254244

255245
task:
256246
name: "x86_64 (mingw32-w64): Windows (Debian stable, Wine)"
257-
container:
258-
dockerfile: ci/linux-debian.Dockerfile
259-
cpu: 1
260-
memory: 1G
247+
<< : *LINUX_CONTAINER
261248
env:
262249
WRAPPER_CMD: wine64-stable
263250
SECP256K1_TEST_ITERS: 16
@@ -275,10 +262,7 @@ task:
275262

276263
# Sanitizers
277264
task:
278-
container:
279-
dockerfile: ci/linux-debian.Dockerfile
280-
cpu: 1
281-
memory: 2G
265+
<< : *LINUX_CONTAINER
282266
env:
283267
ECDH: yes
284268
RECOVERY: yes
@@ -287,11 +271,15 @@ task:
287271
CTIMETEST: no
288272
matrix:
289273
- name: "Valgrind (memcheck)"
274+
container:
275+
cpu: 2
290276
env:
291277
# The `--error-exitcode` is required to make the test fail if valgrind found errors, otherwise it'll return 0 (https://www.valgrind.org/docs/manual/manual-core.html)
292278
WRAPPER_CMD: "valgrind --error-exitcode=42"
293279
SECP256K1_TEST_ITERS: 2
294280
- name: "UBSan, ASan, LSan"
281+
container:
282+
memory: 2G
295283
env:
296284
CFLAGS: "-fsanitize=undefined,address -g"
297285
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
@@ -302,11 +290,10 @@ task:
302290
matrix:
303291
- env:
304292
ASM: auto
305-
STATICPRECOMPUTATION: yes
306293
- env:
307294
ASM: no
308-
STATICPRECOMPUTATION: no
309295
ECMULTGENPRECISION: 2
296+
ECMULTWINDOW: 2
310297
matrix:
311298
- env:
312299
CC: clang
@@ -320,15 +307,12 @@ task:
320307

321308
task:
322309
name: "C++ -fpermissive"
323-
container:
324-
dockerfile: ci/linux-debian.Dockerfile
325-
cpu: 1
326-
memory: 1G
310+
<< : *LINUX_CONTAINER
327311
env:
328312
# ./configure correctly errors out when given CC=g++.
329313
# We hack around this by passing CC=g++ only to make.
330314
CC: gcc
331-
MAKEFLAGS: -j2 CC=g++ CFLAGS=-fpermissive\ -g
315+
MAKEFLAGS: -j4 CC=g++ CFLAGS=-fpermissive\ -g
332316
WERROR_CFLAGS:
333317
EXPERIMENTAL: yes
334318
ECDH: yes

.gitattributes

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
src/ecmult_static_pre_g.h linguist-generated
2-
src/ecmult_gen_static_prec_table.h linguist-generated
1+
src/precomputed_ecmult.c linguist-generated
2+
src/precomputed_ecmult_gen.c linguist-generated

.gitignore

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ bench_ecmult
33
bench_internal
44
tests
55
exhaustive_tests
6-
gen_ecmult_gen_static_prec_table
7-
gen_ecmult_static_pre_g
6+
precompute_ecmult_gen
7+
precompute_ecmult
88
valgrind_ctime_test
99
*.exe
1010
*.so

Makefile.am

+33-24
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,14 @@ noinst_HEADERS += src/eckey.h
2626
noinst_HEADERS += src/eckey_impl.h
2727
noinst_HEADERS += src/ecmult.h
2828
noinst_HEADERS += src/ecmult_impl.h
29+
noinst_HEADERS += src/ecmult_compute_table.h
30+
noinst_HEADERS += src/ecmult_compute_table_impl.h
2931
noinst_HEADERS += src/ecmult_const.h
3032
noinst_HEADERS += src/ecmult_const_impl.h
3133
noinst_HEADERS += src/ecmult_gen.h
3234
noinst_HEADERS += src/ecmult_gen_impl.h
33-
noinst_HEADERS += src/ecmult_gen_prec.h
34-
noinst_HEADERS += src/ecmult_gen_prec_impl.h
35+
noinst_HEADERS += src/ecmult_gen_compute_table.h
36+
noinst_HEADERS += src/ecmult_gen_compute_table_impl.h
3537
noinst_HEADERS += src/field_10x26.h
3638
noinst_HEADERS += src/field_10x26_impl.h
3739
noinst_HEADERS += src/field_5x52.h
@@ -42,6 +44,8 @@ noinst_HEADERS += src/modinv32.h
4244
noinst_HEADERS += src/modinv32_impl.h
4345
noinst_HEADERS += src/modinv64.h
4446
noinst_HEADERS += src/modinv64_impl.h
47+
noinst_HEADERS += src/precomputed_ecmult.h
48+
noinst_HEADERS += src/precomputed_ecmult_gen.h
4549
noinst_HEADERS += src/assumptions.h
4650
noinst_HEADERS += src/util.h
4751
noinst_HEADERS += src/scratch.h
@@ -60,12 +64,17 @@ noinst_HEADERS += contrib/lax_der_parsing.c
6064
noinst_HEADERS += contrib/lax_der_privatekey_parsing.h
6165
noinst_HEADERS += contrib/lax_der_privatekey_parsing.c
6266

67+
PRECOMPUTED_LIB = libsecp256k1_precomputed.la
68+
noinst_LTLIBRARIES = $(PRECOMPUTED_LIB)
69+
libsecp256k1_precomputed_la_SOURCES = src/precomputed_ecmult.c src/precomputed_ecmult_gen.c
70+
libsecp256k1_precomputed_la_CPPFLAGS = $(SECP_INCLUDES)
71+
6372
if USE_EXTERNAL_ASM
6473
COMMON_LIB = libsecp256k1_common.la
65-
noinst_LTLIBRARIES = $(COMMON_LIB)
6674
else
6775
COMMON_LIB =
6876
endif
77+
noinst_LTLIBRARIES += $(COMMON_LIB)
6978

7079
pkgconfigdir = $(libdir)/pkgconfig
7180
pkgconfig_DATA = libsecp256k1.pc
@@ -78,8 +87,8 @@ endif
7887

7988
libsecp256k1_la_SOURCES = src/secp256k1.c
8089
libsecp256k1_la_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/src $(SECP_INCLUDES)
81-
libsecp256k1_la_LIBADD = $(SECP_LIBS) $(COMMON_LIB)
82-
libsecp256k1_la_LDFLAGS = -no-undefined
90+
libsecp256k1_la_LIBADD = $(SECP_LIBS) $(COMMON_LIB) $(PRECOMPUTED_LIB)
91+
libsecp256k1_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION_CURRENT):$(LIB_VERSION_REVISION):$(LIB_VERSION_AGE)
8392

8493
if VALGRIND_ENABLED
8594
libsecp256k1_la_CPPFLAGS += -DVALGRIND
@@ -91,10 +100,10 @@ noinst_PROGRAMS += bench bench_internal bench_ecmult
91100
bench_SOURCES = src/bench.c
92101
bench_LDADD = libsecp256k1.la $(SECP_LIBS) $(SECP_TEST_LIBS) $(COMMON_LIB)
93102
bench_internal_SOURCES = src/bench_internal.c
94-
bench_internal_LDADD = $(SECP_LIBS) $(COMMON_LIB)
103+
bench_internal_LDADD = $(SECP_LIBS) $(COMMON_LIB) $(PRECOMPUTED_LIB)
95104
bench_internal_CPPFLAGS = $(SECP_INCLUDES)
96105
bench_ecmult_SOURCES = src/bench_ecmult.c
97-
bench_ecmult_LDADD = $(SECP_LIBS) $(COMMON_LIB)
106+
bench_ecmult_LDADD = $(SECP_LIBS) $(COMMON_LIB) $(PRECOMPUTED_LIB)
98107
bench_ecmult_CPPFLAGS = $(SECP_INCLUDES)
99108
endif
100109

@@ -112,7 +121,7 @@ endif
112121
if !ENABLE_COVERAGE
113122
tests_CPPFLAGS += -DVERIFY
114123
endif
115-
tests_LDADD = $(SECP_LIBS) $(SECP_TEST_LIBS) $(COMMON_LIB)
124+
tests_LDADD = $(SECP_LIBS) $(SECP_TEST_LIBS) $(COMMON_LIB) $(PRECOMPUTED_LIB)
116125
tests_LDFLAGS = -static
117126
TESTS += tests
118127
endif
@@ -124,38 +133,38 @@ exhaustive_tests_CPPFLAGS = $(SECP_INCLUDES)
124133
if !ENABLE_COVERAGE
125134
exhaustive_tests_CPPFLAGS += -DVERIFY
126135
endif
136+
# Note: do not include $(PRECOMPUTED_LIB) in exhaustive_tests (it uses runtime-generated tables).
127137
exhaustive_tests_LDADD = $(SECP_LIBS) $(COMMON_LIB)
128138
exhaustive_tests_LDFLAGS = -static
129139
TESTS += exhaustive_tests
130140
endif
131141

132142
### Precomputed tables
133-
EXTRA_PROGRAMS = gen_ecmult_static_pre_g gen_ecmult_gen_static_prec_table
143+
EXTRA_PROGRAMS = precompute_ecmult precompute_ecmult_gen
134144
CLEANFILES = $(EXTRA_PROGRAMS)
135145

136-
gen_ecmult_static_pre_g_SOURCES = src/gen_ecmult_static_pre_g.c
137-
gen_ecmult_static_pre_g_CPPFLAGS = $(SECP_INCLUDES)
138-
gen_ecmult_static_pre_g_LDADD = $(SECP_LIBS) $(COMMON_LIB)
146+
precompute_ecmult_SOURCES = src/precompute_ecmult.c
147+
precompute_ecmult_CPPFLAGS = $(SECP_INCLUDES)
148+
precompute_ecmult_LDADD = $(SECP_LIBS) $(COMMON_LIB)
139149

140-
gen_ecmult_gen_static_prec_table_SOURCES = src/gen_ecmult_gen_static_prec_table.c
141-
gen_ecmult_gen_static_prec_table_CPPFLAGS = $(SECP_INCLUDES)
142-
gen_ecmult_gen_static_prec_table_LDADD = $(SECP_LIBS) $(COMMON_LIB)
150+
precompute_ecmult_gen_SOURCES = src/precompute_ecmult_gen.c
151+
precompute_ecmult_gen_CPPFLAGS = $(SECP_INCLUDES)
152+
precompute_ecmult_gen_LDADD = $(SECP_LIBS) $(COMMON_LIB)
143153

144154
# See Automake manual, Section "Errors with distclean".
145155
# We don't list any dependencies for the prebuilt files here because
146156
# otherwise make's decision whether to rebuild them (even in the first
147157
# build by a normal user) depends on mtimes, and thus is very fragile.
148158
# This means that rebuilds of the prebuilt files always need to be
149159
# forced by deleting them, e.g., by invoking `make clean-precomp`.
150-
src/ecmult_static_pre_g.h:
151-
$(MAKE) $(AM_MAKEFLAGS) gen_ecmult_static_pre_g$(EXEEXT)
152-
./gen_ecmult_static_pre_g$(EXEEXT)
153-
src/ecmult_gen_static_prec_table.h:
154-
$(MAKE) $(AM_MAKEFLAGS) gen_ecmult_gen_static_prec_table$(EXEEXT)
155-
./gen_ecmult_gen_static_prec_table$(EXEEXT)
156-
157-
PRECOMP = src/ecmult_gen_static_prec_table.h src/ecmult_static_pre_g.h
158-
noinst_HEADERS += $(PRECOMP)
160+
src/precomputed_ecmult.c:
161+
$(MAKE) $(AM_MAKEFLAGS) precompute_ecmult$(EXEEXT)
162+
./precompute_ecmult$(EXEEXT)
163+
src/precomputed_ecmult_gen.c:
164+
$(MAKE) $(AM_MAKEFLAGS) precompute_ecmult_gen$(EXEEXT)
165+
./precompute_ecmult_gen$(EXEEXT)
166+
167+
PRECOMP = src/precomputed_ecmult_gen.c src/precomputed_ecmult.c
159168
precomp: $(PRECOMP)
160169

161170
# Ensure the prebuilt files will be build first (only if they don't exist,

ci/cirrus.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ valgrind --version || true
1515
./configure \
1616
--enable-experimental="$EXPERIMENTAL" \
1717
--with-test-override-wide-multiply="$WIDEMUL" --with-asm="$ASM" \
18-
--enable-ecmult-static-precomputation="$STATICPRECOMPUTATION" --with-ecmult-gen-precision="$ECMULTGENPRECISION" \
18+
--with-ecmult-window="$ECMULTWINDOW" \
19+
--with-ecmult-gen-precision="$ECMULTGENPRECISION" \
1920
--enable-module-ecdh="$ECDH" --enable-module-recovery="$RECOVERY" \
2021
--enable-module-schnorrsig="$SCHNORRSIG" \
2122
--with-valgrind="$WITH_VALGRIND" \

configure.ac

+24-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
11
AC_PREREQ([2.60])
2-
AC_INIT([libsecp256k1],[0.1])
2+
3+
# The package (a.k.a. release) version is based on semantic versioning 2.0.0 of
4+
# the API. All changes in experimental modules are treated as
5+
# backwards-compatible and therefore at most increase the minor version.
6+
define(_PKG_VERSION_MAJOR, 0)
7+
define(_PKG_VERSION_MINOR, 1)
8+
define(_PKG_VERSION_BUILD, 0)
9+
define(_PKG_VERSION_IS_RELEASE, false)
10+
11+
# The library version is based on libtool versioning of the ABI. The set of
12+
# rules for updating the version can be found here:
13+
# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
14+
# All changes in experimental modules are treated as if they don't affect the
15+
# interface and therefore only increase the revision.
16+
define(_LIB_VERSION_CURRENT, 0)
17+
define(_LIB_VERSION_REVISION, 0)
18+
define(_LIB_VERSION_AGE, 0)
19+
20+
AC_INIT([libsecp256k1],m4_join([.], _PKG_VERSION_MAJOR, _PKG_VERSION_MINOR, _PKG_VERSION_BUILD)m4_if(_PKG_VERSION_IS_RELEASE, [true], [], [-pre]),[https://github.com/bitcoin-core/secp256k1/issues],[libsecp256k1],[https://github.com/bitcoin-core/secp256k1])
21+
322
AC_CONFIG_AUX_DIR([build-aux])
423
AC_CONFIG_MACRO_DIR([build-aux/m4])
524
AC_CANONICAL_HOST
@@ -152,7 +171,7 @@ AC_ARG_WITH([ecmult-window], [AS_HELP_STRING([--with-ecmult-window=SIZE|auto],
152171
[window size for ecmult precomputation for verification, specified as integer in range [2..24].]
153172
[Larger values result in possibly better performance at the cost of an exponentially larger precomputed table.]
154173
[The table will store 2^(SIZE-1) * 64 bytes of data but can be larger in memory due to platform-specific padding and alignment.]
155-
[A window size larger than 15 will require you delete the prebuilt ecmult_static_pre_g.h file so that it can be rebuilt.]
174+
[A window size larger than 15 will require you delete the prebuilt precomputed_ecmult.c file so that it can be rebuilt.]
156175
[For very large window sizes, use "make -j 1" to reduce memory use during compilation.]
157176
["auto" is a reasonable setting for desktop machines (currently 15). [default=auto]]
158177
)],
@@ -381,6 +400,9 @@ AM_CONDITIONAL([ENABLE_MODULE_EXTRAKEYS], [test x"$enable_module_extrakeys" = x"
381400
AM_CONDITIONAL([ENABLE_MODULE_SCHNORRSIG], [test x"$enable_module_schnorrsig" = x"yes"])
382401
AM_CONDITIONAL([USE_EXTERNAL_ASM], [test x"$use_external_asm" = x"yes"])
383402
AM_CONDITIONAL([USE_ASM_ARM], [test x"$set_asm" = x"arm"])
403+
AC_SUBST(LIB_VERSION_CURRENT, _LIB_VERSION_CURRENT)
404+
AC_SUBST(LIB_VERSION_REVISION, _LIB_VERSION_REVISION)
405+
AC_SUBST(LIB_VERSION_AGE, _LIB_VERSION_AGE)
384406

385407
# Make sure nothing new is exported so that we don't break the cache.
386408
PKGCONFIG_PATH_TEMP="$PKG_CONFIG_PATH"

0 commit comments

Comments
 (0)