···191# Define NO_TRUSTABLE_FILEMODE if your filesystem may claim to support
192# the executable mode bit, but doesn't really do so.
193#
0000194# Define NO_IPV6 if you lack IPv6 support and getaddrinfo().
195#
196# Define NO_UNIX_SOCKETS if your system does not offer unix sockets.
···1229endif
1230ifdef NO_TRUSTABLE_FILEMODE
1231 BASIC_CFLAGS += -DNO_TRUSTABLE_FILEMODE
00001232endif
1233ifdef NO_IPV6
1234 BASIC_CFLAGS += -DNO_IPV6
···191# Define NO_TRUSTABLE_FILEMODE if your filesystem may claim to support
192# the executable mode bit, but doesn't really do so.
193#
194+# Define NEEDS_MODE_TRANSLATION if your OS strays from the typical file type
195+# bits in mode values (e.g. z/OS defines I_SFMT to 0xFF000000 as opposed to the
196+# usual 0xF000).
197+#
198# Define NO_IPV6 if you lack IPv6 support and getaddrinfo().
199#
200# Define NO_UNIX_SOCKETS if your system does not offer unix sockets.
···1233endif
1234ifdef NO_TRUSTABLE_FILEMODE
1235 BASIC_CFLAGS += -DNO_TRUSTABLE_FILEMODE
1236+endif
1237+ifdef NEEDS_MODE_TRANSLATION
1238+ COMPAT_CFLAGS += -DNEEDS_MODE_TRANSLATION
1239+ COMPAT_OBJS += compat/stat.o
1240endif
1241ifdef NO_IPV6
1242 BASIC_CFLAGS += -DNO_IPV6
-7
cache.h
···65 *
66 * The value 0160000 is not normally a valid mode, and
67 * also just happens to be S_IFDIR + S_IFLNK
68- *
69- * NOTE! We *really* shouldn't depend on the S_IFxxx macros
70- * always having the same values everywhere. We should use
71- * our internal git values for these things, and then we can
72- * translate that to the OS-specific value. It just so
73- * happens that everybody shares the same bit representation
74- * in the UNIX world (and apparently wider too..)
75 */
76#define S_IFGITLINK 0160000
77#define S_ISGITLINK(m) (((m) & S_IFMT) == S_IFGITLINK)
···65 *
66 * The value 0160000 is not normally a valid mode, and
67 * also just happens to be S_IFDIR + S_IFLNK
000000068 */
69#define S_IFGITLINK 0160000
70#define S_ISGITLINK(m) (((m) & S_IFMT) == S_IFGITLINK)