Don't redefine htonl and ntohl on big-endian
Since commit 0fcabdeb52b79775173d009ccc179db104dfbb66, compat/bswap.h redefined htonl and ntohl to bswap32 not only if bswap32 has been defined earlier in compat/bswap.h (which is done only on selected platforms), but also if bswap32 has been defined anywhere else. This broke Git at least for NetBSD systems running on big-endian machines (where ntohl and htonl should, of course, be NOOPs), since NetBSD defines a bswap32 macro in the system headers. So, we now undefine any previously defined bswap32 in compat/bswap.h before defining our own. Signed-off-by: Holger Weiß <holger@zedat.fu-berlin.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Holger Weiß committed
Mar 29, 2010 at 12:22 UTC
21e403a7b956a95a36f218439f82b1c8af869257
1 file changed
+2
compat/bswap.h
+2
@@ -17,6 +17,8 @@ static inline uint32_t default_swab32(uint32_t val)
17
((val & 0x000000ff) << 24));
18
}
19
20
+#undef bswap32
21
+
22
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
23
24
#define bswap32(x) ({ \