sandbox: Add compiler defines to support a 64-bit x86_64 platform
authorSimon Glass <sjg@chromium.org>
Fri, 23 Sep 2011 06:22:06 +0000 (06:22 +0000)
committerWolfgang Denk <wd@denx.de>
Mon, 17 Oct 2011 21:53:39 +0000 (23:53 +0200)
This sets __WORDSIZE to 8 correctly on 64-bit machines.

Signed-off-by: Simon Glass <sjg@chromium.org>
include/compiler.h

index 4e047c7fd2cd08646a5e5b0bea47bb2dd46666c7..54999a7e82d056c656d24259d9aa7e6ba167180e 100644 (file)
@@ -111,11 +111,25 @@ typedef unsigned int uint;
 #include <linux/types.h>
 #include <asm/byteorder.h>
 
+#if __SIZEOF_LONG__ == 8
+# define __WORDSIZE    64
+#elif __SIZEOF_LONG__ == 4
+# define __WORDSIZE    32
+#else
+/*
+ * Assume 32-bit for now - only newer toolchains support this feature and
+ * this is only required for sandbox support at present.
+ */
+#define __WORDSIZE     32
+#endif
+
 /* Types for `void *' pointers. */
 #if __WORDSIZE == 64
 typedef unsigned long int       uintptr_t;
-#else
+#elif __WORDSIZE == 32
 typedef unsigned int            uintptr_t;
+#else
+#error "__WORDSIZE has unexpected value"
 #endif
 
 #endif