Skip to content

Commit 9a8c5ee

Browse files
committed
compat.glfw: the Win32 backend states the system interface it calls (mcpp:kernel-abi=windows)
As the Linux row states glibc. The MSVC row, the MinGW-w64 payload and the mingw-w64-sysroot base answer it under every mcpp the index admits, since the payload's kernel-abi is the target's system. A Windows identity whose system interface is openkal (openkal-musl over openkal-windows) has no window system and is refused at resolution, naming the requirement, instead of failing in <windows.h>. A requirement on c-abi=ucrt would refuse this package on MSVC under mcpp 2026.11.3.1 to 2026.11.10.1, which answer msvc there.
1 parent f53145b commit 9a8c5ee

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99

1010
### Fixed
1111

12+
- **compat.glfw:Win32 后端以 `requires = { "mcpp:kernel-abi=windows" }` 陈述它直接调用的系统接口。** MSVC 行、MinGW-w64 载荷与
13+
mingw-w64-sysroot 基座都回答 `windows`,且本索引接受的每个 mcpp 版本都如此回答(载荷的 kernel-abi 即目标的系统);openkal-musl
14+
经 openkal-windows 的 Windows 身份回答 `openkal`,没有窗口系统,在解析期以该要求被拒绝,不再在 `<windows.h>` 处编译失败。
15+
要求写在 `c-abi=ucrt` 上则会使 2026.11.3.1–2026.11.10.1 在 MSVC 上拒绝本包(这些版本对 MSVC 回答 `msvc`)。
16+
1217
- **compat.mimalloc:ok 映像不再链接 `-lpthread`、`-lrt`,Linux 不再链接 `-latomic`。** ok 映像(`<arch>-openkal`)原先读 `linux`
1318
块,链接时找不到这两个归档;新增 `openkal` 块,不列链接参数。`-latomic` 上游只在找到时才链接,mimalloc 的原子操作在本索引
1419
构建的各架构上都是无锁的,LLVM 工具链在图中 C 库之上没有这个归档。

‎pkgs/c/compat.glfw.lua‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,17 @@ package = {
155155
},
156156
},
157157
windows = {
158+
-- THE WIN32 BACKEND CALLS THE WINDOWS SYSTEM INTERFACE DIRECTLY
159+
-- (<windows.h>, user32, gdi32): a requirement on the kernel-abi
160+
-- layer of the target side (mcpp SPEC-002 §2.2), as the Linux row
161+
-- states glibc. Every route that has the Win32 API answers it --
162+
-- the MSVC row, the MinGW-w64 payload and the mingw-w64-sysroot
163+
-- base -- under every mcpp the index admits, since the answer is
164+
-- the target's system. A Windows identity whose system interface
165+
-- is another (openkal-musl over openkal-windows answers `openkal`)
166+
-- has no window system, and is refused at resolution, naming this
167+
-- requirement.
168+
requires = { "mcpp:kernel-abi=windows" },
158169
cflags = { "-D_GLFW_WIN32", "-DUNICODE", "-D_UNICODE" },
159170
sources = {
160171
"src/win32_time.c",

0 commit comments

Comments
 (0)