https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81926
--- Comment #11 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> --- > --- Comment #1 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- [...] > Rainer, do you test Go in this configuration (system as + ld)? Sorry for the long delay: I've been mostly away for 6 weeks, only now catching up. I do indeed, and I believe this is not related to Go at all. I've been seeing similar bootstrap comparison failures on Solaris/SPARC, but only when using /bin/as. I tend to forget about them since most of my bootstraps are done with contrib/regression/btest-gcc.sh which mostly hides them ;-( I had analyzed this in the past already. Here's what I found, and just reconfirmed for the smallest differing file in a sparc-sun-solaris2.11 bootstrap, gcc/ada/table.o in my case: * with -gtoggle (stage2), there's no .text section in the assembler output * without -gtoggle (stage3), the assembler output gets --- table.s.gtoggle 2017-08-28 14:07:23.811292680 +0000 +++ table.s.no-gtoggle 2017-08-28 14:08:00.674764535 +0000 @@ -1,4 +1,6 @@ .file "table.adb" + .section ".text" +.LLtext0: .global table_E .section ".data" .align 2 @@ -6,4 +8,43 @@ .size table_E, 2 table_E: .skip 2 + .section ".text" +.LLetext0: While gas always adds a .text section, even for an empty imput file, /bin/as on sparc does not, thus the difference, although it causes no functional change. I'll be experimenting with a small patch to add a dummy .text section from TARGET_ASM_FILE_START to work around this and see if it helps. Rainer