http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56393
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-02-20 14:43:02 UTC --- .preinit_array is only processed in executables, so this only affects -static-libasan, not linking it as shared library, and only when the program is linked with -fsanitize=address. And, -Wl,-z,initfirst can't be really used on Linux, because glibc dynamic linker only supports exactly one initfirst shared library, which it assumes is libpthread.so.0.