summaryrefslogtreecommitdiffstats
path: root/meta-beagleboard-extras/recipes/linux/linux-mainline/0001-kernel-add-support-for-gcc-5.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-beagleboard-extras/recipes/linux/linux-mainline/0001-kernel-add-support-for-gcc-5.patch')
-rw-r--r--meta-beagleboard-extras/recipes/linux/linux-mainline/0001-kernel-add-support-for-gcc-5.patch99
1 files changed, 99 insertions, 0 deletions
diff --git a/meta-beagleboard-extras/recipes/linux/linux-mainline/0001-kernel-add-support-for-gcc-5.patch b/meta-beagleboard-extras/recipes/linux/linux-mainline/0001-kernel-add-support-for-gcc-5.patch
new file mode 100644
index 0000000..13a89fb
--- /dev/null
+++ b/meta-beagleboard-extras/recipes/linux/linux-mainline/0001-kernel-add-support-for-gcc-5.patch
@@ -0,0 +1,99 @@
1From 376075b9598d602950b73cc78743735585c0a18c Mon Sep 17 00:00:00 2001
2From: Sasha Levin <sasha.levin@oracle.com>
3Date: Mon, 13 Oct 2014 15:51:05 -0700
4Subject: [PATCH] kernel: add support for gcc 5
5
6commit 71458cfc782eafe4b27656e078d379a34e472adf upstream.
7
8We're missing include/linux/compiler-gcc5.h which is required now
9because gcc branched off to v5 in trunk.
10
11Just copy the relevant bits out of include/linux/compiler-gcc4.h,
12no new code is added as of now.
13
14This fixes a build error when using gcc 5.
15
16Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
17Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
18Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
19Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
20---
21 include/linux/compiler-gcc5.h | 66 +++++++++++++++++++++++++++++++++++++++++++
22 1 file changed, 66 insertions(+)
23 create mode 100644 include/linux/compiler-gcc5.h
24
25diff --git a/include/linux/compiler-gcc5.h b/include/linux/compiler-gcc5.h
26new file mode 100644
27index 0000000..cdd1cc2
28--- /dev/null
29+++ b/include/linux/compiler-gcc5.h
30@@ -0,0 +1,66 @@
31+#ifndef __LINUX_COMPILER_H
32+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
33+#endif
34+
35+#define __used __attribute__((__used__))
36+#define __must_check __attribute__((warn_unused_result))
37+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
38+
39+/* Mark functions as cold. gcc will assume any path leading to a call
40+ to them will be unlikely. This means a lot of manual unlikely()s
41+ are unnecessary now for any paths leading to the usual suspects
42+ like BUG(), printk(), panic() etc. [but let's keep them for now for
43+ older compilers]
44+
45+ Early snapshots of gcc 4.3 don't support this and we can't detect this
46+ in the preprocessor, but we can live with this because they're unreleased.
47+ Maketime probing would be overkill here.
48+
49+ gcc also has a __attribute__((__hot__)) to move hot functions into
50+ a special section, but I don't see any sense in this right now in
51+ the kernel context */
52+#define __cold __attribute__((__cold__))
53+
54+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
55+
56+#ifndef __CHECKER__
57+# define __compiletime_warning(message) __attribute__((warning(message)))
58+# define __compiletime_error(message) __attribute__((error(message)))
59+#endif /* __CHECKER__ */
60+
61+/*
62+ * Mark a position in code as unreachable. This can be used to
63+ * suppress control flow warnings after asm blocks that transfer
64+ * control elsewhere.
65+ *
66+ * Early snapshots of gcc 4.5 don't support this and we can't detect
67+ * this in the preprocessor, but we can live with this because they're
68+ * unreleased. Really, we need to have autoconf for the kernel.
69+ */
70+#define unreachable() __builtin_unreachable()
71+
72+/* Mark a function definition as prohibited from being cloned. */
73+#define __noclone __attribute__((__noclone__))
74+
75+/*
76+ * Tell the optimizer that something else uses this function or variable.
77+ */
78+#define __visible __attribute__((externally_visible))
79+
80+/*
81+ * GCC 'asm goto' miscompiles certain code sequences:
82+ *
83+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
84+ *
85+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
86+ * Fixed in GCC 4.8.2 and later versions.
87+ *
88+ * (asm goto is automatically volatile - the naming reflects this.)
89+ */
90+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
91+
92+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
93+#define __HAVE_BUILTIN_BSWAP32__
94+#define __HAVE_BUILTIN_BSWAP64__
95+#define __HAVE_BUILTIN_BSWAP16__
96+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
97--
981.9.1
99