Skip to content

Commit d6395bd

Browse files
committed
fix(examples, record): follow the farms that answer for their own members
`compat:vulkan-runtime` published a farm whose members needed four sonames nothing on the artifact's search path carried. The three examples that pin it moved to 2026.09.10, where the farm closes over its own members and reaches the host only through a named `*-host-link` package. Measured on this host, the vulkan example's own record before and after: members 55, walked 55, missing 4, dangling 0 members 60, walked 59, missing 0, dangling 1 The one remaining finding is `libcrypto.so.1.1`, and it is dangling rather than missing because the publishing package now says so: OpenSSL 1.1 is end-of-life upstream, the ecosystem publishes 3.x, and only NVIDIA's PKCS#11 provider asks for it. `libcrypto.so.3` comes from `xim:openssl` and `libnvcuvid.so.1` from `xim:nvidia-video-host-link`; no branch harvests a new file from /usr/lib. The example still runs on the device: `12 24 36 48` and `device: NVIDIA GeForce RTX 4080`. Section 7 of the design record no longer files those four findings as open. It records what repairing them found instead: the defect was in three farms rather than one, mcpplibs/mcpp-index#376 named the wrong one -- the four came from `compat:opencl-runtime` -- and the reason written against the fix had measured the set before the driver's settings GUI was excluded. Follows mcpplibs/mcpp-index#380 and openxlings/xim-pkgindex#801.
1 parent a788a41 commit d6395bd

4 files changed

Lines changed: 25 additions & 8 deletions

File tree

.agents/docs/2026-09-09-dlopen-surface-and-two-unwinders.md

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -603,11 +603,28 @@ already filed as mcpp-index#376, reached this time through
603603
| `libnvidia-pkcs11.so.550.144.03` | `libcrypto.so.1.1` | same |
604604

605605
All four are real and all four are the same shape as mcpp#596 -- a farm that
606-
mirrors a driver family and stops one library short. They are NOT repaired
607-
here: a check whose first catch is its author's own package should report it,
608-
not quietly absorb it, and the repair belongs to `compat:vulkan-runtime` with
609-
its own criterion, filed as mcpplibs/mcpp-index#376. On a runner with no NVIDIA driver the farm is nearly empty
610-
and the check is silent, so this does not appear in CI.
606+
mirrors a driver family and stops one library short. They were filed rather
607+
than absorbed, as mcpplibs/mcpp-index#376, and repaired there in
608+
mcpplibs/mcpp-index#380. On a runner with no NVIDIA driver the farm is nearly
609+
empty and the check is silent, so this never appeared in CI.
610+
611+
WHAT THE REPAIR FOUND THAT THE FILING DID NOT. The defect is in three farms,
612+
not one, and the issue names the wrong one: the four findings above were
613+
published by `compat:opencl-runtime`, while `compat:vulkan-runtime` had five
614+
and `compat:glx-runtime` -- which had no closure pass at all -- had thirty.
615+
The cause is one rule: membership is decided by a filename pattern while
616+
completeness was decided against the ICD manifests, so the half of each farm
617+
the pattern exists for is the half nothing verified. The reason recorded
618+
against seeding the closure from the farm turned out to have measured the
619+
set BEFORE `never_farm_patterns` removed the driver's settings GUI; measured
620+
after, it adds five libraries and no GUI stack.
621+
622+
The repair also holds the host surface down rather than widening it. Every
623+
soname a member needs now has a written answer -- an ecosystem package
624+
declared in `deps`, a `*-host-link` sentinel for what cannot be
625+
redistributed (openxlings/xim-pkgindex#801 adds one for the codec
626+
user-space), a named entry in `UNSERVED` with its reason, or a warning at
627+
install time. No branch harvests a new file from `/usr/lib`.
611628

612629
## 8. Order
613630

examples/09-heterogeneous/multi-backend/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ cuda-driver = "2026.09.05"
104104
# is a payload and the hardware ones are the host's.
105105
[target.'cfg(accelerator = "vulkan")'.dependencies.compat]
106106
vulkan = "1.4.357.0"
107-
vulkan-runtime = "2026.09.07"
107+
vulkan-runtime = "2026.09.10"
108108

109109
[build]
110110
# The device sources carry the accel they are for. A CONSTRAINED glob gates

examples/09-heterogeneous/vulkan/app/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ plugins = { version = "0.5.2", features = ["rules-spirv"], host-module = true }
2222
# below is a payload and the hardware ones are the host's.
2323
[dependencies.compat]
2424
vulkan = "1.4.357.0"
25-
vulkan-runtime = "2026.09.07"
25+
vulkan-runtime = "2026.09.10"
2626

2727
# ONE payload here, and the shader compiler is not it: `mcpp.rules.spirv`
2828
# declares `xim:glslang` for itself. What stays is a DEVICE, and the boundary is

examples/10-graphics/offscreen/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ vulkan = "1.4.357.0"
3535
# concern by construction: macOS resolves through dyld and Windows through the
3636
# PE loader, and neither has a private loader to work around.
3737
[target.'cfg(linux)'.dependencies.compat]
38-
vulkan-runtime = "2026.09.07"
38+
vulkan-runtime = "2026.09.10"
3939

4040
# A Vulkan device that needs no GPU, so this example runs on a machine that has
4141
# none. It is a DEVICE and therefore a payload; the drivers a real GPU needs are

0 commit comments

Comments
 (0)