You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
babb9f5 depends: remove non-native libmultiprocess build (Cory Fields)
5d105fb depends: Switch libmultiprocess packages to use local git subtree (Ryan Ofsky)
9b35518 depends, moveonly: split up int_get_build_id function (Ryan Ofsky)
2d373e2 lint: Add exclusions for libmultiprocess subtree (Ryan Ofsky)
e88ab39 doc: Update documentation to explain libmultiprocess subtree (Ryan Ofsky)
d4bc563 cmake: Fix clang-tidy "no input files" errors (Ryan Ofsky)
abdf3cb cmake: Fix warnings from boost headers (Ryan Ofsky)
8532fcb cmake: Fix ctest mptest "Unable to find executable" errors (Ryan Ofsky)
d597ab1 cmake: Support building with libmultiprocess subtree (Ryan Ofsky)
69f0d4a scripted-diff: s/WITH_MULTIPROCESS/ENABLE_IPC/ in cmake (Ryan Ofsky)
a2f28e4 Squashed 'src/ipc/libmultiprocess/' content from commit 35944ffd23fa (Ryan Ofsky)
d6244f8 depends: Update libmultiprocess library to simplify cmake subtree build (Ryan Ofsky)
Pull request description:
This adds the [libmultiprocess](https://github.com/chaincodelabs/libmultiprocess) library and code generator as a subtree in `src/ipc/libmultiprocess` and allows it to be built with the cmake `-DENABLE_IPC` option, which is disabled by default.
This PR does not entirely remove the depends system [libmultiprocess package](https://github.com/bitcoin/bitcoin/blob/master/depends/packages/native_libmultiprocess.mk) because the package is useful when cross compiling. (A cross-compiling cmake build cannot easily build and run a native code generation tool.) However, it does update the depends package to build from the new git subtree, instead of being downloaded separately from github, so the same sources are used to build both the runtime library and the code generator.
This PR includes the following manual changes (not created automatically with `git subtree add`) which just update the build system and documentation:
- [`d6244f85c509` depends: Update libmultiprocess library to simplify cmake subtree build](bitcoin/bitcoin@d6244f8)
- [`69f0d4adb72c` scripted-diff: s/WITH_MULTIPROCESS/ENABLE_IPC/ in cmake](bitcoin/bitcoin@69f0d4a)
- [`d597ab1dee6b` cmake: Support building with libmultiprocess subtree](bitcoin/bitcoin@d597ab1)
- [`8532fcb1c30d` cmake: Fix ctest mptest "Unable to find executable" errors](bitcoin/bitcoin@8532fcb)
- [`abdf3cb6456f` cmake: Fix warnings from boost headers](bitcoin/bitcoin@abdf3cb)
- [`d4bc5639829f` cmake: Fix clang-tidy "no input files" errors](bitcoin/bitcoin@d4bc563)
- [`e88ab394c163` doc: Update documentation to explain libmultiprocess subtree](bitcoin/bitcoin@e88ab39)
- [`2d373e27071f` lint: Add exclusions for libmultiprocess subtree](bitcoin/bitcoin@2d373e2)
- [`9b35518d2f3f` depends, moveonly: split up int_get_build_id function](bitcoin/bitcoin@9b35518)
- [`5d105fb8c3ff` depends: Switch libmultiprocess packages to use local git subtree](bitcoin/bitcoin@5d105fb)
- [`babb9f5db641` depends: remove non-native libmultiprocess build](bitcoin/bitcoin@babb9f5)
---
Previous minisketch subtree PR #23114 may be useful for comparison
Instructions for subtree verification can be found:
- https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#subtrees
- https://github.com/bitcoin/bitcoin/tree/master/test/lint#git-subtree-checksh
TL&DR:
```sh
git remote add --fetch libmultiprocess https://github.com/chaincodelabs/libmultiprocess.git
test/lint/git-subtree-check.sh -r src/ipc/libmultiprocess
```
---
This PR is part of the [process separation project](bitcoin/bitcoin#28722).
ACKs for top commit:
Sjors:
re-ACK babb9f5
TheCharlatan:
tACK babb9f5
vasild:
ACK babb9f5
Tree-SHA512: 43d4eecca5aab63e55c613de935965666eaced327f9fe859a0e9c9b85f7685dc16c5c8d6e03e09ca998628c5d468633f4f743529930b037049abe8e0101e0143
cmake_dependent_option(WITH_DBUS "Enable DBus support."ON"CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND BUILD_GUI"OFF)
155
155
156
-
option(WITH_MULTIPROCESS "Build multiprocess bitcoin-node and bitcoin-gui executables in addition to monolithic bitcoind and bitcoin-qt executables. Requires libmultiprocess library. Experimental."OFF)
157
-
if(WITH_MULTIPROCESS)
156
+
option(ENABLE_IPC "Build multiprocess bitcoin-node and bitcoin-gui executables in addition to monolithic bitcoind and bitcoin-qt executables. Requires libmultiprocess library. Experimental."OFF)
157
+
cmake_dependent_option(WITH_EXTERNAL_LIBMULTIPROCESS "Build with external libmultiprocess library instead of with local git subtree when ENABLE_IPC is enabled. This is not normally recommended, but can be useful when cross-compiling or making changes to the upstream project."OFF"ENABLE_IPC"OFF)
Copy file name to clipboardExpand all lines: doc/design/libraries.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@
8
8
|*libbitcoin_crypto*| Hardware-optimized functions for data encryption, hashing, message authentication, and key derivation. |
9
9
|*libbitcoin_kernel*| Consensus engine and support library used for validation by *libbitcoin_node*. |
10
10
|*libbitcoinqt*| GUI functionality used by *bitcoin-qt* and *bitcoin-gui* executables. |
11
-
|*libbitcoin_ipc*| IPC functionality used by *bitcoin-node*, *bitcoin-wallet*, *bitcoin-gui* executables to communicate when [`-DWITH_MULTIPROCESS=ON`](multiprocess.md) is used. |
11
+
|*libbitcoin_ipc*| IPC functionality used by *bitcoin-node*, *bitcoin-wallet*, *bitcoin-gui* executables to communicate when [`-DENABLE_IPC=ON`](multiprocess.md) is used. |
12
12
|*libbitcoin_node*| P2P and RPC server functionality used by *bitcoind* and *bitcoin-qt* executables. |
13
13
|*libbitcoin_util*| Home for common functionality shared by different executables and libraries. Similar to *libbitcoin_common*, but lower-level (see [Dependencies](#dependencies)). |
14
14
|*libbitcoin_wallet*| Wallet functionality used by *bitcoind* and *bitcoin-wallet* executables. |
0 commit comments