Skip to content

Commit c1fb306

Browse files
committed
Merge bitcoin/bitcoin#23114: Add minisketch subtree and integrate into build/test
29173d6 ubsan: add minisketch exceptions (Cory Fields) 54b5e1a Add thin Minisketch wrapper to pick best implementation (Pieter Wuille) ee9dc71 Add basic minisketch tests (Pieter Wuille) 0659f12 Add minisketch dependency (Gleb Naumenko) 0eb7928 Add MSVC build configuration for libminisketch (Pieter Wuille) 8bc166d build: add minisketch build file and include it (Cory Fields) b2904ce build: add configure checks for minisketch (Cory Fields) b6487dc Squashed 'src/minisketch/' content from commit 89629eb2c7 (fanquake) Pull request description: This takes over #21859, which has [recently switched](bitcoin/bitcoin#21859 (comment)) to my integration branch. A few more build issues came up (and have been fixed) since, and after discussing with sipa it was decided I would open a PR to shepherd any final changes through. > This adds a `src/minisketch` subtree, taken from the master branch of https://github.com/sipa/minisketch, to prepare for Erlay implementation (see #21515). It gets configured for just supporting 32-bit fields (the only ones we're interested in in the context of Erlay), and some code on top is added: > * A very basic unit test (just to make sure compilation & running works; actual correctness checking is done through minisketch's own tests). > * A wrapper in `minisketchwrapper.{cpp,h}` that runs a benchmark to determine which field implementation to use. Only changes since my last update to the branch in the previous PR have been rebasing on master and fixing an issue with a header in an introduced file. ACKs for top commit: naumenkogs: ACK 29173d6 Tree-SHA512: 1217d3228db1dd0de12c2919314e1c3626c18a416cf6291fec99d37e34fb6eec8e28d9e9fb935f8590273b8836cbadac313a15f05b4fd9f9d3024c8ce2c80d02
2 parents bc03823 + 29173d6 commit c1fb306

File tree

85 files changed

+8945
-22
lines changed

Some content is hidden

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

85 files changed

+8945
-22
lines changed

Makefile.am

+1
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ LCOV_FILTER_PATTERN = \
206206
-p "src/bench/" \
207207
-p "src/univalue" \
208208
-p "src/crypto/ctaes" \
209+
-p "src/minisketch" \
209210
-p "src/secp256k1" \
210211
-p "depends"
211212

build_msvc/bitcoin.sln

+6-2
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtest_util", "libtest_uti
4848
EndProject
4949
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_bitcoin-qt", "test_bitcoin-qt\test_bitcoin-qt.vcxproj", "{51201D5E-D939-4854-AE9D-008F03FF518E}"
5050
EndProject
51+
Project("{542007E3-BE0D-4B0D-A6B0-AA8813E2558D}") = "libminisketch", "libminisketch\libminisketch.vcxproj", "{542007E3-BE0D-4B0D-A6B0-AA8813E2558D}"
52+
EndProject
5153
Global
5254
GlobalSection(SolutionConfigurationPlatforms) = preSolution
5355
Debug|x64 = Debug|x64
@@ -146,13 +148,15 @@ Global
146148
{51201D5E-D939-4854-AE9D-008F03FF518E}.Debug|x64.Build.0 = Debug|x64
147149
{51201D5E-D939-4854-AE9D-008F03FF518E}.Release|x64.ActiveCfg = Release|x64
148150
{51201D5E-D939-4854-AE9D-008F03FF518E}.Release|x64.Build.0 = Release|x64
151+
{542007E3-BE0D-4B0D-A6B0-AA8813E2558D}.Debug|x64.ActiveCfg = Debug|x64
152+
{542007E3-BE0D-4B0D-A6B0-AA8813E2558D}.Debug|x64.Build.0 = Debug|x64
153+
{542007E3-BE0D-4B0D-A6B0-AA8813E2558D}.Release|x64.ActiveCfg = Release|x64
154+
{542007E3-BE0D-4B0D-A6B0-AA8813E2558D}.Release|x64.Build.0 = Release|x64
149155
EndGlobalSection
150156
GlobalSection(SolutionProperties) = preSolution
151157
HideSolutionNode = FALSE
152158
EndGlobalSection
153159
GlobalSection(ExtensibilityGlobals) = postSolution
154-
SolutionGuid = {8AA72EDA-2CD4-4564-B1E4-688B760EEEE9}
155-
SolutionGuid = {8607C0F4-F33D-41B8-8D51-18E366A0F8DF}
156160
SolutionGuid = {58AAB032-7274-49BD-845E-5EF4DBB69B70}
157161
EndGlobalSection
158162
EndGlobal

build_msvc/common.init.vcxproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@
9191
<DisableSpecificWarnings>4018;4244;4267;4334;4715;4805;4834</DisableSpecificWarnings>
9292
<TreatWarningAsError>true</TreatWarningAsError>
9393
<PreprocessorDefinitions>_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING;_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING;ZMQ_STATIC;NOMINMAX;WIN32;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;_CONSOLE;_WIN32_WINNT=0x0601;_WIN32_IE=0x0501;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
94-
<AdditionalIncludeDirectories>..\..\src;..\..\src\univalue\include;..\..\src\secp256k1\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
94+
<AdditionalIncludeDirectories>..\..\src;..\..\src\minisketch\include;..\..\src\univalue\include;..\..\src\secp256k1\include;..\..\src\leveldb\include;..\..\src\leveldb\helpers\memenv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
9595
</ClCompile>
9696
<Link>
9797
<SubSystem>Console</SubSystem>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="..\common.init.vcxproj" />
4+
<PropertyGroup Label="Globals">
5+
<ProjectGuid>{542007E3-BE0D-4B0D-A6B0-AA8813E2558D}</ProjectGuid>
6+
</PropertyGroup>
7+
<PropertyGroup Label="Configuration">
8+
<ConfigurationType>StaticLibrary</ConfigurationType>
9+
</PropertyGroup>
10+
<ItemGroup>
11+
<ClCompile Include="..\..\src\minisketch\src\minisketch.cpp" />
12+
<ClCompile Include="..\..\src\minisketch\src\fields\clmul_1byte.cpp" />
13+
<ClCompile Include="..\..\src\minisketch\src\fields\clmul_2bytes.cpp" />
14+
<ClCompile Include="..\..\src\minisketch\src\fields\clmul_3bytes.cpp" />
15+
<ClCompile Include="..\..\src\minisketch\src\fields\clmul_4bytes.cpp" />
16+
<ClCompile Include="..\..\src\minisketch\src\fields\clmul_5bytes.cpp" />
17+
<ClCompile Include="..\..\src\minisketch\src\fields\clmul_6bytes.cpp" />
18+
<ClCompile Include="..\..\src\minisketch\src\fields\clmul_7bytes.cpp" />
19+
<ClCompile Include="..\..\src\minisketch\src\fields\clmul_8bytes.cpp" />
20+
<ClCompile Include="..\..\src\minisketch\src\fields\generic_1byte.cpp" />
21+
<ClCompile Include="..\..\src\minisketch\src\fields\generic_2bytes.cpp" />
22+
<ClCompile Include="..\..\src\minisketch\src\fields\generic_3bytes.cpp" />
23+
<ClCompile Include="..\..\src\minisketch\src\fields\generic_4bytes.cpp" />
24+
<ClCompile Include="..\..\src\minisketch\src\fields\generic_5bytes.cpp" />
25+
<ClCompile Include="..\..\src\minisketch\src\fields\generic_6bytes.cpp" />
26+
<ClCompile Include="..\..\src\minisketch\src\fields\generic_7bytes.cpp" />
27+
<ClCompile Include="..\..\src\minisketch\src\fields\generic_8bytes.cpp" />
28+
</ItemGroup>
29+
<ItemDefinitionGroup>
30+
<ClCompile>
31+
<DisableSpecificWarnings>4060;4065;4146;4244;4267;4554</DisableSpecificWarnings>
32+
<PreprocessorDefinitions>HAVE_CLMUL;DISABLE_DEFAULT_FIELDS;ENABLE_FIELD_32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
33+
</ClCompile>
34+
</ItemDefinitionGroup>
35+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
36+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
37+
<Import Project="..\common.vcxproj" />
38+
</Project>

build_msvc/test_bitcoin/test_bitcoin.vcxproj

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
<ClCompile Include="..\..\src\wallet\test\util.cpp" />
2020
</ItemGroup>
2121
<ItemGroup>
22+
<ProjectReference Include="..\libminisketch\libminisketch.vcxproj">
23+
<Project>{542007e3-be0d-4b0d-a6b0-aa8813e2558d}</Project>
24+
</ProjectReference>
2225
<ProjectReference Include="..\libbitcoinconsensus\libbitcoinconsensus.vcxproj">
2326
<Project>{2b384fa8-9ee1-4544-93cb-0d733c25e8ce}</Project>
2427
</ProjectReference>

ci/lint/06_script.sh

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export COMMIT_RANGE
1717
# check with -r to not have to fetch all the remotes.
1818
test/lint/git-subtree-check.sh src/crypto/ctaes
1919
test/lint/git-subtree-check.sh src/secp256k1
20+
test/lint/git-subtree-check.sh src/minisketch
2021
test/lint/git-subtree-check.sh src/univalue
2122
test/lint/git-subtree-check.sh src/leveldb
2223
test/lint/git-subtree-check.sh src/crc32c

ci/test/wrap-qemu.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
export LC_ALL=C.UTF-8
88

9-
for b_name in {"${BASE_OUTDIR}/bin"/*,src/secp256k1/*tests,src/univalue/{no_nul,test_json,unitester,object}}; do
9+
for b_name in {"${BASE_OUTDIR}/bin"/*,src/secp256k1/*tests,src/minisketch/test{,-verify},src/univalue/{no_nul,test_json,unitester,object}}; do
1010
# shellcheck disable=SC2044
1111
for b in $(find "${BASE_ROOT_DIR}" -executable -type f -name $(basename $b_name)); do
1212
echo "Wrap $b ..."

ci/test/wrap-wine.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
export LC_ALL=C.UTF-8
88

9-
for b_name in {"${BASE_OUTDIR}/bin"/*,src/secp256k1/*tests,src/univalue/{no_nul,test_json,unitester,object}}.exe; do
9+
for b_name in {"${BASE_OUTDIR}/bin"/*,src/secp256k1/*tests,src/minisketch/test{,-verify},src/univalue/{no_nul,test_json,unitester,object}}.exe; do
1010
# shellcheck disable=SC2044
1111
for b in $(find "${BASE_ROOT_DIR}" -executable -type f -name "$(basename $b_name)"); do
1212
if (file "$b" | grep "Windows"); then

configure.ac

+28-4
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,24 @@ AX_CHECK_COMPILE_FLAG([-msse4.1],[[SSE41_CXXFLAGS="-msse4.1"]],,[[$CXXFLAG_WERRO
470470
AX_CHECK_COMPILE_FLAG([-mavx -mavx2],[[AVX2_CXXFLAGS="-mavx -mavx2"]],,[[$CXXFLAG_WERROR]])
471471
AX_CHECK_COMPILE_FLAG([-msse4 -msha],[[SHANI_CXXFLAGS="-msse4 -msha"]],,[[$CXXFLAG_WERROR]])
472472

473+
enable_clmul=
474+
AX_CHECK_COMPILE_FLAG([-mpclmul], [enable_clmul=yes], [], [$CXXFLAG_WERROR], [AC_LANG_PROGRAM([
475+
#include <stdint.h>
476+
#include <x86intrin.h>
477+
], [
478+
__m128i a = _mm_cvtsi64_si128((uint64_t)7);
479+
__m128i b = _mm_clmulepi64_si128(a, a, 37);
480+
__m128i c = _mm_srli_epi64(b, 41);
481+
__m128i d = _mm_xor_si128(b, c);
482+
uint64_t e = _mm_cvtsi128_si64(d);
483+
return e == 0;
484+
])])
485+
486+
if test x$enable_clmul = xyes; then
487+
CLMUL_CXXFLAGS="-mpclmul"
488+
AC_DEFINE(HAVE_CLMUL, 1, [Define this symbol if clmul instructions can be used])
489+
fi
490+
473491
TEMP_CXXFLAGS="$CXXFLAGS"
474492
CXXFLAGS="$CXXFLAGS $SSE42_CXXFLAGS"
475493
AC_MSG_CHECKING(for SSE4.2 intrinsics)
@@ -950,19 +968,20 @@ AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64],,,
950968
#endif])
951969

952970
AC_MSG_CHECKING(for __builtin_clzl)
971+
953972
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[
954973
(void) __builtin_clzl(0);
955974
]])],
956-
[ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_BUILTIN_CLZL, 1, [Define this symbol if you have __builtin_clzl])],
957-
[ AC_MSG_RESULT(no)]
975+
[ AC_MSG_RESULT(yes); have_clzl=yes; AC_DEFINE(HAVE_BUILTIN_CLZL, 1, [Define this symbol if you have __builtin_clzl])],
976+
[ AC_MSG_RESULT(no); have_clzl=no;]
958977
)
959978

960979
AC_MSG_CHECKING(for __builtin_clzll)
961980
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[
962981
(void) __builtin_clzll(0);
963982
]])],
964-
[ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_BUILTIN_CLZLL, 1, [Define this symbol if you have __builtin_clzll])],
965-
[ AC_MSG_RESULT(no)]
983+
[ AC_MSG_RESULT(yes); have_clzll=yes; AC_DEFINE(HAVE_BUILTIN_CLZLL, 1, [Define this symbol if you have __builtin_clzll])],
984+
[ AC_MSG_RESULT(no); have_clzll=no;]
966985
)
967986

968987
dnl Check for malloc_info (for memory statistics information in getmemoryinfo)
@@ -1762,6 +1781,10 @@ AM_CONDITIONAL([WORDS_BIGENDIAN],[test x$ac_cv_c_bigendian = xyes])
17621781
AM_CONDITIONAL([USE_NATPMP],[test x$use_natpmp = xyes])
17631782
AM_CONDITIONAL([USE_UPNP],[test x$use_upnp = xyes])
17641783

1784+
dnl for minisketch
1785+
AM_CONDITIONAL([ENABLE_CLMUL],[test x$enable_clmul = xyes])
1786+
AM_CONDITIONAL([HAVE_CLZ],[test x$have_clzl$have_clzll = xyesyes])
1787+
17651788
AC_DEFINE(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR, [Major version])
17661789
AC_DEFINE(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR, [Minor version])
17671790
AC_DEFINE(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD, [Version Build])
@@ -1805,6 +1828,7 @@ AC_SUBST(SANITIZER_CXXFLAGS)
18051828
AC_SUBST(SANITIZER_LDFLAGS)
18061829
AC_SUBST(SSE42_CXXFLAGS)
18071830
AC_SUBST(SSE41_CXXFLAGS)
1831+
AC_SUBST(CLMUL_CXXFLAGS)
18081832
AC_SUBST(AVX2_CXXFLAGS)
18091833
AC_SUBST(SHANI_CXXFLAGS)
18101834
AC_SUBST(ARM_CRC_CXXFLAGS)

contrib/devtools/copyright_header.py

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
# git subtrees
3434
"src/crypto/ctaes/",
3535
"src/leveldb/",
36+
"src/minisketch",
3637
"src/secp256k1/",
3738
"src/univalue/",
3839
"src/crc32c/",

doc/developer-notes.md

+3
Original file line numberDiff line numberDiff line change
@@ -1029,6 +1029,9 @@ Current subtrees include:
10291029
- Subtree at https://github.com/bitcoin-core/univalue-subtree ; maintained by Core contributors.
10301030
- Deviates from upstream https://github.com/jgarzik/univalue.
10311031

1032+
- src/minisketch
1033+
- Upstream at https://github.com/sipa/minisketch ; maintained by Core contributors.
1034+
10321035
Upgrading LevelDB
10331036
---------------------
10341037

src/Makefile.am

+6-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ AM_LIBTOOLFLAGS = --preserve-dup-deps
1515
PTHREAD_FLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
1616
EXTRA_LIBRARIES =
1717

18-
BITCOIN_INCLUDES=-I$(builddir) -I$(srcdir)/secp256k1/include -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT) $(BDB_CPPFLAGS) $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS)
18+
BITCOIN_INCLUDES=-I$(builddir) -I$(srcdir)/$(MINISKETCH_INCLUDE_DIR_INT) -I$(srcdir)/secp256k1/include -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT) $(BDB_CPPFLAGS) $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS)
1919

2020
LIBBITCOIN_SERVER=libbitcoin_server.a
2121
LIBBITCOIN_COMMON=libbitcoin_common.a
@@ -167,6 +167,7 @@ BITCOIN_CORE_H = \
167167
memusage.h \
168168
merkleblock.h \
169169
miner.h \
170+
minisketchwrapper.h \
170171
net.h \
171172
net_permissions.h \
172173
net_processing.h \
@@ -334,6 +335,7 @@ libbitcoin_server_a_SOURCES = \
334335
init.cpp \
335336
mapport.cpp \
336337
miner.cpp \
338+
minisketchwrapper.cpp \
337339
net.cpp \
338340
net_processing.cpp \
339341
node/blockstorage.cpp \
@@ -842,8 +844,11 @@ nodist_libbitcoin_ipc_a_SOURCES = $(libbitcoin_ipc_mpgen_output)
842844
CLEANFILES += $(libbitcoin_ipc_mpgen_output)
843845
endif
844846

847+
include Makefile.minisketch.include
848+
845849
include Makefile.crc32c.include
846850
include Makefile.leveldb.include
851+
847852
include Makefile.test_util.include
848853
include Makefile.test_fuzz.include
849854

src/Makefile.minisketch.include

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
include minisketch/sources.mk
2+
3+
LIBMINISKETCH_CPPFLAGS=
4+
LIBMINISKETCH_CPPFLAGS += -DDISABLE_DEFAULT_FIELDS -DENABLE_FIELD_32
5+
6+
LIBMINISKETCH = minisketch/libminisketch.a
7+
MINISKETCH_LIBS = $(LIBMINISKETCH)
8+
9+
if ENABLE_CLMUL
10+
LIBMINISKETCH_CLMUL = minisketch/libminisketch_clmul.a
11+
LIBMINISKETCH_CPPFLAGS += -DHAVE_CLMUL
12+
MINISKETCH_LIBS += $(LIBMINISKETCH_CLMUL)
13+
endif
14+
15+
if HAVE_CLZ
16+
LIBMINISKETCH_CPPFLAGS += -DHAVE_CLZ
17+
endif
18+
19+
EXTRA_LIBRARIES += $(MINISKETCH_LIBS)
20+
21+
minisketch_libminisketch_clmul_a_SOURCES = $(MINISKETCH_FIELD_CLMUL_SOURCES_INT) $(MINISKETCH_FIELD_CLMUL_HEADERS_INT)
22+
minisketch_libminisketch_clmul_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) $(CLMUL_CXXFLAGS)
23+
minisketch_libminisketch_clmul_a_CPPFLAGS = $(AM_CPPFLAGS) $(LIBMINISKETCH_CPPFLAGS)
24+
25+
minisketch_libminisketch_a_SOURCES = $(MINISKETCH_FIELD_GENERIC_SOURCES_INT) $(MINISKETCH_LIB_SOURCES_INT)
26+
minisketch_libminisketch_a_SOURCES += $(MINISKETCH_FIELD_GENERIC_HEADERS_INT) $(MINISKETCH_LIB_HEADERS_INT) $(MINISKETCH_DIST_HEADERS_INT)
27+
minisketch_libminisketch_a_CPPFLAGS = $(AM_CPPFLAGS) $(LIBMINISKETCH_CPPFLAGS)
28+
minisketch_libminisketch_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
29+
30+
if ENABLE_TESTS
31+
if !ENABLE_FUZZ
32+
MINISKETCH_TEST = minisketch/test
33+
TESTS += $(MINISKETCH_TEST)
34+
noinst_PROGRAMS += $(MINISKETCH_TEST)
35+
36+
minisketch_test_SOURCES = $(MINISKETCH_TEST_SOURCES_INT)
37+
minisketch_test_CPPFLAGS = $(AM_CPPFLAGS) $(LIBMINISKETCH_CPPFLAGS)
38+
minisketch_test_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
39+
minisketch_test_LDADD = $(MINISKETCH_LIBS)
40+
minisketch_test_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
41+
42+
endif
43+
endif

src/Makefile.test.include

+2-1
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ BITCOIN_TESTS =\
102102
test/mempool_tests.cpp \
103103
test/merkle_tests.cpp \
104104
test/merkleblock_tests.cpp \
105+
test/minisketch_tests.cpp \
105106
test/miner_tests.cpp \
106107
test/multisig_tests.cpp \
107108
test/net_peer_eviction_tests.cpp \
@@ -193,7 +194,7 @@ test_test_bitcoin_LDADD += $(LIBBITCOIN_WALLET)
193194
endif
194195

195196
test_test_bitcoin_LDADD += $(LIBBITCOIN_SERVER) $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) \
196-
$(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS)
197+
$(LIBLEVELDB) $(LIBLEVELDB_SSE42) $(LIBMEMENV) $(BOOST_LIBS) $(BOOST_UNIT_TEST_FRAMEWORK_LIB) $(LIBSECP256K1) $(EVENT_LIBS) $(EVENT_PTHREADS_LIBS) $(MINISKETCH_LIBS)
197198
test_test_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
198199

199200
test_test_bitcoin_LDADD += $(BDB_LIBS) $(MINIUPNPC_LIBS) $(NATPMP_LIBS) $(SQLITE_LIBS)

0 commit comments

Comments
 (0)