From 39ff13fd1a31610f5fe733cb38908c8563643981 Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Sun, 12 Sep 2021 23:30:06 +0200 Subject: [PATCH] wasm: specify wasi-libc in code, not in the JSON target file This brings a bit more consistency to libc configuration. It seems better to me to set the header flags all in the same place, instead of some in Go code and some in JSON target files (depending on the target). --- compileopts/config.go | 12 +++++++++++- targets/wasi.json | 3 --- targets/wasm.json | 3 --- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/compileopts/config.go b/compileopts/config.go index a084403c..0da1a2b6 100644 --- a/compileopts/config.go +++ b/compileopts/config.go @@ -204,7 +204,8 @@ func (c *Config) CFlags() []string { for _, flag := range c.Target.CFlags { cflags = append(cflags, strings.ReplaceAll(flag, "{root}", goenv.Get("TINYGOROOT"))) } - if c.Target.Libc == "picolibc" { + switch c.Target.Libc { + case "picolibc": root := goenv.Get("TINYGOROOT") picolibcDir := filepath.Join(root, "lib", "picolibc", "newlib", "libc") cflags = append(cflags, @@ -213,6 +214,15 @@ func (c *Config) CFlags() []string { "-Xclang", "-internal-isystem", "-Xclang", filepath.Join(picolibcDir, "tinystdio"), ) cflags = append(cflags, "-I"+filepath.Join(root, "lib/picolibc-include")) + case "wasi-libc": + root := goenv.Get("TINYGOROOT") + cflags = append(cflags, "--sysroot="+root+"/lib/wasi-libc/sysroot") + case "": + // No libc specified, nothing to add. + default: + // Incorrect configuration. This could be handled in a better way, but + // usually this will be found by developers (not by TinyGo users). + panic("unknown libc: " + c.Target.Libc) } // Always emit debug information. It is optionally stripped at link time. cflags = append(cflags, "-g") diff --git a/targets/wasi.json b/targets/wasi.json index 7826c48d..b7852ad4 100644 --- a/targets/wasi.json +++ b/targets/wasi.json @@ -6,9 +6,6 @@ "goarch": "arm", "linker": "wasm-ld", "libc": "wasi-libc", - "cflags": [ - "--sysroot={root}/lib/wasi-libc/sysroot" - ], "ldflags": [ "--allow-undefined", "--stack-first", diff --git a/targets/wasm.json b/targets/wasm.json index bfffc005..047dd8c3 100644 --- a/targets/wasm.json +++ b/targets/wasm.json @@ -6,9 +6,6 @@ "goarch": "wasm", "linker": "wasm-ld", "libc": "wasi-libc", - "cflags": [ - "--sysroot={root}/lib/wasi-libc/sysroot" - ], "ldflags": [ "--allow-undefined", "--stack-first",