http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50237
--- Comment #38 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2012-01-19 16:08:44 UTC --- > --- Comment #37 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-01-19 > 10:50:13 UTC --- > Rainer/Andrew, please test this in your configurations. I've just successfully completed i386-pc-solaris2.1[01] gas/gld bootstraps without the previous --disable-initfini-array workaround. Thanks for fixing this. I'll check if support can unconditionally be enabled on Solaris if the tools support it. So far, ld -e 0 doesn't work: ld: fatal: entry point symbol '0' is undefined while omitting -e 0 gets a warning from gld: gld-2.22: warning: cannot find entry symbol _start; defaulting to 0000000008048054 The latter is probably harmless, though, and we can just omit the -e 0 everwhere. While gld does merge the .init_array.N/.fini_array.N sections, Sun ld does not, so the test always fails if ld is in use. (Recent?) Sun as on Solaris 10 and 11/x86 work, too. On Solaris 11/SPARC, the test fails even with gas and gld 2.22: > objdump -s -j .init_array conftest conftest: file format elf32-sparc-sol2 Contents of section .init_array: 20054 48484848 44444444 HHHHDDDD Still need to check why. Rainer