bitcoin/src/kernel
merge-script 24817e8b15
Merge bitcoin/bitcoin#30814: kernel: Create usable static kernel library
0dd16d7118 build: Add a pkg-config file for libbitcoinkernel (TheCharlatan)
45be32f838 build: Produce a usable static kernel library (TheCharlatan)

Pull request description:

  Since the move to cmake, the kernel static library that is installed after a cmake --install build is unusable. It lacks symbols for the internal libraries, besides those defined in the kernel library target.

  Fix this by explicitly installing all the required internal static libraries. To make usage of these installed libraries easy, add a pkg-config file that can be used during linking.

  This patch can be tested with:

  ```
  cmake -B build -DBUILD_SHARED_LIBS=OFF -DBUILD_KERNEL_LIB=ON
  cmake --build build
  cmake --install build
  g++ -std=c++20 -o test_chainstate src/bitcoin-chainstate.cpp -I/home/drgrid/bitcoin/src $(pkg-config --libs --static libbitcoinkernel)
  ```

  Attempts to solve #30801

ACKs for top commit:
  hebasto:
    ACK 0dd16d7118.
  fanquake:
    ACK 0dd16d7118 - this looks like a good place to start.
  ryanofsky:
    Code review ACK 0dd16d7118

Tree-SHA512: 92f7bc959584bdc595f4aa6d0ab133355481075fe8564224fd7ac122fd7bdd75f98cf26ef0a6a7d84fd552d2258ddca1b674eca91122469a58bacc5f0a0ec2ef
2024-09-12 16:39:34 +01:00
..
bitcoinkernel.cpp
blockmanager_opts.h Add -blocksxor boolean option 2024-07-26 17:30:53 +02:00
chain.cpp validation: add ChainstateRole 2023-09-30 06:38:47 -04:00
chain.h validation: add ChainstateRole 2023-09-30 06:38:47 -04:00
chainparams.cpp refactor: Hand-replace some ParseHex -> ""_hex 2024-08-28 19:11:59 +02:00
chainparams.h testnet: Introduce Testnet4 2024-08-06 01:38:10 +02:00
chainstatemanager_opts.h kernel: De-globalize signature cache 2024-07-05 09:03:04 +02:00
checks.cpp kernel: Remove key module from kernel library 2024-05-09 15:56:08 +02:00
checks.h fix includes for touched header files (iwyu) 2023-05-29 13:26:31 +02:00
CMakeLists.txt Merge bitcoin/bitcoin#30814: kernel: Create usable static kernel library 2024-09-12 16:39:34 +01:00
coinstats.cpp scripted-diff: Replace error() with LogError() 2024-03-11 13:49:37 +01:00
coinstats.h coinstats: Fix hash_serialized2 calculation 2023-10-20 22:53:05 +02:00
context.cpp kernel: Only setup kernel context globals once 2024-07-30 18:07:21 +02:00
context.h kernel: Remove key module from kernel library 2024-05-09 15:56:08 +02:00
cs_main.cpp kernel: add missing include 2023-02-22 15:46:21 +00:00
cs_main.h refactor: add kernel/cs_main.* 2023-01-05 09:05:14 +00:00
disconnected_transactions.cpp bugfix: correct DisconnectedBlockTransactions memory usage 2023-10-19 16:14:36 +01:00
disconnected_transactions.h bugfix: correct DisconnectedBlockTransactions memory usage 2023-10-19 16:14:36 +01:00
mempool_entry.h tx fees: update m_from_disconnected_block to m_mempool_limit_bypassed 2024-01-02 12:41:01 +01:00
mempool_limits.h refactor: mempool: add MemPoolLimits::NoLimits() 2022-10-05 13:07:11 +01:00
mempool_options.h policy: enable full-rbf by default 2024-08-02 20:22:20 +00:00
mempool_removal_reason.cpp move-only: Create src/kernel/mempool_removal_reason.h 2023-08-17 16:26:20 +02:00
mempool_removal_reason.h move-only: Create src/kernel/mempool_removal_reason.h 2023-08-17 16:26:20 +02:00
messagestartchars.h kernel: Move MessageStartChars to its own file 2023-09-12 22:51:38 +02:00
notifications_interface.h tidy: modernize-use-equals-default 2024-07-08 11:12:01 +02:00
warning.h introduce and use the generalized node::Warnings interface 2024-06-13 11:20:48 +01:00