PING: PATCH: PR target/46770: Use .init_array/.fini_array sections
DJ Delorie
dj@redhat.com
Mon Mar 19 20:35:00 GMT 2012
This breaks constructors on pretty much every elf+newlib target,
because newlib and gcc both use HAVE_INITFINI_ARRAY (and have for many
years) but the tests don't match. GCC puts ctors in .ctors but libgcc
is built without support for them (newlib's generated config headers
define HAVE_INITFINI_ARRAY, which causes gcc's initini-array.h to set
USE_INITFINI_ARRAY, which shuts off libgcc's ctor/dtor support), so
they don't run.
> 2011-08-20 H.J. Lu <hongjiu.lu@intel.com>
>
> PR target/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.
More information about the Gcc-patches
mailing list