golang/go

cmd/link: -race doesn't work by default on FreeBSD with cgo

Aperta

#73.788 aperta il 19 mag 2025

 (6 commenti) (0 reazioni) (0 assegnatari)Go (19.008 fork)batch import

Metriche repository

Star
 (133.883 stelle)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

On our freebsd-amd64 builders (14.2-RELEASE-p2):

package main

/*
int foo(void) { return 42; }
*/
import "C"
import "fmt"

func main() {
        fmt.Println(C.foo())
}
$ go build cgo.go
$ ./cgo
42
$ go build -race cgo.go
$ ./cgo
This sanitizer is not compatible with enabled ASLR and binaries compiled with PIE
$ go build -race -ldflags=-linkmode=internal cgo.go
$ ./cgo
42

i.e., using cgo defaults to external linking, but it seems that external linking breaks -race mode.

cc @golang/freebsd

Guida contributor