-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Portal 2 engine.so: cannot enable executable stack as shared object requires: Invalid argument #451
Comments
This sounds like a result of this behaviour change in glibc 2.41:
|
Probably the same thing as ValveSoftware/Source-1-Games#6978. |
Downgrading glibc does fix it. Alternatively, clearing the executable stack flag also seems to work for this and other affected source games.
|
The suggestions I mentioned on ValveSoftware/Source-1-Games#6978 would probably be applicable here too (if I understand correctly, Portal 2 isn't exactly the same engine as those games, but is fairly close). I'm not going to duplicate technical details on this issue. |
Portal 2 was updated to fix the issue. |
The update that was pushed to Portal 2 fixes it for me. |
same problem on both hl2 and portal 2 (arch linux) EDIT: Portal 2 does work now after update |
The equivalent issue in HL2 and Portal 1 (and many others) is tracked as ValveSoftware/Source-1-Games#6982, which will be updated when the equivalent issue in each of those games is fixed. This particular issue tracker only covers Portal 2, so I think this issue can be closed now that Portal 2 has been updated. |
Out of curiosity, was this fixed for Portal 2 by just running |
Just stackexec -c. (for now, future builds bave the linker flag to force it off) Basically, any use of inline asm can cause your so to be put into the state of not having stack_exec flag AND not having the no_stack_exec flag. In that situation, glibc just assumes you might need it and says your .so is bad. glibc has already demonstrated in the past that it does not care about backwards compatibility (see: DT_HASH), so it would not surprise me if they also do not care about this -- despite being an obvious regression for end users. |
We might actually be getting somewhere on the glibc side - they did expect breakages but it sounds very much like the executable bit can be ignored; it doesn't necessarily sound like glibc itself can do it but your information combined with theirs could probably help make an advisory to explain why this happens and how devs can avoid setting it. To be honest this is the first time in 13 years that I've encountered anything remotely like this, so I have to wonder who else has never seen this before. Being able to send something concretely useful to the FMOD team (for example) would help a lot. glibc thread: https://sourceware.org/bugzilla/show_bug.cgi?id=32653 |
The game fails to launch due to not being able to load
engine.so
Other native Linux games and Proton games work fine.
Only Portal and Portal 2 are affected as far as I can tell.
Both Portal and Portal 2 work fine if Proton is used instead of native Linux.
I'm using the normal
steam-runtime
(notsteam-native-runtime
).I've also tried a full reinstall (and deletion of steam folders) of Steam to no avail.
OS: updated Arch Linux with
[*-testing]
enabledKernel: 6.13.0-arch1-2 (64-bit)
Graphics Platform: Wayland
CPU: AMD Ryzen 5 5600
GPU: AMD Radeon RX 6650 XT
ldd -v bin/linux32/engine.so && echo %command%
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/user/Games/SteamLibrary/steamapps/common/Portal 2/bin/linux32/" ldd bin/linux32/engine.so && echo %command%
The text was updated successfully, but these errors were encountered: