Merge fix/windows-cross-build into the v1.2.0 line
Brings the two mingw cross-compile build-system fixes (link-group via AC_SUBST(LINK_GROUP_*), librustzcash staged-name normalization) onto the v1.2.0 line that now carries Phases 1-2 of the code-hygiene remediation. The two sides are disjoint (build-system files vs. src/wallet/rpc), so this is a clean integration; the merged tree is re-verified to build for Windows (Phase 1/2 source changes had only been built for Linux before). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
16
configure.ac
16
configure.ac
@@ -833,6 +833,22 @@ AM_CONDITIONAL([TARGET_DARWIN], [test x$TARGET_OS = xdarwin])
|
|||||||
AM_CONDITIONAL([BUILD_DARWIN], [test x$BUILD_OS = xdarwin])
|
AM_CONDITIONAL([BUILD_DARWIN], [test x$BUILD_OS = xdarwin])
|
||||||
AM_CONDITIONAL([TARGET_LINUX], [test x$TARGET_OS = xlinux])
|
AM_CONDITIONAL([TARGET_LINUX], [test x$TARGET_OS = xlinux])
|
||||||
AM_CONDITIONAL([TARGET_WINDOWS], [test x$TARGET_OS = xwindows])
|
AM_CONDITIONAL([TARGET_WINDOWS], [test x$TARGET_OS = xwindows])
|
||||||
|
|
||||||
|
dnl mingw ld is single-pass: bracket the internal static archives in a link group
|
||||||
|
dnl so it re-scans and resolves the cross-references DragonX added between them
|
||||||
|
dnl (libbitcoin_util/common objects using UniValue; util<->common mutual deps).
|
||||||
|
dnl Delivered via AC_SUBST (not an automake conditional) so automake does not
|
||||||
|
dnl reject the linker flags inside _LDADD. Empty elsewhere (macOS ld64 rejects the
|
||||||
|
dnl flag; GNU ld on Linux re-scans archives already).
|
||||||
|
if test "x$TARGET_OS" = "xwindows"; then
|
||||||
|
LINK_GROUP_START="-Wl,--start-group"
|
||||||
|
LINK_GROUP_END="-Wl,--end-group"
|
||||||
|
else
|
||||||
|
LINK_GROUP_START=""
|
||||||
|
LINK_GROUP_END=""
|
||||||
|
fi
|
||||||
|
AC_SUBST(LINK_GROUP_START)
|
||||||
|
AC_SUBST(LINK_GROUP_END)
|
||||||
AM_CONDITIONAL([ENABLE_WALLET],[test x$enable_wallet = xyes])
|
AM_CONDITIONAL([ENABLE_WALLET],[test x$enable_wallet = xyes])
|
||||||
AM_CONDITIONAL([ENABLE_MINING],[test x$enable_mining = xyes])
|
AM_CONDITIONAL([ENABLE_MINING],[test x$enable_mining = xyes])
|
||||||
AM_CONDITIONAL([ENABLE_TESTS],[test x$BUILD_TEST = xyes])
|
AM_CONDITIONAL([ENABLE_TESTS],[test x$BUILD_TEST = xyes])
|
||||||
|
|||||||
@@ -53,6 +53,6 @@ endif
|
|||||||
define $(package)_stage_cmds
|
define $(package)_stage_cmds
|
||||||
mkdir $($(package)_staging_dir)$(host_prefix)/lib/ && \
|
mkdir $($(package)_staging_dir)$(host_prefix)/lib/ && \
|
||||||
mkdir $($(package)_staging_dir)$(host_prefix)/include/ && \
|
mkdir $($(package)_staging_dir)$(host_prefix)/include/ && \
|
||||||
cp $($(package)_library_file) $($(package)_staging_dir)$(host_prefix)/lib/ && \
|
cp $($(package)_library_file) $($(package)_staging_dir)$(host_prefix)/lib/librustzcash.a && \
|
||||||
cp librustzcash/include/librustzcash.h $($(package)_staging_dir)$(host_prefix)/include/
|
cp librustzcash/include/librustzcash.h $($(package)_staging_dir)$(host_prefix)/include/
|
||||||
endef
|
endef
|
||||||
|
|||||||
@@ -489,7 +489,7 @@ if TARGET_WINDOWS
|
|||||||
dragonxd_SOURCES += bitcoind-res.rc
|
dragonxd_SOURCES += bitcoind-res.rc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
dragonxd_LDADD = \
|
dragonxd_LDADD = $(LINK_GROUP_START) \
|
||||||
$(LIBBITCOIN_SERVER) \
|
$(LIBBITCOIN_SERVER) \
|
||||||
$(LIBCURL) \
|
$(LIBCURL) \
|
||||||
$(LIBBITCOIN_COMMON) \
|
$(LIBBITCOIN_COMMON) \
|
||||||
@@ -527,6 +527,8 @@ if TARGET_LINUX
|
|||||||
dragonxd_LDADD += libcc.so $(LIBSECP256K1)
|
dragonxd_LDADD += libcc.so $(LIBSECP256K1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
dragonxd_LDADD += $(LINK_GROUP_END)
|
||||||
|
|
||||||
# [+] Decker: use static linking for libstdc++.6.dylib, libgomp.1.dylib, libgcc_s.1.dylib
|
# [+] Decker: use static linking for libstdc++.6.dylib, libgomp.1.dylib, libgcc_s.1.dylib
|
||||||
if TARGET_DARWIN
|
if TARGET_DARWIN
|
||||||
dragonxd_LDFLAGS += -static-libgcc
|
dragonxd_LDFLAGS += -static-libgcc
|
||||||
@@ -553,7 +555,7 @@ if TARGET_WINDOWS
|
|||||||
dragonx_cli_SOURCES += bitcoin-cli-res.rc
|
dragonx_cli_SOURCES += bitcoin-cli-res.rc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
dragonx_cli_LDADD = \
|
dragonx_cli_LDADD = $(LINK_GROUP_START) \
|
||||||
$(LIBBITCOIN_CLI) \
|
$(LIBBITCOIN_CLI) \
|
||||||
$(LIBUNIVALUE) \
|
$(LIBUNIVALUE) \
|
||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
@@ -566,8 +568,10 @@ dragonx_cli_LDADD = \
|
|||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
$(LIBZCASH_LIBS)
|
$(LIBZCASH_LIBS)
|
||||||
|
|
||||||
|
dragonx_cli_LDADD += $(LINK_GROUP_END)
|
||||||
|
|
||||||
if ENABLE_WALLET
|
if ENABLE_WALLET
|
||||||
wallet_utility_LDADD = \
|
wallet_utility_LDADD = $(LINK_GROUP_START) \
|
||||||
libbitcoin_wallet.a \
|
libbitcoin_wallet.a \
|
||||||
$(LIBBITCOIN_COMMON) \
|
$(LIBBITCOIN_COMMON) \
|
||||||
$(LIBBITCOIN_CRYPTO) \
|
$(LIBBITCOIN_CRYPTO) \
|
||||||
@@ -579,6 +583,7 @@ wallet_utility_LDADD = \
|
|||||||
$(LIBZCASH) \
|
$(LIBZCASH) \
|
||||||
$(LIBZCASH_LIBS)\
|
$(LIBZCASH_LIBS)\
|
||||||
$(LIBRANDOMX)
|
$(LIBRANDOMX)
|
||||||
|
wallet_utility_LDADD += $(LINK_GROUP_END)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# hush-tx binary #
|
# hush-tx binary #
|
||||||
@@ -591,7 +596,7 @@ if TARGET_WINDOWS
|
|||||||
dragonx_tx_SOURCES += bitcoin-tx-res.rc
|
dragonx_tx_SOURCES += bitcoin-tx-res.rc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
dragonx_tx_LDADD = \
|
dragonx_tx_LDADD = $(LINK_GROUP_START) \
|
||||||
$(LIBUNIVALUE) \
|
$(LIBUNIVALUE) \
|
||||||
$(LIBBITCOIN_COMMON) \
|
$(LIBBITCOIN_COMMON) \
|
||||||
$(LIBBITCOIN_UTIL) \
|
$(LIBBITCOIN_UTIL) \
|
||||||
@@ -602,7 +607,7 @@ dragonx_tx_LDADD = \
|
|||||||
$(LIBZCASH_LIBS) \
|
$(LIBZCASH_LIBS) \
|
||||||
$(LIBRANDOMX)
|
$(LIBRANDOMX)
|
||||||
|
|
||||||
dragonx_tx_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS)
|
dragonx_tx_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS) $(LINK_GROUP_END)
|
||||||
|
|
||||||
# Zcash Protocol Primitives
|
# Zcash Protocol Primitives
|
||||||
libzcash_a_SOURCES = \
|
libzcash_a_SOURCES = \
|
||||||
|
|||||||
Reference in New Issue
Block a user