diff --git a/internal/build/build.go b/internal/build/build.go index dcc7891e..28cf2087 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -30,6 +30,7 @@ import ( "path/filepath" "runtime" "strings" + "unsafe" "golang.org/x/tools/go/ssa" @@ -111,10 +112,6 @@ const ( loadSyntax = loadTypes | packages.NeedSyntax | packages.NeedTypesInfo ) -var overlayFiles = map[string]string{ - "math/exp_amd64.go": "package math;", -} - func Do(args []string, conf *Config) { flags, patterns, verbose := ParseArgs(args, buildFlags) cfg := &packages.Config{ @@ -126,7 +123,8 @@ func Do(args []string, conf *Config) { if len(overlayFiles) > 0 { cfg.Overlay = make(map[string][]byte) for file, src := range overlayFiles { - cfg.Overlay[filepath.Join(runtime.GOROOT(), "src", file)] = []byte(src) + overlay := unsafe.Slice(unsafe.StringData(src), len(src)) + cfg.Overlay[filepath.Join(runtime.GOROOT(), "src", file)] = overlay } } @@ -765,6 +763,10 @@ var hasAltPkg = map[string]none{ "runtime": {}, } +var overlayFiles = map[string]string{ + "math/exp_amd64.go": "package math;", +} + func check(err error) { if err != nil { panic(err)