summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r588.patch')
-rw-r--r--media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r588.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r588.patch b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r588.patch
new file mode 100644
index 000000000000..d47a8d4534c8
--- /dev/null
+++ b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r588.patch
@@ -0,0 +1,36 @@
+http://hg.libsdl.org/SDL_mixer/rev/2ebb0d016f27
+https://bugs.gentoo.org/445980
+
+# HG changeset patch
+# User Sam Lantinga <slouken@libsdl.org>
+# Date 1343000017 25200
+# Node ID 2ebb0d016f277f7f643d8a66ed0e1099e10d1fba
+# Parent 56cad6484b04f83c8d42428c755a046678506436
+Fixed normal linking with libmikmod and linking with earlier versions of libmikmod.
+
+--- a/dynamic_mod.c
++++ b/dynamic_mod.c
+@@ -97,8 +97,8 @@
+ (void (*)(void*))
+ SDL_LoadFunction(mikmod.handle, "MikMod_free");
+ if ( mikmod.MikMod_free == NULL ) {
+- SDL_UnloadObject(mikmod.handle);
+- return -1;
++ /* libmikmod 3.1 and earlier doesn't have it */
++ mikmod.MikMod_free = free;
+ }
+ mikmod.Player_Active =
+ (BOOL (*)(void))
+@@ -246,6 +246,11 @@
+ mikmod.MikMod_RegisterDriver = MikMod_RegisterDriver;
+ mikmod.MikMod_errno = &MikMod_errno;
+ mikmod.MikMod_strerror = MikMod_strerror;
++#if LIBMIKMOD_VERSION < ((3<<16)|(2<<8))
++ mikmod.MikMod_free = free;
++#else
++ mikmod.MikMod_free = MikMod_free;
++#endif
+ mikmod.Player_Active = Player_Active;
+ mikmod.Player_Free = Player_Free;
+ mikmod.Player_LoadGeneric = Player_LoadGeneric;
+