http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46770
--- Comment #18 from Mark Mitchell <mark at codesourcery dot com> 2010-12-11 19:33:17 UTC --- On 12/11/2010 11:03 AM, hjl.tools at gmail dot com wrote: > I am not sure about GOLD. But it usually follows GNU linker. > For GNU linker, the constructor priority is honored within > .ctors.NNNNN and .init_array.NNNNN. ctors.NNNNN will be called > before .init_array.NNNN. >From the linker script fragment you're showing we're not going to get the right behavior. In particular, all .ctors.* are going to get called before any .init_array.*, or vice versa; we won't interleave the two appropriately. So, if I understand correctly, we have a critical problem with switching to .init_array; we'll fail to conform to the specification for GNU constructor priorities.