From: Junio C Hamano Date: Fri, 20 Jan 2006 01:13:57 +0000 (-0800) Subject: DT_UNKNOWN: do not fully trust existence of DT_UNKNOWN X-Git-Tag: v1.2.0~125 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=63be37b06fa873348c3de0becea201796bc88610;p=git.git 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 --- diff --git a/Makefile b/Makefile index 334fe4ec4..304605602 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/cache.h b/cache.h index 29c9e819d..3d79c55a2 100644 --- a/cache.h +++ b/cache.h @@ -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