#36023 build: Always define HAVE_SYSTEM
| Reviewability | Reviews | Agreement | Size | ||||
|---|---|---|---|---|---|---|---|
| #36023 build: Always define HAVE_SYSTEM | Author silent 74d | 0 | Mild | 1 | |||
|
|
|
|
| |||
Reviewability: ReadyStalePaused Agreement: StrongPositivePositive w/ caveatsNeutralMildDisputedBlockedCrickets Reviews: current code-review ACKs, then (+stale ACKs) and -NACKs; greener = more ACKs. Size: lines added or modified outside tests, then in tests; greener = smaller. | |||||||
Goal
Switches the CMake definition of HAVE_SYSTEM in bitcoin-build-config.h.in from #cmakedefine to #cmakedefine01. This ensures HAVE_SYSTEM is always defined as either 1 or 0 instead of being left undefined when std::system is absent.
Problem: When compiling on platforms lacking std::system (such as iOS), an undefined HAVE_SYSTEM triggers -Wundef compiler warnings at #if HAVE_SYSTEM check sites.
Reviewability
Stale · Author silent 74d
No author activity for 74 days; a review may wait a long time for a response.
Agreement
Mild
objection that needs a change was answered, no reply from the objector (fanquake: unmotivated build configuration changes and code churn)
Thread notes: Initial assessment. Recorded fanquake's objection regarding unmotivated macro changes, which remains open despite the author dropping HAVE_FDATASYNC.
Objections, suggestions, and questions:
| Reviewer | Type | Harm, request, or question | Status | Must be | Author replied | Quote |
|---|---|---|---|---|---|---|
| fanquake (member) | objection, approach | unmotivated build configuration changes and code churn | answered · reply on record; standing not assessed yet · v1, not yet re-checked | changed | yes | 2026-08-19: 'Please don't make random changes for no reason.' |
Participants:
- fanquake (member, objection, 1 statements 2026-08-19 to 2026-08-19): objected to making random changes without reason
- hebasto (member, question, 1 statements 2026-08-19 to 2026-08-19): asked whether reverting the earlier call site change would be better
- maflcko (member, question, 1 statements 2026-08-19 to 2026-08-19): suggested enforcing a single style across the codebase with a linter
Files
0 lines under test/bench/ci.
- cmake/bitcoin-build-config.h.in +1/-1
Card
The short text the ranking pass compares across PRs.
Changes the CMake build configuration for HAVE_SYSTEM to use #cmakedefine01 so it is always defined as 0 or 1. This prevents -Wundef warnings when building the kernel on platforms lacking std::system, such as iOS. Initial reviewer feedback questioned making ad-hoc macro changes without a consistent style or linter. The patch is small and ready for review.
Data
thread read through 2026-08-19 (4 statements), head 013fffe371
Discussion read under schema 1 rules: suggestions and questions may be missing, and an objection may combine several harms (schema history).
labels: Build system
Categories
Build and CI
P4 · cleanup
Switches HAVE_SYSTEM to cmakedefine01 to avoid a -Wundef compiler warning on platforms lacking std::system like iOS. Minor warning cleanup on an unsupported platform with minimal impact on build operations.
Membership: Touches cmake/bitcoin-build-config.h.in and carries the Build system label.
Factors: security/stability 0, bug 0, performance 0, user value 0, leverage 0