https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81337
--- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> --- Bug 52477 deals with the parallel issue for construction. As I mentioned there, I think the right solution is to handle attribute constructor/destructor using the C++ __static_initialization_and_destruction mechanism rather than .{init,fini}_array.