I upgraded my Linux GzDoom 2.04 build to v2.1 yesterday, via the Debian repository.
However, I'm experiencing problems with the new version. Running pwads appears to work fine, however attempting to run gameplay mods such as Brutal Doom v20b crashes GzDoom - unfortunately I'm not at my gaming computer so I won't be able to tell which one specifically (something to do with 'actors' iirc). Since I figure asking for help with Brutal Doom won't get me much help round these parts I tried running the latest Project MSX as well, and the same problem occurred.
If needed, I will post the exact error log here as soon as I can.
Status Word: 0x0000
TOP: 0
Control Word: 0x037f IM DM ZM OM UM PM
PC: Extended Precision (64-bits)
RC: Round to nearest
Tag Word: 0xffff
Instruction Pointer: 0x00:0x00000000
Operand Pointer: 0x00:0x00000000
Opcode: 0x0000
Thread 5 (Thread 0x7f78ec9b3700 (LWP 4834)):
#0 0x00007f78f5f138dd in poll () at ../sysdeps/unix/syscall-template.S:81
No locals.
#1 0x00007f78eddff601 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
No symbol table info available.
#2 0x00007f78eddf0b41 in pa_mainloop_poll () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
No symbol table info available.
#3 0x00007f78eddf11de in pa_mainloop_iterate () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
No symbol table info available.
#4 0x00007f78eddf1290 in pa_mainloop_run () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
No symbol table info available.
#5 0x00007f78eddff596 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
No symbol table info available.
#6 0x00007f78ed9976c8 in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-6.0.so
No symbol table info available.
#7 0x00007f78f7f3c6aa in start_thread (arg=0x7f78ec9b3700) at pthread_create.c:333
__res = <optimized out>
pd = 0x7f78ec9b3700
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140157342398208, -6225050542197287027, 0, 140727305142559, 8388608, 23996592, 6299960512561698701, 6299905192668190605}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out>
__PRETTY_FUNCTION__ = "start_thread"
#8 0x00007f78f5f1eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.
Thread 4 (Thread 0x7f78e81b1700 (LWP 4835)):
#0 0x00007f78f7f4553d in nanosleep () at ../sysdeps/unix/syscall-template.S:81
No locals.
#1 0x00007f78f8d26328 in ?? () from /usr/lib/x86_64-linux-gnu/libopenal.so.1
No symbol table info available.
#2 0x00007f78f8d31ce3 in ?? () from /usr/lib/x86_64-linux-gnu/libopenal.so.1
No symbol table info available.
#3 0x00007f78f8d259da in ?? () from /usr/lib/x86_64-linux-gnu/libopenal.so.1
No symbol table info available.
#4 0x00007f78f7f3c6aa in start_thread (arg=0x7f78e81b1700) at pthread_create.c:333
__res = <optimized out>
pd = 0x7f78e81b1700
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140157266892544, -6225050542197287027, 0, 140727305142559, 140157266893248, 24387632, 6299970409240090509, 6299905192668190605}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out>
__PRETTY_FUNCTION__ = "start_thread"
#5 0x00007f78f5f1eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.
Thread 3 (Thread 0x7f78e3fff700 (LWP 4836)):
#0 0x00007f78f7f440c9 in futex_abstimed_wait (cancel=true, private=<optimized out>, abstime=0x0, expected=0, futex=0x16e8a30) at sem_waitcommon.c:42
__ret = -512
err = <optimized out>
oldtype = 2
#1 do_futex_wait (sem=sem@entry=0x16e8a30, abstime=0x0) at sem_waitcommon.c:208
No locals.
#2 0x00007f78f7f44164 in __new_sem_wait_slow (sem=0x16e8a30, abstime=0x0) at sem_waitcommon.c:277
_buffer = {__routine = 0x7f78f7f44090 <__sem_wait_cleanup>, __arg = 0x16e8a30, __canceltype = 0, __prev = 0x0}
err = <optimized out>
d = 0
#3 0x00007f78f7f4420a in __new_sem_wait (sem=<optimized out>) at sem_wait.c:28
No locals.
#4 0x00000000009b3965 in ?? ()
No symbol table info available.
#5 0x00000000009729c0 in ?? ()
No symbol table info available.
#6 0x00000000009724cb in ?? ()
No symbol table info available.
#7 0x00000000009b3019 in ?? ()
No symbol table info available.
#8 0x00007f78f7f3c6aa in start_thread (arg=0x7f78e3fff700) at pthread_create.c:333
__res = <optimized out>
pd = 0x7f78e3fff700
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140157198006016, -6225050542197287027, 0, 140727305142767, 140157198006720, 1, 6299949274779768717, 6299905192668190605}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out>
__PRETTY_FUNCTION__ = "start_thread"
#9 0x00007f78f5f1eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.
Thread 1 (Thread 0x7f78f91339c0 (LWP 4831)):
#0 0x00007f78f7f458ab in __waitpid (pid=5685, stat_loc=0xdea700, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:40
resultvar = 18446744073709551104
oldtype = 0
result = <optimized out>
#1 0x0000000000531206 in ?? ()
No symbol table info available.
#2 <signal handler called>
No locals.
#3 __memset_avx2 () at ../sysdeps/x86_64/multiarch/memset-avx2.S:135
No locals.
#4 0x00007f78f7a84f48 in ?? () from /opt/gzdoom/libfmodex64-4.26.36.so
No symbol table info available.
#5 0x00007f78ef1a6783 in vorbis_info_clear () from /usr/lib/x86_64-linux-gnu/libvorbis.so.0
No symbol table info available.
#6 0x00007f78ef1a6b86 in vorbis_synthesis_headerin () from /usr/lib/x86_64-linux-gnu/libvorbis.so.0
No symbol table info available.
#7 0x00007f78f6e95505 in ?? () from /usr/lib/x86_64-linux-gnu/libsndfile.so.1
No symbol table info available.
#8 0x00007f78f6e959bd in ?? () from /usr/lib/x86_64-linux-gnu/libsndfile.so.1
No symbol table info available.
#9 0x00007f78f6e78ff8 in ?? () from /usr/lib/x86_64-linux-gnu/libsndfile.so.1
No symbol table info available.
#10 0x00000000008931fc in SndFileDecoder::open(FileReader*) ()
No symbol table info available.
#11 0x000000000087aaba in SoundRenderer::CreateDecoder(FileReader*) ()
No symbol table info available.
#12 0x000000000088c623 in OpenALSoundRenderer::LoadSound(unsigned char*, int) ()
No symbol table info available.
#13 0x0000000000709553 in S_LoadSound(sfxinfo_t*) ()
No symbol table info available.
#14 0x000000000070b14a in ?? ()
No symbol table info available.
#15 0x000000000070b9a7 in S_Sound(int, FSoundID, float, float) ()
No symbol table info available.
#16 0x00000000007b4c48 in DListMenu::MenuEvent(int, bool) ()
No symbol table info available.
#17 0x00000000007ba810 in M_Responder(event_t*) ()
No symbol table info available.
#18 0x0000000000593402 in D_ProcessEvents() ()
No symbol table info available.
#19 0x000000000059b532 in ?? ()
No symbol table info available.
#20 0x000000000059cc41 in TryRunTics() ()
No symbol table info available.
#21 0x0000000000594cc6 in D_DoomLoop() ()
No symbol table info available.
#22 0x0000000000596ec2 in D_DoomMain() ()
No symbol table info available.
#23 0x000000000051811e in main ()
No symbol table info available.
It wouldn't surprise me that FMod conflicts with how Linux loads function addresses. We had this before.
Sadly I don't think we can do much about this, it looks like for Linux it's either-or, but not both sound backends at the same time.
- Setting the sound backend to 'none' 'fixes' the problem
- Setting the backend to FModEx and restarting the sound system sets it to OpenAL. Quitting and restarting GzDoom does the same.