[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