From ec003af06667852e6e3f6a671ddcf76075ae989f Mon Sep 17 00:00:00 2001 From: sunrisepeak Date: Thu, 20 Aug 2026 20:57:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(openkal):=200.5.2=20=E2=80=94=E2=80=94=20?= =?UTF-8?q?=E5=86=BB=E7=BB=93=E5=B8=83=E5=B1=80=E7=9A=84=E6=96=AD=E8=A8=80?= =?UTF-8?q?=E6=AD=A4=E5=89=8D=E5=8F=AA=E6=8F=8F=E8=BF=B0=E4=BA=86=2064=20?= =?UTF-8?q?=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `kal_node_info` 的断言写的是 `offsetof(modified_ns) == sizeof(kal_uintptr)`, 在 64 位上成立、在 32 位上不成立:`modified_ns` 是自然对齐的 `kal_u64`, 4 字节的 `size` 之后补 4 字节填充,偏移仍停在 8。 0.5.2 改成 `== 8`,与指针宽度无关——那正是冻结布局想要的性质——并一并断言 `sizeof(kal_node_info) == 24`(两种宽度同样成立)。 ⚠️ openkal 自己的 CI 在结构上发现不了它:那里每一行都是宿主构建,而宿主 全是 64 位。缺陷在**消费者**处暴露(`mcpplibs/riscv-virt-rt` 的 rv32 腿), 那是 32 位布局唯一被实例化的地方。0.5.2 因此补了一条 rv64/rv32 两个目标的 只编译 ABI 检查。 两端逐字节核验一致。 --- pkgs/o/openkal.lua | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pkgs/o/openkal.lua b/pkgs/o/openkal.lua index 1d4f8bc..905e7bf 100644 --- a/pkgs/o/openkal.lua +++ b/pkgs/o/openkal.lua @@ -22,6 +22,13 @@ package = { xpm = { linux = { + ["0.5.2"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.5.2.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.5.2/openkal-0.5.2.tar.gz", + }, + sha256 = "f0d97398391b77adf1958dc78ff6fcb96fc6bdeb6652a7b7f7d5cb83fb300327", + }, ["0.5.1"] = { url = { GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.5.1.tar.gz", @@ -38,6 +45,13 @@ package = { }, }, macosx = { + ["0.5.2"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.5.2.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.5.2/openkal-0.5.2.tar.gz", + }, + sha256 = "f0d97398391b77adf1958dc78ff6fcb96fc6bdeb6652a7b7f7d5cb83fb300327", + }, ["0.5.1"] = { url = { GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.5.1.tar.gz", @@ -54,6 +68,13 @@ package = { }, }, windows = { + ["0.5.2"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.5.2.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.5.2/openkal-0.5.2.tar.gz", + }, + sha256 = "f0d97398391b77adf1958dc78ff6fcb96fc6bdeb6652a7b7f7d5cb83fb300327", + }, ["0.5.1"] = { url = { GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.5.1.tar.gz",