Skip to content

Linux AppImage crashes at runtime on Linux Mint 21.3 due to undefined symbol: Mix_PlayChannel #289

@milleniumbug

Description

@milleniumbug

This seems to be related to the fact that the distro ships with SDL2_mixer 2.0.4 and the binary seems to be compiled against 2.6 or newer.

Note that before SDL_mixer 2.6.0, this function was a macro that called Mix_PlayChannelTimed() with a fourth parameter ("ticks") of -1. This function still does the same thing, but promotes it to a proper API function. Older binaries linked against a newer SDL_mixer will still call Mix_PlayChannelTimed directly, as they are using the macro, which was available since the dawn of time.

https://wiki.libsdl.org/SDL2_mixer/Mix_PlayChannel

Given that compiling the game from source on this distro works just fine, and this function seems to be used in only one place, and looking up the SDL source code confirms it's the same as calling Mix_PlayChannelTimed with an extra parameter, I think it would be safe enough to either replace the call, or compile against the earlier SDL2_mixer.

int Mix_PlayChannel(int channel, Mix_Chunk *chunk, int loops)
{
    return Mix_PlayChannelTimed(channel, chunk, loops, -1);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions