@matheusbsbs / matheus-bagliano / commits / 21e403a7b9
Fork 0

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) ({ \