This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [google/gcc-4_6_2-mobile] PATCH: PR other/46770: Replace .ctors/.dtors with .init_array/.fini_array on targets supporting them

The attachment is a complete patch for [google/gcc-4_6] branch, to
replace .ctors/.dtors with .init_array/.fini_array.

Bootstrap and crosstool testers pass.
I have verified that "gcc_cv_initfini_array=no", which means the
crosstool will do whatever it did before (won't replace .ctors/.dtors
with .init_array/.fini_array).

I also built Android toolchain and verified "gcc_cv_initfini_array=no".

r177933 is already in google/gcc-4_6_2-mobile and
google/gcc-4_6-mobile. I need to backport the rest to these two


2012-02-21   Jing Yu  <>

        Google Ref 47894
        Backport from mainline r177933, r175181, r177963, r178116, r183299.

        2011-08-20  H.J. Lu  <>
        PR other/46770
        * config.gcc (tm_file): Add initfini-array.h if
        .init_arrary/.fini_array are supported.
        * crtstuff.c: Don't generate .ctors nor .dtors sections if
        USE_INITFINI_ARRAY is defined.
        * output.h (default_elf_init_array_asm_out_constructor): New.
        (default_elf_fini_array_asm_out_destructor): Likewise.
        * varasm.c (elf_init_array_section): Likewise.
        (elf_fini_array_section): Likewise.
        (get_elf_initfini_array_priority_section): Likewise.
        (default_elf_init_array_asm_out_constructor): Likewise.
        (default_elf_fini_array_asm_out_destructor): Likewise.
        * config/initfini-array.h: New.

        2011-06-18  H.J. Lu  <>
        PR other/49325
        * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
        .init_array can be used with .ctors on targets.
        * configure: Regenerated.

        2011-08-22  H.J. Lu  <>
        * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't
        * configure: Regenerated.

        2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
        PR target/50166
        * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
        * configure: Regenerate.

        2012-01-19  Jakub Jelinek  <>
        PR bootstrap/50237
        * config/initfini-array.h: Guard content of the header
        with #ifdef HAVE_INITFINI_ARRAY.
        * Move gcc_AC_INITFINI_ARRAY much later into the
        Add initfini-array.h to tm_file here.
        * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a
        linker test.
        * config.gcc: Don't add initfini-array.h to tm_file here.
        * configure: Regenerated.


On Tue, Feb 21, 2012 at 9:34 AM, H.J. Lu <> wrote:
> On Mon, Feb 20, 2012 at 11:31 PM, Jing Yu <> wrote:
>> Hi H.J.,
>> I think the patch itself is not enough.
>> I compared "AC_DEFUN([gcc_AC_INITFINI_ARRAY]" part (in acinclude.m4)
>> of gcc trunk and google/gcc-4_6_2-mobile, and found how
>> enable_initfini_array is
>> configured is different.
>> The patch breaks some of our tests. enable_initfini_array should be
>> disabled for cross compile by default. But it is not true in our
>> branch. Could you please point us all related patches?
> I missed this backport. There are some additional changes needed for
> non-Linux systems:
> --
> H.J.

Attachment: initfini.patch
Description: Binary data

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]