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