diff options
-rw-r--r-- | payloads/libpayload/Makefile.inc | 3 | ||||
-rwxr-xr-x | payloads/libpayload/bin/lpgcc | 4 | ||||
-rw-r--r-- | payloads/libpayload/include/compiler.h | 53 | ||||
-rw-r--r-- | payloads/libpayload/tests/Makefile.inc | 3 | ||||
-rw-r--r-- | src/arch/riscv/opensbi.c | 4 | ||||
-rw-r--r-- | src/commonlib/bsd/include/commonlib/bsd/compiler.h | 18 | ||||
-rw-r--r-- | src/commonlib/include/commonlib/helpers.h | 4 |
7 files changed, 20 insertions, 69 deletions
diff --git a/payloads/libpayload/Makefile.inc b/payloads/libpayload/Makefile.inc index 430994b366..538309a14f 100644 --- a/payloads/libpayload/Makefile.inc +++ b/payloads/libpayload/Makefile.inc @@ -60,7 +60,8 @@ subdirs-$(CONFIG_LP_LZ4) += liblz4 subdirs-$(CONFIG_LP_VBOOT_LIB) += vboot INCLUDES := -Iinclude -Iinclude/$(ARCHDIR-y) -I$(obj) -INCLUDES += -include include/kconfig.h -include include/compiler.h +INCLUDES += -include include/kconfig.h +INCLUDES += -include $(coreboottop)/src/commonlib/bsd/include/commonlib/bsd/compiler.h INCLUDES += -I$(coreboottop)/src/commonlib/bsd/include INCLUDES += -I$(VBOOT_SOURCE)/firmware/include diff --git a/payloads/libpayload/bin/lpgcc b/payloads/libpayload/bin/lpgcc index 77ceda3ed9..5e418e84bd 100755 --- a/payloads/libpayload/bin/lpgcc +++ b/payloads/libpayload/bin/lpgcc @@ -168,9 +168,11 @@ if [ $_LIBDIR = $_OBJ ]; then _CFLAGS="$_CFLAGS -I$BASE/../curses" fi + _CFLAGS="$_CFLAGS -include $BASE/../../../src/commonlib/bsd/include/commonlib/bsd/compiler.h" _CFLAGS="$_CFLAGS -I$BASE/../../../src/commonlib/bsd/include" _CFLAGS="$_CFLAGS -I$BASE/../../../3rdparty/vboot/firmware/include" else + _CFLAGS="$_CFLAGS -include $BASE/../include/commonlib/bsd/compiler.h" _CFLAGS="$_CFLAGS -I$_VBOOTINCDIR" fi @@ -179,7 +181,7 @@ fi trygccoption -fno-stack-protector [ $? -eq 0 ] && _CFLAGS="$_CFLAGS -fno-stack-protector" -_CFLAGS="$_CFLAGS -include $BASE/../include/kconfig.h -include $BASE/../include/compiler.h" +_CFLAGS="$_CFLAGS -include $BASE/../include/kconfig.h" _CFLAGS="$_CFLAGS -I`$DEFAULT_CC $_ARCHEXTRA -print-search-dirs | head -n 1 | cut -d' ' -f2`include" if [ "$CONFIG_LP_VBOOT_LIB" = y ]; then diff --git a/payloads/libpayload/include/compiler.h b/payloads/libpayload/include/compiler.h deleted file mode 100644 index ee2ff88d10..0000000000 --- a/payloads/libpayload/include/compiler.h +++ /dev/null @@ -1,53 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-only */ - -#ifndef _COMMONLIB_BSD_COMPILER_H_ -#define _COMMONLIB_BSD_COMPILER_H_ - -#ifndef __packed -#if defined(__WIN32) || defined(__WIN64) -#define __packed __attribute__((gcc_struct, packed)) -#else -#define __packed __attribute__((packed)) -#endif -#endif - -#ifndef __aligned -#define __aligned(x) __attribute__((aligned(x))) -#endif - -#ifndef __always_unused -#define __always_unused __attribute__((unused)) -#endif - -#ifndef __must_check -#define __must_check __attribute__((warn_unused_result)) -#endif - -#ifndef __weak -#define __weak __attribute__((weak)) -#endif - -#ifndef __noreturn -#define __noreturn __attribute__((noreturn)) -#endif - -#ifndef __always_inline -#define __always_inline inline __attribute__((always_inline)) -#endif - -/* This evaluates to the type of the first expression, unless that is constant - in which case it evalutates to the type of the second. This is useful when - assigning macro parameters to temporary variables, because that would - normally circumvent the special loosened type promotion rules for integer - literals. By using this macro, the promotion can happen at the time the - literal is assigned to the temporary variable. If the literal doesn't fit in - the chosen type, -Werror=overflow will catch it, so this should be safe. */ -#define __TYPEOF_UNLESS_CONST(expr, fallback_expr) __typeof__( \ - __builtin_choose_expr(__builtin_constant_p(expr), fallback_expr, expr)) - -/* This creates a unique local variable name for use in macros. */ -#define __TMPNAME_3(i) __tmpname_##i -#define __TMPNAME_2(i) __TMPNAME_3(i) -#define __TMPNAME __TMPNAME_2(__COUNTER__) - -#endif diff --git a/payloads/libpayload/tests/Makefile.inc b/payloads/libpayload/tests/Makefile.inc index 529524ca32..2a067e0f9f 100644 --- a/payloads/libpayload/tests/Makefile.inc +++ b/payloads/libpayload/tests/Makefile.inc @@ -30,7 +30,8 @@ TEST_CONFIG_ := CONFIG_LP_ # Default includes -TEST_CFLAGS := -include include/kconfig.h -include include/compiler.h +TEST_CFLAGS := -include include/kconfig.h +TEST_CFLAGS += -include $(coreboottop)/src/commonlib/bsd/include/commonlib/bsd/compiler.h TEST_CFLAGS += -Iinclude -Iinclude/mock TEST_CFLAGS += -I$(coreboottop)/src/commonlib/bsd/include TEST_CFLAGS += -I$(dir $(TEST_KCONFIG_AUTOHEADER)) diff --git a/src/arch/riscv/opensbi.c b/src/arch/riscv/opensbi.c index 3a738ec83a..eb557d240a 100644 --- a/src/arch/riscv/opensbi.c +++ b/src/arch/riscv/opensbi.c @@ -1,5 +1,9 @@ /* SPDX-License-Identifier: GPL-2.0-only */ +/* OpenSBI wants to make its own definitions for some of our compiler.h macros. */ +#undef __packed +#undef __noreturn + #include <sbi/fw_dynamic.h> #include <arch/boot.h> /* DO NOT INCLUDE COREBOOT HEADERS HERE */ diff --git a/src/commonlib/bsd/include/commonlib/bsd/compiler.h b/src/commonlib/bsd/include/commonlib/bsd/compiler.h index ebf017900d..42f9235e8e 100644 --- a/src/commonlib/bsd/include/commonlib/bsd/compiler.h +++ b/src/commonlib/bsd/include/commonlib/bsd/compiler.h @@ -5,34 +5,34 @@ #ifndef __packed #if defined(__WIN32) || defined(__WIN64) -#define __packed __attribute__((gcc_struct, packed)) +#define __packed __attribute__((__gcc_struct__, __packed__)) #else -#define __packed __attribute__((packed)) +#define __packed __attribute__((__packed__)) #endif #endif #ifndef __aligned -#define __aligned(x) __attribute__((aligned(x))) +#define __aligned(x) __attribute__((__aligned__(x))) #endif -#ifndef __always_unused -#define __always_unused __attribute__((unused)) +#ifndef __unused +#define __unused __attribute__((__unused__)) #endif #ifndef __must_check -#define __must_check __attribute__((warn_unused_result)) +#define __must_check __attribute__((__warn_unused_result__)) #endif #ifndef __weak -#define __weak __attribute__((weak)) +#define __weak __attribute__((__weak__)) #endif #ifndef __noreturn -#define __noreturn __attribute__((noreturn)) +#define __noreturn __attribute__((__noreturn__)) #endif #ifndef __always_inline -#define __always_inline inline __attribute__((always_inline)) +#define __always_inline inline __attribute__((__always_inline__)) #endif #ifndef __fallthrough diff --git a/src/commonlib/include/commonlib/helpers.h b/src/commonlib/include/commonlib/helpers.h index b073e0e492..c294bee117 100644 --- a/src/commonlib/include/commonlib/helpers.h +++ b/src/commonlib/include/commonlib/helpers.h @@ -34,10 +34,6 @@ const __typeof__(((type *)0)->member) *__mptr = (ptr); \ (type *)((char *)__mptr - offsetof(type, member)); }) -#ifndef __unused -#define __unused __attribute__((unused)) -#endif - #ifndef alloca #define alloca(x) __builtin_alloca(x) #endif |