From 9644edcd5a832fe1790fa1845d3a90a088e558c4 Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Mon, 23 Dec 2019 19:28:45 +0100 Subject: [PATCH] builder: update Clang header location We have long since moved towards a different location for these headers in the git checkout, so update where getClangHeaderPath looks for these headers. Also add an extra check to make sure a path has been detected. --- builder/compiler-builtin.go | 6 +++++- builder/env.go | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/builder/compiler-builtin.go b/builder/compiler-builtin.go index 79747aaa..8fd37c90 100644 --- a/builder/compiler-builtin.go +++ b/builder/compiler-builtin.go @@ -26,7 +26,11 @@ func runCCompiler(command string, flags ...string) error { switch command { case "clang": // Compile this with the internal Clang compiler. - flags = append(flags, "-I"+getClangHeaderPath(goenv.Get("TINYGOROOT"))) + headerPath := getClangHeaderPath(goenv.Get("TINYGOROOT")) + if headerPath == "" { + return errors.New("could not locate Clang headers") + } + flags = append(flags, "-I"+headerPath) flags = append([]string{"tinygo:" + command}, flags...) var cflag *C.char buf := C.calloc(C.size_t(len(flags)), C.size_t(unsafe.Sizeof(cflag))) diff --git a/builder/env.go b/builder/env.go index c43fc218..995ad2ad 100644 --- a/builder/env.go +++ b/builder/env.go @@ -71,7 +71,7 @@ func GorootVersionString(goroot string) (string, error) { // various ways. func getClangHeaderPath(TINYGOROOT string) string { // Check whether we're running from the source directory. - path := filepath.Join(TINYGOROOT, "llvm", "tools", "clang", "lib", "Headers") + path := filepath.Join(TINYGOROOT, "llvm-project", "clang", "lib", "Headers") if _, err := os.Stat(path); !os.IsNotExist(err) { return path }