Index: src/base/macros.h |
diff --git a/src/base/macros.h b/src/base/macros.h |
index 382c30bd221b11fb7f2f3c9801157a33ccc20e49..3f09b2b9ce8af8939d64f85418a2e64a98387ad0 100644 |
--- a/src/base/macros.h |
+++ b/src/base/macros.h |
@@ -5,8 +5,13 @@ |
#ifndef V8_BASE_MACROS_H_ |
#define V8_BASE_MACROS_H_ |
+#include <stddef.h> |
+#include <stdint.h> |
+ |
+#include <cstring> |
+ |
+#include "src/base/build_config.h" |
#include "src/base/compiler-specific.h" |
-#include "src/base/format-macros.h" |
#include "src/base/logging.h" |
@@ -269,25 +274,21 @@ |
#define V8PRIdPTR V8_PTR_PREFIX "d" |
#define V8PRIuPTR V8_PTR_PREFIX "u" |
-// ptrdiff_t is 't' according to the standard, but MSVC uses 'I'. |
-#if V8_CC_MSVC |
-#define V8PRIxPTRDIFF "Ix" |
-#define V8PRIdPTRDIFF "Id" |
-#define V8PRIuPTRDIFF "Iu" |
-#else |
-#define V8PRIxPTRDIFF "tx" |
-#define V8PRIdPTRDIFF "td" |
-#define V8PRIuPTRDIFF "tu" |
-#endif |
- |
// Fix for Mac OS X defining uintptr_t as "unsigned long": |
#if V8_OS_MACOSX |
#undef V8PRIxPTR |
#define V8PRIxPTR "lx" |
-#undef V8PRIdPTR |
-#define V8PRIdPTR "ld" |
#undef V8PRIuPTR |
#define V8PRIuPTR "lxu" |
+#endif |
+ |
+// GCC on S390 31-bit expands 'size_t' to 'long unsigned int' |
+// instead of 'int', resulting in compilation errors with %d. |
+// The printf format specifier needs to be %zd instead. |
+#if V8_HOST_ARCH_S390 && !V8_HOST_ARCH_64_BIT |
+#define V8_SIZET_PREFIX "z" |
+#else |
+#define V8_SIZET_PREFIX "" |
#endif |
// The following macro works on both 32 and 64-bit platforms. |