Skip to content

bch: add pool-node body TUs to embedded body-test link set - #638

Closed
frstrtr wants to merge 1 commit into
masterfrom
bch/embedded-test-link-sources
Closed

bch: add pool-node body TUs to embedded body-test link set#638
frstrtr wants to merge 1 commit into
masterfrom
bch/embedded-test-link-sources

Conversation

@frstrtr

@frstrtr frstrtr commented Jul 4, 2026

Copy link
Copy Markdown
Owner

Fenced, additive, build-only fix for the BCH embedded body-test link set.

What

The BCH_EMBEDDED_BODY_TESTS foreach in src/impl/bch/test/CMakeLists.txt compiled only the coin-side TUs (transaction / coin_node / p2p_connection / p2p_node / rpc). It omitted the four pool-node body TUs that define the NodeImpl out-of-line methods (node.cpp), the Legacy/Actual p2p protocol dispatchers (protocol_legacy.cpp / protocol_actual.cpp), and the stratum BCHWorkSource ctor (stratum/work_source.cpp).

Any embedded body test that constructs the real pool-node graph hits undefined vtable/method symbols at link (the classic SOURCES-omission linker signature). This mirrors the four TUs already present in the shipping c2pool-bch target (src/c2pool/CMakeLists.txt) so the two link sets stay consistent.

Scope / isolation

Touches only src/impl/bch/test/CMakeLists.txt. Additive build-only, single-coin BCH, no shared base / bitcoin_family / src/core, no other-coin tree, no consensus value. Per-coin isolation holds.

Evidence

COIN_BCH Debug build: all four embedded body test binaries (bch_embedded_getwork_test, bch_embedded_seam_workview_test, bch_embedded_block_broadcast_test, bch_coin_node_seam_test) link green; 4/4 ctest pass.

No self-merge — for ci-steward matrix re-run + integrator full-rollup tap.

The BCH_EMBEDDED_BODY_TESTS foreach compiled only the coin-side TUs
(transaction/coin_node/p2p_connection/p2p_node/rpc), omitting the four
pool-node body TUs that define NodeImpl out-of-line methods (node.cpp),
the Legacy/Actual p2p protocol dispatchers (protocol_{legacy,actual}.cpp),
and the stratum BCHWorkSource ctor (stratum/work_source.cpp). Any embedded
body test that constructs the real pool node graph would hit undefined
vtable/method symbols at link. Mirror the four TUs already present in the
shipping c2pool-bch target so the link set is consistent.

Additive build-only, src/impl/bch/test/CMakeLists.txt only. No shared base,
no src/core, no other-coin tree, no consensus value; per-coin isolation
holds. Four embedded body tests link green + 4/4 ctest pass on COIN_BCH.
@frstrtr

frstrtr commented Jul 4, 2026

Copy link
Copy Markdown
Owner Author

Closing as a behaviorless no-op. Blocker was a static read of the pre-362ff299 foreach, not a captured CI red. Master 3b5267d links c2pool-bch clean (27/27 bch_ green, zero undefined-ref repro); the four pool-node TUs (node/protocol_actual/protocol_legacy/stratum/work_source.cpp) already land in the executable SOURCES via 362ff29, and no bch_ test in BCH_EMBEDDED_BODY_TESTS instantiates NodeImpl/handle_message/BCHWorkSource, so padding the foreach fixes nothing. Branch bch/embedded-test-link-sources preserved. Per integrator [s=bch-embedded-link-closed].

@frstrtr frstrtr closed this Jul 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant