diff --git a/goenv/goenv.go b/goenv/goenv.go index fe4c8bf63e..cecb5a85dd 100644 --- a/goenv/goenv.go +++ b/goenv/goenv.go @@ -151,6 +151,8 @@ func Get(name string) string { panic("could not find cache dir: " + err.Error()) } return filepath.Join(dir, "tinygo") + case "CGO_CFLAGS": + return os.Getenv("CGO_CFLAGS") case "CGO_ENABLED": // Always enable CGo. It is required by a number of targets, including // macOS and the rp2040. diff --git a/loader/loader.go b/loader/loader.go index 61433b5592..66fc102602 100644 --- a/loader/loader.go +++ b/loader/loader.go @@ -508,6 +508,7 @@ func (p *Package) parseFiles() ([]*ast.File, error) { var initialCFlags []string initialCFlags = append(initialCFlags, p.program.config.CFlags(true)...) initialCFlags = append(initialCFlags, "-I"+p.Dir) + initialCFlags = append(initialCFlags, strings.Fields(goenv.Get("CGO_CFLAGS"))...) generated, headerCode, cflags, ldflags, accessedFiles, errs := cgo.Process(files, p.program.workingDir, p.ImportPath, p.program.fset, initialCFlags, p.program.config.GOOS()) p.CFlags = append(initialCFlags, cflags...) p.CGoHeaders = headerCode