summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--payloads/libpayload/Makefile.inc3
-rwxr-xr-xpayloads/libpayload/bin/lpgcc4
-rw-r--r--payloads/libpayload/include/compiler.h53
-rw-r--r--payloads/libpayload/tests/Makefile.inc3
-rw-r--r--src/arch/riscv/opensbi.c4
-rw-r--r--src/commonlib/bsd/include/commonlib/bsd/compiler.h18
-rw-r--r--src/commonlib/include/commonlib/helpers.h4
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