Skip to contentSkip to conversation

Fix for gcc bug 61144

PATCH In review Peter Urbanec 3 participants 4 messages Oct 10, 2014 – Oct 13, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix for gcc bug 61144

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61144 for details.

This patch is taken from the gcc repository and should be obsoleted by a gcc release after 4.9.1

The problem is severe enough (at least from my point of view) to need this patch until the next gcc release is available.

commit 03ae7912aadbf3b55b966a1367f07c7dbbddda80

Author: Peter Urbanec
Date:   Fri Oct 10 00:03:28 2014 +1100

gcc: Patch for gcc bug 61144.

This fixes gcc bug 6144, which in my case exhibited itself as a kernel module that failed to load. This was because static platform_data structures were being corrupted with the optimiser being set to any value other than -O0.

meta/recipes-devtools/gcc/gcc-4.9.inc +1 -0
index 25778bd..9a66cd2 100644
@@ -70,6 +70,7 @@ SRC_URI = "\
     file://0053-gcc-fix-segfault-from-calling-free-on-non-malloc-d-a.patch \
     file://0054-gcc-Makefile.in-fix-parallel-building-failure.patch \
     file://0055-PR-rtl-optimization-61801.patch \
+    file://0056-top-level-reorder_gcc-bug-61144.patch \
 "
 SRC_URI[md5sum] = "fddf71348546af523353bd43d34919c1"
 SRC_URI[sha256sum] = "d334781a124ada6f38e63b545e2a3b8c2183049515a1abab6d513f109f1d717e"
meta/recipes-devtools/gcc/gcc-4.9/0056-top-level-reorder_gcc-bug-61144.patch new file +25 -0
new file mode 100644
index 0000000..11fa969
@@ -0,0 +1,25 @@
+--- /dev/null
++++ b/meta/recipes-devtools/gcc/gcc-4.9/0056-top-level-reorder_gcc-bug-61144.patch
+@@ -0,0 +1,21 @@
++--- a/gcc/varpool.c    2014/10/05 02:50:01     215895
+++++ b/gcc/varpool.c    2014/10/05 04:52:19     215896
++@@ -329,8 +329,16 @@
++
++   /* Variables declared 'const' without an initializer
++      have zero as the initializer if they may not be
++-     overridden at link or run time.  */
++-  if (!DECL_INITIAL (real_decl)
+++     overridden at link or run time.
+++
+++     It is actually requirement for C++ compiler to optimize const variables
+++     consistently. As a GNU extension, do not enfore this rule for user defined
+++     weak variables, so we support interposition on:
+++     static const int dummy = 0;
+++     extern const int foo __attribute__((__weak__, __alias__("dummy")));
+++   */
+++  if ((!DECL_INITIAL (real_decl)
+++       || (DECL_WEAK (decl) && !DECL_COMDAT (decl)))
++       && (DECL_EXTERNAL (decl) || decl_replaceable_p (decl)))
++     return error_mark_node;
++ 
+
#1 lore raw
Quoted 11 lines · Peter Urbanec

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61144 for details.

This patch is taken from the gcc repository and should be obsoleted by a gcc release after 4.9.1

The problem is severe enough (at least from my point of view) to need this patch until the next gcc release is available.

Hi Peter

Thank you for the patches.

Both the patch and the 0056-top-level-reorder_gcc-bug-61144.patch patch file need to have Signed-off-by tags and the gcc patch itself needs an Upstream-Status: Backport tag so we know it was a backport.

Please review the http://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines

I also note the second patch you sent does not have a Signed-off-by in the commit message or the .patch files (which also needs an Upstream-Status tag).

Can you please send a V2 updates commit for both of these.

Thanks
Sau!

#2 lore raw
Quoted 21 lines · Saul Wold
Quoted 11 lines · Peter Urbanec

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61144 for details.

This patch is taken from the gcc repository and should be obsoleted by a gcc release after 4.9.1

The problem is severe enough (at least from my point of view) to need this patch until the next gcc release is available.

Hi Peter

Thank you for the patches.

Both the patch and the 0056-top-level-reorder_gcc-bug-61144.patch patch file need to have Signed-off-by tags and the gcc patch itself needs an
Upstream-Status: Backport tag so we know it was a backport.

Quoted 8 lines

Please review the
http://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines

I also note the second patch you sent does not have a Signed-off-by in the commit message or the .patch files (which also needs an Upstream-Status tag).

Can you please send a V2 updates commit for both of these.

Just to be clear, because of the important nature of the gcc fix and our looming release deadlines, Saul has sent out a version of it in this case. We don't normally do that.

Cheers,

Richard

#3 lore raw
Quoted 9 lines · Richard Purdie
Quoted 4 lines · Saul Wold

Thank you for the patches.

Please review the
http://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines

Just to be clear, because of the important nature of the gcc fix and our looming release deadlines, Saul has sent out a version of it in this case. We don't normally do that.

Gentlemen,

Thanks for cleaning up the gcc patch and getting it in. Much appreciated!

As far as the pre/postrm patch is concerned, I'll resubmit a little later. Now that I have some feedback on the patch, I can see scope for improvement. When I do re-submit, I'll heed the guidelines.

Thanks for your guidance.

Peter