https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82544
Bug ID: 82544 Summary: gccgo on SPARC64 produce bad binary Product: gcc Version: 6.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: go Assignee: ian at airs dot com Reporter: ikozhukhov at gmail dot com CC: cmang at google dot com Target Milestone: --- I have DilOS (illumos based platform) on SPARC64 T5220 i have gccgo from 6.4.0 bootstrap igork@bld13:~/builds/igork/du2/components/gcc-6$ gcc-6 -v Using built-in specs. COLLECT_GCC=gcc-6 COLLECT_LTO_WRAPPER=/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/lto-wrapper Target: sparcv9-sun-solaris2.11 Configured with: ../configure --prefix=/usr/gcc/6 --build=sparcv9-sun-solaris2.11 --bindir=/usr/gcc/6/bin --sbindir=/usr/gcc/6/sbin --libdir=/usr/gcc/6/lib --libexecdir=/usr/gcc/6/lib --infodir=/usr/gcc/6/share/info --mandir=/usr/gcc/6/share/man --target=sparcv9-sun-solaris2.11 --enable-targets=sparc-sun-solaris2.11 --enable-shared --enable-plugins --enable-lto --enable-initfini-array --enable-tls --enable-threads=posix --without-gnu-ld --with-ld=/usr/bin/ld --with-gnu-as --with-as=/usr/bin/gas --enable-languages=c,c++,fortran,go,java,lto,objc --with-system-zlib gcc_cv_ld_as_needed=no --disable-bootstrap Thread model: posix gcc version 6.4.0 (GCC) igork@bld13:~/builds/igork/du2/components/gcc-6$ gccgo-6 -o t t.go igork@bld13:~/builds/igork/du2/components/gcc-6$ ./t Abort (core dumped) igork@bld13:~/builds/igork/du2/components/gcc-6$ pstack core core 'core' of 42515: ./t fffffffe8d8f8bac _lwp_kill (1, 6, 0, 0, 0, 0) + 8 fffffffe8d88ef14 raise (0, 0, ffffffff7fffdbb0, fffffffe7e10dfa4, fffffffe7e2127a8, 0) + 14 fffffffe8d86637c abort (5, ffffffff7fffdca0, ffffffffffffffff, 0, 0, ffffffff7fffe821) + ac fffffffe7e10dfa4 uw_init_context_1 (ffffffff7fffe430, ffffffff7fffef00, fffffffe39ec3ddc, fffffffe39ec3ddc, ffffffff7fffdca0, c00) + 334 fffffffe7e10e64c _Unwind_Backtrace (fffffffe39ec3cc0, ffffffff7fffefb0, 1000, ffffffff7fffe820, ffffffff7fffe430, ffffffff6e900000) + 18 fffffffe39ec3ddc backtrace_full (ffffffff6e900000, 1, fffffffe39b51480, fffffffe39b516f4, ffffffff7ffff098, fffffffe3a5c4e50) + 70 fffffffe39b517b8 runtime_callers (2, ffffffff7ffff160, 20, 0, fffffffe3a5ec230, fffffffe3a5fb24c) + 74 fffffffe39b6bd98 runtime_MProf_Malloc (c208000000, 10, 0, fffffffe39b6afb4, ffffffff7ffff160, ffffffff6eb00010) + 20 fffffffe39b6a57c runtime_mallocgc (1, ffffffff6eb00000, 10, 80000, fffffffe3a5fab30, c208000000) + 22c fffffffe39b6afb4 runtime_mallocinit (10000000000, 1104001, ffffffff7ffff8cf, c000000000, 800000000000, fffffffe3a5fab30) + 13c fffffffe39b62820 runtime_schedinit (1, ffffffff7ffffbb8, 8, ffffffff6ec02a30, fffffffe3a5fa0d8, fffffffe3a5fab30) + 90 00000001000021b0 main (1, ffffffff7ffffbb8, ffffffff7ffffbc8, ffffffffffffffff, 3e8, 3e8) + 80 0000000100001cb0 _start_crt (1, ffffffff7ffffbb8, ffffffff6f61c5e4, 0, 0, 0) + 6c 0000000100001c34 _start (0, 0, 0, 0, 0, 0) + 14 if i do build with static link libgo + libgcc, it is working. example: igork@bld13:~/builds/igork/du2/components/gcc-6$ gccgo-6 -m64 -v -static-libgo -static-libgcc -o t t.go -Wl,-dy -lnsl -lsocket -lrt -lsendfile Using built-in specs. COLLECT_GCC=gccgo-6 COLLECT_LTO_WRAPPER=/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/lto-wrapper Target: sparcv9-sun-solaris2.11 Configured with: ../configure --prefix=/usr/gcc/6 --build=sparcv9-sun-solaris2.11 --bindir=/usr/gcc/6/bin --sbindir=/usr/gcc/6/sbin --libdir=/usr/gcc/6/lib --libexecdir=/usr/gcc/6/lib --infodir=/usr/gcc/6/share/info --mandir=/usr/gcc/6/share/man --target=sparcv9-sun-solaris2.11 --enable-targets=sparc-sun-solaris2.11 --enable-shared --enable-plugins --enable-lto --enable-initfini-array --enable-tls --enable-threads=posix --without-gnu-ld --with-ld=/usr/bin/ld --with-gnu-as --with-as=/usr/bin/gas --enable-languages=c,c++,fortran,go,java,lto,objc --with-system-zlib gcc_cv_ld_as_needed=no --disable-bootstrap Thread model: posix gcc version 6.4.0 (GCC) COLLECT_GCC_OPTIONS='-m64' '-v' '-static-libgcc' '-o' 't' '-mcpu=v9' /usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/go1 t.go -quiet -dumpbase t.go -m64 -mcpu=v9 -auxbase t -version -L/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0 -L/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/../../../sparcv9 -L/lib/sparcv9 -L/usr/lib/sparcv9 -L/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/../../.. -o /var/tmp//ccdJaGYu.s GNU Go (GCC) version 6.4.0 (sparcv9-sun-solaris2.11) compiled by GNU C version 6.4.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version 0.15 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU Go (GCC) version 6.4.0 (sparcv9-sun-solaris2.11) compiled by GNU C version 6.4.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.3, isl version 0.15 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 COLLECT_GCC_OPTIONS='-m64' '-v' '-static-libgcc' '-o' 't' '-mcpu=v9' /usr/bin/gas -v -V -Qy -s -xarch=v9 -64 -no-undeclared-regs -o /var/tmp//cceJaGYu.o /var/tmp//ccdJaGYu.s GNU assembler version 2.29.1 (sparcv9-sun-solaris2.11) using BFD version (GNU Binutils for Debian) 2.29.1 COMPILER_PATH=/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/:/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/:/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/:/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/:/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/:/usr/ccs/bin/ LIBRARY_PATH=/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/:/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/../../../sparcv9/:/lib/sparcv9/:/usr/lib/sparcv9/:/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-m64' '-v' '-static-libgcc' '-o' 't' '-mcpu=v9' /usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/collect2 -V -Y P,/usr/gcc/6/lib/sparcv9:/lib/sparcv9:/usr/lib/sparcv9 -R /usr/gcc/6/lib/sparcv9 -Qy -o t /usr/lib/sparcv9/crt1.o /usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/crtp.o /usr/lib/sparcv9/crti.o /usr/lib/sparcv9/values-Xa.o /usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/crtbegin.o -L/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0 -L/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/../../../sparcv9 -L/lib/sparcv9 -L/usr/lib/sparcv9 -L/usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/../../.. /var/tmp//cceJaGYu.o -dy -lnsl -lsocket -lrt -lsendfile -lgobegin -Bstatic -lgo -Bdynamic -lpthread -lm -t -lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc /usr/gcc/6/lib/gcc/sparcv9-sun-solaris2.11/6.4.0/crtend.o /usr/lib/sparcv9/crtn.o ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.1756 (illumos) COLLECT_GCC_OPTIONS='-m64' '-v' '-static-libgcc' '-o' 't' '-mcpu=v9' igork@bld13:~/builds/igork/du2/components/gcc-6$ ./t hello world