Skip to content

feat: bring SolidSyslog into the build, nothing wired yet - #28

Merged
DavidCozens merged 1 commit into
mainfrom
stage/linked
Jul 29, 2026
Merged

feat: bring SolidSyslog into the build, nothing wired yet#28
DavidCozens merged 1 commit into
mainfrom
stage/linked

Conversation

@DavidCozens

@DavidCozens DavidCozens commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Pull request

What this stage adds

SolidSyslog enters the CMake build and its lwIP adapter pack compiles against our lwipopts.h, but
no application code calls into either yet. --gc-sections strips all of it, so the cost above the
frozen baseline is 0 bytes on every axis — flash, RAM, heap and both task stacks.

That zero is the point: linking a platform pack you do not call is free, and the measurement is
honest enough to show it.

Checklist

  • The diff is build-system only — this is deliberately the commit where SolidSyslog enters
    the build, kept apart from any wiring step so a non-CMake integrator can discard it whole.
    (The template's "application-only" wording does not fit this one stage; noted rather than
    ticked falsely.)
  • measurements/linked.csv committed, and a row added to measurements/stages.tsv.
  • README regenerated: python3 scripts/gen-cost-table.py.
  • ./run.sh green (build + QEMU + baseline self-check) — run-report.md committed.

Context for review: this is 1 of 21 sequential single-commit PRs replaying the integration on
top of the Baseline root. Each lands green and reviewed before the next is built on it, because a
change to an early commit would force every commit above it to be re-run and re-measured.

Summary by CodeRabbit

  • New Features

    • Added SolidSyslog with lwIP raw-mode support to the firmware build.
    • Confirmed the linked stage adds no flash or RAM overhead.
  • Documentation

    • Updated build-stage descriptions and cost tables to reflect the linked configuration.
    • Revised run metrics and self-check references, with validation remaining successful.

SolidSyslog enters the build and its lwIP adapter pack compiles against our
lwipopts.h under our warning bar, but no application code calls into either yet.
--gc-sections strips all of it, so the cost above the frozen baseline is 0 bytes
on every axis — flash, RAM, heap, and both task stacks. That zero is the point:
linking a platform pack you do not call is free, and the measurement is honest
enough to show it.

Three lines carry it. FetchContent nests the library under this build.
SOLIDSYSLOG_PLATFORMS states the platforms rather than letting the library infer
them from whatever the environment exports — lwIP alone, because nothing at this
stage reaches any other pack. Then one link line for the Core library plus the
pack.

Getting to three lines took two fixes in the library, both found by this build
being its first consumer from outside its own repository: it could not be used as
a CMake subproject at all, and platform packs could only be selected by
environment variables a real integrator would not have. Without the second, Core
would also have shipped without its senders for a selection like this one.

Pinned to a commit because the library has no release tag yet.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 58280a0f-8374-4ef8-9809-8b245697b3e2

📥 Commits

Reviewing files that changed from the base of the PR and between 9a071e6 and 7d3ccd2.

⛔ Files ignored due to path filters (2)
  • measurements/linked.csv is excluded by !**/*.csv
  • measurements/stages.tsv is excluded by !**/*.tsv
📒 Files selected for processing (3)
  • CMakeLists.txt
  • README.md
  • run-report.md

📝 Walkthrough

Walkthrough

The build now fetches and links SolidSyslog with the LwipRaw backend. README.md and run-report.md update the linked-stage description, cost table, mbedTLS measurements, and self-check references.

Changes

SolidSyslog linking and measurements

Layer / File(s) Summary
SolidSyslog build integration
CMakeLists.txt
CMake fetches a pinned SolidSyslog revision, selects LwipRaw, and links SolidSyslog and SolidSyslog::LwipRaw to baseline.
Linked-stage reporting
README.md, run-report.md
Documentation changes the stage from Baseline to Linked and updates flash, RAM, mbedTLS metrics, and self-check values.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding SolidSyslog to the build without wiring it into the app yet.
Description check ✅ Passed The description matches the template, includes the required stage summary and checklist, and is mostly complete.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch stage/linked

Comment @coderabbitai help to get the list of available commands.

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