Alexandre Julliard wrote:
Shachar Shemesh wine-patches@shemesh.biz writes:
After much talk, the patch seems ready for commit. Since there are many systems with slightly older glibc that have the header but do not have the implementation in glibc, or that have a stub implementation that is guaranteed to fail, we are calling the kernel functions directly. This also allows compiling on older systems than the code actually ships to.
Accordingly, the autoconf checks for epoll_create in glibc were dropped.
That's wrong; if the libc function exists you should use it, direct system calls should only be used as a fallback.
But what to do if the library functions exist during compilation, and do not during runtime? Merely linking with them will cause wineserver not to load, claiming that it requires "GLIBC version 3.2.3". Some wine uses (crossover office being one of them) require you to compile once and run almost everywhere, which run counter to this behavior.
And when using system calls you must not depend on the libc header, you have to define the structures yourself.
Just yank the definitions from the header? I can do that, the license is compatible. However, I think it's pointless. Most systems will have that header, and for those who don't, we will have a fallback. What's wrong with using the header if it's there?
Shachar