From 43f35ce971bbd38c51d9c4f760c804769c2f2b8f Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Tue, 13 Mar 2018 22:28:59 +0100 Subject: uboot-imx6: fix build with GCC 7 Backport the compiler support patches from upstream u-boot to this older version to make it compile with GCC 7. This was found by build bot. Signed-off-by: Hauke Mehrtens --- ...ompiler_gcc-prevent-redefining-attributes.patch | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 package/boot/uboot-imx6/patches/102-compiler_gcc-prevent-redefining-attributes.patch (limited to 'package/boot/uboot-imx6/patches/102-compiler_gcc-prevent-redefining-attributes.patch') diff --git a/package/boot/uboot-imx6/patches/102-compiler_gcc-prevent-redefining-attributes.patch b/package/boot/uboot-imx6/patches/102-compiler_gcc-prevent-redefining-attributes.patch new file mode 100644 index 0000000000..0a6219c2b4 --- /dev/null +++ b/package/boot/uboot-imx6/patches/102-compiler_gcc-prevent-redefining-attributes.patch @@ -0,0 +1,69 @@ +From 0a5051ce6ebd5f6fad58fd50d6922493d8447f14 Mon Sep 17 00:00:00 2001 +From: Jeroen Hofstee +Date: Thu, 18 Sep 2014 20:10:27 +0200 +Subject: compiler_gcc: prevent redefining attributes + +The libc headers on FreeBSD and likely related projects as well contain an +header file, cdefs.h which provides similiar functionality as linux/compiler.h. +It provides compiler independent defines like __weak __packed, to allow +compiling with multiple compilers which might have a different syntax for such +extension. + +Since that header file is included in multiple standard headers, like stddef.h +and stdarg.h, multiple definitions of those defines will be present if both are +included. When compiling u-boot the compiler will warn about it hundreds of +times since e.g. common.h will include both files indirectly. + +commit 7ea50d52849fe8ffa5b5b74c979b60b1045d6fc9 "compiler_gcc: do not redefine +__gnu_attributes" prevented such redefinitions, but this was undone by commit +fb8ffd7cfc68b3dc44e182356a207d784cb30b34 "compiler*.h: sync +include/linux/compiler*.h with Linux 3.16". + +Add the checks back where necessary to prevent such warnings. + +As the original patch this checkpatch warning is ignored: +"WARNING: Adding new packed members is to be done with care" + +Cc: Masahiro Yamada +Cc: Tom Rini +Signed-off-by: Jeroen Hofstee +Acked-by: Masahiro Yamada +--- + include/linux/compiler-gcc.h | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/include/linux/compiler-gcc.h ++++ b/include/linux/compiler-gcc.h +@@ -64,8 +64,12 @@ + #endif + + #define __deprecated __attribute__((deprecated)) ++#ifndef __packed + #define __packed __attribute__((packed)) ++#endif ++#ifndef __weak + #define __weak __attribute__((weak)) ++#endif + + /* + * it doesn't make sense on ARM (currently the only user of __naked) to trace +@@ -91,8 +95,12 @@ + * would be. + * [...] + */ ++#ifndef __pure + #define __pure __attribute__((pure)) ++#endif ++#ifndef __aligned + #define __aligned(x) __attribute__((aligned(x))) ++#endif + #define __printf(a, b) __attribute__((format(printf, a, b))) + #define __scanf(a, b) __attribute__((format(scanf, a, b))) + #define noinline __attribute__((noinline)) +@@ -115,4 +123,6 @@ + */ + #define uninitialized_var(x) x = x + ++#ifndef __always_inline + #define __always_inline inline __attribute__((always_inline)) ++#endif -- cgit v1.2.3