diff options
author | Junio C Hamano <junkio@cox.net> | 2006-01-19 17:13:57 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-01-21 19:33:22 -0800 |
commit | 63be37b06fa873348c3de0becea201796bc88610 (patch) | |
tree | 59ee28700b7e7ae994717408e543a9f98fb9802f | |
parent | 35a730f01c6caba93d452fa938e7d93ffcc4cf25 (diff) | |
download | git-63be37b06fa873348c3de0becea201796bc88610.tar.gz git-63be37b06fa873348c3de0becea201796bc88610.tar.xz |
DT_UNKNOWN: do not fully trust existence of DT_UNKNOWN
The recent Cygwin defines DT_UNKNOWN although it does not have d_type
in struct dirent. Give an option to tell us not to use d_type on such
platforms. Hopefully this problem will be transient.
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | cache.h | 2 |
2 files changed, 8 insertions, 1 deletions
@@ -21,6 +21,9 @@ all: # # Define NO_D_INO_IN_DIRENT if you don't have d_ino in your struct dirent. # +# Define NO_D_TYPE_IN_DIRENT if your platform defines DT_UNKNOWN but lacks +# d_type in struct dirent (latest Cygwin -- will be fixed soonish). +# # Define NO_STRCASESTR if you don't have strcasestr. # # Define NO_SETENV if you don't have setenv in the C library. @@ -236,6 +239,7 @@ ifeq ($(uname_S),SunOS) ALL_CFLAGS += -D__EXTENSIONS__ endif ifeq ($(uname_O),Cygwin) + NO_D_TYPE_IN_DIRENT = YesPlease NO_D_INO_IN_DIRENT = YesPlease NO_STRCASESTR = YesPlease NEEDS_LIBICONV = YesPlease @@ -337,6 +341,9 @@ ifdef NEEDS_NSL LIBS += -lnsl SIMPLE_LIB += -lnsl endif +ifdef NO_D_TYPE_IN_DIRENT + ALL_CFLAGS += -DNO_D_TYPE_IN_DIRENT +endif ifdef NO_D_INO_IN_DIRENT ALL_CFLAGS += -DNO_D_INO_IN_DIRENT endif @@ -10,7 +10,7 @@ #define deflateBound(c,s) ((s) + (((s) + 7) >> 3) + (((s) + 63) >> 6) + 11) #endif -#ifdef DT_UNKNOWN +#if defined(DT_UNKNOWN) && !NO_D_TYPE_IN_DIRENT #define DTYPE(de) ((de)->d_type) #else #define DT_UNKNOWN 0 |