mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-27 19:47:30 -03:00
Merge bitcoin/bitcoin#27146: Fix various libbitcoinkernel DLL build problems
5da7c0b3e3
build: allow libitcoinkernel dll builds now that exports are fixed (Cory Fields)130490aef9
build: always build bitcoin-chainstate against static libbitcoinkernel (Cory Fields)545a74ef32
build: fix bitcoin-chainstate when libbitcoinkernel is static (Cory Fields)9c253d2398
build: don't define DLL_EXPORT for windows (Cory Fields) Pull request description: Fixes #25008. Fixes #19772. 1. Fixup the build defines so that exports are clean. 2. Work around a libtool issue wrt dependency calculation 3. Simplify everything by only ever building in-tree bitcoin-chainstate against a static libbitcoinkernel 4. Remove Windows-only hack that disabled dll creation ACKs for top commit: TheCharlatan: ACK5da7c0b3e3
Tree-SHA512: 61bab457e13842946387240da703d313509af30d4ca3371a19a26a5ef1716e4d7107b09567323041b549ab1fc97a064aa1d6992406936ab9c491a616bc7f4e7f
This commit is contained in:
commit
82793f1984
2 changed files with 11 additions and 13 deletions
|
@ -76,6 +76,12 @@ dnl we have those under control, re-enable that functionality.
|
||||||
case $host in
|
case $host in
|
||||||
*mingw*)
|
*mingw*)
|
||||||
lt_cv_deplibs_check_method="pass_all"
|
lt_cv_deplibs_check_method="pass_all"
|
||||||
|
|
||||||
|
dnl Remove unwanted -DDLL_EXPORT from these variables.
|
||||||
|
dnl We do not use this macro, but system headers may export unwanted symbols
|
||||||
|
dnl if it's set.
|
||||||
|
lt_cv_prog_compiler_pic="-DPIC"
|
||||||
|
lt_cv_prog_compiler_pic_CXX="-DPIC"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
|
@ -855,11 +855,12 @@ bitcoin_chainstate_SOURCES = bitcoin-chainstate.cpp
|
||||||
bitcoin_chainstate_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS)
|
bitcoin_chainstate_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS)
|
||||||
bitcoin_chainstate_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
bitcoin_chainstate_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
||||||
|
|
||||||
# $(LIBTOOL_APP_LDFLAGS) deliberately omitted here so that we can test linking
|
bitcoin_chainstate_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(PTHREAD_FLAGS) $(LIBTOOL_APP_LDFLAGS) -static
|
||||||
# bitcoin-chainstate against libbitcoinkernel as a shared or static library by
|
|
||||||
# setting --{en,dis}able-shared.
|
|
||||||
bitcoin_chainstate_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(PTHREAD_FLAGS)
|
|
||||||
bitcoin_chainstate_LDADD = $(LIBBITCOINKERNEL)
|
bitcoin_chainstate_LDADD = $(LIBBITCOINKERNEL)
|
||||||
|
|
||||||
|
# libtool is unable to calculate this indirect dependency, presumably because it's a subproject.
|
||||||
|
# libsecp256k1 only needs to be linked in when libbitcoinkernel is static.
|
||||||
|
bitcoin_chainstate_LDADD += $(LIBSECP256K1)
|
||||||
#
|
#
|
||||||
|
|
||||||
# bitcoinkernel library #
|
# bitcoinkernel library #
|
||||||
|
@ -878,15 +879,6 @@ libbitcoinkernel_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp
|
||||||
# to export from the library.
|
# to export from the library.
|
||||||
libbitcoinkernel_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -fvisibility=default
|
libbitcoinkernel_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS) -fvisibility=default
|
||||||
|
|
||||||
# TODO: For now, Specify -static in both CXXFLAGS and LDFLAGS when building for
|
|
||||||
# windows targets so libtool will only build a static version of this
|
|
||||||
# library. There are unresolved problems when building dll's for mingw-w64
|
|
||||||
# and attempting to statically embed libstdc++, libpthread, etc.
|
|
||||||
if TARGET_WINDOWS
|
|
||||||
libbitcoinkernel_la_LDFLAGS += -static
|
|
||||||
libbitcoinkernel_la_CXXFLAGS += -static
|
|
||||||
endif
|
|
||||||
|
|
||||||
# TODO: libbitcoinkernel is a work in progress consensus engine library, as more
|
# TODO: libbitcoinkernel is a work in progress consensus engine library, as more
|
||||||
# and more modules are decoupled from the consensus engine, this list will
|
# and more modules are decoupled from the consensus engine, this list will
|
||||||
# shrink to only those which are absolutely necessary.
|
# shrink to only those which are absolutely necessary.
|
||||||
|
|
Loading…
Add table
Reference in a new issue