From e8ee1dc4f9e2632ba1018610d1a1187743ae397f Mon Sep 17 00:00:00 2001 From: Davis Goodin Date: Fri, 21 Jun 2024 16:44:44 -0700 Subject: [PATCH] cmd/link/internal/ld: handle "\r" in MinGW "--print-prog-name" output Fix the "gcc --print-prog-name" output parser to handle "\r\n", not only "\n". The MinGW compiler on Windows uses "\r\n" as line endings, causing the existing parser to create paths like ".../x86_64-w64-mingw32/bin/ar.exe\r", which is not correct. By trimming the "\r\n" cutset, both types of line endings are handled correctly. Fixes #68121 Change-Id: I04b8bf9b6a5b29a1e59a6aa07fa4faa4c5bdeee6 Reviewed-on: https://go-review.googlesource.com/c/go/+/593916 LUCI-TryBot-Result: Go LUCI Auto-Submit: Ian Lance Taylor Reviewed-by: Ian Lance Taylor Reviewed-by: Cherry Mui Commit-Queue: Ian Lance Taylor --- src/cmd/link/internal/ld/lib.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 3bec04e0b8..c29a532bfd 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -2917,6 +2917,6 @@ func (ctxt *Link) findExtLinkTool(toolname string) string { if err != nil { Exitf("%s: finding %s failed: %v\n%s", os.Args[0], toolname, err, out) } - cmdpath := strings.TrimSuffix(string(out), "\n") + cmdpath := strings.TrimRight(string(out), "\r\n") return cmdpath } -- 2.48.1