summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.9/0056-top-level-reorder_gcc-bug-61144.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.9/0056-top-level-reorder_gcc-bug-61144.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.9/0056-top-level-reorder_gcc-bug-61144.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.9/0056-top-level-reorder_gcc-bug-61144.patch b/meta/recipes-devtools/gcc/gcc-4.9/0056-top-level-reorder_gcc-bug-61144.patch
new file mode 100644
index 0000000000..f44893251c
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.9/0056-top-level-reorder_gcc-bug-61144.patch
@@ -0,0 +1,31 @@
1
2Upstream-Status: Backport
3
4Originally-submitted-by: Peter Urbanec <openembedded-devel@urbanec.net>
5Signed-off-by: Saul Wold <sgw@linux.intel.com>
6
7--- /dev/null
8+++ b/meta/recipes-devtools/gcc/gcc-4.9/0056-top-level-reorder_gcc-bug-61144.patch
9@@ -0,0 +1,21 @@
10+--- a/gcc/varpool.c 2014/10/05 02:50:01 215895
11++++ b/gcc/varpool.c 2014/10/05 04:52:19 215896
12+@@ -329,8 +329,16 @@
13+
14+ /* Variables declared 'const' without an initializer
15+ have zero as the initializer if they may not be
16+- overridden at link or run time. */
17+- if (!DECL_INITIAL (real_decl)
18++ overridden at link or run time.
19++
20++ It is actually requirement for C++ compiler to optimize const variables
21++ consistently. As a GNU extension, do not enfore this rule for user defined
22++ weak variables, so we support interposition on:
23++ static const int dummy = 0;
24++ extern const int foo __attribute__((__weak__, __alias__("dummy")));
25++ */
26++ if ((!DECL_INITIAL (real_decl)
27++ || (DECL_WEAK (decl) && !DECL_COMDAT (decl)))
28+ && (DECL_EXTERNAL (decl) || decl_replaceable_p (decl)))
29+ return error_mark_node;
30+
31