github.com/zxy12/go_duplicate_112_new@v0.0.0-20200807091221-747231827200/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 # -gcflags='all=-e' should apply to all packages, even with go test 25 go test -c -n -gcflags='all=-e' z1 26 stderr 'compile.* -e.* -p z3 ' 27 28 # -ldflags for implicit test package applies to test binary 29 go test -c -n -gcflags=-N -ldflags=-X=x.y=z z1 30 stderr 'compile.* -N .*z_test.go' 31 stderr 'link.* -X=x.y=z' 32 33 # -ldflags for explicit test package applies to test binary 34 go test -c -n -gcflags=z1=-N -ldflags=z1=-X=x.y=z z1 35 stderr 'compile.* -N .*z_test.go' 36 stderr 'link.* -X=x.y=z' 37 38 # -ldflags applies to link of command 39 go build -n -ldflags=-X=math.pi=3 my/cmd/prog 40 stderr 'link.* -X=math.pi=3' 41 42 # -ldflags applies to link of command even with strange directory name 43 go build -n -ldflags=-X=math.pi=3 my/cmd/prog/ 44 stderr 'link.* -X=math.pi=3' 45 46 # -ldflags applies to current directory 47 cd my/cmd/prog 48 go build -n -ldflags=-X=math.pi=3 49 stderr 'link.* -X=math.pi=3' 50 51 # -ldflags applies to current directory even if GOPATH is funny 52 [windows] cd $WORK/GoPath/src/my/cmd/prog 53 [darwin] cd $WORK/GoPath/src/my/cmd/prog 54 go build -n -ldflags=-X=math.pi=3 55 stderr 'link.* -X=math.pi=3' 56 57 -- z1/z.go -- 58 package z1 59 import _ "y" 60 import _ "z2" 61 62 -- z1/z_test.go -- 63 package z1_test 64 import "testing" 65 import _ "z3" 66 func Test(t *testing.T) {} 67 68 -- z2/z.go -- 69 package z2 70 71 -- z3/z.go -- 72 package z3 73 74 -- y/y.go -- 75 package y 76 77 -- my/cmd/prog/prog.go -- 78 package main 79 func main() {}