mirror of
https://github.com/golang/go
synced 2024-11-19 00:04:40 -07:00
cmd/go: allow -buildmode=pie with -race on darwin
Fixes #62318 Change-Id: I6f1b22c9a4523461aa4c7fcd12e72dbc4430812d Reviewed-on: https://go-review.googlesource.com/c/go/+/523475 Run-TryBot: Andy Pan <panjf2000@gmail.com> Auto-Submit: Bryan Mills <bcmills@google.com> Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
7b166602fb
commit
38db2df02d
@ -246,8 +246,8 @@ func buildModeInit() {
|
||||
pkgsFilter = oneMainPkg
|
||||
}
|
||||
case "pie":
|
||||
if cfg.BuildRace {
|
||||
base.Fatalf("-buildmode=pie not supported when -race is enabled")
|
||||
if cfg.BuildRace && !platform.DefaultPIE(cfg.Goos, cfg.Goarch, cfg.BuildRace) {
|
||||
base.Fatalf("-buildmode=pie not supported when -race is enabled on %s/%s", cfg.Goos, cfg.Goarch)
|
||||
}
|
||||
if gccgo {
|
||||
codegenArg = "-fPIE"
|
||||
|
30
src/cmd/go/testdata/script/build_pie_race.txt
vendored
Normal file
30
src/cmd/go/testdata/script/build_pie_race.txt
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
# go build -buildmode=pie -race main.go on Darwin should work without errors
|
||||
|
||||
[!race] skip 'test requires race detector support'
|
||||
|
||||
[!GOOS:darwin] ! go build -buildmode=pie -race
|
||||
[!GOOS:darwin] stderr '^-buildmode=pie not supported when -race is enabled on '$GOOS'/'$GOARCH'$'
|
||||
[!GOOS:darwin] stop 'not testing -buildmode=pie -race on platform that does not support it'
|
||||
|
||||
go build -buildmode=pie -race bytes
|
||||
! stderr .
|
||||
|
||||
[short] stop 'not linking a binary in -short mode'
|
||||
|
||||
go build -buildmode=pie -race main.go
|
||||
! stderr .
|
||||
exec ./main
|
||||
stdout 'Hello, 世界'
|
||||
|
||||
-- go.mod --
|
||||
module m
|
||||
|
||||
go 1.21
|
||||
-- main.go --
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println("Hello, 世界")
|
||||
}
|
Loading…
Reference in New Issue
Block a user