From 7136ae978867f16e6094c87bce34ab56b466791d Mon Sep 17 00:00:00 2001 From: such-gitea Date: Sat, 24 Jan 2026 09:02:19 -0500 Subject: [PATCH] Update to Boost 1.90 --- contrib/depends/packages/boost.mk | 62 +++++++++++++++++-------------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/contrib/depends/packages/boost.mk b/contrib/depends/packages/boost.mk index 44f57652a..9d49991a8 100644 --- a/contrib/depends/packages/boost.mk +++ b/contrib/depends/packages/boost.mk @@ -1,36 +1,44 @@ -package=boost -$(package)_version=1.69.0 +package=boost +$(package)_version=1.90.0 $(package)_download_path=https://archives.boost.io/release/$($(package)_version)/source/ -$(package)_file_name=$(package)_$(subst .,_,$($(package)_version)).tar.gz -$(package)_sha256_hash=9a2c2819310839ea373f42d69e733c339b4e9a19deab6bfec448281554aa4dbb +$(package)_file_name=$(package)_$(subst .,_,$($(package)_version)).tar.bz2 +$(package)_sha256_hash=49551aff3b22cbc5c5a9ed3dbc92f0e23ea50a0f7325b0d198b705e8ee3fc305 $(package)_dependencies=libiconv -$(package)_patches=fix_aroptions.patch fix_arm_arch.patch + +# NOTE: We removed the old patches (fix_aroptions, fix_arm_arch) +# because Boost 1.90 fixed those bugs upstream. define $(package)_set_vars -$(package)_config_opts_release=variant=release -$(package)_config_opts_debug=variant=debug -$(package)_config_opts+=--layout=system --user-config=user-config.jam -$(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1 -$(package)_config_opts_linux=threadapi=pthread runtime-link=shared -$(package)_config_opts_android=threadapi=pthread runtime-link=static target-os=android -$(package)_config_opts_darwin=--toolset=darwin runtime-link=shared -$(package)_config_opts_mingw32=binary-format=pe target-os=windows threadapi=win32 runtime-link=static -$(package)_config_opts_x86_64_mingw32=address-model=64 -$(package)_config_opts_i686_mingw32=address-model=32 -$(package)_config_opts_i686_linux=address-model=32 architecture=x86 -$(package)_toolset_$(host_os)=gcc -$(package)_archiver_$(host_os)=$($(package)_ar) -$(package)_toolset_darwin=darwin -$(package)_archiver_darwin=$($(package)_libtool) -$(package)_config_libraries=chrono,filesystem,program_options,system,thread,test,date_time,regex,serialization,locale -$(package)_cxxflags=-std=c++11 -$(package)_cxxflags_linux=-fPIC -$(package)_cxxflags_freebsd=-fPIC + $(package)_config_opts_release=variant=release + $(package)_config_opts_debug=variant=debug + $(package)_config_opts+=--layout=tagged --user-config=user-config.jam + $(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1 + + # CRITICAL CHANGE: We force runtime-link=static for Linux to fix your linker errors + $(package)_config_opts_linux=threadapi=pthread runtime-link=static + + $(package)_config_opts_android=threadapi=pthread runtime-link=static target-os=android + $(package)_config_opts_darwin=--toolset=darwin runtime-link=shared address-model=64 + $(package)_config_opts_mingw32=binary-format=pe target-os=windows threadapi=win32 runtime-link=static + + $(package)_config_opts_x86_64_mingw32=address-model=64 + $(package)_config_opts_i686_mingw32=address-model=32 + $(package)_config_opts_i686_linux=address-model=32 architecture=x86 + + # Toolset definitions (Keep these! They tell Boost which compiler to use) + $(package)_toolset_$(host_os)=gcc + $(package)_archiver_$(host_os)=$($(package)_ar) + $(package)_toolset_darwin=darwin + $(package)_archiver_darwin=$($(package)_libtool) + + # CRITICAL UPDATE: Added context, coroutine (for LWS) and updated to C++17 (for Monero v0.18) + $(package)_config_libraries=chrono,filesystem,program_options,system,thread,test,date_time,regex,serialization,locale,context,coroutine + $(package)_cxxflags=-std=c++17 -fPIC endef define $(package)_preprocess_cmds - patch -p1 < $($(package)_patch_dir)/fix_aroptions.patch &&\ - patch -p1 < $($(package)_patch_dir)/fix_arm_arch.patch &&\ + # This block explicitly creates the config file so Boost uses the cross-compiler variables + # provided by the 'depends' system (CC, CXX, AR, etc.) echo "using $(boost_toolset_$(host_os)) : : $($(package)_cxx) : \"$($(package)_cxxflags) $($(package)_cppflags)\" \"$($(package)_ldflags)\" \"$(boost_archiver_$(host_os))\" \"$($(package)_arflags)\" \"$(host_STRIP)\" \"$(host_RANLIB)\" \"$(host_WINDRES)\" : ;" > user-config.jam endef @@ -44,4 +52,4 @@ endef define $(package)_stage_cmds ./b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install -endef +endef \ No newline at end of file