[U-Boot] [PATCH v7 04/20] 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 --- Changes in v2: - Update commit message to remove 'temporary' - Allow __WORDSIZE to be defined in Makefile / elsewhere
Changes in v7: - Don't insist that __WORDSIZE is defined (it requires newer toolchain)
include/compiler.h | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/include/compiler.h b/include/compiler.h index 4e047c7..54999a7 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

Dear Simon Glass,
In message 1318887671-27788-5-git-send-email-sjg@chromium.org you wrote:
This sets __WORDSIZE to 8 correctly on 64-bit machines.
Signed-off-by: Simon Glass sjg@chromium.org
Changes in v2:
- Update commit message to remove 'temporary'
- Allow __WORDSIZE to be defined in Makefile / elsewhere
Changes in v7:
- Don't insist that __WORDSIZE is defined (it requires newer toolchain)
include/compiler.h | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk
participants (2)
-
Simon Glass
-
Wolfgang Denk