http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46770
--- Comment #90 from Paul Pluzhnikov <ppluzhnikov at google dot com> 2012-04-18 00:50:06 UTC --- (In reply to comment #89) > Your solution will reverse order of reference of .init_array entries with > regards to the linker commandline. > > Linking translation units A B C, will result in C B A execution order. Pardon my confusion ... AFAIU, before init_array was implemented, the .ctors *were* executed in C B A order (by the loader). Are you saying that you've re-ordered the link command line after init_array became available? Or that you kept the link command fixed, but switching to init_array gave you significant speed up, which you don't want to lose?