-
Notifications
You must be signed in to change notification settings - Fork 18.8k
Closed
Labels
Description
What steps will reproduce the problem? If possible, include a link to a program on play.golang.org. 1. Build go from source on different machines or possibly at different times. What is the expected output? All files are built in the same order with consistent (well-ordered) timestamps. What do you see instead? Sometimes files get built in different orders. For example, I have seen this: golang-1.1.1-4.fc20.x86_64 works: /usr/lib64/golang/pkg/linux_amd64 $ ls -l --full-time sync.a sync/atomic.a -rw-r--r--. 1 root root 55766 2013-07-05 00:07:34.000000000 -0400 sync.a -rw-r--r--. 1 root root 8364 2013-07-05 00:07:33.000000000 -0400 sync/atomic.a golang-1.1.1-4.fc20.i686 fails: /usr/lib/golang/pkg/linux_386 $ ls -l --full-time sync.a sync/atomic.a -rw-r--r--. 1 root root 55694 2013-07-05 00:07:38.000000000 -0400 sync.a -rw-r--r--. 1 root root 8970 2013-07-05 00:07:39.000000000 -0400 sync/atomic.a Here are the build logs: http://kojipkgs.fedoraproject.org//packages/golang/1.1.1/4.fc20/data/logs/x86_64/build.log http://kojipkgs.fedoraproject.org//packages/golang/1.1.1/4.fc20/data/logs/i686/build.log What this means is that in the situation where sync/atomic.a is newer than sync.a, after these files are copied to /usr/lib for final install, subsequent go install commands will fail with: go install sync: open /usr/lib/golang/pkg/linux_386/sync.a: permission denied This seems to be non-deterministic. For now, I will reset all the .a timestamps, but this seems like a hack. I think make.bash should deterministically build these files so that the go build can immediately be copied to read-only storage. Which operating system are you using? Linux (Fedora) Which version are you using? (run 'go version') 1.1.1
Reactions are currently unavailable