http://bugs.winehq.org/show_bug.cgi?id=20042
--- Comment #39 from Erich Hoover ehoover@mines.edu 2010-02-13 12:57:01 --- (In reply to comment #38)
... I now dropped the protection in the header that wanted to prevent misconfiguration of large file support and instead just blindly use the _FILE_OFFSET_BITS symbol that is defined when including the header. What you have _FILE_OFFSET_BITS == 64, you app will look for mpg123_open_64, if it is not defined, it will look for mpg123_open. Inconsistent setups will fail later at the linking stage, and any user must now figure out herself that the missing symbols are because of large file support mismatch.
Sounds good to me. It's actually kind of surprising that there's not a standard include file for these features, since everyone "should" be using the same settings. Though, I also can't imagine why someone would have a 2 GiB mp3 file.
Anyway, if you wanted to provide a "universal" library you could require that your library be built with large file support and then typecast non-64 bit off_t calls.