Portal Reloaded

Portal Reloaded

Not enough ratings
How to launch broken game on Linux with glibc 2.41+
By idk
   
Award
Favorite
Favorited
Unfavorite
Info
Due to changes in glibc behavior, there is a problem with "executable stack" flag in the three libraries.
  • bin/engine.so
  • bin/libsteam_api_linux.so
  • bin/valve_avi.so
More technical info here: https://github.com/ValveSoftware/portal2/issues/451

You can use old execstack tool from prelink project, downgrade glibc or apply this hardcoded dd patch obtained from diffing execstack results. Patching will just unset the flag.
dd patch
This patch can be broken after a next game update!

Manage -> Browse local files -> bin
Open terminal there and run:
for f in engine.so libsteam_api_linux.so valve_avi.so; do cp $f $f.bak; done echo -ne "\x06" | dd of=engine.so bs=1 seek=268 conv=notrunc echo -ne "\x74\xb4" | dd of=engine.so bs=1 seek=9876444 conv=notrunc echo -ne "\x06" | dd of=libsteam_api_linux.so bs=1 seek=204 conv=notrunc echo -ne "\x06" | dd of=valve_avi.so bs=1 seek=236 conv=notrunc

Backups of the original files will be named as *.so.bak
execstack patch
First of all u need to get execstack on your own. If its packaged for your distro, it can be in "execstack" or "prelink" pkg

Manage -> Browse local files -> bin
Open terminal there and run:
for f in engine.so libsteam_api_linux.so valve_avi.so; do cp $f $f.bak execstack -c $f; done

Backups of the original files will be named as *.so.bak too
1 Comments
idk  [author] 27 Feb @ 7:58pm 
try running "sh" before of everything