Opened 14 years ago

Closed 13 years ago

#23899 closed defect (wontfix)

libsdl_mixer static lib linked with dynamic dependencies

Reported by: domiman@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: Cc:
Port: libsdl_mixer

Description (last modified by mf2k (Frank Schima))

The static lib of libsdl_mixer (libSDL_mixer.a) is linked against/with the dynamic libs of its dependencies (smpeg, libvorbis, libogg and if it is installed, flac). otool doesn't show it but when you open the file libSDL_mixer.a with an editor you can see that it links with the dylib files and when you compile an app with static libsdl_mixer the app will depend on the dynmaic libs.

I'm not sure what to do about this. The ./configure options

--disable-music-mp3-shared \
--disable-music-ogg-shared \
--disable-music-flac-shared

will make the static lib not use these libs at all. With --disable-shared libsdl_mixer will not compile.

This might be an upstream problem, as soon as I'm allowed to post in the SDL forum, I'll report there, too

Change History (3)

comment:1 Changed 14 years ago by mf2k (Frank Schima)

Description: modified (diff)

comment:2 Changed 14 years ago by domiman@…

I had an error in my thinking. I thought that when you give these ./configure options libsdl_mixer would link with the static libs of its dependencies when it is built. BUT using these ./configure options mean, that when you want to use the static lib of libsdl_mixer in a project you need to make sure the project links to the static libs of libsdl_mixer's dependencies as well. I tested this a bit and IMO the ./configure options

--disable-music-mp3-shared \
--disable-music-ogg-shared \
--disable-music-flac-shared

should go into the portfile. These seem to affect only the static lib (so it doesn't link against the dynamic libs of its dependencies). Building a project linking dynamically to libsdl_mixer still works as it should (libsdl_mixer links dynamically to its dependencies).

comment:3 Changed 13 years ago by jmroot (Joshua Root)

Resolution: wontfix
Status: newclosed

I think we'll leave this one to upstream.

Note: See TracTickets for help on using tickets.