chore(xpkg): 0.0.57 - #202
Merged
Merged
Conversation
elfpatch now stamps DT_RPATH on executables instead of DT_RUNPATH. DT_RUNPATH is consulted only for the object carrying it; DT_RPATH is consulted for every dlopen anywhere in the process. The graphics stack's load chain is three to four dlopens deep, so only the transitive tag reaches the bottom — measured, the same path content stamped DT_RPATH puts GLX, EGL, GLESv2 and headless surfaceless EGL all on the GPU, and stamped DT_RUNPATH renders on llvmpipe. Executables only. Forcing DT_RPATH on a library is measured harmful (xim-pkgindex#593) because transitivity runs downward too. All THREE platform sections, verified by PARSING the recipe rather than reading the diff — a regex edit to a .lua applies cleanly and can mean something else: linux 0.0.57=yes sha=7b24c2f156ce versions=18 macosx 0.0.57=yes sha=7b24c2f156ce versions=18 windows 0.0.57=yes sha=7b24c2f156ce versions=18 CN mirror uploaded and verified by SIZE (gitcode returns 200 with an HTML landing page for an asset that is not there, so the status code proves nothing): 147212 bytes, matching the GitHub archive. Upstream: openxlings/libxpkg#41
Member
Author
那个红格早于本 PR,不是它造成的
根因:该 job 下载固定版本的 mcpp 2026.8.8.2并使用它自带的索引;而 这是跨索引版本要求与固定工具链版本的错配 —— 提高一个 本 PR 自身相关的检查(build / lint / select / mirror-cn-reachable)全绿。 |
This was referenced Aug 10, 2026
Sunrisepeak
added a commit
to openxlings/xim-pkgindex
that referenced
this pull request
Aug 10, 2026
The loader tag now has one owner. elfpatch (libxpkg 0.0.57) stamps DT_RPATH on executables instead of DT_RUNPATH, and closure_check gains rule E to say so at install time on the user's machine when a payload arrives with the old tag. DT_RUNPATH is consulted only for the object carrying it; DT_RPATH is consulted for every dlopen anywhere in the process. A GL program reaches its driver through three levels of dlopen, so the tag — not the path — decided whether it rendered on the GPU. Of 73 installed executables on a real home, 1 carried DT_RPATH and 55 of the other 68 already carried the correct path. Also: `subos info` reports host driver drift (the detector existed as `xlings-gl-doctor` and lacked a channel), and `subos use --sandbox` without `--gpu` says the sandbox exposes no GPU — under three conditions, so it can only fire where acting on it changes the outcome. All THREE platform sections, verified by PARSING rather than reading the diff: linux latest=2026.8.10.4 arch=[aarch64,x86_64] macosx latest=2026.8.10.4 arch=[aarch64] windows latest=2026.8.10.4 arch=[x86_64] Hashes taken from the assets in xlings-res — what `XLINGS_RES` actually resolves to — not from the upstream release they were mirrored from. CN mirror uploaded from a local shell and verified by SIZE on all four platforms; before the upload all four returned 127 bytes, so the status code would have said 200 for assets that were not there. Upstream: openxlings/xlings#536, openxlings/libxpkg#41, mcpplibs/mcpp-index#202 Co-authored-by: sunrisepeak <x.d2learn.org@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
elfpatch 现在给可执行文件打 DT_RPATH 而不是 DT_RUNPATH。
DT_RUNPATH 只对携带它的对象生效;DT_RPATH 对进程内任意深度的 dlopen 都生效。图形栈的加载链有三到四层 dlopen,只有传递性标签能到底 —— 实测:同样的路径内容,DT_RPATH 让 GLX/EGL/GLESv2/无显示 surfaceless EGL 全部到 GPU,DT_RUNPATH 则是 llvmpipe。
只改可执行文件。 在库上强制 DT_RPATH 是实测有害的(xim-pkgindex#593),传递性向下也成立。
三个平台段全部补齐,用解析验证而非看 diff:
CN 镜像已上传并按大小校验(gitcode 对不存在的资源返回 200 + HTML 落地页,状态码不是证据):147212 bytes,与 GitHub archive 一致。
上游:openxlings/libxpkg#41