[PATCH] winemp3.acm: always dynamically load libmpg123 stuff

Chris Robinson chris.kcat at gmail.com
Mon Mar 1 01:58:23 CST 2010


On Sunday 28 February 2010 11:23:30 pm Marcus Meissner wrote:
> 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.

I believe it puts #if 0 when the lib is built without _FILE_OFFSET_BITS=64. In 
my mpg123.h (which is built with _FILE_OFFSET_BITS=64), it has #if 1.

Seems newer versions/trunk just takes the base function name and appends the 
_FILE_OFFSET_BITS value, which still causes ABI issues
http://mpg123.de/cgi-bin/viewvc.cgi/trunk/src/libmpg123/mpg123.h.in

That's the remaining thing that bugs me about mpg123, how it has a different 
ABI with the same lib version depending on its build options. libFLAC and 
libvorbisfile, at least, have the sense to use a 64-bit offset type 
explicitly, instead of using off_t.



More information about the wine-devel mailing list