http://bugs.winehq.org/show_bug.cgi?id=20042
--- Comment #21 from Erich Hoover ehoover@mines.edu 2009-11-01 17:07:04 --- Created an attachment (id=24513) --> (http://bugs.winehq.org/attachment.cgi?id=24513) Patch for mpg123.h to match symbol names for both 32-bit and 64-bit compilation
(In reply to comment #20)
... If it's harmless on a 32 bit build for 32 bit systems then I can just tell the package to always use that switch for that arch. Is that the case?
Well, it's not harmless is part of the issue - if large file support is enabled then the package could have problems if you try to use it with a large file (> 2 GB). After downloading the pre-packaged 32-bit libmpg123-0 and taking a look at the symbols it appears that my assessment was actually wrong. Large file support actually IS enabled on 32-bit ubuntu: ehoover@ubuntu:~/libmpg123-i386-deb/usr/lib$ nm -D libmpg123.so.0.14.4 | grep feedseek 000141f0 T mpg123_feedseek_64
So, that puts us back to fixing the header file. If you apply the attached patch to your /usr/include/mpg123.h then it will choose the correct symbol names depending on the architecture. If you compile libmpg123 with and without the "-m32" flag you will see that you get a different mpg123.h header file, so the "distributed" version should really handle both cases.