build: work around CGO linker bug on pre-1.8 Go
This commit is contained in:
		
							parent
							
								
									ac2a0e615b
								
							
						
					
					
						commit
						e0fb4d1da9
					
				| @ -236,6 +236,14 @@ func goToolArch(arch string, subcmd string, args ...string) *exec.Cmd { | ||||
| 	gocmd := filepath.Join(runtime.GOROOT(), "bin", "go") | ||||
| 	cmd := exec.Command(gocmd, subcmd) | ||||
| 	cmd.Args = append(cmd.Args, args...) | ||||
| 
 | ||||
| 	if subcmd == "build" || subcmd == "install" || subcmd == "test" { | ||||
| 		// Go CGO has a Windows linker error prior to 1.8 (https://github.com/golang/go/issues/8756).
 | ||||
| 		// Work around issue by allowing multiple definitions for <1.8 builds.
 | ||||
| 		if runtime.GOOS == "windows" && runtime.Version() < "go1.8" { | ||||
| 			cmd.Args = append(cmd.Args, []string{"-ldflags", "-extldflags -Wl,--allow-multiple-definition"}...) | ||||
| 		} | ||||
| 	} | ||||
| 	cmd.Env = []string{ | ||||
| 		"GO15VENDOREXPERIMENT=1", | ||||
| 		"GOPATH=" + build.GOPATH(), | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user