From dde9b5ad3aacf2b5fc59aabb0b891876813c145a Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Sun, 15 Oct 2023 00:08:26 +0200 Subject: [PATCH] goenv: re-add support for Clang headers on darwin When TinyGo is installed using `go install` or `go build`, it uses the Clang resource directory from the host. This works for Linux, but doesn't work anymore on macOS with a recent change I made. This re-adds support for Darwin in that case (with much, much simpler code than there used to be). --- goenv/goenv.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/goenv/goenv.go b/goenv/goenv.go index 4715b876..439d4bf1 100644 --- a/goenv/goenv.go +++ b/goenv/goenv.go @@ -366,6 +366,22 @@ func findSystemClangResources(TINYGOROOT string) string { if err == nil { return path } + case "darwin": + // This assumes a Homebrew installation, like in builder/commands.go. + var prefix string + switch runtime.GOARCH { + case "amd64": + prefix = "/usr/local/opt/llvm@" + llvmMajor + case "arm64": + prefix = "/opt/homebrew/opt/llvm@" + llvmMajor + default: + return "" // very unlikely for now + } + path := fmt.Sprintf("%s/lib/clang/%s", prefix, llvmMajor) + _, err := os.Stat(path + "/include/stdint.h") + if err == nil { + return path + } } // Could not find it.