AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Informational 17 Bitcoin

fix(xbuild): keep a separate .d file per output

Public commit record

What the developer wrote

Authored by tychovrahe

80/100 · Strong
fix(xbuild): keep a separate .d file per output

The compiler's dependency file was named by replacing the output's extension, so the object and the preprocessed (qstr collection) output of the same C source shared one .d file. The collection pass runs with NO_QSTR and never includes the generated qstr header, so its .d overwrote the object's and an incremental build no longer saw that header change: after adding a qstr, py/qstr.o was not rebuilt and every later qstr index was off by one. Append .d to the output name instead.

[no changelog]

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This is a build-system bug fix, not a security vulnerability. The change fixes how dependency files are named during compilation so that incremental builds correctly detect when generated header files change. Previously, two build stages could overwrite each other's dependency tracking files, causing stale object files and incorrect internal string indexes in the MicroPython runtime. There is no direct exploit path from this commit.

Recommended action

No security action required. Treat as a normal build-system reliability fix. If desired, verify that incremental builds now correctly rebuild `py/qstr.o` after adding a new qstr.

Security signals we found

01

No security-relevant code paths are modified.

02

No input validation, cryptography, memory management, or authentication logic is touched.

03

The bug could theoretically cause a firmware build to contain stale/inconsistent qstr indexes, but no exploit mechanism is described or evident.

04

Commit message and diff contain no security keywords or threat model.

Risk score

Why this scored 17/100

Our methodology →
Potential impact 2/30
Exploitability 0/25
Stealth signal 1/15
Affected reach 2/15
Confidence 8/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.