mirror of
https://github.com/HeyPuter/gex.git
synced 2026-11-13 20:12:43 -10:00
tests/games: pin Hollow Knight's system libraries in the placement window
Pinned at their old arena bases (hp28, hp29) they collided with whatever the arena had handed out first, including the shim's own heap, which takes from the same cursor. With an ld.so unit (hp29) the heap grew earlier and 9 of the pins were misplaced. They now go to gex_abi's placement window (0x7000000-0xb000000), which neither the arena nor the heap uses, and their units are rebuilt for those bases. /gex/gl/libGL.so.1's span is Mesa's libGL, not the system one's. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_1896c5b302a54696aaa92c5f4047f20b
This commit is contained in:
1 parent
62b38fc241
commit
046bec0256
1 file changed
+21
-20
@@ -1,23 +1,24 @@
|
||||
# Hollow Knight in the page (browser-linux.mjs --pins): where each library with a
|
||||
# function-tier unit (`elfunits=`) loads, so the units built for these bases keep
|
||||
# applying when a change elsewhere moves the loader's own choices. The bases are
|
||||
# where gex put them unpinned at merge/unity-seed 6158cded (the Debian
|
||||
# libraries the page stages); the spans are each object's PT_LOAD extent.
|
||||
# libdbus loads twice (unloaded in between); unpinned, libxcb took its first base.
|
||||
# function-tier unit (`elfunits=`) loads, so the units built for these bases apply
|
||||
# whatever else moves. The system libraries sit in gex_abi's placement window
|
||||
# (0x7000000-0xb000000), which neither the guest arena nor the runtime's own heap
|
||||
# hands out; pinned in the arena (hp28, hp29) they collided with whatever the
|
||||
# arena had given away first, the shim's heap included. UnityPlayer keeps the
|
||||
# base it has always loaded at. Spans are each object's PT_LOAD extent.
|
||||
# BASE SPAN PATH
|
||||
0x11752000 0x2674000 /game/UnityPlayer.so
|
||||
0x1a465000 0x1f4000 /lib/x86_64-linux-gnu/libc.so.6
|
||||
0x1a663000 0xf0000 /lib/x86_64-linux-gnu/libm.so.6
|
||||
0x1a78e000 0x2b000 /lib/x86_64-linux-gnu/libxcb.so.1
|
||||
0x1a7e5000 0x116000 /lib/x86_64-linux-gnu/libsystemd.so.0
|
||||
0x1a907000 0x148000 /lib/x86_64-linux-gnu/libX11.so.6
|
||||
0x1aa6e000 0x14000 /lib/x86_64-linux-gnu/libXi.so.6
|
||||
0x1aa82000 0xd000 /lib/x86_64-linux-gnu/libXrandr.so.2
|
||||
0x1aa9b000 0x45000 /lib/x86_64-linux-gnu/libudev.so.1
|
||||
0x1ac10000 0x7000 /lib/x86_64-linux-gnu/libpulse-simple.so.0
|
||||
0x1b7ce000 0x55000 /lib/x86_64-linux-gnu/libpulse.so.0
|
||||
0x20244000 0x87000 /gex/gl/libGL.so.1
|
||||
0x242d0000 0x88000 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-17.0.so
|
||||
0x24358000 0x57000 /lib/x86_64-linux-gnu/libdbus-1.so.3
|
||||
0x2498d000 0x121000 /lib/x86_64-linux-gnu/libasound.so.2
|
||||
0x24dcd000 0x63a000 /lib/x86_64-linux-gnu/libcrypto.so.3
|
||||
0x7000000 0x1f4000 /lib/x86_64-linux-gnu/libc.so.6
|
||||
0x7210000 0xf0000 /lib/x86_64-linux-gnu/libm.so.6
|
||||
0x7310000 0x2b000 /lib/x86_64-linux-gnu/libxcb.so.1
|
||||
0x7350000 0x116000 /lib/x86_64-linux-gnu/libsystemd.so.0
|
||||
0x7480000 0x148000 /lib/x86_64-linux-gnu/libX11.so.6
|
||||
0x75e0000 0x14000 /lib/x86_64-linux-gnu/libXi.so.6
|
||||
0x7610000 0xd000 /lib/x86_64-linux-gnu/libXrandr.so.2
|
||||
0x7630000 0x45000 /lib/x86_64-linux-gnu/libudev.so.1
|
||||
0x7690000 0x7000 /lib/x86_64-linux-gnu/libpulse-simple.so.0
|
||||
0x76b0000 0x55000 /lib/x86_64-linux-gnu/libpulse.so.0
|
||||
0x7720000 0x8b000 /gex/gl/libGL.so.1
|
||||
0x77c0000 0x88000 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-17.0.so
|
||||
0x7860000 0x57000 /lib/x86_64-linux-gnu/libdbus-1.so.3
|
||||
0x78d0000 0x121000 /lib/x86_64-linux-gnu/libasound.so.2
|
||||
0x7a10000 0x63a000 /lib/x86_64-linux-gnu/libcrypto.so.3
|
||||
Reference in new issue
Block a user