From d59fad000e566bf27f31e2af6c982a25517ad249 Mon Sep 17 00:00:00 2001 From: Hector Chu Date: Mon, 8 Jun 2026 12:07:55 +0100 Subject: [PATCH 1/2] add CGO_CFLAGS support --- goenv/goenv.go | 2 ++ loader/loader.go | 1 + 2 files changed, 3 insertions(+) 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..0570f9b3e9 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, 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 From 382252a9e65bab6e6bed7d7d02e3ebc4216a54ca Mon Sep 17 00:00:00 2001 From: Hector Chu Date: Tue, 9 Jun 2026 09:32:29 +0100 Subject: [PATCH 2/2] the environment variable must be split --- loader/loader.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/loader.go b/loader/loader.go index 0570f9b3e9..66fc102602 100644 --- a/loader/loader.go +++ b/loader/loader.go @@ -508,7 +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, goenv.Get("CGO_CFLAGS")) + 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