Message ID | 1360685497-24237-1-git-send-email-sebastian.huber@embedded-brains.de |
---|---|
State | New |
Headers | show |
On 12/02/2013 16:11, Sebastian Huber wrote: > This patch from Alan Modra fixes a section type conflict error. See also > > http://gcc.gnu.org/ml/gcc-patches/2012-10/msg02172.html The Windows part is OK. I ran the g++ testsuite (gcc/, not libstdc) with no change before and after. cheers, DaveK
Hello, so now we have the approval of the Windows specific part. David Edelsohn said that the rs6000 specific part is all right: http://gcc.gnu.org/ml/gcc/2013-02/msg00186.html This patch is available for review since October 2012. What is missing to get this finally committed to GCC 4.8? On 02/24/2013 02:04 PM, Dave Korn wrote: > On 12/02/2013 16:11, Sebastian Huber wrote: >> This patch from Alan Modra fixes a section type conflict error. See also >> >> http://gcc.gnu.org/ml/gcc-patches/2012-10/msg02172.html > > The Windows part is OK. I ran the g++ testsuite (gcc/, not libstdc) with no > change before and after. > > cheers, > DaveK >
Hello, since GCC 4.8.0 is now released it would be very kind if someone can decide if this fix for PR55033 can be integrated in the 4.8 branch and/or trunk. For 32-bit Book E PowerPC targets this bug is a show stopper from my point of view. Even though this is only tertiary GCC platform without maintainer my guess is that it is still a popular GNU/Linux embedded platform. On 02/27/2013 03:40 PM, Sebastian Huber wrote: > Hello, > > so now we have the approval of the Windows specific part. David Edelsohn said > that the rs6000 specific part is all right: > > http://gcc.gnu.org/ml/gcc/2013-02/msg00186.html > > This patch is available for review since October 2012. > > What is missing to get this finally committed to GCC 4.8? > > On 02/24/2013 02:04 PM, Dave Korn wrote: >> On 12/02/2013 16:11, Sebastian Huber wrote: >>> This patch from Alan Modra fixes a section type conflict error. See also >>> >>> http://gcc.gnu.org/ml/gcc-patches/2012-10/msg02172.html >> >> The Windows part is OK. I ran the g++ testsuite (gcc/, not libstdc) with no >> change before and after. >> >> cheers, >> DaveK >> > >
On 02/22/2013 02:51 AM, Alan Modra wrote: > Richard, can I bother you with a review request? > http://gcc.gnu.org/ml/gcc-patches/2013-02/msg00544.html Sorry for the truly excessive delay here. This patch is ok for mainline and 4.8.1. r~
On Thu, May 09, 2013 at 08:47:19AM -0700, Richard Henderson wrote: > On 02/22/2013 02:51 AM, Alan Modra wrote: > > Richard, can I bother you with a review request? > > http://gcc.gnu.org/ml/gcc-patches/2013-02/msg00544.html > > Sorry for the truly excessive delay here. > > This patch is ok for mainline and 4.8.1. Thanks. Committed revision 198762 and 198763.
On 05/10/2013 03:55 AM, Alan Modra wrote: > On Thu, May 09, 2013 at 08:47:19AM -0700, Richard Henderson wrote: >> On 02/22/2013 02:51 AM, Alan Modra wrote: >>> Richard, can I bother you with a review request? >>> http://gcc.gnu.org/ml/gcc-patches/2013-02/msg00544.html >> >> Sorry for the truly excessive delay here. >> >> This patch is ok for mainline and 4.8.1. > > Thanks. Committed revision 198762 and 198763. > Thanks a lot, and sorry for being so obtrusive.
diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c index 118b1ec..7e7c155 100644 --- a/gcc/config/i386/winnt.c +++ b/gcc/config/i386/winnt.c @@ -476,7 +476,7 @@ i386_pe_section_type_flags (tree decl, const char *name, int reloc) flags |= SECTION_PE_SHARED; } - if (decl && DECL_ONE_ONLY (decl)) + if (decl && DECL_P (decl) && DECL_ONE_ONLY (decl)) flags |= SECTION_LINKONCE; /* See if we already have an entry for this section. */ diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index fbf57be..bf0cacb 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -25913,7 +25913,7 @@ rs6000_xcoff_section_type_flags (tree decl, const char *name, int reloc) unsigned int flags = default_section_type_flags (decl, name, reloc); /* Align to at least UNIT size. */ - if (flags & SECTION_CODE || !decl) + if ((flags & SECTION_CODE) != 0 || !decl || !DECL_P (decl)) align = MIN_UNITS_PER_WORD; else /* Increase alignment of large objects if not already stricter. */ diff --git a/gcc/varasm.c b/gcc/varasm.c index 6648103..ea709fd 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -402,12 +402,16 @@ get_named_section (tree decl, const char *name, int reloc) { unsigned int flags; - gcc_assert (!decl || DECL_P (decl)); if (name == NULL) - name = TREE_STRING_POINTER (DECL_SECTION_NAME (decl)); + { + gcc_assert (decl && DECL_P (decl) && DECL_SECTION_NAME (decl)); + name = TREE_STRING_POINTER (DECL_SECTION_NAME (decl)); + } flags = targetm.section_type_flags (decl, name, reloc); + if (decl && !DECL_P (decl)) + decl = NULL_TREE; return get_section (name, flags, decl); } @@ -5989,7 +5993,7 @@ default_section_type_flags (tree decl, const char *name, int reloc) flags |= SECTION_RELRO; } - if (decl && DECL_ONE_ONLY (decl)) + if (decl && DECL_P (decl) && DECL_ONE_ONLY (decl)) flags |= SECTION_LINKONCE; if (decl && TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL_P (decl)) @@ -6348,8 +6352,6 @@ default_elf_select_section (tree decl, int reloc, gcc_unreachable (); } - if (!DECL_P (decl)) - decl = NULL_TREE; return get_named_section (decl, sname, reloc); }