path: root/compat
diff options
authorHolger Weiß <>2010-03-29 10:22:19 (GMT)
committerJunio C Hamano <>2010-03-31 21:21:39 (GMT)
commit21e403a7b956a95a36f218439f82b1c8af869257 (patch)
tree9dfe35c59f028f08dc63d5732232d002392e4ac6 /compat
parent7a49c254cdaec6b15a6e2818e29fdb34fc6f7717 (diff)
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ß <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'compat')
1 files changed, 2 insertions, 0 deletions
diff --git a/compat/bswap.h b/compat/bswap.h
index f3b8c44..54756db 100644
--- a/compat/bswap.h
+++ b/compat/bswap.h
@@ -17,6 +17,8 @@ static inline uint32_t default_swab32(uint32_t val)
((val & 0x000000ff) << 24));
+#undef bswap32
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
#define bswap32(x) ({ \