Skip to content

Commit

Permalink
[release-branch.go1.22] cmd/link: don't let dsymutil delete our temp …
Browse files Browse the repository at this point in the history
…directory

To work around #59026, where dsymutil may not clean up its temp
directory at exit, we set DSYMUTIL_REPRODUCER_PATH to our temp
directory so it uses that, and we can delete it at the end.

In Xcode 16 beta, dsymutil deletes the DSYMUTIL_REPRODUCER_PATH
directory even if it is not empty. We still need our tmpdir at the
point, so give a subdirectory to dsymutil instead.

Updates #68088.
Fixes #68198.

Change-Id: I18759cc39512819bbd0511793ce917eae72245d6
Reviewed-on: https://go-review.googlesource.com/c/go/+/593659
Reviewed-by: Than McIntosh <thanm@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
(cherry picked from commit 5f319b7)
Reviewed-on: https://go-review.googlesource.com/c/go/+/596455
  • Loading branch information
cherrymui authored and cagedmantis committed Jul 10, 2024
1 parent 45f9ded commit 4e548f2
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/cmd/link/internal/ld/lib.go
Original file line number Diff line number Diff line change
Expand Up @@ -1954,7 +1954,15 @@ func (ctxt *Link) hostlink() {
cmd := exec.Command(dsymutilCmd, "-f", *flagOutfile, "-o", dsym)
// dsymutil may not clean up its temp directory at exit.
// Set DSYMUTIL_REPRODUCER_PATH to work around. see issue 59026.
cmd.Env = append(os.Environ(), "DSYMUTIL_REPRODUCER_PATH="+*flagTmpdir)
// dsymutil (Apple LLVM version 16.0.0) deletes the directory
// even if it is not empty. We still need our tmpdir, so give a
// subdirectory to dsymutil.
dsymDir := filepath.Join(*flagTmpdir, "dsymutil")
err = os.MkdirAll(dsymDir, 0777)
if err != nil {
Exitf("fail to create temp dir: %v", err)
}
cmd.Env = append(os.Environ(), "DSYMUTIL_REPRODUCER_PATH="+dsymDir)
if ctxt.Debugvlog != 0 {
ctxt.Logf("host link dsymutil:")
for _, v := range cmd.Args {
Expand Down

0 comments on commit 4e548f2

Please sign in to comment.