Skip to content

Commit dd17c42

Browse files
committed
Merge bitcoin/bitcoin#24322: [kernel 1/n] Introduce initial libbitcoinkernel
035fa1f build: Remove LIBTOOL_APP_LDFLAGS for bitcoin-chainstate (Cory Fields) 3f05950 docs: Add libbitcoinkernel_la_SOURCES explanation (Carl Dong) 94ad45d ci: Build libbitcoinkernel (Carl Dong) 26b2e7f build: Extract the libbitcoinkernel library (Carl Dong) 1df44dd b-cs: Define G_TRANSLATION_FUN in bitcoinkernel.cpp (Carl Dong) 83a0bb7 build: Separate lib_LTLIBRARIES initialization (Carl Dong) c1e16cb build: Create .la library for bitcoincrypto (Carl Dong) 8bdfe05 build: Create .la library for leveldb (Carl Dong) 05d1525 build: Create .la library for crc32c (Carl Dong) 64caf94 build: Remove vestigial LIBLEVELDB_SSE42 (Carl Dong) 1392e8e build: Don't add unrelated libs to LIBTEST_* (Carl Dong) Pull request description: Part of: #24303 This PR introduces a `libbitcoinkernel` static library linking in the minimal list of files necessary to use our consensus engine as-is. `bitcoin-chainstate` introduced in #24304 now will link against `libbitcoinkernel`. Most of the changes are related to the build system. Please read the commit messages for more details. ACKs for top commit: theuni: This may be my favorite PR ever. It's a privilege to ACK 035fa1f. Tree-SHA512: b755edc3471c7c1098847e9b16ab182a6abb7582563d9da516de376a770ac7543c6fdb24238ddd4d3d2d458f905a0c0614b8667aab182aa7e6b80c1cca7090bc
2 parents e36c612 + 035fa1f commit dd17c42

13 files changed

+290
-211
lines changed

ci/test/00_setup_env_native_nowallet_libbitcoinkernel.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ export DOCKER_NAME_TAG=ubuntu:18.04 # Use bionic to have one config run the tes
1111
export PACKAGES="python3-zmq clang-8 llvm-8 libc++abi-8-dev libc++-8-dev" # Use clang-8 to test C++17 compatibility, see doc/dependencies.md
1212
export DEP_OPTS="NO_WALLET=1 CC=clang-8 CXX='clang++-8 -stdlib=libc++'"
1313
export GOAL="install"
14-
export BITCOIN_CONFIG="--enable-reduce-exports CC=clang-8 CXX='clang++-8 -stdlib=libc++' --enable-experimental-util-chainstate"
14+
export BITCOIN_CONFIG="--enable-reduce-exports CC=clang-8 CXX='clang++-8 -stdlib=libc++' --enable-experimental-util-chainstate --with-experimental-kernel-lib --enable-shared"

configure.ac

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,12 @@ AC_ARG_WITH([libs],
663663
[build_bitcoin_libs=$withval],
664664
[build_bitcoin_libs=yes])
665665

666+
AC_ARG_WITH([experimental-kernel-lib],
667+
[AS_HELP_STRING([--with-experimental-kernel-lib],
668+
[build experimental bitcoinkernel library (default is to build if we're building libraries and the experimental build-chainstate executable)])],
669+
[build_experimental_kernel_lib=$withval],
670+
[build_experimental_kernel_lib=auto])
671+
666672
AC_ARG_WITH([daemon],
667673
[AS_HELP_STRING([--with-daemon],
668674
[build bitcoind daemon (default=yes)])],
@@ -1656,15 +1662,23 @@ AM_CONDITIONAL([BUILD_BITCOIN_UTIL], [test $build_bitcoin_util = "yes"])
16561662
AC_MSG_RESULT($build_bitcoin_util)
16571663

16581664
AC_MSG_CHECKING([whether to build experimental bitcoin-chainstate])
1659-
AM_CONDITIONAL([BUILD_BITCOIN_CHAINSTATE], [test $build_bitcoin_chainstate = "yes"])
1665+
if test "$build_experimental_kernel_lib" = "no"; then
1666+
AC_MSG_ERROR([experimental bitcoin-chainstate cannot be built without the experimental bitcoinkernel library. Use --with-experimental-kernel-lib]);
1667+
else
1668+
AM_CONDITIONAL([BUILD_BITCOIN_CHAINSTATE], [test $build_bitcoin_chainstate = "yes"])
1669+
fi
16601670
AC_MSG_RESULT($build_bitcoin_chainstate)
16611671

16621672
AC_MSG_CHECKING([whether to build libraries])
16631673
AM_CONDITIONAL([BUILD_BITCOIN_LIBS], [test $build_bitcoin_libs = "yes"])
1674+
16641675
if test "$build_bitcoin_libs" = "yes"; then
16651676
AC_DEFINE([HAVE_CONSENSUS_LIB], [1], [Define this symbol if the consensus lib has been built])
16661677
AC_CONFIG_FILES([libbitcoinconsensus.pc:libbitcoinconsensus.pc.in])
16671678
fi
1679+
1680+
AM_CONDITIONAL([BUILD_BITCOIN_KERNEL_LIB], [test "$build_experimental_kernel_lib" != "no" && ( test "$build_experimental_kernel_lib" = "yes" || test "$build_bitcoin_chainstate" = "yes" )])
1681+
16681682
AC_MSG_RESULT($build_bitcoin_libs)
16691683

16701684
AC_LANG_POP

src/Makefile.am

Lines changed: 112 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,23 @@ AM_LIBTOOLFLAGS = --preserve-dup-deps
1515
PTHREAD_FLAGS = $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
1616
EXTRA_LIBRARIES =
1717

18+
lib_LTLIBRARIES =
19+
noinst_LTLIBRARIES =
20+
21+
bin_PROGRAMS =
22+
noinst_PROGRAMS =
23+
TESTS =
24+
BENCHMARKS =
25+
1826
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)
1927

2028
LIBBITCOIN_NODE=libbitcoin_node.a
2129
LIBBITCOIN_COMMON=libbitcoin_common.a
2230
LIBBITCOIN_CONSENSUS=libbitcoin_consensus.a
2331
LIBBITCOIN_CLI=libbitcoin_cli.a
32+
LIBBITCOIN_KERNEL=libbitcoin_kernel.a
2433
LIBBITCOIN_UTIL=libbitcoin_util.a
25-
LIBBITCOIN_CRYPTO_BASE=crypto/libbitcoin_crypto_base.a
34+
LIBBITCOIN_CRYPTO_BASE=crypto/libbitcoin_crypto_base.la
2635
LIBBITCOINQT=qt/libbitcoinqt.a
2736
LIBSECP256K1=secp256k1/libsecp256k1.la
2837

@@ -32,36 +41,39 @@ endif
3241
if BUILD_BITCOIN_LIBS
3342
LIBBITCOINCONSENSUS=libbitcoinconsensus.la
3443
endif
44+
if BUILD_BITCOIN_KERNEL_LIB
45+
LIBBITCOINKERNEL=libbitcoinkernel.la
46+
endif
3547
if ENABLE_WALLET
3648
LIBBITCOIN_WALLET=libbitcoin_wallet.a
3749
LIBBITCOIN_WALLET_TOOL=libbitcoin_wallet_tool.a
3850
endif
3951

40-
LIBBITCOIN_CRYPTO= $(LIBBITCOIN_CRYPTO_BASE)
52+
LIBBITCOIN_CRYPTO = $(LIBBITCOIN_CRYPTO_BASE)
4153
if ENABLE_SSE41
42-
LIBBITCOIN_CRYPTO_SSE41 = crypto/libbitcoin_crypto_sse41.a
54+
LIBBITCOIN_CRYPTO_SSE41 = crypto/libbitcoin_crypto_sse41.la
4355
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_SSE41)
4456
endif
4557
if ENABLE_AVX2
46-
LIBBITCOIN_CRYPTO_AVX2 = crypto/libbitcoin_crypto_avx2.a
58+
LIBBITCOIN_CRYPTO_AVX2 = crypto/libbitcoin_crypto_avx2.la
4759
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_AVX2)
4860
endif
4961
if ENABLE_X86_SHANI
50-
LIBBITCOIN_CRYPTO_X86_SHANI = crypto/libbitcoin_crypto_x86_shani.a
62+
LIBBITCOIN_CRYPTO_X86_SHANI = crypto/libbitcoin_crypto_x86_shani.la
5163
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_X86_SHANI)
5264
endif
5365
if ENABLE_ARM_SHANI
54-
LIBBITCOIN_CRYPTO_ARM_SHANI = crypto/libbitcoin_crypto_arm_shani.a
66+
LIBBITCOIN_CRYPTO_ARM_SHANI = crypto/libbitcoin_crypto_arm_shani.la
5567
LIBBITCOIN_CRYPTO += $(LIBBITCOIN_CRYPTO_ARM_SHANI)
5668
endif
69+
noinst_LTLIBRARIES += $(LIBBITCOIN_CRYPTO)
5770

5871
$(LIBSECP256K1): $(wildcard secp256k1/src/*.h) $(wildcard secp256k1/src/*.c) $(wildcard secp256k1/include/*)
5972
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
6073

6174
# Make is not made aware of per-object dependencies to avoid limiting building parallelization
6275
# But to build the less dependent modules first, we manually select their order here:
6376
EXTRA_LIBRARIES += \
64-
$(LIBBITCOIN_CRYPTO) \
6577
$(LIBBITCOIN_UTIL) \
6678
$(LIBBITCOIN_COMMON) \
6779
$(LIBBITCOIN_CONSENSUS) \
@@ -72,14 +84,6 @@ EXTRA_LIBRARIES += \
7284
$(LIBBITCOIN_WALLET_TOOL) \
7385
$(LIBBITCOIN_ZMQ)
7486

75-
lib_LTLIBRARIES = $(LIBBITCOINCONSENSUS)
76-
noinst_LTLIBRARIES =
77-
78-
bin_PROGRAMS =
79-
noinst_PROGRAMS =
80-
TESTS =
81-
BENCHMARKS =
82-
8387
if BUILD_BITCOIND
8488
bin_PROGRAMS += bitcoind
8589
endif
@@ -464,9 +468,16 @@ libbitcoin_wallet_tool_a_SOURCES = \
464468
$(BITCOIN_CORE_H)
465469

466470
# crypto primitives library
467-
crypto_libbitcoin_crypto_base_a_CPPFLAGS = $(AM_CPPFLAGS)
468-
crypto_libbitcoin_crypto_base_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
469-
crypto_libbitcoin_crypto_base_a_SOURCES = \
471+
crypto_libbitcoin_crypto_base_la_CPPFLAGS = $(AM_CPPFLAGS)
472+
473+
# Specify -static in both CXXFLAGS and LDFLAGS so libtool will only build a
474+
# static version of this library. We don't need a dynamic version, and a dynamic
475+
# version can't be used on windows anyway because the library doesn't currently
476+
# export DLL symbols.
477+
crypto_libbitcoin_crypto_base_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static
478+
crypto_libbitcoin_crypto_base_la_LDFLAGS = $(AM_LDFLAGS) -static
479+
480+
crypto_libbitcoin_crypto_base_la_SOURCES = \
470481
crypto/aes.cpp \
471482
crypto/aes.h \
472483
crypto/chacha_poly_aead.h \
@@ -498,32 +509,44 @@ crypto_libbitcoin_crypto_base_a_SOURCES = \
498509
crypto/siphash.h
499510

500511
if USE_ASM
501-
crypto_libbitcoin_crypto_base_a_SOURCES += crypto/sha256_sse4.cpp
512+
crypto_libbitcoin_crypto_base_la_SOURCES += crypto/sha256_sse4.cpp
502513
endif
503514

504-
crypto_libbitcoin_crypto_sse41_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
505-
crypto_libbitcoin_crypto_sse41_a_CPPFLAGS = $(AM_CPPFLAGS)
506-
crypto_libbitcoin_crypto_sse41_a_CXXFLAGS += $(SSE41_CXXFLAGS)
507-
crypto_libbitcoin_crypto_sse41_a_CPPFLAGS += -DENABLE_SSE41
508-
crypto_libbitcoin_crypto_sse41_a_SOURCES = crypto/sha256_sse41.cpp
509-
510-
crypto_libbitcoin_crypto_avx2_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
511-
crypto_libbitcoin_crypto_avx2_a_CPPFLAGS = $(AM_CPPFLAGS)
512-
crypto_libbitcoin_crypto_avx2_a_CXXFLAGS += $(AVX2_CXXFLAGS)
513-
crypto_libbitcoin_crypto_avx2_a_CPPFLAGS += -DENABLE_AVX2
514-
crypto_libbitcoin_crypto_avx2_a_SOURCES = crypto/sha256_avx2.cpp
515-
516-
crypto_libbitcoin_crypto_x86_shani_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
517-
crypto_libbitcoin_crypto_x86_shani_a_CPPFLAGS = $(AM_CPPFLAGS)
518-
crypto_libbitcoin_crypto_x86_shani_a_CXXFLAGS += $(X86_SHANI_CXXFLAGS)
519-
crypto_libbitcoin_crypto_x86_shani_a_CPPFLAGS += -DENABLE_X86_SHANI
520-
crypto_libbitcoin_crypto_x86_shani_a_SOURCES = crypto/sha256_x86_shani.cpp
521-
522-
crypto_libbitcoin_crypto_arm_shani_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
523-
crypto_libbitcoin_crypto_arm_shani_a_CPPFLAGS = $(AM_CPPFLAGS)
524-
crypto_libbitcoin_crypto_arm_shani_a_CXXFLAGS += $(ARM_SHANI_CXXFLAGS)
525-
crypto_libbitcoin_crypto_arm_shani_a_CPPFLAGS += -DENABLE_ARM_SHANI
526-
crypto_libbitcoin_crypto_arm_shani_a_SOURCES = crypto/sha256_arm_shani.cpp
515+
# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
516+
# CXXFLAGS above
517+
crypto_libbitcoin_crypto_sse41_la_LDFLAGS = $(AM_LDFLAGS) -static
518+
crypto_libbitcoin_crypto_sse41_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static
519+
crypto_libbitcoin_crypto_sse41_la_CPPFLAGS = $(AM_CPPFLAGS)
520+
crypto_libbitcoin_crypto_sse41_la_CXXFLAGS += $(SSE41_CXXFLAGS)
521+
crypto_libbitcoin_crypto_sse41_la_CPPFLAGS += -DENABLE_SSE41
522+
crypto_libbitcoin_crypto_sse41_la_SOURCES = crypto/sha256_sse41.cpp
523+
524+
# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
525+
# CXXFLAGS above
526+
crypto_libbitcoin_crypto_avx2_la_LDFLAGS = $(AM_LDFLAGS) -static
527+
crypto_libbitcoin_crypto_avx2_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static
528+
crypto_libbitcoin_crypto_avx2_la_CPPFLAGS = $(AM_CPPFLAGS)
529+
crypto_libbitcoin_crypto_avx2_la_CXXFLAGS += $(AVX2_CXXFLAGS)
530+
crypto_libbitcoin_crypto_avx2_la_CPPFLAGS += -DENABLE_AVX2
531+
crypto_libbitcoin_crypto_avx2_la_SOURCES = crypto/sha256_avx2.cpp
532+
533+
# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
534+
# CXXFLAGS above
535+
crypto_libbitcoin_crypto_x86_shani_la_LDFLAGS = $(AM_LDFLAGS) -static
536+
crypto_libbitcoin_crypto_x86_shani_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static
537+
crypto_libbitcoin_crypto_x86_shani_la_CPPFLAGS = $(AM_CPPFLAGS)
538+
crypto_libbitcoin_crypto_x86_shani_la_CXXFLAGS += $(X86_SHANI_CXXFLAGS)
539+
crypto_libbitcoin_crypto_x86_shani_la_CPPFLAGS += -DENABLE_X86_SHANI
540+
crypto_libbitcoin_crypto_x86_shani_la_SOURCES = crypto/sha256_x86_shani.cpp
541+
542+
# See explanation for -static in crypto_libbitcoin_crypto_base_la's LDFLAGS and
543+
# CXXFLAGS above
544+
crypto_libbitcoin_crypto_arm_shani_la_LDFLAGS = $(AM_LDFLAGS) -static
545+
crypto_libbitcoin_crypto_arm_shani_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -static
546+
crypto_libbitcoin_crypto_arm_shani_la_CPPFLAGS = $(AM_CPPFLAGS)
547+
crypto_libbitcoin_crypto_arm_shani_la_CXXFLAGS += $(ARM_SHANI_CXXFLAGS)
548+
crypto_libbitcoin_crypto_arm_shani_la_CPPFLAGS += -DENABLE_ARM_SHANI
549+
crypto_libbitcoin_crypto_arm_shani_la_SOURCES = crypto/sha256_arm_shani.cpp
527550

528551
# consensus: shared between all executables that validate any consensus rules.
529552
libbitcoin_consensus_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
@@ -683,7 +706,6 @@ bitcoin_bin_ldadd = \
683706
$(LIBBITCOIN_CONSENSUS) \
684707
$(LIBBITCOIN_CRYPTO) \
685708
$(LIBLEVELDB) \
686-
$(LIBLEVELDB_SSE42) \
687709
$(LIBMEMENV) \
688710
$(LIBSECP256K1)
689711

@@ -782,8 +804,48 @@ bitcoin_util_LDADD = \
782804
#
783805

784806
# bitcoin-chainstate binary #
785-
bitcoin_chainstate_SOURCES = \
786-
bitcoin-chainstate.cpp \
807+
bitcoin_chainstate_SOURCES = bitcoin-chainstate.cpp
808+
bitcoin_chainstate_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
809+
bitcoin_chainstate_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
810+
811+
# $(LIBTOOL_APP_LDFLAGS) deliberately omitted here so that we can test linking
812+
# bitcoin-chainstate against libbitcoinkernel as a shared or static library by
813+
# setting --{en,dis}able-shared.
814+
bitcoin_chainstate_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(PTHREAD_FLAGS)
815+
bitcoin_chainstate_LDADD = $(LIBBITCOINKERNEL)
816+
#
817+
818+
# bitcoinkernel library #
819+
if BUILD_BITCOIN_KERNEL_LIB
820+
lib_LTLIBRARIES += $(LIBBITCOINKERNEL)
821+
822+
libbitcoinkernel_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS) $(PTHREAD_FLAGS)
823+
libbitcoinkernel_la_LIBADD = $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) $(LIBSECP256K1)
824+
libbitcoinkernel_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_BITCOIN_INTERNAL $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) -I$(srcdir)/$(UNIVALUE_INCLUDE_DIR_INT)
825+
826+
# libbitcoinkernel requires default symbol visibility, explicitly specify that
827+
# here so that things still work even when user configures with
828+
# --enable-reduce-exports
829+
#
830+
# Note this is a quick hack that will be removed as we incrementally define what
831+
# to export from the library.
832+
libbitcoinkernel_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -fvisibility=default
833+
834+
# TODO: For now, Specify -static in both CXXFLAGS and LDFLAGS when building for
835+
# windows targets so libtool will only build a static version of this
836+
# library. There are unresolved problems when building dll's for mingw-w64
837+
# and attempting to statically embed libstdc++, libpthread, etc.
838+
if TARGET_WINDOWS
839+
libbitcoinkernel_la_LDFLAGS += -static
840+
libbitcoinkernel_la_CXXFLAGS += -static
841+
endif
842+
843+
# TODO: libbitcoinkernel is a work in progress consensus engine library, as more
844+
# and more modules are decoupled from the consensus engine, this list will
845+
# shrink to only those which are absolutely necessary. For example, things
846+
# like index/*.cpp will be removed.
847+
libbitcoinkernel_la_SOURCES = \
848+
kernel/bitcoinkernel.cpp \
787849
arith_uint256.cpp \
788850
blockfilter.cpp \
789851
chain.cpp \
@@ -862,26 +924,19 @@ bitcoin_chainstate_SOURCES = \
862924
validationinterface.cpp \
863925
versionbits.cpp \
864926
warnings.cpp
865-
bitcoin_chainstate_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
866-
bitcoin_chainstate_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
867-
bitcoin_chainstate_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
868-
bitcoin_chainstate_LDADD = \
869-
$(LIBBITCOIN_CRYPTO) \
870-
$(LIBUNIVALUE) \
871-
$(LIBSECP256K1) \
872-
$(LIBLEVELDB) \
873-
$(LIBLEVELDB_SSE42) \
874-
$(LIBMEMENV)
875927

876928
# Required for obj/build.h to be generated first.
877929
# More details: https://www.gnu.org/software/automake/manual/html_node/Built-Sources-Example.html
878-
bitcoin_chainstate-clientversion.$(OBJEXT): obj/build.h
930+
libbitcoinkernel_la-clientversion.l$(OBJEXT): obj/build.h
931+
endif # BUILD_BITCOIN_KERNEL_LIB
879932
#
880933

881934
# bitcoinconsensus library #
882935
if BUILD_BITCOIN_LIBS
936+
lib_LTLIBRARIES += $(LIBBITCOINCONSENSUS)
937+
883938
include_HEADERS = script/bitcoinconsensus.h
884-
libbitcoinconsensus_la_SOURCES = support/cleanse.cpp $(crypto_libbitcoin_crypto_base_a_SOURCES) $(libbitcoin_consensus_a_SOURCES)
939+
libbitcoinconsensus_la_SOURCES = support/cleanse.cpp $(crypto_libbitcoin_crypto_base_la_SOURCES) $(libbitcoin_consensus_a_SOURCES)
885940

886941
libbitcoinconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS)
887942
libbitcoinconsensus_la_LIBADD = $(LIBSECP256K1)

src/Makefile.bench.include

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,14 @@ nodist_bench_bench_bitcoin_SOURCES = $(GENERATED_BENCH_FILES)
5252
bench_bench_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) -I$(builddir)/bench/
5353
bench_bench_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
5454
bench_bench_bitcoin_LDADD = \
55+
$(LIBTEST_UTIL) \
5556
$(LIBBITCOIN_NODE) \
5657
$(LIBBITCOIN_WALLET) \
5758
$(LIBBITCOIN_COMMON) \
5859
$(LIBBITCOIN_UTIL) \
5960
$(LIBBITCOIN_CONSENSUS) \
6061
$(LIBBITCOIN_CRYPTO) \
61-
$(LIBTEST_UTIL) \
6262
$(LIBLEVELDB) \
63-
$(LIBLEVELDB_SSE42) \
6463
$(LIBMEMENV) \
6564
$(LIBSECP256K1) \
6665
$(LIBUNIVALUE) \

0 commit comments

Comments
 (0)