[coreboot] New patch to review for coreboot: 98cc6c0 libpayload: Start using only internal and compiler headers.

Ronald G. Minnich (rminnich@gmail.com) gerrit at coreboot.org
Wed Mar 13 21:43:06 CET 2013


Ronald G. Minnich (rminnich at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2710

-gerrit

commit 98cc6c0c446f9ebbb94ef6ede24169d5fe06f06b
Author: Ronald G. Minnich <rminnich at gmail.com>
Date:   Wed Mar 13 13:42:55 2013 -0700

    libpayload: Start using only internal and compiler headers.
    
    When building other payloads with lpgcc the -nostdinc flag was injected into
    CFLAGS, but when building libpayload itself some headers were being used from
    the host system. This change puts -nostdinc into the Makefile and xcompile
    script, fixes up one include path in include/inttypes.h, adds the compiler
    provided include directory to the include search path, and deletes the two now
    redundant stdint.h files.
    
    BUG=None
    TEST=With this and other changes, built libpayload and depthcharge for Daisy,
    Link, and Fox.
    BRANCH=None
    
    Change-Id: Ia7817fceab5297cd82ccc0d392330de0df61980e
    Signed-off-by: Gabe Black <gabeblack at google.com>
    Signed-off-by: Ronald G. Minnich <rminnich at gmail.com>
---
 payloads/libpayload/Makefile.inc           |   6 +-
 payloads/libpayload/include/inttypes.h     |   2 +-
 payloads/libpayload/include/sys/stdint.h   | 185 -----------------------------
 payloads/libpayload/util/xcompile/xcompile |   2 +-
 4 files changed, 6 insertions(+), 189 deletions(-)

diff --git a/payloads/libpayload/Makefile.inc b/payloads/libpayload/Makefile.inc
index 4c434a3..b06288b 100644
--- a/payloads/libpayload/Makefile.inc
+++ b/payloads/libpayload/Makefile.inc
@@ -58,8 +58,10 @@ subdirs-$(CONFIG_CURSES) += curses
 subdirs-$(CONFIG_CBFS) += libcbfs
 subdirs-$(CONFIG_LZMA) += liblzma
 
-INCLUDES := -Iinclude -Iinclude/$(ARCHDIR-y) -I$(obj)
-CFLAGS =  $(EXTRA_CFLAGS) $(INCLUDES) -Os -pipe
+CC_INCLUDE = $(shell $(CC) -print-search-dirs | head -n 1 | cut -d' ' -f2)include
+
+INCLUDES := -Iinclude -Iinclude/$(ARCHDIR-y) -I$(obj) -I$(CC_INCLUDE)
+CFLAGS =  $(EXTRA_CFLAGS) $(INCLUDES) -Os -pipe -nostdinc
 CFLAGS += -nostdlib -Wall -Wundef -Wstrict-prototypes -Wmissing-prototypes
 CFLAGS += -Wwrite-strings -Wredundant-decls -Wno-trigraphs
 CFLAGS += -Wstrict-aliasing -Wshadow -fno-builtin
diff --git a/payloads/libpayload/include/inttypes.h b/payloads/libpayload/include/inttypes.h
index 922f08a..357dbf4 100644
--- a/payloads/libpayload/include/inttypes.h
+++ b/payloads/libpayload/include/inttypes.h
@@ -19,7 +19,7 @@
 #ifndef	_INTTYPES_H_
 #define	_INTTYPES_H_
 
-#include <sys/stdint.h>
+#include <stdint.h>
 
 #ifdef __cplusplus
 #define __wchar_t	wchar_t
diff --git a/payloads/libpayload/include/sys/stdint.h b/payloads/libpayload/include/sys/stdint.h
deleted file mode 100644
index c1b1044..0000000
--- a/payloads/libpayload/include/sys/stdint.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/*	$OpenBSD: stdint.h,v 1.4 2006/12/10 22:17:55 deraadt Exp $	*/
-
-/*
- * Copyright (c) 1997, 2005 Todd C. Miller <Todd.Miller at courtesan.com>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef	_SYS_STDINT_H_
-#define _SYS_STDINT_H_
-
-#include <arch/types.h>
-//#include <sys/cdefs.h>
-//#include <machine/_types.h>
-
-#ifndef	__BIT_TYPES_DEFINED__
-#define	__BIT_TYPES_DEFINED__
-#endif
-
-/* 7.18.1.2 Minimum-width integer types */
-typedef	int8_t		int_least8_t;
-typedef	uint8_t		uint_least8_t;
-typedef	int16_t		int_least16_t;
-typedef	uint16_t	uint_least16_t;
-typedef	int32_t		int_least32_t;
-typedef	uint32_t	uint_least32_t;
-typedef	int64_t		int_least64_t;
-typedef	uint64_t	uint_least64_t;
-
-/* 7.18.1.3 Fastest minimum-width integer types */
-typedef	int8_t		int_fast8_t;
-typedef	uint8_t		uint_fast8_t;
-typedef	int16_t		int_fast16_t;
-typedef	uint16_t	uint_fast16_t;
-typedef	int32_t		int_fast32_t;
-typedef	uint32_t	uint_fast32_t;
-typedef	int64_t		int_fast64_t;
-typedef	uint64_t	uint_fast64_t;
-
-/* 7.18.1.5 Greatest-width integer types */
-typedef	int64_t		intmax_t;
-typedef	uint64_t	uintmax_t;
-
-#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
-/*
- * 7.18.2 Limits of specified-width integer types.
- *
- * The following object-like macros specify the minimum and maximum limits
- * of integer types corresponding to the typedef names defined above.
- */
-
-/* 7.18.2.1 Limits of exact-width integer types */
-#define	INT8_MIN		(-0x7f - 1)
-#define	INT16_MIN		(-0x7fff - 1)
-#define	INT32_MIN		(-0x7fffffff - 1)
-#define	INT64_MIN		(-0x7fffffffffffffffLL - 1)
-
-#define	INT8_MAX		0x7f
-#define	INT16_MAX		0x7fff
-#define	INT32_MAX		0x7fffffff
-#define	INT64_MAX		0x7fffffffffffffffLL
-
-#define	UINT8_MAX		0xff
-#define	UINT16_MAX		0xffff
-#define	UINT32_MAX		0xffffffffU
-#define	UINT64_MAX		0xffffffffffffffffULL
-
-/* 7.18.2.2 Limits of minimum-width integer types */
-#define	INT_LEAST8_MIN		INT8_MIN
-#define	INT_LEAST16_MIN		INT16_MIN
-#define	INT_LEAST32_MIN		INT32_MIN
-#define	INT_LEAST64_MIN		INT64_MIN
-
-#define	INT_LEAST8_MAX		INT8_MAX
-#define	INT_LEAST16_MAX		INT16_MAX
-#define	INT_LEAST32_MAX		INT32_MAX
-#define	INT_LEAST64_MAX		INT64_MAX
-
-#define	UINT_LEAST8_MAX		UINT8_MAX
-#define	UINT_LEAST16_MAX	UINT16_MAX
-#define	UINT_LEAST32_MAX	UINT32_MAX
-#define	UINT_LEAST64_MAX	UINT64_MAX
-
-/* 7.18.2.3 Limits of fastest minimum-width integer types */
-#define	INT_FAST8_MIN		INT8_MIN
-#define	INT_FAST16_MIN		INT16_MIN
-#define	INT_FAST32_MIN		INT32_MIN
-#define	INT_FAST64_MIN		INT64_MIN
-
-#define	INT_FAST8_MAX		INT8_MAX
-#define	INT_FAST16_MAX		INT16_MAX
-#define	INT_FAST32_MAX		INT32_MAX
-#define	INT_FAST64_MAX		INT64_MAX
-
-#define	UINT_FAST8_MAX		UINT8_MAX
-#define	UINT_FAST16_MAX		UINT16_MAX
-#define	UINT_FAST32_MAX		UINT32_MAX
-#define	UINT_FAST64_MAX		UINT64_MAX
-
-/* 7.18.2.4 Limits of integer types capable of holding object pointers */
-#ifdef __LP64__
-#define	INTPTR_MIN		INT64_MIN
-#define	INTPTR_MAX		INT64_MAX
-#define	UINTPTR_MAX		UINT64_MAX
-#else
-#define	INTPTR_MIN		INT32_MIN
-#define	INTPTR_MAX		INT32_MAX
-#define	UINTPTR_MAX		UINT32_MAX
-#endif
-
-/* 7.18.2.5 Limits of greatest-width integer types */
-#define	INTMAX_MIN		INT64_MIN
-#define	INTMAX_MAX		INT64_MAX
-#define	UINTMAX_MAX		UINT64_MAX
-
-/*
- * 7.18.3 Limits of other integer types.
- *
- * The following object-like macros specify the minimum and maximum limits
- * of integer types corresponding to types specified in other standard
- * header files.
- */
-
-/* Limits of ptrdiff_t */
-#define	PTRDIFF_MIN		INTPTR_MIN
-#define	PTRDIFF_MAX		INTPTR_MAX
-
-/* Limits of sig_atomic_t */
-#define	SIG_ATOMIC_MIN		INT32_MIN
-#define	SIG_ATOMIC_MAX		INT32_MAX
-
-/* Limits of size_t (also in limits.h) */
-#ifndef	SIZE_MAX
-#define	SIZE_MAX		UINTPTR_MAX
-#endif
-
-/* Limits of wchar_t */
-#define	WCHAR_MIN		INT32_MIN
-#define	WCHAR_MAX		INT32_MAX
-
-/* Limits of wint_t */
-#define	WINT_MIN		INT32_MIN
-#define	WINT_MAX		INT32_MAX
-
-#endif /* __cplusplus || __STDC_LIMIT_MACROS */
-
-#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
-/*
- * 7.18.4 Macros for integer constants.
- *
- * The following function-like macros expand to integer constants
- * suitable for initializing objects that have integer types corresponding
- * to types defined in <stdint.h>.  The argument in any instance of
- * these macros shall be a decimal, octal, or hexadecimal constant with
- * a value that does not exceed the limits for the corresponding type.
- */
-
-/* 7.18.4.1 Macros for minimum-width integer constants. */
-#define	INT8_C(_c)		(_c)
-#define	INT16_C(_c)		(_c)
-#define	INT32_C(_c)		(_c)
-#define	INT64_C(_c)		__CONCAT(_c, LL)
-
-#define	UINT8_C(_c)		(_c)
-#define	UINT16_C(_c)		(_c)
-#define	UINT32_C(_c)		__CONCAT(_c, U)
-#define	UINT64_C(_c)		__CONCAT(_c, ULL)
-
-/* 7.18.4.2 Macros for greatest-width integer constants. */
-#define	INTMAX_C(_c)		__CONCAT(_c, LL)
-#define	UINTMAX_C(_c)		__CONCAT(_c, ULL)
-
-#endif /* __cplusplus || __STDC_CONSTANT_MACROS */
-
-#endif /* _SYS_STDINT_H_ */
diff --git a/payloads/libpayload/util/xcompile/xcompile b/payloads/libpayload/util/xcompile/xcompile
index 62e7a38..58f086f 100644
--- a/payloads/libpayload/util/xcompile/xcompile
+++ b/payloads/libpayload/util/xcompile/xcompile
@@ -41,7 +41,7 @@ testcc() {
 	local tmp_o="$TMPFILE.o"
 	rm -f "$tmp_c" "$tmp_o"
 	echo "_start(void) {}" >"$tmp_c"
-	"$1" -nostdlib -Werror $2 "$tmp_c" -o "$tmp_o" >/dev/null 2>&1
+	"$1" -nostdinc -nostdlib -Werror $2 "$tmp_c" -o "$tmp_o" >/dev/null 2>&1
 }
 
 testas() {



More information about the coreboot mailing list