Skip to content

Commit 747cdf1

Browse files
committed
Merge bitcoin/bitcoin#24792: Update libsecp256k1 subtree to current master
404c530 key: use secp256k1_schnorrsig_sign32 over deprecated secp256k1_schnorrsig_sign (fanquake) ee30bf7 build: remove some no-longer-needed var unexporting from configure (fanquake) 2656629 build: remove --enable-experimental from libsecp256k1 configure (fanquake) d960d4f build: fix MSVC build after subtree update (dhruv) afb7a6f Squashed 'src/secp256k1/' changes from 0559fc6e41..8746600eec (fanquake) Pull request description: The motivation for this bump is some small build cleanups, including [dropping the `--enable-experimental`](bitcoin-core/secp256k1@80cf4ee) flag from the libsecp configure invocation, as well as some [now-redundant](bitcoin-core/secp256k1#1090) `pkg-config` variable exporting from our own configure. We also get the benefit of a slightly more efficient libsecp configure due to bitcoin-core/secp256k1#1088. This also includes a change in our code to migrate from using the [now deprecated](bitcoin-core/secp256k1@99e6568) `secp256k1_schnorrsig_sign` to `secp256k1_schnorrsig_sign32`. Guix Build (on x86_64): ```bash b9f6ad90c75f7edd7c4444c6c3401d8b6ab29a8da22ae22ddaedd94688227b5d guix-build-404c53062bb8/output/aarch64-linux-gnu/SHA256SUMS.part 250d47ae299d8385d5590518fa2adaabde76e2566fd27e12bf36b62663d13e13 guix-build-404c53062bb8/output/aarch64-linux-gnu/bitcoin-404c53062bb8-aarch64-linux-gnu-debug.tar.gz 48d610dc6f5169f925f782571dac2f082695f89008beadad4adef4c1b583a612 guix-build-404c53062bb8/output/aarch64-linux-gnu/bitcoin-404c53062bb8-aarch64-linux-gnu.tar.gz 8f04ee26e4079719e3935bd0e4287cc11a2a16875bf01e2a63d67492a1fa5367 guix-build-404c53062bb8/output/arm-linux-gnueabihf/SHA256SUMS.part 7d7d7fcfb032bda92e53abd8d608257f0ef17b1e3e52a1414260b896786fb2dc guix-build-404c53062bb8/output/arm-linux-gnueabihf/bitcoin-404c53062bb8-arm-linux-gnueabihf-debug.tar.gz 30bae2ff3d044f4e39f992a68f6b296b7be2aea350bca4a0415c739a32c20bd9 guix-build-404c53062bb8/output/arm-linux-gnueabihf/bitcoin-404c53062bb8-arm-linux-gnueabihf.tar.gz 5f550fb0b950250eeffce3480ec6403530b0880570a5860ef6c32a3e92eac92f guix-build-404c53062bb8/output/arm64-apple-darwin/SHA256SUMS.part c10664d13aeec8c860bf72be833c738973ae18e4d28cdf08b2f9bee960ebff1d guix-build-404c53062bb8/output/arm64-apple-darwin/bitcoin-404c53062bb8-arm64-apple-darwin-unsigned.dmg becab75b11cf4ca6f559f8eef835f3574629f6eb932ac716ed4f8c044a85831f guix-build-404c53062bb8/output/arm64-apple-darwin/bitcoin-404c53062bb8-arm64-apple-darwin-unsigned.tar.gz bc86433652fe3552f6a13088191364ae7514c9fe3a244da86a6db096bb4922fc guix-build-404c53062bb8/output/arm64-apple-darwin/bitcoin-404c53062bb8-arm64-apple-darwin.tar.gz 1f585cb9a1356343df4b2726ecfe2598c9903304afb047c047c2cef318555dd3 guix-build-404c53062bb8/output/dist-archive/bitcoin-404c53062bb8.tar.gz 9ede534ba2c6cecb550473eead195627327e826ebb0118e23d60ab482d40e241 guix-build-404c53062bb8/output/powerpc64-linux-gnu/SHA256SUMS.part 77ddb7d7d639b1dd4508468a8ef27e45b35c8b2f8624584a70e6b64798a4ea7a guix-build-404c53062bb8/output/powerpc64-linux-gnu/bitcoin-404c53062bb8-powerpc64-linux-gnu-debug.tar.gz 36178c1f1c12942ff05275daa3570f8b45419ee8d9f391d750afb405219986f0 guix-build-404c53062bb8/output/powerpc64-linux-gnu/bitcoin-404c53062bb8-powerpc64-linux-gnu.tar.gz 8a15a4da7a9a5e00c49d9aeedf3c6fc666c0d230be1369eac7caf4571d5905e0 guix-build-404c53062bb8/output/powerpc64le-linux-gnu/SHA256SUMS.part 400c58113f2d07c87e03c8528b292c6aca808a2bccae4b041cad3a26a05b6aad guix-build-404c53062bb8/output/powerpc64le-linux-gnu/bitcoin-404c53062bb8-powerpc64le-linux-gnu-debug.tar.gz 3b9f9d8614ac3a27416e53354b2b0a64d364f91493e9d0f41583a6f492546824 guix-build-404c53062bb8/output/powerpc64le-linux-gnu/bitcoin-404c53062bb8-powerpc64le-linux-gnu.tar.gz 98506b23ee08ad8af958f816da2e4518d661e88d5c6308de1f5e3b2fc787b86c guix-build-404c53062bb8/output/riscv64-linux-gnu/SHA256SUMS.part c701a7b77cea4fdc2588b511f1b2c71b89c83bfba19fdb2ac113a5a4b14ac392 guix-build-404c53062bb8/output/riscv64-linux-gnu/bitcoin-404c53062bb8-riscv64-linux-gnu-debug.tar.gz 34d58e6392cd58b3c76e30cd8600c0dbefba7e9c6d5df78c3ef23e81c4e4d26a guix-build-404c53062bb8/output/riscv64-linux-gnu/bitcoin-404c53062bb8-riscv64-linux-gnu.tar.gz 92fa30e9c6d81dd1e1514b65d3e1abe68ded897237cd99f66aa760d445109c04 guix-build-404c53062bb8/output/x86_64-apple-darwin/SHA256SUMS.part bee180b02f178ae9980ef159f65913a71cbd037c4aff5f2906af5f174a677da3 guix-build-404c53062bb8/output/x86_64-apple-darwin/bitcoin-404c53062bb8-x86_64-apple-darwin-unsigned.dmg ad7d18d779ab7a7944817d1f368d0a6bdd174bf1211b0f90180c8ccf04ec4062 guix-build-404c53062bb8/output/x86_64-apple-darwin/bitcoin-404c53062bb8-x86_64-apple-darwin-unsigned.tar.gz 7489d1d5d48ad95cf58bb11b5fdeccadac6fa758784fb498529fca2330abe069 guix-build-404c53062bb8/output/x86_64-apple-darwin/bitcoin-404c53062bb8-x86_64-apple-darwin.tar.gz 74660fb0ebce2a08b03980a57bffcad62e078dc967a74d2395660ff51c019640 guix-build-404c53062bb8/output/x86_64-linux-gnu/SHA256SUMS.part cd377fa6b46276c2f8a32e199e6f9adf6aa67315688656709d6dc0744d54a837 guix-build-404c53062bb8/output/x86_64-linux-gnu/bitcoin-404c53062bb8-x86_64-linux-gnu-debug.tar.gz 919c521950369d8ad46db2d15b00abb488abfb080d157a41b2db429122a428ed guix-build-404c53062bb8/output/x86_64-linux-gnu/bitcoin-404c53062bb8-x86_64-linux-gnu.tar.gz 2debca995d432965a8786b6ff74aed42e9e2f1cb0fecbe2d9fc5b850c192fcff guix-build-404c53062bb8/output/x86_64-w64-mingw32/SHA256SUMS.part e33169f684fb031ec18ed39812617d3eb263257f6c7564b8f4c974ad05fe672c guix-build-404c53062bb8/output/x86_64-w64-mingw32/bitcoin-404c53062bb8-win64-debug.zip 029d0a4180cb908d517fcf689dcf46d42fbf383e11dc609711617066ae039ab0 guix-build-404c53062bb8/output/x86_64-w64-mingw32/bitcoin-404c53062bb8-win64-setup-unsigned.exe 7e349c688cac66436562c4805f420b0536db5a3b3abf54d0e8c7752f59874a5c guix-build-404c53062bb8/output/x86_64-w64-mingw32/bitcoin-404c53062bb8-win64-unsigned.tar.gz 1bff98e82e95c93d6060227408502f5e2d8597d526b912cb6dc0a90ae3094a8f guix-build-404c53062bb8/output/x86_64-w64-mingw32/bitcoin-404c53062bb8-win64.zip ``` ACKs for top commit: laanwj: Code review ACK 404c530, I checked the changes to our tree thoroughly but didn't review all upstream secp256k1 changes in detail. gruve-p: ACK bitcoin/bitcoin@404c530 real-or-random: utACK 404c530 I reviewed the diff to Core, I'm with updating to libsecp256k1 master, but I haven't verified that the libsecp256k1 tree here has been updated correctly Tree-SHA512: e6a6db93ea60ed500df5065178784a915da94adfa7bd45fdbd7b19d701154987ff38c1df7f318119e6c2cb98e28e1ea2eb725bef93d4088403e14537ebffb032
2 parents 87c7dcc + 404c530 commit 747cdf1

Some content is hidden

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

58 files changed

+2455
-986
lines changed

build_msvc/libsecp256k1/libsecp256k1.vcxproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
<ConfigurationType>StaticLibrary</ConfigurationType>
99
</PropertyGroup>
1010
<ItemGroup>
11+
<ClCompile Include="..\..\src\secp256k1\src\precomputed_ecmult.c" />
12+
<ClCompile Include="..\..\src\secp256k1\src\precomputed_ecmult_gen.c" />
1113
<ClCompile Include="..\..\src\secp256k1\src\secp256k1.c" />
1214
</ItemGroup>
1315
<ItemDefinitionGroup>

configure.ac

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1959,15 +1959,7 @@ LIBS_TEMP="$LIBS"
19591959
unset LIBS
19601960
LIBS="$LIBS_TEMP"
19611961

1962-
PKGCONFIG_PATH_TEMP="$PKG_CONFIG_PATH"
1963-
unset PKG_CONFIG_PATH
1964-
PKG_CONFIG_PATH="$PKGCONFIG_PATH_TEMP"
1965-
1966-
PKGCONFIG_LIBDIR_TEMP="$PKG_CONFIG_LIBDIR"
1967-
unset PKG_CONFIG_LIBDIR
1968-
PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"
1969-
1970-
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --enable-module-recovery --enable-module-schnorrsig --enable-experimental"
1962+
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --enable-benchmark=no --enable-module-recovery --enable-module-schnorrsig"
19711963
AC_CONFIG_SUBDIRS([src/secp256k1])
19721964

19731965
AC_OUTPUT

src/key.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ bool CKey::SignSchnorr(const uint256& hash, Span<unsigned char> sig, const uint2
288288
uint256 tweak = XOnlyPubKey(pubkey_bytes).ComputeTapTweakHash(merkle_root->IsNull() ? nullptr : merkle_root);
289289
if (!secp256k1_keypair_xonly_tweak_add(GetVerifyContext(), &keypair, tweak.data())) return false;
290290
}
291-
bool ret = secp256k1_schnorrsig_sign(secp256k1_context_sign, sig.data(), hash.data(), &keypair, aux.data());
291+
bool ret = secp256k1_schnorrsig_sign32(secp256k1_context_sign, sig.data(), hash.data(), &keypair, aux.data());
292292
if (ret) {
293293
// Additional verification step to prevent using a potentially corrupted signature
294294
secp256k1_xonly_pubkey pubkey_verify;

src/secp256k1/.cirrus.yml

Lines changed: 42 additions & 56 deletions
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
@@ -23,6 +23,8 @@ env:
2323
BENCH: yes
2424
SECP256K1_BENCH_ITERS: 2
2525
CTIMETEST: yes
26+
# Compile and run the tests
27+
EXAMPLES: yes
2628

2729
cat_logs_snippet: &CAT_LOGS
2830
always:
@@ -50,28 +52,32 @@ merge_base_script_snippet: &MERGE_BASE
5052
- git config --global user.name "ci"
5153
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts
5254

53-
task:
54-
name: "x86_64: Linux (Debian stable)"
55+
linux_container_snippet: &LINUX_CONTAINER
5556
container:
5657
dockerfile: ci/linux-debian.Dockerfile
5758
# Reduce number of CPUs to be able to do more builds in parallel.
5859
cpu: 1
60+
# Gives us more CPUs for free if they're available.
61+
greedy: true
5962
# More than enough for our scripts.
6063
memory: 1G
64+
65+
task:
66+
name: "x86_64: Linux (Debian stable)"
67+
<< : *LINUX_CONTAINER
6168
matrix: &ENV_MATRIX
6269
- env: {WIDEMUL: int64, RECOVERY: yes}
63-
- env: {WIDEMUL: int64, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
70+
- env: {WIDEMUL: int64, ECDH: yes, SCHNORRSIG: yes}
6471
- env: {WIDEMUL: int128}
65-
- env: {WIDEMUL: int128, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
66-
- env: {WIDEMUL: int128, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
72+
- env: {WIDEMUL: int128, RECOVERY: yes, SCHNORRSIG: yes}
73+
- env: {WIDEMUL: int128, ECDH: yes, SCHNORRSIG: yes}
6774
- env: {WIDEMUL: int128, ASM: x86_64}
68-
- env: { RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
69-
- env: { STATICPRECOMPUTATION: no}
75+
- env: { RECOVERY: yes, SCHNORRSIG: yes}
7076
- env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
7177
- env: {CPPFLAGS: -DDETERMINISTIC}
7278
- env: {CFLAGS: -O0, CTIMETEST: no}
73-
- env: { ECMULTGENPRECISION: 2 }
74-
- env: { ECMULTGENPRECISION: 8 }
79+
- env: { ECMULTGENPRECISION: 2, ECMULTWINDOW: 2 }
80+
- env: { ECMULTGENPRECISION: 8, ECMULTWINDOW: 4 }
7581
matrix:
7682
- env:
7783
CC: gcc
@@ -84,15 +90,11 @@ task:
8490

8591
task:
8692
name: "i686: Linux (Debian stable)"
87-
container:
88-
dockerfile: ci/linux-debian.Dockerfile
89-
cpu: 1
90-
memory: 1G
93+
<< : *LINUX_CONTAINER
9194
env:
9295
HOST: i686-linux-gnu
9396
ECDH: yes
9497
RECOVERY: yes
95-
EXPERIMENTAL: yes
9698
SCHNORRSIG: yes
9799
matrix:
98100
- env:
@@ -134,8 +136,10 @@ task:
134136
## - rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
135137
##
136138
brew_valgrind_pre_script:
139+
# Retry a few times because this tends to fail randomly.
140+
- for i in {1..5}; do brew update && break || sleep 15; done
137141
- brew config
138-
- brew tap --shallow LouisBrunner/valgrind
142+
- brew tap LouisBrunner/valgrind
139143
# Fetch valgrind source but don't build it yet.
140144
- brew fetch --HEAD LouisBrunner/valgrind/valgrind
141145
brew_valgrind_cache:
@@ -165,18 +169,14 @@ task:
165169

166170
task:
167171
name: "s390x (big-endian): Linux (Debian stable, QEMU)"
168-
container:
169-
dockerfile: ci/linux-debian.Dockerfile
170-
cpu: 1
171-
memory: 1G
172+
<< : *LINUX_CONTAINER
172173
env:
173174
WRAPPER_CMD: qemu-s390x
174175
SECP256K1_TEST_ITERS: 16
175176
HOST: s390x-linux-gnu
176177
WITH_VALGRIND: no
177178
ECDH: yes
178179
RECOVERY: yes
179-
EXPERIMENTAL: yes
180180
SCHNORRSIG: yes
181181
CTIMETEST: no
182182
<< : *MERGE_BASE
@@ -188,42 +188,34 @@ task:
188188

189189
task:
190190
name: "ARM32: Linux (Debian stable, QEMU)"
191-
container:
192-
dockerfile: ci/linux-debian.Dockerfile
193-
cpu: 1
194-
memory: 1G
191+
<< : *LINUX_CONTAINER
195192
env:
196193
WRAPPER_CMD: qemu-arm
197194
SECP256K1_TEST_ITERS: 16
198195
HOST: arm-linux-gnueabihf
199196
WITH_VALGRIND: no
200197
ECDH: yes
201198
RECOVERY: yes
202-
EXPERIMENTAL: yes
203199
SCHNORRSIG: yes
204200
CTIMETEST: no
205201
matrix:
206202
- env: {}
207-
- env: {ASM: arm}
203+
- env: {EXPERIMENTAL: yes, ASM: arm}
208204
<< : *MERGE_BASE
209205
test_script:
210206
- ./ci/cirrus.sh
211207
<< : *CAT_LOGS
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
222215
HOST: aarch64-linux-gnu
223216
WITH_VALGRIND: no
224217
ECDH: yes
225218
RECOVERY: yes
226-
EXPERIMENTAL: yes
227219
SCHNORRSIG: yes
228220
CTIMETEST: no
229221
<< : *MERGE_BASE
@@ -233,18 +225,14 @@ task:
233225

234226
task:
235227
name: "ppc64le: Linux (Debian stable, QEMU)"
236-
container:
237-
dockerfile: ci/linux-debian.Dockerfile
238-
cpu: 1
239-
memory: 1G
228+
<< : *LINUX_CONTAINER
240229
env:
241230
WRAPPER_CMD: qemu-ppc64le
242231
SECP256K1_TEST_ITERS: 16
243232
HOST: powerpc64le-linux-gnu
244233
WITH_VALGRIND: no
245234
ECDH: yes
246235
RECOVERY: yes
247-
EXPERIMENTAL: yes
248236
SCHNORRSIG: yes
249237
CTIMETEST: no
250238
<< : *MERGE_BASE
@@ -254,18 +242,14 @@ task:
254242

255243
task:
256244
name: "x86_64 (mingw32-w64): Windows (Debian stable, Wine)"
257-
container:
258-
dockerfile: ci/linux-debian.Dockerfile
259-
cpu: 1
260-
memory: 1G
245+
<< : *LINUX_CONTAINER
261246
env:
262247
WRAPPER_CMD: wine64-stable
263248
SECP256K1_TEST_ITERS: 16
264249
HOST: x86_64-w64-mingw32
265250
WITH_VALGRIND: no
266251
ECDH: yes
267252
RECOVERY: yes
268-
EXPERIMENTAL: yes
269253
SCHNORRSIG: yes
270254
CTIMETEST: no
271255
<< : *MERGE_BASE
@@ -275,23 +259,23 @@ task:
275259

276260
# Sanitizers
277261
task:
278-
container:
279-
dockerfile: ci/linux-debian.Dockerfile
280-
cpu: 1
281-
memory: 2G
262+
<< : *LINUX_CONTAINER
282263
env:
283264
ECDH: yes
284265
RECOVERY: yes
285-
EXPERIMENTAL: yes
286266
SCHNORRSIG: yes
287267
CTIMETEST: no
288268
matrix:
289269
- name: "Valgrind (memcheck)"
270+
container:
271+
cpu: 2
290272
env:
291273
# 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)
292274
WRAPPER_CMD: "valgrind --error-exitcode=42"
293275
SECP256K1_TEST_ITERS: 2
294276
- name: "UBSan, ASan, LSan"
277+
container:
278+
memory: 2G
295279
env:
296280
CFLAGS: "-fsanitize=undefined,address -g"
297281
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
@@ -302,11 +286,10 @@ task:
302286
matrix:
303287
- env:
304288
ASM: auto
305-
STATICPRECOMPUTATION: yes
306289
- env:
307290
ASM: no
308-
STATICPRECOMPUTATION: no
309291
ECMULTGENPRECISION: 2
292+
ECMULTWINDOW: 2
310293
matrix:
311294
- env:
312295
CC: clang
@@ -320,21 +303,24 @@ task:
320303

321304
task:
322305
name: "C++ -fpermissive"
323-
container:
324-
dockerfile: ci/linux-debian.Dockerfile
325-
cpu: 1
326-
memory: 1G
306+
<< : *LINUX_CONTAINER
327307
env:
328308
# ./configure correctly errors out when given CC=g++.
329309
# We hack around this by passing CC=g++ only to make.
330310
CC: gcc
331-
MAKEFLAGS: -j2 CC=g++ CFLAGS=-fpermissive\ -g
311+
MAKEFLAGS: -j4 CC=g++ CFLAGS=-fpermissive\ -g
332312
WERROR_CFLAGS:
333-
EXPERIMENTAL: yes
334313
ECDH: yes
335314
RECOVERY: yes
336315
SCHNORRSIG: yes
337316
<< : *MERGE_BASE
338317
test_script:
339318
- ./ci/cirrus.sh
340319
<< : *CAT_LOGS
320+
321+
task:
322+
name: "sage prover"
323+
<< : *LINUX_CONTAINER
324+
test_script:
325+
- cd sage
326+
- sage prove_group_implementations.sage

src/secp256k1/.gitattributes

Lines changed: 2 additions & 2 deletions
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

src/secp256k1/.gitignore

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,19 @@ 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
9+
ecdh_example
10+
ecdsa_example
11+
schnorr_example
912
*.exe
1013
*.so
1114
*.a
1215
*.csv
1316
!.gitignore
17+
*.log
18+
*.trs
1419

1520
Makefile
1621
configure
@@ -41,6 +46,7 @@ coverage.*.html
4146

4247
src/libsecp256k1-config.h
4348
src/libsecp256k1-config.h.in
49+
build-aux/ar-lib
4450
build-aux/config.guess
4551
build-aux/config.sub
4652
build-aux/depcomp

0 commit comments

Comments
 (0)