Skip to content

ci: run the experimental EmbCC-kernel native presets (M2 leftover) - #45

Open
teo1747 wants to merge 6 commits into
mainfrom
ci/m2-embcc-leg
Open

teo1747 wants to merge 6 commits into
mainfrom
ci/m2-embcc-leg

Conversation

@teo1747

@teo1747 teo1747 commented Oct 31, 2026 •

Copy link
Copy Markdown
Member

Contains #42, #43 and #44 as its base: merge them first, after which this diff shows only the CI leg and its docs.

Adds the EmbCC CI leg that ci.yml had promised "when the compiler is available to CI" (09 §11).

  • A new embcc job installs the EmbCC 0.0.1-beta Linux x86-64 release archive, verified against a SHA-256 pinned in the workflow.
  • It configures, builds and tests the four experimental mixed presets (native-embcc, -release, -tiny, -periodic): an EmbCC-built kernel with a GCC-built POSIX host (ADR-041).
  • The merge gate requires it.

Evidence (first CI run on this PR)

Preset CTest targets
native-embcc 20 / 20
native-embcc-release 20 / 20
native-embcc-periodic 20 / 20
native-embcc-tiny 17 / 17

Each log confirms the kernel compiler: Mixed native build: kernel=.../embcc (EmbCC 0.0.1-beta ...); host=/usr/bin/gcc.

Docs

docs/engineering/embcc-native-linux.md (new CI-leg section), STATUS and CHANGELOG.

The release is newer than the source revision behind the earlier local evidence; to update it, change the version and the digest together.

CONFIG_EMB_WORKQ_STATS (off by default) completes KRN-WQ-011.
emb_workq_get_stats() reports, per queue, the worst submit-to-start
latency, the longest handler with its function and the deepest backlog.
emb_workq_reset_stats() restarts the maxima. Both are thread and ISR
safe, O(1), with API IDs 143 and 144.

Times are kernel-clock ticks. Each work item gains a submit timestamp. A
resubmission while the handler runs starts the latency of the run it
queues, and flush markers are not counted.

native-timeslice now also builds the option and runs the new
conformance case, which was also checked under QEMU Cortex-M4 with the
option set. A65 records the contract.

Signed-off-by: teo1747 <motsoujunior17@gmail.com>
A new embcc job installs the EmbCC 0.0.1-beta Linux x86-64 release,
checked against a pinned SHA-256. It then configures, builds and tests
native-embcc, -release, -tiny and -periodic: an EmbCC-built kernel with
a GCC-built POSIX host (ADR-041). The merge gate requires it.

Signed-off-by: teo1747 <motsoujunior17@gmail.com>
The embcc job's first run passed 20, 20, 20 and 17 CTest targets for the
checked, release, periodic and tiny presets with an EmbCC 0.0.1-beta
kernel. The Linux integration report, STATUS and CHANGELOG now say that
the leg exists, is merge-gated and is pinned by version and digest.

Signed-off-by: teo1747 <motsoujunior17@gmail.com>
@teo1747
teo1747 marked this pull request as ready for review October 31, 2026 00:22

This branch has not been deployed

No deployments
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