http://bugs.winehq.org/show_bug.cgi?id=22132
--- Comment #14 from Thomas Orgis thomas-forum@orgis.org 2010-03-23 14:13:39 --- Dimitri: AFAIK, file descriptors are not just handles when it comes to large file mode. There are flags attached depending on small large file mode... and they differ in behaviour when hitting the 2G boundary, I'm quite sure. Unless I know enough to be sure that there is no problem, I have to assume that there is one.
And yes, you suggested that I should do the things like glibc does them, that is the most easy solution for users of the library. And heck, I _care_ for binary compatibility (you can judge by the amount of comment text I produce), but my resources are limited. I've read through http://ac-archive.sourceforge.net/largefile/ and pondered about what I can do to fix the situation. I took the advice of going for the low-maintenance twinlibs approach (http://ac-archive.sourceforge.net/largefile/use_twinlibs.html) which I can manage easily just by ensuring that my code is off_t clean and changing soname for the largefile variant. I took the warnings there seriously -- the wrapper code for dualmode needs time an care to be written and needs to be maintained. It is a possibility for me to introduce subtle bugs, that again cost time.
At least I am more friendly than GnuPG: http://www.gnupg.org/documentation/manuals/gpgme/Largefile-Support-_0028LFS_... ... I added the possiblity to have both versions installed, catering small file apps and large file apps. That is real value, the dualmode library would be sugar on top, and I drew the line there for me: I cannot invest _all_ my time in the mpg123 API (time I should spend on my "real" work anyway, totally unrelated to mpg123). Unless someone steps up to invest his time to introduce dual mode in libmpg123, I am sorry that it won't come.
So of course I hope this doesn't cause wine to drop libmpg123, and I am torn by trying to help and apparently making things worse... would it be better if I'd had changed nothing? I still think no... even if it's complicated, the twinlibs offer a stable ABI that one can rely on in future. First reliability, then convenience. I do care. But I also try to take care of myself and that includes limiting the nights I spend on hacking on such things.
Considering the long list of broken Linux libraries: I consider the idea of this optional large file support that defaults to small off_t being broken (especially in combination with autoconf macros that usually turn it on). But that is my opinion and that helps nobody. And, well, even if one considers the library to be broken, it is a brokeness rather specific to Linux/x86. It might be a brokenness on Solaris/x86, too, but only after the Sun Compiler stopped miscompiling parts of mpg123:-/
Considering the configure patch: Can I assume that, while you condemn the idea and really, really, do not like it, it will still be included in wine? Or did I really start a discussion now about wine changing to another library?