Hi, I would like to resubmit these patches for comments. The previous detailed discussion is available in the below mentioned link. https://gcc.gnu.org/ml/gcc-patches/2014-04/msg01679.html https://gcc.gnu.org/ml/gcc-patches/2014-05/msg00489.html The issue is still reproducible on GCC v4.8 branch. I have tested both the attached patches with e500v2 tool chain on GCC v4.8 branch [rev 221667] and GCC trunk [rev 221310] with no regressions. Patch1 [gcc.fix_pr60158_fixup_table_fsf_1]: Pass actual alignment value to output_constant_pool_2. Patch2 [gcc.fix_pr60158_fixup_table_fsf_2]: Use the alignment data available in the first argument (constant_descriptor_rtx) of output_constant_pool_1. (Note: this generates ".align" directive twice). Please let me know your comments. Regards, Rohit -----Original Message----- From: Dharmakan Rohit-B30502 Sent: Wednesday, June 04, 2014 4:46 PM To: gcc-patches@gcc.gnu.org Subject: RE: [Patch, PR 60158] gcc/varasm.c : Pass actual alignment value to output_constant_pool_2 Ping. I have changed the subject line accordingly. Regards, Rohit > -----Original Message----- > From: David Edelsohn [mailto:dje.gcc@gmail.com] > Sent: Thursday, May 08, 2014 9:28 PM > To: Dharmakan Rohit-B30502; Jakub Jelinek; Richard Biener > Cc: Alan Modra; gcc-patches@gcc.gnu.org; Wienskoski Edmar-RA8797 > Subject: Re: [Patch, PR 60158] Generate .fixup sections for > .data.rel.ro.local entries. > > Rohit, > > The subject line and thread may confuse people that this is a PowerPC- > specific issue. You need approval from a reviewer with authority over > varasm.c. > > Thanks, David > > On Thu, May 8, 2014 at 9:54 AM, rohitarulraj@freescale.com > wrote: > >> -----Original Message----- > >> From: Alan Modra [mailto:amodra@gmail.com] > >> Sent: Saturday, April 26, 2014 11:52 AM > >> To: Dharmakan Rohit-B30502 > >> Cc: gcc-patches@gcc.gnu.org; dje.gcc@gmail.com; Wienskoski > >> Edmar-RA8797 > >> Subject: Re: [Patch, PR 60158] Generate .fixup sections for > >> .data.rel.ro.local entries. > >> > >> On Fri, Apr 25, 2014 at 02:57:38PM +0000, > >> rohitarulraj@freescale.com > >> wrote: > >> > Source file: gcc-4.8.2/gcc/varasm.c @@ -7120,7 +7120,7 @@ > >> > if (CONSTANT_POOL_ADDRESS_P (symbol)) > >> > { > >> > desc = SYMBOL_REF_CONSTANT (symbol); > >> > output_constant_pool_1 (desc, 1); > >> ------------- (A) > >> > offset += GET_MODE_SIZE (desc->mode); > >> > >> I think the reason 1 is passed here for align is that with > >> -fsection- anchors, in output_object_block we've already laid out > >> everything in the block, assigning offsets from the start of the > >> block. Aligning shouldn't be necessary, because we've already done > >> that.. OTOH, it shouldn't hurt to align again. > >> > > Thanks. I have tested for both the cases on e500v2, e500mc, e5500, > ppc64 (GCC v4.8.2 branch) with no regressions. > > > > Patch1 [gcc.fix_pr60158_fixup_table-fsf]: Pass actual alignment > > value > to output_constant_pool_2. > > Patch2 [gcc.fix_pr60158_fixup_table-fsf-2]: Use the alignment data > available in the first argument (constant_descriptor_rtx) of > output_constant_pool_1. > > (Note: this generates ".align" directive twice). > > > > Is it ok to commit? Any comments? > > > > Regards, > > Rohit > >