How to launch broken game on Linux with glibc 2.41+

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.soMore 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

Source: https://steamcommunity.com/sharedfiles/filedetails/?id=3423730864					

More Portal Reloaded guilds