This sets __WORDSIZE to 8 correctly on 64-bit machines.
Signed-off-by: Simon Glass <sjg@chromium.org>
#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