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@google.com> Change-Id: I4cf4eb0fdaa4db64277c2585fe2c1bdc0acdf02b Reviewed-on: https://gerrit.chromium.org/gerrit/49947 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Commit-Queue: Stefan Reinauer <reinauer@google.com> Tested-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: http://review.coreboot.org/4156 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
		
			
				
	
	
		
			18 lines
		
	
	
		
			400 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
		
			400 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
 | |
| #include <arch/types.h>
 | |
| 
 | |
| #ifndef __SIZE_TYPE__
 | |
| #define __SIZE_TYPE__ unsigned long
 | |
| #endif
 | |
| typedef __SIZE_TYPE__ size_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)
 | |
| 
 |