You are not logged in.

#1 2023-01-07 17:20:20

jinwk00
Member
Registered: 2023-01-07
Posts: 6

Worms W.M.D won't launch by libsndfile.so.1 having undefined symbol

Currently using a solution from this page: https://gist.github.com/sxiii/9d9b8435f … 8cbe86a69e

But every time I try to launch, I get this issue:

./Worms W.M.Dx64: /usr/lib/libcurl-gnutls.so.4: no version information available (required by ./Worms W.M.Dx64)
./Worms W.M.Dx64: /home/jinwk00/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /usr/lib/libpulse.so.0)
./Worms W.M.Dx64: /home/jinwk00/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /usr/lib/pulseaudio/libpulsecommon-16.1.so)
./Worms W.M.Dx64: symbol lookup error: /usr/lib/libsndfile.so.1: undefined symbol: lame_encode_buffer_interleaved_int

I already tried reinstalling `libsndfile` and `lame`, to no avail. Did the latest `libsndfile` update change some stuff? I was able to launch the game last week without any issues.

Last edited by jinwk00 (2023-01-07 17:21:07)

Offline

#2 2023-01-07 17:50:06

Head_on_a_Stick
Member
From: London
Registered: 2014-02-20
Posts: 6,873
Website

Re: Worms W.M.D won't launch by libsndfile.so.1 having undefined symbol

Does it work if you use steam-native-runtime instead?

Offline

#3 2023-01-07 17:52:44

jinwk00
Member
Registered: 2023-01-07
Posts: 6

Re: Worms W.M.D won't launch by libsndfile.so.1 having undefined symbol

Head_on_a_Stick wrote:

Does it work if you use steam-native-runtime instead?

That's what I have been using all the time, and it seems to not do so. I am able to see the symbol using `nm -gD`, but weirdly enough the game says it doesn't exist.

Offline

#4 2023-01-07 17:53:48

Head_on_a_Stick
Member
From: London
Registered: 2014-02-20
Posts: 6,873
Website

Re: Worms W.M.D won't launch by libsndfile.so.1 having undefined symbol

So how about the vanilla steam package then?

Offline

#5 2023-01-07 17:55:10

jinwk00
Member
Registered: 2023-01-07
Posts: 6

Re: Worms W.M.D won't launch by libsndfile.so.1 having undefined symbol

Head_on_a_Stick wrote:

So how about the vanilla steam package then?

Both (Run binary/Run using Run.sh) seems to not run at all, giving out same error as mentioned before.

Offline

#6 2023-01-08 15:59:06

jinwk00
Member
Registered: 2023-01-07
Posts: 6

Re: Worms W.M.D won't launch by libsndfile.so.1 having undefined symbol

More details:
Proof that libsndfile has lame_encode_buffer_interleaved_int

jinwk00@jinwk00-Desktop:~/.steam/steam/steamapps/common/WormsWMD » nm -Dg /usr/lib/libsndfile.so.1 | grep lame_encode_buffer_interleaved_int                                                                                          127 ↵
                 U lame_encode_buffer_interleaved_int

But the game reports the error from first post

Offline

#7 2023-01-09 11:48:39

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 10,650

Re: Worms W.M.D won't launch by libsndfile.so.1 having undefined symbol

The error lines mention 3 archlinux provided system libraries, 1 steam provided library and 1 steam/game provided command .

I expect the issue is a conflict between the versions of those libraries or something in the command used to start Worms WMD .
The first is the likely culprit, but we shouldn't rule out the 2nd yet.

Please post

$ ls -l /path/to/worms-wmd/"Worms W.M.Dx64"
$ file /path/to/worms-wmd/"Worms W.M.Dx64"
$ ls -l /usr/lib/libdbus-1*
$ ls -l home/jinwk00/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1*

sidenote : the double quotes around Worms W.M.Dx64 are there to deal with the space in the command  name

Last edited by Lone_Wolf (2023-01-09 11:51:22)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Online

#8 2023-01-09 14:48:06

stanczew
Member
Registered: 2021-03-02
Posts: 46

Re: Worms W.M.D won't launch by libsndfile.so.1 having undefined symbol

I'm using steam-runtime (instead of steam-native), with a different LD_PRELOAD:

_libraries=(
	lib/libQt5*.so.5
	"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
	"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11
	"$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11
	"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0
	"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libhogweed.so.4
	"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libnettle.so.6
)

This used to work some time ago, now I'm getting the same error as you.

Adding Steam's version of libsndfile.so.1 to LD_PRELOAD helped:

	"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libsndfile.so.1
	"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libFLAC.so.8

(I also had to add libFLAC.so.8 when starting from the terminal – it's not required when running the game from within Steam.)


With the above, the game launches and I get a splash screen; however the game then always crashes:

free(): double free detected in tcache 2
# or
corrupted size vs. prev_size in fastbins
# or
malloc_consolidate(): invalid chunk size
# ...
./Run.sh: line 6: 63018 Aborted                 (core dumped) ./Worms\ W.M.Dx64

According to crashdump trace, the crash is triggered by libfmodex64-4.44.61.so.
So, I grabbed a new fmodex: https://aur.archlinux.org/packages/fmodex
added libfmodex64-4.44.64.so to LD_PRELOAD, and now the game runs (seemingly) without issues.

Offline

#9 2023-01-09 22:39:40

jinwk00
Member
Registered: 2023-01-07
Posts: 6

Re: Worms W.M.D won't launch by libsndfile.so.1 having undefined symbol

Lone_Wolf wrote:

The error lines mention 3 archlinux provided system libraries, 1 steam provided library and 1 steam/game provided command .

I expect the issue is a conflict between the versions of those libraries or something in the command used to start Worms WMD .
The first is the likely culprit, but we shouldn't rule out the 2nd yet.

Please post

$ ls -l /path/to/worms-wmd/"Worms W.M.Dx64"
$ file /path/to/worms-wmd/"Worms W.M.Dx64"
$ ls -l /usr/lib/libdbus-1*
$ ls -l home/jinwk00/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1*

sidenote : the double quotes around Worms W.M.Dx64 are there to deal with the space in the command  name

jinwk00@jinwk00-Desktop:~ » ls -l ~/.steam/steam/steamapps/common/WormsWMD/Worms\ W.M.Dx64 
-rwxr-xr-x 1 jinwk00 jinwk00 262783624 Dec 30 17:48 '/home/jinwk00/.steam/steam/steamapps/common/WormsWMD/Worms W.M.Dx64'
jinwk00@jinwk00-Desktop:~ » file ~/.steam/steam/steamapps/common/WormsWMD/Worms\ W.M.Dx64
/home/jinwk00/.steam/steam/steamapps/common/WormsWMD/Worms W.M.Dx64: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=3090346f0e46f3c2a920cf54caea72dcca9380f7, with debug_info, not stripped
jinwk00@jinwk00-Desktop:~ » ls -l /usr/lib/libdbus-1*
lrwxrwxrwx 1 root root     19 Oct  7 13:28 /usr/lib/libdbus-1.so -> libdbus-1.so.3.32.1
lrwxrwxrwx 1 root root     19 Oct  7 13:28 /usr/lib/libdbus-1.so.3 -> libdbus-1.so.3.32.1
-rwxr-xr-x 1 root root 329832 Oct  7 13:28 /usr/lib/libdbus-1.so.3.32.1
jinwk00@jinwk00-Desktop:~ » ls -l ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1* 
lrwxrwxrwx 1 jinwk00 jinwk00     18 May 18  2021 /home/jinwk00/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3 -> libdbus-1.so.3.5.8
-rw-r--r-- 1 jinwk00 jinwk00 280488 May 18  2021 /home/jinwk00/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3.5.8

Offline

#10 2023-01-10 13:01:07

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 10,650

Re: Worms W.M.D won't launch by libsndfile.so.1 having undefined symbol

So "Worms W.M.Dx64"  is an ELF executable, not a script . Not useful to investigate that further .

The other outputs show steam provides libdbus-1.so.3.5.8 , while archlinux uses libdbus-1.so.3.32.1 .
That's a huge difference in version.

You can follow 2 methods to try to get this to work :

A.
use steam-runtime and force steam to use as many (older) steam provided libraries as needed until the game works
(like stanczew has done)

B.
use steam-native and replace steam provided libraries that are to old for archlinux with the modern ones.

No idea which method will work better in the long run.


Incase you want to pursue B further, change /home/jinwk00/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3 so it points to /usr/lib/libdbus-1.so.3.32.1 and test.

Last edited by Lone_Wolf (2023-01-10 13:02:04)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Online

#11 2023-01-13 01:08:01

jinwk00
Member
Registered: 2023-01-07
Posts: 6

Re: Worms W.M.D won't launch by libsndfile.so.1 having undefined symbol

Lone_Wolf wrote:

So "Worms W.M.Dx64"  is an ELF executable, not a script . Not useful to investigate that further .

The other outputs show steam provides libdbus-1.so.3.5.8 , while archlinux uses libdbus-1.so.3.32.1 .
That's a huge difference in version.

You can follow 2 methods to try to get this to work :

A.
use steam-runtime and force steam to use as many (older) steam provided libraries as needed until the game works
(like stanczew has done)

B.
use steam-native and replace steam provided libraries that are to old for archlinux with the modern ones.

No idea which method will work better in the long run.


Incase you want to pursue B further, change /home/jinwk00/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3 so it points to /usr/lib/libdbus-1.so.3.32.1 and test.

Went for Method A + downgrade libsndfile to 1.0.28 manually, now works great.

Offline

Board footer

Powered by FluxBB