1
2
3
4
5 package ld
6
7 import (
8 "internal/testenv"
9 "runtime"
10 "strings"
11 "testing"
12 )
13
14 const prog = `
15 package main
16
17 import "log"
18
19 func main() {
20 log.Fatalf("HERE")
21 }
22 `
23
24 func TestIssue33808(t *testing.T) {
25 if runtime.GOOS != "darwin" {
26 return
27 }
28 testenv.MustHaveGoBuild(t)
29 testenv.MustHaveCGO(t)
30 t.Parallel()
31
32 dir := t.TempDir()
33
34 f := gobuild(t, dir, prog, "-ldflags=-linkmode=external")
35 f.Close()
36
37 syms, err := f.Symbols()
38 if err != nil {
39 t.Fatalf("Error reading symbols: %v", err)
40 }
41
42 name := "log.Fatalf"
43 for _, sym := range syms {
44 if strings.Contains(sym.Name, name) {
45 return
46 }
47 }
48 t.Fatalf("Didn't find %v", name)
49 }
50
View as plain text