Fix leul_to_cpu on big endian hosts
authorAlexander Graf <agraf@suse.de>
Tue, 11 May 2010 15:38:17 +0000 (17:38 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Mon, 31 May 2010 18:55:23 +0000 (20:55 +0200)
Commit 213acd2e introduced leul_to_cpu with a special code path for big endian
hosts. Unfortunately that code used preprocessor magic that didn't work.

This patch replaces the explicit ##s by glue() which is proven to work reliably,
enabling me to compile qemu on ppc again.

Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
bswap.h

diff --git a/bswap.h b/bswap.h
index 956f3fa..20caae6 100644 (file)
--- a/bswap.h
+++ b/bswap.h
@@ -205,7 +205,7 @@ static inline void cpu_to_be32wu(uint32_t *p, uint32_t v)
 
 #ifdef HOST_WORDS_BIGENDIAN
 #define cpu_to_32wu cpu_to_be32wu
-#define leul_to_cpu(v) le ## HOST_LONG_BITS ## _to_cpu(v)
+#define leul_to_cpu(v) glue(glue(le,HOST_LONG_BITS),_to_cpu)(v)
 #else
 #define cpu_to_32wu cpu_to_le32wu
 #define leul_to_cpu(v) (v)