Skip to content

Commit 90af01c

Browse files
committed
feat: declare the kernel-abi layer this package supplies
mcpp resolves the target side per layer after the dependency graph is known, and reads which layer a package fills from its capabilities. Declaring `mcpp:kernel-abi=openkal` states that this package implements the platform interface a C library sits on, and that it answers to the name `openkal`. The engine knows the three layer names and none of the implementations that fill them, so nothing about openkal appears in mcpp for this to work. Claude-Session: https://claude.ai/code/session_01Q4ucduLuSsETHYJ1RkGVVD
1 parent 01a676f commit 90af01c

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

mcpp.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,16 @@ name = "openkal-opensbi"
1717
version = "0.1.0"
1818
description = "An implementation of openkal on the RISC-V Supervisor Binary Interface, portable across every machine whose firmware provides one"
1919
license = "Apache-2.0"
20+
21+
# The layer this package supplies, in the vocabulary the engine resolves.
22+
#
23+
# `mcpp:kernel-abi` names the platform interface a C library sits on. On a
24+
# traditional stack that seam is unnamed — a C library issues system calls or
25+
# calls the platform's own entry points directly — and naming it is what lets
26+
# one C library sit above several platforms. `=openkal` is the interface this
27+
# package answers to; several packages answer to it and the engine knows none
28+
# of them by name.
29+
provides = ["mcpp:kernel-abi=openkal"]
2030
authors = ["mcpplibs"]
2131
repo = "https://github.com/mcpplibs/openkal-opensbi"
2232

0 commit comments

Comments
 (0)