[Bug go/101407] New: non-determinism in -fdump-go-spec

toolybird at tuta dot io gcc-bugzilla@gcc.gnu.org
Sat Jul 10 21:34:29 GMT 2021


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101407

            Bug ID: 101407
           Summary: non-determinism in -fdump-go-spec
           Product: gcc
           Version: 11.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: go
          Assignee: ian at airs dot com
          Reporter: toolybird at tuta dot io
                CC: cmang at google dot com
  Target Milestone: ---

I'm seeing a reproducibility issue when building gcc-go in GCC 11. Every build
run produces a different binary.

I've narrowed down the test case to essentially this:

$ gcc -fdump-go-spec=tmp-1.go -S -o sysinfo.s sysinfo.c
$ gcc -fdump-go-spec=tmp-2.go -S -o sysinfo.s sysinfo.c

$ diff -u tmp-1.go tmp-2.go
--- tmp-1.go    2021-07-11 07:26:58.512916883 +1000
+++ tmp-2.go    2021-07-11 07:27:07.976340655 +1000
@@ -8519,10 +8519,10 @@
 const _PRIxFAST8 = "x"
 const ___POSIX_FADV_DONTNEED = 4
 const _IPPROTO_MTP = 92
-type ___dirstream struct {}
-type ___va_list_tag struct {}
 type _iface struct {}
 type ___locale_data struct {}
 type __IO_marker struct {}
 type __IO_codecvt struct {}
 type __IO_wide_data struct {}
+type ___dirstream struct {}
+type ___va_list_tag struct {}

The file in question is libgo/sysinfo.c

The output seems to differ each time. Occasionally it is the same.

This didn't happen with GCC 10. I suppose I should try the trunk but haven't
done so yet.

Any thoughts? Thanks.


More information about the Gcc-bugs mailing list