diff --git a/src/cmd/link/internal/ld/main.go b/src/cmd/link/internal/ld/main.go index 5a4d7f9451b505..c19dd2565bcc99 100644 --- a/src/cmd/link/internal/ld/main.go +++ b/src/cmd/link/internal/ld/main.go @@ -499,7 +499,12 @@ func startProfile() { if err := pprof.StartCPUProfile(f); err != nil { log.Fatalf("%v", err) } - AtExit(pprof.StopCPUProfile) + AtExit(func() { + pprof.StopCPUProfile() + if err = f.Close(); err != nil { + log.Fatalf("error closing cpu profile: %v", err) + } + }) } if *memprofile != "" { if *memprofilerate != 0 {