aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCherry Mui <cherryyz@google.com>2025-10-02 18:24:12 -0400
committerCherry Mui <cherryyz@google.com>2025-10-03 06:30:28 -0700
commitadce7f196e6ac6d22e9bc851efea5f3ab650947c (patch)
tree88c66a0378dda3cd6a891f6cd9bad0809c86abcb /src
parentd5b950399de01a0e28eeb48d2c8474db4aad0e8a (diff)
downloadgo-adce7f196e6ac6d22e9bc851efea5f3ab650947c.tar.xz
cmd/link: support .def file with MSVC clang toolchain
lld-link supports .def file, but requires a "-def:" (or "/def:") flag. (MinGW linker, on the other hand, requires no flag.) Pass the flag when using MSVC-based toolchain. CL originally authored by Chressie Himpel. Change-Id: I8c327ab48d36b0bcbb1d127cff544ffdb06be38e Reviewed-on: https://go-review.googlesource.com/c/go/+/708716 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Chressie Himpel <chressie@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/cmd/link/internal/ld/lib.go8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
index 79d3d37835..2c861129b5 100644
--- a/src/cmd/link/internal/ld/lib.go
+++ b/src/cmd/link/internal/ld/lib.go
@@ -1787,9 +1787,13 @@ func (ctxt *Link) hostlink() {
case ctxt.IsAIX():
fileName := xcoffCreateExportFile(ctxt)
argv = append(argv, "-Wl,-bE:"+fileName)
- case ctxt.IsWindows() && !slices.Contains(flagExtldflags, "-Wl,--export-all-symbols"):
+ case ctxt.IsWindows() && !slices.Contains(flagExtldflags, wlPrefix+"export-all-symbols"):
fileName := peCreateExportFile(ctxt, filepath.Base(outopt))
- argv = append(argv, fileName)
+ prefix := ""
+ if isMSVC {
+ prefix = "-Wl,-def:"
+ }
+ argv = append(argv, prefix+fileName)
}
const unusedArguments = "-Qunused-arguments"