[coreboot-gerrit] Patch set updated for coreboot: 5a29ad2e Make ssize_t an actual ssize_t
Stefan Reinauer (stefan.reinauer@coreboot.org)
gerrit at coreboot.org
Wed Nov 20 01:10:49 CET 2013
Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4156
-gerrit
commit 5a29ad2e2939de28bb2db2ff916fc7c8188b9292
Author: Stefan Reinauer <reinauer at chromium.org>
Date: Thu May 2 14:02:28 2013 -0700
Make ssize_t an actual ssize_t
In the process of getting rid of compiler includes during in coreboot
and libpayload, we defined size_t and ssize_t ourselves, using a GCC
macro for size_t: __SIZE_TYPE__. Unfortunately, there is no
__SSIZE_TYPE__, so we temporarily redefine unsigned to signed to make
__SIZE_TYPE__ __SSIZE_TYPE__.
Signed-off-by: Stefan Reinauer <reinauer at google.com>
Change-Id: I4cf4eb0fdaa4db64277c2585fe2c1bdc0acdf02b
Reviewed-on: https://gerrit.chromium.org/gerrit/49947
Reviewed-by: Aaron Durbin <adurbin at chromium.org>
Commit-Queue: Stefan Reinauer <reinauer at google.com>
Tested-by: Stefan Reinauer <reinauer at google.com>
---
payloads/libpayload/include/stddef.h | 8 +++++++-
src/include/stddef.h | 8 +++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/payloads/libpayload/include/stddef.h b/payloads/libpayload/include/stddef.h
index 91ae782..f9deaeb 100644
--- a/payloads/libpayload/include/stddef.h
+++ b/payloads/libpayload/include/stddef.h
@@ -5,7 +5,13 @@
#define __SIZE_TYPE__ unsigned long
#endif
typedef __SIZE_TYPE__ size_t;
-typedef long ssize_t;
+/* There is a GCC macro for a size_t type, but not
+ * for a ssize_t type. Below construct tricks GCC
+ * into making __SIZE_TYPE__ signed.
+ */
+#define unsigned signed
+typedef __SIZE_TYPE__ ssize_t;
+#undef unsigned
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER)
diff --git a/src/include/stddef.h b/src/include/stddef.h
index 5b51c00..d0dad62 100644
--- a/src/include/stddef.h
+++ b/src/include/stddef.h
@@ -6,7 +6,13 @@ typedef long ptrdiff_t;
#define __SIZE_TYPE__ unsigned long
#endif
typedef __SIZE_TYPE__ size_t;
-typedef long ssize_t;
+/* There is a GCC macro for a size_t type, but not
+ * for a ssize_t type. Below construct tricks GCC
+ * into making __SIZE_TYPE__ signed.
+ */
+#define unsigned signed
+typedef __SIZE_TYPE__ ssize_t;
+#undef unsigned
typedef int wchar_t;
typedef unsigned int wint_t;
More information about the coreboot-gerrit
mailing list