My coworker and I are both using Go 1.9 x64. I'm running Linux Mint 18.2 and he's running macOS Sierra 10.12.6. We ran the exact same script to cross compile a program for Windows x64 and out of curiosity we diffed the files to see how similar they would be. We expected to find a few build parameters or IDs to be different but it turns out there are a LOT of differences all throughout the files.
We made sure the two programs were built off the exact same code. The program really doesn't do anything too OS specific. It reads a JSON file and executes a series of web requests determined by that file. Nothing like executing shell commands or reading/writing the windows registry. No CGO, the only use of the os
package is os.Exit(code)
calls, nothing stands out as a culprit.
Even though the programs were built from two different host OSes, they were both built for the same target OS with the same version of the Go compiler and the same code files. Why are the output binaries so different?