From 6417e91962f40ce929a279ac46d958d627c357da Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Mon, 20 Aug 2018 18:42:02 -0700 Subject: [PATCH] cmd/link: pass provided ldflags when testing whether an ldflag is supported It's possible for one of the ldflags to cause the compiler driver to use a different linker than the default, so we need to make sure that the flag is supported by whichever linker is specified. Fixes #27110. Change-Id: Ic0c51b886e34344d324e68cbf6673b168c14992f Reviewed-on: https://go-review.googlesource.com/130316 Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- src/cmd/link/internal/ld/lib.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index d86b2aa544..9be9f5f916 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -1366,7 +1366,12 @@ func linkerFlagSupported(linker, flag string) bool { } }) - cmd := exec.Command(linker, flag, "trivial.c") + var flags []string + flags = append(flags, ldflag...) + flags = append(flags, strings.Fields(*flagExtldflags)...) + flags = append(flags, flag, "trivial.c") + + cmd := exec.Command(linker, flags...) cmd.Dir = *flagTmpdir cmd.Env = append([]string{"LC_ALL=C"}, os.Environ()...) out, err := cmd.CombinedOutput() -- 2.50.0