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