aboutsummaryrefslogtreecommitdiff
path: root/include/compiler.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2011-09-23 06:22:06 +0000
committerWolfgang Denk <wd@denx.de>2011-10-17 23:53:39 +0200
commita7551a3f790eca96be14ef3276326cdd63b5d2f4 (patch)
tree9394cf731670216072b51f50116a8db45f3890dc /include/compiler.h
parent65bf1d39f41b4e754a79122d45d6ba61fd9a9513 (diff)
downloadu-boot-linaro-stable-a7551a3f790eca96be14ef3276326cdd63b5d2f4.tar.gz
sandbox: Add compiler defines to support a 64-bit x86_64 platform
This sets __WORDSIZE to 8 correctly on 64-bit machines. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/compiler.h')
-rw-r--r--include/compiler.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/include/compiler.h b/include/compiler.h
index 4e047c7fd..54999a7e8 100644
--- a/include/compiler.h
+++ b/include/compiler.h
@@ -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