http://bugs.winehq.org/show_bug.cgi?id=20042
--- Comment #37 from Erich Hoover ehoover@mines.edu 2010-02-11 10:06:51 --- (In reply to comment #36)
I am not sure what to respond to this. I do have the suspicion that mpg123 is not alone with the issue of having to prevent bad combinations of applications and libraries using 32 bit or 64 bit off_t. Be reminded that the header would look identical for i386 and x86-64 would 64 bit off_t be the default on a 32bit build. ...
I think this is part of the reason the Debian-based distros have been discussing plans for a better multiple-architecture repo system.
This whole mess mainly arises because a default build of libmpg123 enables 64 bit offsets via configure but when you simply build a program using libmpg123 and do not specify special compiler flags, your program will use a 32 bit off_t. ...
I guess the issue I see with this whole thing is that I would expect the function name to be linked to the size of off_t. So, I would expect that both on a 64-bit system and on a 32-bit system with large file support that a '_64' would be appended to the function names (I would probably append '_32' for 32-bit off_t, but that's me). With this method it's then up to the programmer to properly request large file support when including the headers, but requesting the incorrect large file support will cause the library to fail at the linking stage.