diff options
author | Wladimir J. van der Laan <laanwj@protonmail.com> | 2020-11-24 10:31:59 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@protonmail.com> | 2020-11-24 10:33:08 +0100 |
commit | 7ebbee551d78830770f8cb42b1983acbf97c2706 (patch) | |
tree | 6ab0905be3dcf080fdc98cfe3e011f868e3814f9 /doc/dependencies.md | |
parent | cb89e18845852c005ba8ab94acc6544d7c876a42 (diff) | |
parent | f190343c96520db254d6689f8f24c9eb36bead6b (diff) | |
download | bitcoin-7ebbee551d78830770f8cb42b1983acbf97c2706.tar.xz |
Merge #19764: depends: Split boost into build/host packages + bump + cleanup
f190343c96520db254d6689f8f24c9eb36bead6b depends: boost: Specify cflags+compileflags (Carl Dong)
b2328b7989997652af52295a4b2e988e68b8428b depends: boost: Remove unnecessary _archiver_ (Carl Dong)
ab9e047cc2226198d22384c286cb30c4c7d51e83 depends: boost: Cleanup toolset selection (Carl Dong)
86002e7e90d7c78d5a76a159bf17db48aec94f94 depends: boost: Cleanup architecture/address-model (Carl Dong)
d7048fa73fafaf0d89d891d98e51a251a64a1495 depends: boost: Disable all compression (Carl Dong)
9cf2ee54d366c3f5fcfce96244988858599e7e95 depends: boost: Split into non-/native packages (Carl Dong)
a57b49856033f3de4a861367b70aba85aec58cf8 depends: boost: Bump to 1.71.0 (Carl Dong)
800655ff3199782b803e671f5baa77ff90a5591d depends: boost: Refer to version in URL (Carl Dong)
Pull request description:
This PR improves the robustness of our boost package in depends, most notably:
1. Bumps boost from `1.70.0` to `1.71.0`, because `1.71.0`:
1. Removes the need to patch out the unused variable.
https://github.com/bitcoin/bitcoin/blob/f8462a6d2794be728cf8550f45d19a354aae59cf/depends/packages/boost.mk#L36
Upstream boost patched it out in https://github.com/boostorg/process/commit/d20b64cf37a773e452b84ce619752e3785be756c, which was first included in the `1.71.0` release
2. Comes packaged with a version of `b2` which allows us to override its `CXX` and `CXXFLAGS`. Previously, choosing a toolset while building `b2` such as `clang` or `gcc` would force `b2`'s build system to invoke the compiler as a bare, hardcoded `clang` or `gcc`. However, our `depends` build system often want to customize this behaviour, adding extra flags or invoking the compiler by an alternate name. So this is useful.
1. Commit where `CXX` was introduced: https://github.com/boostorg/build/commit/374f96516a6210687cdf63c987710501634bcac9
2. Commit where `CXXFLAGS` was introduced: https://github.com/boostorg/build/commit/5d49abc1f291573d4bdcd2ee647b05a66f9c6497
2. The boost package is now split into `native_b2` and `boost`, better representing what actually happens.
- In our `depends` build system, we have a distinction between `native` packages and non-`native` packages. The output of `native` packages are meant to be used on the machine that's performing the build, and the output of non-`native` packages are meant to be used on/for the machine that will ultimately be running bitcoin. Previously, `boost` existed in `depends` as a non-`native` package, but that's partly inaccurate because the `./bootstrap.sh` invocation in its `$(package)_config_cmds` stage actually produced a binary called `b2`, which is run on the machine that's performing the build. This means that `b2` is a `native` package which is being built in an environment set up for the non-`native` package `boost`. This reveals a hidden unintended behavior in our `depends` build system: for linux->darwin cross builds, we use `gcc` for `native` packages, and `clang` for non-`native` packages. But `b2` was actually being built using `clang`, since it was being built in an environment set up for non-`native` packages.
theuni you might be interested in taking a look
ACKs for top commit:
laanwj:
Concept and code review ACK f190343c96520db254d6689f8f24c9eb36bead6b
Tree-SHA512: f8b728a34da4f0a9a985a819a5762f2fc2689ea24c7eba1d24d26dfbd4c59f202227c699b0a4069dab10b6329cf9f4c6dd95082685776ee43dd5f7b659acdef1
Diffstat (limited to 'doc/dependencies.md')
0 files changed, 0 insertions, 0 deletions