LATX, fix: Resolve Steam i386 libraries beside selected - #411
Open
baibaidashixiong wants to merge 1 commit into
Open
LATX, fix: Resolve Steam i386 libraries beside selected#411baibaidashixiong wants to merge 1 commit into
baibaidashixiong wants to merge 1 commit into
Conversation
Steam Runtime i386 steam and gldriverquery use the i386 dynamic loader to open absolute lib*.so names that can be absent from the configured runtime prefix even when the selected PT_INTERP loader has the matching library beside it. The lookup then prevents Steam from creating its GLX visual. Signed-off-by: zqz <OrzZzznn@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.
Summary / 变更说明
linux-user, fix: Resolve Steam i386 libraries beside selected loaderSteam Runtime i386
steamandgldriverquerycan request an absolutelib*.so*that is absent from the configured runtime prefix even though theselected PT_INTERP loader's directory contains the matching library. This
prevented
steamfrom creating its GLX visual and blocked the client UI.After the original read-only unprefixed open returns
ENOENT, this PR retriesthe same library basename beside the selected loader only for
steamorgldriverquery. It reuses the existing trusted loader-page check, retains theoriginal errno on an unsuccessful retry, and keeps the fallback i386-only. It
adds no launcher,
LAT_SET_ENV,PRESSURE_VESSEL_PREFIX, or other environmentinjection.
No dedicated automated test is added: a faithful fixture requires an i386
guest, a selected PT_INTERP loader, and a deliberately incomplete runtime
prefix. Steam Runtime
gldriverquerydirectly exercises the affected path.Independent review passed after the fallback was limited to the two observed
Steam executable basenames.
Validation / 验证
ninja -C build32 --quiet latx-i386: passed.ninja -C build64 --quiet latx-x86_64: passed.git diff --check: passed.scripts/checkpatch.pl: 0 errors, 0 warnings.ubuntu12_32/steam-runtime/run.sh ubuntu12_32/gldriverquerypassed theprevious “Couldn't find matching GLX visual” failure and reached the
separate
radeonsi/X_GLXCreateContextfailure.Remaining Scope / 风险
steamandgldriverquerybasenames executing through a trustedi386 dynamic loader may invoke the fallback, and only for a read-only
absolute
lib*.so*open that missed the normal unprefixed path.ENOENT.helper remains available to its pre-existing x86_64 tunnel notification use.
loader page, retry errno restoration, or
O_PATH; the independent reviewaccepted this as a narrow, Steam-only limitation rather than widening the
change or adding an environment-specific fixture.
Checklist / 检查项
CONTRIBUTING.md. / 我已阅读CONTRIBUTING.md。git commit -s). /每个提交都包含 DCO 签署(
git commit -s)。are not applicable. / 我已提供相关构建或测试结果,或说明了不适用的原因。