Browse Source

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).
pull/2227/head
Ayke van Laethem 3 years ago
committed by Ron Evans
parent
commit
39ff13fd1a
  1. 12
      compileopts/config.go
  2. 3
      targets/wasi.json
  3. 3
      targets/wasm.json

12
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")

3
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",

3
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",

Loading…
Cancel
Save