The linux version is built against an old version of glibc. Version 2.34 and higher of glibc removes the pthread_yield function this game needs. Instead, programs are supposed to use sched_yield(). A workaround is to compile a "shim" that will create a pthread_yield() function that calls sched_yield() and use LD_PRELOAD to load it.
I am attaching two files I've created that allow you to fix this. To use them, rename pthread_yield.c.txt to pthread_yield.c and compile it with:
gcc -m32 -shared -fPIC pthread_yield.c -o pthread_yield.so
And copy pthread_yield.so to
STEAM_FOLDER/steam/steamapps/common/AoW3/
(or whichever folder your AoW3 files are in)
Then edit AoW3Launcher.sh.txt to add an LD_PRELOAD variable set to pthread_yield.so or copy the AoW3Launcher.sh.txt file over the existing AoW3Launcher.sh file).
Hopefully the publisher will release a patch soon that fixes this issue more correctly.
I am attaching two files I've created that allow you to fix this. To use them, rename pthread_yield.c.txt to pthread_yield.c and compile it with:
gcc -m32 -shared -fPIC pthread_yield.c -o pthread_yield.so
And copy pthread_yield.so to
STEAM_FOLDER/steam/steamapps/common/AoW3/
(or whichever folder your AoW3 files are in)
Then edit AoW3Launcher.sh.txt to add an LD_PRELOAD variable set to pthread_yield.so or copy the AoW3Launcher.sh.txt file over the existing AoW3Launcher.sh file).
Hopefully the publisher will release a patch soon that fixes this issue more correctly.
Attachments
- 2