[PATCH] winemp3.acm: always dynamically load libmpg123 stuff
Marcus Meissner
marcus at jet.franken.de
Mon Mar 1 01:23:30 CST 2010
On Sun, Feb 28, 2010 at 03:11:22PM -0800, Chris Robinson wrote:
> On Sunday 28 February 2010 1:13:44 pm Marcus Meissner wrote:
> > Hi,
> >
> > Copy in the mpg123.h header from the library so we do not need it for
> > building. (it is also LPGL)
> >
> > Dynamically link from libmpg123.so.0.
> > (Chances are very good that ABI stays stable.)
> >
> > This allows me providing a MP3 capable Wine build for openSUSE without
> > actually having libmpg123 in the openSUSE buildservice for building.
> >
> >
> > I was not able to test it though, anyone have a working winemp3.acm
> > using testcase :(
>
> This won't work, unfortunately. The mpg123.h header does some evil macro hacks
> to forward certain functions (eg. mpg123_seek, mpg123_feedseek) to 64-bit
> variants when _FILE_OFFSET_BITS is 64 due to using off_t. The functions the
> lib has depends on whether it was built with _FILE_OFFSET_BITS=64 or not, and
> the macros won't affect the strings passed to wine_dlsym.
A library should be ever built against one model and not change function ABI
depending on a preprocessor define ... This will just break in funny ways.
In libmpg123 1.10.0 it does not do evil hacks for me, it has #if 0 around
these parts (see the header included in the patch). Seems to have been an earlier
try.
Is this different in newer / other versions? Then I have to think about something :(
> It also looks like the lib isn't unloaded with the acm.
Yeah, need to fix this.
Ciao, Marcus
More information about the wine-devel
mailing list