Skip to content

Commit 18ed0ac

Browse files
committed
feat: require an llvm-family compiler, and name the compiler-runtime layer
⚠️ 实测:该层名在 2026.8.24.2 之前的每一个已发布构建工具上都让整份清单 加载失败 —— 不是「该层被忽略」,是这个包用不了: error: dependency 'openkal-llvm-runtime': mcpp.toml: error: `provides = ["mcpp:compiler-runtime=compiler-rt"]` names no capability mcpp knows. 那条拒绝本身已在 mcpp 2026.8.24.2 修掉(依赖的清单里出现未知层名改为警告并 忽略,根工程自己的仍然报错),但**修复不能追溯到已经发布出去的工具**。 本仓 CI 的 MCPP_VERSION 目前是 2026.8.19.4。 `requires = ["mcpp:compiler=llvm"]` 保留 —— 实测旧引擎忽略未知的 [package] 键, 因此这一半今天就能发。声明留在注释里,连同它的依据与解除条件。 engine: mcpp-community/mcpp#494
1 parent 78c0733 commit 18ed0ac

1 file changed

Lines changed: 22 additions & 12 deletions

File tree

mcpp.toml

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,28 @@ repo = "https://github.com/mcpplibs/openkal-llvm-runtime"
1818
# The older spelling is kept beside the current one so that an engine
1919
# predating the layer vocabulary still recognises this package. Both name the
2020
# same layer; a newer engine reads the second and ignores the first.
21-
provides = [
22-
"hosted-standard-library",
23-
"mcpp:c++-abi=libc++",
24-
# ⭐ AND THE COMPILER RUNTIME, WHICH IS THE LARGER HALF OF THIS PACKAGE.
25-
#
26-
# Measured: of the 729 objects this package builds, 498 are compiler-rt's
27-
# builtins and 21 are libunwind's. Those are what a C PROGRAM needs —
28-
# `__udivti3` and its relatives have nothing to do with C++ — and declaring
29-
# them under the C++ layer said this package supplied something it does not
30-
# and concealed something it does.
31-
"mcpp:compiler-runtime=compiler-rt",
32-
]
21+
provides = ["hosted-standard-library", "mcpp:c++-abi=libc++"]
22+
23+
# ⚠️ THE COMPILER RUNTIME IS THE LARGER HALF OF THIS PACKAGE AND IS NOT YET
24+
# DECLARED, BECAUSE DECLARING IT WOULD MAKE THIS MANIFEST UNREADABLE TO EVERY
25+
# RELEASED BUILD TOOL.
26+
#
27+
# Measured: of the 729 objects built here, 498 are compiler-rt's builtins and 21
28+
# are libunwind's. Those are what a C PROGRAM needs — `__udivti3` and its
29+
# relatives have nothing to do with C++ — so declaring them under the C++ layer
30+
# says this package supplies something it does not and conceals something it
31+
# does.
32+
#
33+
# The layer is named `mcpp:compiler-runtime` from mcpp 2026.8.24.2, and a build
34+
# tool released before that reports:
35+
#
36+
# error: `provides = ["mcpp:compiler-runtime=compiler-rt"]` names no
37+
# capability mcpp knows.
38+
#
39+
# ⚠️ That refusal is itself fixed in 2026.8.24.2 — an unknown layer name in a
40+
# DEPENDENCY's manifest is now ignored with a warning rather than refused — but
41+
# the fix cannot apply retroactively to tools already released. The declaration
42+
# is therefore added once this package's floor moves to 2026.8.24.2.
3343

3444
# What this package needs of the layer it does not supply.
3545
#

0 commit comments

Comments
 (0)