Crash on Linux when creating new LAN game
It happens no matter if I use my own compiled binaries or precompiled binaries from this repo and xash3d.
System info
Operating System: Arch Linux
KDE Plasma Version: 6.3.3
KDE Frameworks Version: 6.12.0
Qt Version: 6.8.3
Kernel Version: 6.14.0-4-cachyos (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 9800X3D 8-Core Processor
Memory: 62.5 ГиБ of RAM
Graphics Processor: AMD Radeon RX 6700 XT
Manufacturer: ASUS
Log
╰─○ xash3d -game cstrike
Error: /home/oleg/.xash3d/filesystem_stdio.so: cannot open shared object file: No such file or directory
Ver: Xash3D FWGS 0.21 (build 3646-ac5be815-master, linux-i386)
Crash: signal 11 errno 0 with code 1 at (nil) (nil)
Ver: Xash3D FWGS 0.21 (build 3646-ac5be815-master, linux-i386)
Crash: signal 11 errno 0 with code 1 at (nil) (nil)
0: 0xef56055f (linux-gate.so.1)
0: 0xef56055f (linux-gate.so.1)
1: _ZN16BotPhraseManager10InitializeEPKci (cs_bot_chatter.cpp:611) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
1: _ZN16BotPhraseManager10InitializeEPKci (cs_bot_chatter.cpp:611) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
2: _ZN13CCSBotManagerC2Ev (cs_bot_manager.cpp:60) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
2: _ZN13CCSBotManagerC2Ev (cs_bot_manager.cpp:60) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
3: _Z17InstallBotControlv (cs_bot_init.cpp:80) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
3: _Z17InstallBotControlv (cs_bot_init.cpp:80) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
4: _ZN18CHalfLifeMultiplayC2Ev (multiplay_gamerules.cpp:516) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
4: _ZN18CHalfLifeMultiplayC2Ev (multiplay_gamerules.cpp:516) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
5: _Z25InstallGameRules_OrigFuncv (gamerules.cpp:142) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
5: _Z25InstallGameRules_OrigFuncv (gamerules.cpp:142) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
6: _ZN14IHookChainImplIP10CGameRulesJEE8callNextEv (hookchains_impl.h:72) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
6: _ZN14IHookChainImplIP10CGameRulesJEE8callNextEv (hookchains_impl.h:72) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
7: _ZN14IHookChainImplIP10CGameRulesJEE8callNextEv (hookchains_impl.h:63) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
7: _ZN14IHookChainImplIP10CGameRulesJEE8callNextEv (hookchains_impl.h:63) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
8: _ZN22IHookChainRegistryImplIP10CGameRulesJEE9callChainEPFS1_vE (hookchains_impl.h:199) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
8: _ZN22IHookChainRegistryImplIP10CGameRulesJEE9callChainEPFS1_vE (hookchains_impl.h:199) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
9: _Z16InstallGameRulesv (gamerules.cpp:132) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
9: _Z16InstallGameRulesv (gamerules.cpp:132) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
10: _ZN6CWorld8PrecacheEv (world.cpp:292) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
10: _ZN6CWorld8PrecacheEv (world.cpp:292) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
11: _ZN6CWorld5SpawnEv (world.cpp:216) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
11: _ZN6CWorld5SpawnEv (world.cpp:216) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
12: _Z13DispatchSpawnP7edict_s (cbase.cpp:323) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
12: _Z13DispatchSpawnP7edict_s (cbase.cpp:323) (/home/oleg/.xash3d/cstrike/dlls/cs.so)
13: 0xedd8a37c (/opt/xash3d/libxash.so)
13: 0xedd8a37c (/opt/xash3d/libxash.so)
14: 0xedd313d8 (/opt/xash3d/libxash.so)
14: 0xedd313d8 (/opt/xash3d/libxash.so)
15: <Host_Main+7942> (/opt/xash3d/libxash.so)
15: <Host_Main+7942> (/opt/xash3d/libxash.so)
16: 0x63b5f135 (/opt/xash3d/xash3d)
16: 0x63b5f135 (/opt/xash3d/xash3d)
17: 0xeee9f6f6 (/usr/lib32/libc.so.6)
17: 0xeee9f6f6 (/usr/lib32/libc.so.6)
18: <__libc_start_main+140> (/usr/lib32/libc.so.6)
18: <__libc_start_main+140> (/usr/lib32/libc.so.6)
19: 0x63b5f1b6 (/opt/xash3d/xash3d)
19: 0x63b5f1b6 (/opt/xash3d/xash3d)
20: 0xffffffff
20: 0xffffffff
@Velaron that's why I said you to take upstream ReGameDLL_CS :)
Well, I've noticed this line Error: /home/oleg/.xash3d/filesystem_stdio.so: cannot open shared object file: No such file or directory and decided to put this and other libraries next to cstrike folder and this solved my issue. But why does this happen? I'm pretty sure these libraries are shipped inside Xash3D AppImage and I have those libraries under /opt/xash3d. Half-Life works just fine without them.
Probably incorrect resolution of the path to filesystem_stdio.so library in cs16-client.
If we take the same code GoldSrc uses to find it's own modules, it will not work in our configurations with AppImage or Flatpak, or on Android.
On Xash3D FWGS to avoid increasing runtime linker's refcount on filesystem_stdio.so, it's possible to use GetNativeObject call from our extended APIs
Getting crashes on Windows too. This is latest commit.