From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23140 invoked by alias); 3 Jun 2011 12:31:23 -0000 Received: (qmail 23132 invoked by uid 22791); 3 Jun 2011 12:31:22 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST X-Spam-Check-By: sourceware.org Received: from mail-ww0-f51.google.com (HELO mail-ww0-f51.google.com) (74.125.82.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 03 Jun 2011 12:31:08 +0000 Received: by wwf26 with SMTP id 26so1488147wwf.8 for ; Fri, 03 Jun 2011 05:31:07 -0700 (PDT) MIME-Version: 1.0 Received: by 10.227.62.207 with SMTP id y15mr1840043wbh.86.1307104266686; Fri, 03 Jun 2011 05:31:06 -0700 (PDT) Received: by 10.227.37.152 with HTTP; Fri, 3 Jun 2011 05:31:06 -0700 (PDT) In-Reply-To: References: Date: Fri, 03 Jun 2011 12:31:00 -0000 Message-ID: Subject: Re: PING: PATCH: PR target/46770: Use .init_array/.fini_array sections From: Richard Guenther To: "H.J. Lu" Cc: GCC Patches Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-06/txt/msg00225.txt.bz2 On Fri, Jun 3, 2011 at 6:31 AM, H.J. Lu wrote: > On Wed, May 18, 2011 at 8:57 AM, H.J. Lu wrote: >> On Tue, Apr 26, 2011 at 6:05 AM, H.J. Lu wrote: >>> On Thu, Mar 31, 2011 at 7:57 AM, H.J. Lu wrote: >>>> On Mon, Mar 21, 2011 at 11:40 AM, H.J. Lu wrote: >>>>> On Mon, Mar 14, 2011 at 12:28 PM, H.J. Lu wrote: >>>>>> On Thu, Jan 27, 2011 at 2:40 AM, Richard Guenther >>>>>> wrote: >>>>>>> On Thu, Jan 27, 2011 at 12:12 AM, H.J. Lu wr= ote: >>>>>>>> On Tue, Dec 14, 2010 at 05:20:48PM -0800, H.J. Lu wrote: >>>>>>>>> This patch uses .init_array/.fini_array sections instead of >>>>>>>>> .ctors/.dtors sections if mixing .init_array/.fini_array and >>>>>>>>> .ctors/.dtors sections with init_priority works. >>>>>>>>> >>>>>>>>> It removes .ctors/.ctors sections from executables and DSOes, whi= ch will >>>>>>>>> remove one function call at startup time from each executable and= DSO. >>>>>>>>> It should reduce image size and improve system startup time. >>>>>>>>> >>>>>>>>> If a platform with a working .init_array/.fini_array support need= s a >>>>>>>>> different .init_array/.fini_array implementation, it can set >>>>>>>>> use_initfini_array to no. >>>>>>>>> >>>>>>>>> Since .init_array/.fini_array is a target feature. --enable-initf= ini-array >>>>>>>>> is default to no unless the native run-time test is passed. >>>>>>>>> >>>>>>>>> To pass the native run-time test, a linker with SORT_BY_INIT_PRIO= RITY >>>>>>>>> support is required. =A0The binutils patch is available at >>>>>>>>> >>>>>>>>> http://sourceware.org/ml/binutils/2010-12/msg00466.html >>>>>>>> >>>>>>>> Linker patch has been checked in. >>>>>>>> >>>>>>>>> >>>>>>>>> This patch passed 32bit/64bit regression test on Linux/x86-64. = =A0Any >>>>>>>>> comments? >>>>>>>>> >>>>>>>> >>>>>>>> This updated patch fixes build on Linux/ia64 and should work on ot= hers. >>>>>>>> Any comments? >>>>>>> >>>>>>> Yes. =A0This is stage1 material. >>>>>>> >>>>>> >>>>>> Here is the updated patch. =A0OK for trunk? >>>>>> >>>>>> Thanks. >>>>>> >>>>>> >>>>>> -- >>>>>> H.J. >>>>>> ---- >>>>>> 2011-03-14 =A0H.J. Lu =A0 >>>>>> >>>>>> =A0 =A0 =A0 =A0PR target/46770 >>>>>> =A0 =A0 =A0 =A0* acinclude.m4 (gcc_AC_INITFINI_ARRAY): Removed. >>>>>> >>>>>> =A0 =A0 =A0 =A0* config.gcc (use_initfini_array): New variable. >>>>>> =A0 =A0 =A0 =A0Use initfini-array.o if supported. >>>>>> >>>>>> =A0 =A0 =A0 =A0* crtstuff.c: Don't generate .ctors nor .dtors sectio= ns if >>>>>> =A0 =A0 =A0 =A0NO_CTORS_DTORS_SECTIONS is defined. >>>>>> >>>>>> =A0 =A0 =A0 =A0* configure.ac: Remove gcc_AC_INITFINI_ARRAY. =A0Add >>>>>> =A0 =A0 =A0 =A0--enable-initfini-array and check if .init_array can = be used with >>>>>> =A0 =A0 =A0 =A0.ctors. >>>>>> >>>>>> =A0 =A0 =A0 =A0* configure: Regenerated. >>>>>> >>>>>> =A0 =A0 =A0 =A0* config/initfini-array.c: New. >>>>>> =A0 =A0 =A0 =A0* config/initfini-array.h: Likewise. >>>>>> =A0 =A0 =A0 =A0* config/t-initfini-array: Likewise. >>>>>> >>>>>> =A0 =A0 =A0 =A0* config/arm/arm.c (arm_asm_init_sections): Call >>>>>> =A0 =A0 =A0 =A0elf_initfini_array_init_sections if NO_CTORS_DTORS_SE= CTIONS >>>>>> =A0 =A0 =A0 =A0is defined. >>>>>> =A0 =A0 =A0 =A0* config/avr/avr.c (avr_asm_init_sections): Likewise. >>>>>> =A0 =A0 =A0 =A0* config/ia64/ia64.c (ia64_asm_init_sections): Likewi= se. >>>>>> =A0 =A0 =A0 =A0* config/mep/mep.c (mep_asm_init_sections): Likewise. >>>>>> =A0 =A0 =A0 =A0* config/microblaze/microblaze.c (microblaze_elf_asm_= init_sections): >>>>>> =A0 =A0 =A0 =A0Likewise. >>>>>> =A0 =A0 =A0 =A0* config/rs6000/rs6000.c (rs6000_elf_asm_init_section= s): Likewise. >>>>>> =A0 =A0 =A0 =A0* config/stormy16/stormy16.c (xstormy16_asm_init_sect= ions): >>>>>> =A0 =A0 =A0 =A0Likewise. >>>>>> =A0 =A0 =A0 =A0* config/v850/v850.c (v850_asm_init_sections): Likewi= se. >>>>>> >>>>> >>>>> PING: >>>>> >>>>> http://gcc.gnu.org/ml/gcc-patches/2011-03/msg00760.html >>>>> >>>> >>>> Any comments? =A0Any objections? >>>> >>> >>> Here is the patch updated for the current trunk. =A0OK for trunk? >>> >> >> PING,. > > Hi Richard, > > You commented my patch was stage 1 material: > > http://gcc.gnu.org/ml/gcc-patches/2011-01/msg01989.html > > Is my patch: > > http://gcc.gnu.org/ml/gcc-patches/2011-03/msg00760.html > > OK for trunk? I can't approve the configury changes and would like to defer to target maintainers for the target specific changes. That said, I'm not familiar enough with the area of the patch. But yes, it's stage1 now - so if anyone else wants to approve this patch... Richard. > Thanks. > > > -- > H.J. >