For reasons unknown, cygwin decided to use our sockaddr_storage.
As it is redefined to sockaddr_in it'd cause compilation errors in
cygwin headers. Fixed by first patch, which uses a more git-related
name (can we claim rights for the symbol, being first to use it? :-)
For the other, probably unrelated, reasons, they decided to leave
declarations of DT_* macros in dirent.h without providing dirent->d_type.
This is what NO_DTYPE in the 0002-patch is all about.
And on top of that, they removed dirent->d_ino (or probably replaced
it by __ino32, if at all).
BTW, can we somehow avoid using d_ino? It is referenced only in fsck-objects.c
Anyway, to workaround this I put
COMPAT_CFLAGS += -Dd_ino=__ino32
It helps, but surely is not the solution.
P.S. For all you poor souls on Win2k, my config.mak contains:
NO_MMAP = YesPlease
NO_DTYPE = YesPlease
COMPAT_CFLAGS += -Dd_ino=__ino32
Just to make it work (at least it's enough for me, even the tests run...)