summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-fslc-imx/0001-compiler-attributes-add-support-for-copy-gcc-9.patch
diff options
context:
space:
mode:
authorTom Hochstein <tom.hochstein@nxp.com>2019-11-14 18:09:36 -0600
committerOtavio Salvador <otavio@ossystems.com.br>2019-11-18 14:43:29 -0300
commitde48050fe0e9015413a01c60bbf5e0469fc1ca50 (patch)
tree161aacdbc298dd2378da42251db67a983a33b778 /recipes-kernel/linux/linux-fslc-imx/0001-compiler-attributes-add-support-for-copy-gcc-9.patch
parent8791f78b8c990e53704b013117f6c53570119ce5 (diff)
downloadmeta-freescale-de48050fe0e9015413a01c60bbf5e0469fc1ca50.tar.gz
linux-fslc-imx_4.9-1.0.x: Backport patches to fix building with gcc 9
Closes #192. Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Diffstat (limited to 'recipes-kernel/linux/linux-fslc-imx/0001-compiler-attributes-add-support-for-copy-gcc-9.patch')
-rw-r--r--recipes-kernel/linux/linux-fslc-imx/0001-compiler-attributes-add-support-for-copy-gcc-9.patch132
1 files changed, 132 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-fslc-imx/0001-compiler-attributes-add-support-for-copy-gcc-9.patch b/recipes-kernel/linux/linux-fslc-imx/0001-compiler-attributes-add-support-for-copy-gcc-9.patch
new file mode 100644
index 00000000..a234c0c3
--- /dev/null
+++ b/recipes-kernel/linux/linux-fslc-imx/0001-compiler-attributes-add-support-for-copy-gcc-9.patch
@@ -0,0 +1,132 @@
1From mboxrd@z Thu Jan 1 00:00:00 1970
2Return-Path: <SRS0=AQQw=UD=vger.kernel.org=stable-owner@kernel.org>
3X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
4 aws-us-west-2-korg-lkml-1.web.codeaurora.org
5X-Spam-Level:
6X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID,
7 DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,
8 SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT
9 autolearn=ham autolearn_force=no version=3.4.0
10Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
11 by smtp.lore.kernel.org (Postfix) with ESMTP id 354C8C282CE
12 for <stable@archiver.kernel.org>; Tue, 4 Jun 2019 13:25:01 +0000 (UTC)
13Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
14 by mail.kernel.org (Postfix) with ESMTP id 0D01C24291
15 for <stable@archiver.kernel.org>; Tue, 4 Jun 2019 13:25:01 +0000 (UTC)
16Authentication-Results: mail.kernel.org;
17 dkim=pass (1024-bit key) header.d=agner.ch header.i=@agner.ch header.b="HG5nfXC5"
18Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
19 id S1727392AbfFDNZA (ORCPT <rfc822;stable@archiver.kernel.org>);
20 Tue, 4 Jun 2019 09:25:00 -0400
21Received: from mail.kmu-office.ch ([178.209.48.109]:48336 "EHLO
22 mail.kmu-office.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
23 with ESMTP id S1727340AbfFDNZA (ORCPT
24 <rfc822;stable@vger.kernel.org>); Tue, 4 Jun 2019 09:25:00 -0400
25Received: from trochilidae.toradex.int (unknown [46.140.72.82])
26 by mail.kmu-office.ch (Postfix) with ESMTPSA id 8BE845C2138;
27 Tue, 4 Jun 2019 15:24:55 +0200 (CEST)
28DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=agner.ch; s=dkim;
29 t=1559654695;
30 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
31 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
32 content-transfer-encoding:content-transfer-encoding:in-reply-to:
33 references; bh=2lQNwDLO9/HfsHTvSmLn5csGG1S09yt0LuSYqXeE0y0=;
34 b=HG5nfXC5qPZvu4E7tM2iveXY8wtjralMObB8KMvD1S6NWkkOwkeLjXonm495Hz+G+geOig
35 NlbMrAg5b6wYCzvMgqUeSBmGkYCjB/7IFlotEiTcUNmOCorD2pTasqUOcpObuc6WqBkEjM
36 3seyrLJVs51y9A3weXf9CMO3OMOXwRA=
37From: Stefan Agner <stefan@agner.ch>
38To: gregkh@linuxfoundation.org
39Cc: stable@vger.kernel.org,
40 Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>,
41 Martin Sebor <msebor@gcc.gnu.org>,
42 Nick Desaulniers <ndesaulniers@google.com>,
43 Stefan Agner <stefan@agner.ch>
44Subject: [PATCH BACKPORT 4.19 1/2] Compiler Attributes: add support for __copy (gcc >= 9)
45Date: Tue, 4 Jun 2019 15:24:40 +0200
46Message-Id: <20190604132441.15383-1-stefan@agner.ch>
47X-Mailer: git-send-email 2.21.0
48MIME-Version: 1.0
49Content-Type: text/plain; charset=UTF-8
50Content-Transfer-Encoding: 8bit
51Sender: stable-owner@vger.kernel.org
52Precedence: bulk
53List-ID: <stable.vger.kernel.org>
54X-Mailing-List: stable@vger.kernel.org
55Archived-At: <https://lore.kernel.org/stable/20190604132441.15383-1-stefan@agner.ch/>
56List-Archive: <https://lore.kernel.org/stable/>
57List-Post: <mailto:stable@vger.kernel.org>
58
59From: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
60
61[ Upstream commit c0d9782f5b6d7157635ae2fd782a4b27d55a6013 ]
62
63>From the GCC manual:
64
65 copy
66 copy(function)
67
68 The copy attribute applies the set of attributes with which function
69 has been declared to the declaration of the function to which
70 the attribute is applied. The attribute is designed for libraries
71 that define aliases or function resolvers that are expected
72 to specify the same set of attributes as their targets. The copy
73 attribute can be used with functions, variables, or types. However,
74 the kind of symbol to which the attribute is applied (either
75 function or variable) must match the kind of symbol to which
76 the argument refers. The copy attribute copies only syntactic and
77 semantic attributes but not attributes that affect a symbol’s
78 linkage or visibility such as alias, visibility, or weak.
79 The deprecated attribute is also not copied.
80
81 https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html
82
83The upcoming GCC 9 release extends the -Wmissing-attributes warnings
84(enabled by -Wall) to C and aliases: it warns when particular function
85attributes are missing in the aliases but not in their target, e.g.:
86
87 void __cold f(void) {}
88 void __alias("f") g(void);
89
90diagnoses:
91
92 warning: 'g' specifies less restrictive attribute than
93 its target 'f': 'cold' [-Wmissing-attributes]
94
95Using __copy(f) we can copy the __cold attribute from f to g:
96
97 void __cold f(void) {}
98 void __copy(f) __alias("f") g(void);
99
100This attribute is most useful to deal with situations where an alias
101is declared but we don't know the exact attributes the target has.
102
103For instance, in the kernel, the widely used module_init/exit macros
104define the init/cleanup_module aliases, but those cannot be marked
105always as __init/__exit since some modules do not have their
106functions marked as such.
107
108Cc: <stable@vger.kernel.org> # 4.14+
109Suggested-by: Martin Sebor <msebor@gcc.gnu.org>
110Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
111Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
112Signed-off-by: Stefan Agner <stefan@agner.ch>
113---
114 include/linux/compiler-gcc.h | 4 ++++
115 include/linux/compiler_types.h | 4 ++++
116 2 files changed, 8 insertions(+)
117
118Index: git/include/linux/compiler-gcc.h
119===================================================================
120--- git.orig/include/linux/compiler-gcc.h
121+++ git/include/linux/compiler-gcc.h
122@@ -282,6 +282,10 @@
123
124 #endif /* gcc version >= 40000 specific checks */
125
126+#if GCC_VERSION >= 90100
127+#define __copy(symbol) __attribute__((__copy__(symbol)))
128+#endif
129+
130 #if !defined(__noclone)
131 #define __noclone /* not needed */
132 #endif