diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2018-03-13 22:28:59 +0100 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2018-03-13 22:28:59 +0100 |
commit | 43f35ce971bbd38c51d9c4f760c804769c2f2b8f (patch) | |
tree | 2257e71db3614b24cbf55a465d6f7fa7cee33aac /package/boot/uboot-imx6/patches/102-compiler_gcc-prevent-redefining-attributes.patch | |
parent | d482356322c9910541a3118d049718b384a252bd (diff) | |
download | mtk-20170518-43f35ce971bbd38c51d9c4f760c804769c2f2b8f.zip mtk-20170518-43f35ce971bbd38c51d9c4f760c804769c2f2b8f.tar.gz mtk-20170518-43f35ce971bbd38c51d9c4f760c804769c2f2b8f.tar.bz2 |
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 <hauke@hauke-m.de>
Diffstat (limited to 'package/boot/uboot-imx6/patches/102-compiler_gcc-prevent-redefining-attributes.patch')
-rw-r--r-- | package/boot/uboot-imx6/patches/102-compiler_gcc-prevent-redefining-attributes.patch | 69 |
1 files changed, 69 insertions, 0 deletions
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 0000000..0a6219c --- /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 <jeroen@myspectrum.nl> +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 <yamada.m@jp.panasonic.com> +Cc: Tom Rini <trini@ti.com> +Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> +Acked-by: Masahiro Yamada <yamada.m@jp.panasonic.com> +--- + 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 |