github.com/hikaru7719/go@v0.0.0-20181025140707-c8b2ac68906a/src/cmd/go/testdata/script/gcflags_patterns.txt (about) 1 [!gc] skip 'using -gcflags and -ldflags' 2 3 # -gcflags=-e applies to named packages, not dependencies 4 go build -n -v -gcflags=-e z1 z2 5 stderr 'compile.* -e .*-p z1' 6 stderr 'compile.* -e .*-p z2' 7 stderr 'compile.* -p y' 8 ! stderr 'compile.* -e .*-p [^z]' 9 10 # -gcflags can specify package=flags, and can be repeated; last match wins 11 go build -n -v -gcflags=-e -gcflags=z1=-N z1 z2 12 stderr 'compile.* -N .*-p z1' 13 ! stderr 'compile.* -e .*-p z1' 14 ! stderr 'compile.* -N .*-p z2' 15 stderr 'compile.* -e .*-p z2' 16 stderr 'compile.* -p y' 17 ! stderr 'compile.* -e .*-p [^z]' 18 ! stderr 'compile.* -N .*-p [^z]' 19 20 # -gcflags can have arbitrary spaces around the flags 21 go build -n -v -gcflags=' z1 = -e ' z1 22 stderr 'compile.* -e .*-p z1' 23 24 # -ldflags for implicit test package applies to test binary 25 go test -c -n -gcflags=-N -ldflags=-X=x.y=z z1 26 stderr 'compile.* -N .*z_test.go' 27 stderr 'link.* -X=x.y=z' 28 29 # -ldflags for explicit test package applies to test binary 30 go test -c -n -gcflags=z1=-N -ldflags=z1=-X=x.y=z z1 31 stderr 'compile.* -N .*z_test.go' 32 stderr 'link.* -X=x.y=z' 33 34 # -ldflags applies to link of command 35 go build -n -ldflags=-X=math.pi=3 my/cmd/prog 36 stderr 'link.* -X=math.pi=3' 37 38 # -ldflags applies to link of command even with strange directory name 39 go build -n -ldflags=-X=math.pi=3 my/cmd/prog/ 40 stderr 'link.* -X=math.pi=3' 41 42 # -ldflags applies to current directory 43 cd my/cmd/prog 44 go build -n -ldflags=-X=math.pi=3 45 stderr 'link.* -X=math.pi=3' 46 47 # -ldflags applies to current directory even if GOPATH is funny 48 [windows] cd $WORK/GoPath/src/my/cmd/prog 49 [darwin] cd $WORK/GoPath/src/my/cmd/prog 50 go build -n -ldflags=-X=math.pi=3 51 stderr 'link.* -X=math.pi=3' 52 53 -- z1/z.go -- 54 package z1 55 import _ "y" 56 import _ "z2" 57 58 -- z1/z_test.go -- 59 package z1_test 60 import "testing" 61 func Test(t *testing.T) {} 62 63 -- z2/z.go -- 64 package z2 65 66 -- y/y.go -- 67 package y 68 69 -- my/cmd/prog/prog.go -- 70 package main 71 func main() {}