From bf9dab36f757eafbf5858784d14e4c0e96fbca9d Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Wed, 22 Sep 2021 00:26:53 +0200 Subject: [PATCH] build: normalize target triples to match Clang This commit changes a target triple like "armv6m-none-eabi" to "armv6m-unknown-unknow-eabi". The reason is that while the former is correctly parsed in Clang (due to normalization), it wasn't parsed correctly in LLVM meaning that the environment wasn't set to EABI. This change normalizes all target triples and uses the EABI environment (-eabi in the triple) for Cortex-M targets. This change also drops the `--target=` flag in the target JSON files, the flag is now added implicitly in `(*compileopts.Config).CFlags()`. This removes some duplication in target JSON files. Unfortunately, this change also increases code size for Cortex-M targets. It looks like LLVM now emits calls like __aeabi_memmove instead of memmove, which pull in slightly more code (they basically just call the regular C functions) and the calls themself don't seem to be as efficient as they could be. Perhaps this is a LLVM bug that will be fixed in the future, as this is a very common occurrence. --- Makefile | 18 +++++++++--------- cgo/cgo_test.go | 2 +- compileopts/config.go | 4 +++- compileopts/target.go | 14 ++++---------- compiler/testdata/basic.ll | 2 +- compiler/testdata/channel.ll | 2 +- compiler/testdata/float.ll | 2 +- compiler/testdata/func.ll | 2 +- compiler/testdata/go1.17.ll | 2 +- compiler/testdata/goroutine-cortex-m-qemu.ll | 2 +- compiler/testdata/goroutine-wasm.ll | 2 +- compiler/testdata/interface.ll | 2 +- compiler/testdata/intrinsics-cortex-m-qemu.ll | 2 +- compiler/testdata/intrinsics-wasm.ll | 2 +- compiler/testdata/pointer.ll | 2 +- compiler/testdata/pragma.ll | 2 +- compiler/testdata/slice.ll | 2 +- compiler/testdata/string.ll | 2 +- main_test.go | 6 +++--- targets/avr.json | 3 +-- targets/cortex-m0.json | 5 +---- targets/cortex-m0plus.json | 5 +---- targets/cortex-m3.json | 5 +---- targets/cortex-m33.json | 3 +-- targets/cortex-m4.json | 3 +-- targets/cortex-m7.json | 3 +-- targets/gameboy-advance.json | 3 +-- targets/riscv32.json | 1 - targets/riscv64.json | 1 - targets/wasi.json | 3 +-- targets/wasm.json | 3 +-- targets/xtensa.json | 1 - 32 files changed, 44 insertions(+), 67 deletions(-) diff --git a/Makefile b/Makefile index fd3dd883..69b372c1 100644 --- a/Makefile +++ b/Makefile @@ -470,9 +470,9 @@ build/release: tinygo gen-device wasi-libc @mkdir -p build/release/tinygo/lib/nrfx @mkdir -p build/release/tinygo/lib/picolibc/newlib/libc @mkdir -p build/release/tinygo/lib/wasi-libc - @mkdir -p build/release/tinygo/pkg/armv6m-none-eabi - @mkdir -p build/release/tinygo/pkg/armv7m-none-eabi - @mkdir -p build/release/tinygo/pkg/armv7em-none-eabi + @mkdir -p build/release/tinygo/pkg/armv6m-unknown-unknown-eabi + @mkdir -p build/release/tinygo/pkg/armv7m-unknown-unknown-eabi + @mkdir -p build/release/tinygo/pkg/armv7em-unknown-unknown-eabi @echo copying source files @cp -p build/tinygo$(EXE) build/release/tinygo/bin @cp -p $(abspath $(CLANG_SRC))/lib/Headers/*.h build/release/tinygo/lib/clang/include @@ -491,12 +491,12 @@ build/release: tinygo gen-device wasi-libc @cp -rp lib/wasi-libc/sysroot build/release/tinygo/lib/wasi-libc/sysroot @cp -rp src build/release/tinygo/src @cp -rp targets build/release/tinygo/targets - ./build/tinygo build-library -target=armv6m-none-eabi -o build/release/tinygo/pkg/armv6m-none-eabi/compiler-rt.a compiler-rt - ./build/tinygo build-library -target=armv7m-none-eabi -o build/release/tinygo/pkg/armv7m-none-eabi/compiler-rt.a compiler-rt - ./build/tinygo build-library -target=armv7em-none-eabi -o build/release/tinygo/pkg/armv7em-none-eabi/compiler-rt.a compiler-rt - ./build/tinygo build-library -target=armv6m-none-eabi -o build/release/tinygo/pkg/armv6m-none-eabi/picolibc.a picolibc - ./build/tinygo build-library -target=armv7m-none-eabi -o build/release/tinygo/pkg/armv7m-none-eabi/picolibc.a picolibc - ./build/tinygo build-library -target=armv7em-none-eabi -o build/release/tinygo/pkg/armv7em-none-eabi/picolibc.a picolibc + ./build/tinygo build-library -target=armv6m-unknown-unknown-eabi -o build/release/tinygo/pkg/armv6m-unknown-unknown-eabi/compiler-rt.a compiler-rt + ./build/tinygo build-library -target=armv7m-unknown-unknown-eabi -o build/release/tinygo/pkg/armv7m-unknown-unknown-eabi/compiler-rt.a compiler-rt + ./build/tinygo build-library -target=armv7em-unknown-unknown-eabi -o build/release/tinygo/pkg/armv7em-unknown-unknown-eabi/compiler-rt.a compiler-rt + ./build/tinygo build-library -target=armv6m-unknown-unknown-eabi -o build/release/tinygo/pkg/armv6m-unknown-unknown-eabi/picolibc.a picolibc + ./build/tinygo build-library -target=armv7m-unknown-unknown-eabi -o build/release/tinygo/pkg/armv7m-unknown-unknown-eabi/picolibc.a picolibc + ./build/tinygo build-library -target=armv7em-unknown-unknown-eabi -o build/release/tinygo/pkg/armv7em-unknown-unknown-eabi/picolibc.a picolibc release: build/release tar -czf build/release.tar.gz -C build/release tinygo diff --git a/cgo/cgo_test.go b/cgo/cgo_test.go index 6d5d5504..88c506d4 100644 --- a/cgo/cgo_test.go +++ b/cgo/cgo_test.go @@ -28,7 +28,7 @@ func normalizeResult(result string) string { } func TestCGo(t *testing.T) { - var cflags = []string{"--target=armv6m-none-eabi"} + var cflags = []string{"--target=armv6m-unknown-unknown-eabi"} for _, name := range []string{"basic", "errors", "types", "flags", "const"} { name := name // avoid a race condition diff --git a/compileopts/config.go b/compileopts/config.go index 4aa8ed5e..52f1a049 100644 --- a/compileopts/config.go +++ b/compileopts/config.go @@ -21,7 +21,7 @@ type Config struct { TestConfig TestConfig } -// Triple returns the LLVM target triple, like armv6m-none-eabi. +// Triple returns the LLVM target triple, like armv6m-unknown-unknown-eabi. func (c *Config) Triple() string { return c.Target.Triple } @@ -213,6 +213,8 @@ func (c *Config) CFlags() []string { cflags = append(cflags, "-g") // Use the same optimization level as TinyGo. cflags = append(cflags, "-O"+c.Options.Opt) + // Set the LLVM target triple. + cflags = append(cflags, "--target="+c.Triple()) return cflags } diff --git a/compileopts/target.go b/compileopts/target.go index a84896c9..df3b5d3f 100644 --- a/compileopts/target.go +++ b/compileopts/target.go @@ -177,7 +177,10 @@ func LoadTarget(target string) (*TargetSpec, error) { if llvmarch == "" { llvmarch = goarch } - target = llvmarch + "--" + llvmos + // Target triples (which actually have four components, but are called + // triples for historical reasons) have the form: + // arch-vendor-os-environment + target = llvmarch + "-unknown-" + llvmos if goarch == "arm" { target += "-gnueabihf" } @@ -207,14 +210,6 @@ func LoadTarget(target string) (*TargetSpec, error) { if len(tripleSplit) < 3 { return nil, errors.New("expected a full LLVM target or a custom target in -target flag") } - if tripleSplit[0] == "arm" { - // LLVM and Clang have a different idea of what "arm" means, so - // upgrade to a slightly more modern ARM. In fact, when you pass - // --target=arm--linux-gnueabihf to Clang, it will convert that - // internally to armv7-unknown-linux-gnueabihf. Changing the - // architecture to armv7 will keep things consistent. - tripleSplit[0] = "armv7" - } goos := tripleSplit[2] if strings.HasPrefix(goos, "darwin") { goos = "darwin" @@ -250,7 +245,6 @@ func defaultTarget(goos, goarch, triple string) (*TargetSpec, error) { Scheduler: "tasks", Linker: "cc", DefaultStackSize: 1024 * 64, // 64kB - CFlags: []string{"--target=" + triple}, GDB: []string{"gdb"}, PortReset: "false", } diff --git a/compiler/testdata/basic.ll b/compiler/testdata/basic.ll index aca2ece0..56c1fa4c 100644 --- a/compiler/testdata/basic.ll +++ b/compiler/testdata/basic.ll @@ -1,7 +1,7 @@ ; ModuleID = 'basic.go' source_filename = "basic.go" target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32--wasi" +target triple = "wasm32-unknown-wasi" %main.kv = type { float } %main.kv.0 = type { i8 } diff --git a/compiler/testdata/channel.ll b/compiler/testdata/channel.ll index 0d33d330..9f49142d 100644 --- a/compiler/testdata/channel.ll +++ b/compiler/testdata/channel.ll @@ -1,7 +1,7 @@ ; ModuleID = 'channel.go' source_filename = "channel.go" target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32--wasi" +target triple = "wasm32-unknown-wasi" %runtime.channel = type { i32, i32, i8, %runtime.channelBlockedList*, i32, i32, i32, i8* } %runtime.channelBlockedList = type { %runtime.channelBlockedList*, %"internal/task.Task"*, %runtime.chanSelectState*, { %runtime.channelBlockedList*, i32, i32 } } diff --git a/compiler/testdata/float.ll b/compiler/testdata/float.ll index 6d35d33e..e71e3ad4 100644 --- a/compiler/testdata/float.ll +++ b/compiler/testdata/float.ll @@ -1,7 +1,7 @@ ; ModuleID = 'float.go' source_filename = "float.go" target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32--wasi" +target triple = "wasm32-unknown-wasi" declare noalias nonnull i8* @runtime.alloc(i32, i8*, i8*) diff --git a/compiler/testdata/func.ll b/compiler/testdata/func.ll index 4ccea0aa..6ed2a5a5 100644 --- a/compiler/testdata/func.ll +++ b/compiler/testdata/func.ll @@ -1,7 +1,7 @@ ; ModuleID = 'func.go' source_filename = "func.go" target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32--wasi" +target triple = "wasm32-unknown-wasi" %runtime.funcValueWithSignature = type { i32, i8* } diff --git a/compiler/testdata/go1.17.ll b/compiler/testdata/go1.17.ll index 6fa47c8b..e2c99cc1 100644 --- a/compiler/testdata/go1.17.ll +++ b/compiler/testdata/go1.17.ll @@ -1,7 +1,7 @@ ; ModuleID = 'go1.17.go' source_filename = "go1.17.go" target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32--wasi" +target triple = "wasm32-unknown-wasi" declare noalias nonnull i8* @runtime.alloc(i32, i8*, i8*) diff --git a/compiler/testdata/goroutine-cortex-m-qemu.ll b/compiler/testdata/goroutine-cortex-m-qemu.ll index a98592c1..63f9cc9a 100644 --- a/compiler/testdata/goroutine-cortex-m-qemu.ll +++ b/compiler/testdata/goroutine-cortex-m-qemu.ll @@ -1,7 +1,7 @@ ; ModuleID = 'goroutine.go' source_filename = "goroutine.go" target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" -target triple = "armv7m-none-eabi" +target triple = "armv7m-unknown-unknown-eabi" %runtime.channel = type { i32, i32, i8, %runtime.channelBlockedList*, i32, i32, i32, i8* } %runtime.channelBlockedList = type { %runtime.channelBlockedList*, %"internal/task.Task"*, %runtime.chanSelectState*, { %runtime.channelBlockedList*, i32, i32 } } diff --git a/compiler/testdata/goroutine-wasm.ll b/compiler/testdata/goroutine-wasm.ll index 1d840e6d..1acbc50b 100644 --- a/compiler/testdata/goroutine-wasm.ll +++ b/compiler/testdata/goroutine-wasm.ll @@ -1,7 +1,7 @@ ; ModuleID = 'goroutine.go' source_filename = "goroutine.go" target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32--wasi" +target triple = "wasm32-unknown-wasi" %runtime.funcValueWithSignature = type { i32, i8* } %runtime.channel = type { i32, i32, i8, %runtime.channelBlockedList*, i32, i32, i32, i8* } diff --git a/compiler/testdata/interface.ll b/compiler/testdata/interface.ll index be9e229a..8fef79e0 100644 --- a/compiler/testdata/interface.ll +++ b/compiler/testdata/interface.ll @@ -1,7 +1,7 @@ ; ModuleID = 'interface.go' source_filename = "interface.go" target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32--wasi" +target triple = "wasm32-unknown-wasi" %runtime.typecodeID = type { %runtime.typecodeID*, i32, %runtime.interfaceMethodInfo*, %runtime.typecodeID* } %runtime.interfaceMethodInfo = type { i8*, i32 } diff --git a/compiler/testdata/intrinsics-cortex-m-qemu.ll b/compiler/testdata/intrinsics-cortex-m-qemu.ll index e3e7580c..52af02cf 100644 --- a/compiler/testdata/intrinsics-cortex-m-qemu.ll +++ b/compiler/testdata/intrinsics-cortex-m-qemu.ll @@ -1,7 +1,7 @@ ; ModuleID = 'intrinsics.go' source_filename = "intrinsics.go" target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64" -target triple = "armv7m-none-eabi" +target triple = "armv7m-unknown-unknown-eabi" declare noalias nonnull i8* @runtime.alloc(i32, i8*, i8*) diff --git a/compiler/testdata/intrinsics-wasm.ll b/compiler/testdata/intrinsics-wasm.ll index 433b0a7e..ebf5799c 100644 --- a/compiler/testdata/intrinsics-wasm.ll +++ b/compiler/testdata/intrinsics-wasm.ll @@ -1,7 +1,7 @@ ; ModuleID = 'intrinsics.go' source_filename = "intrinsics.go" target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32--wasi" +target triple = "wasm32-unknown-wasi" declare noalias nonnull i8* @runtime.alloc(i32, i8*, i8*) diff --git a/compiler/testdata/pointer.ll b/compiler/testdata/pointer.ll index 94896ab8..0561dddb 100644 --- a/compiler/testdata/pointer.ll +++ b/compiler/testdata/pointer.ll @@ -1,7 +1,7 @@ ; ModuleID = 'pointer.go' source_filename = "pointer.go" target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32--wasi" +target triple = "wasm32-unknown-wasi" declare noalias nonnull i8* @runtime.alloc(i32, i8*, i8*) diff --git a/compiler/testdata/pragma.ll b/compiler/testdata/pragma.ll index 0515098c..02262684 100644 --- a/compiler/testdata/pragma.ll +++ b/compiler/testdata/pragma.ll @@ -1,7 +1,7 @@ ; ModuleID = 'pragma.go' source_filename = "pragma.go" target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32--wasi" +target triple = "wasm32-unknown-wasi" @extern_global = external global [0 x i8], align 1 @main.alignedGlobal = hidden global [4 x i32] zeroinitializer, align 32 diff --git a/compiler/testdata/slice.ll b/compiler/testdata/slice.ll index 7d027fb8..26701fe2 100644 --- a/compiler/testdata/slice.ll +++ b/compiler/testdata/slice.ll @@ -1,7 +1,7 @@ ; ModuleID = 'slice.go' source_filename = "slice.go" target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32--wasi" +target triple = "wasm32-unknown-wasi" declare noalias nonnull i8* @runtime.alloc(i32, i8*, i8*) diff --git a/compiler/testdata/string.ll b/compiler/testdata/string.ll index 66cf4781..06ae0ef1 100644 --- a/compiler/testdata/string.ll +++ b/compiler/testdata/string.ll @@ -1,7 +1,7 @@ ; ModuleID = 'string.go' source_filename = "string.go" target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" -target triple = "wasm32--wasi" +target triple = "wasm32-unknown-wasi" %runtime._string = type { i8*, i32 } diff --git a/main_test.go b/main_test.go index 7ebf8eb0..d27bb745 100644 --- a/main_test.go +++ b/main_test.go @@ -95,13 +95,13 @@ func TestCompiler(t *testing.T) { if runtime.GOOS == "linux" { t.Run("X86Linux", func(t *testing.T) { - runPlatTests("i386--linux-gnu", tests, t) + runPlatTests("i386-unknown-linux", tests, t) }) t.Run("ARMLinux", func(t *testing.T) { - runPlatTests("arm--linux-gnueabihf", tests, t) + runPlatTests("armv7-unknown-linux-gnueabihf", tests, t) }) t.Run("ARM64Linux", func(t *testing.T) { - runPlatTests("aarch64--linux-gnu", tests, t) + runPlatTests("aarch64-unknown-linux", tests, t) }) t.Run("WebAssembly", func(t *testing.T) { runPlatTests("wasm", tests, t) diff --git a/targets/avr.json b/targets/avr.json index 2ec83a7a..fbf43064 100644 --- a/targets/avr.json +++ b/targets/avr.json @@ -1,5 +1,5 @@ { - "llvm-target": "avr-unknown-unknown", + "llvm-target": "avr", "build-tags": ["avr", "baremetal", "linux", "arm"], "goos": "linux", "goarch": "arm", @@ -8,7 +8,6 @@ "scheduler": "none", "default-stack-size": 256, "cflags": [ - "--target=avr-unknown-unknown", "-Werror" ], "ldflags": [ diff --git a/targets/cortex-m0.json b/targets/cortex-m0.json index f86945b8..221d1a44 100644 --- a/targets/cortex-m0.json +++ b/targets/cortex-m0.json @@ -1,7 +1,4 @@ { "inherits": ["cortex-m"], - "llvm-target": "armv6m-none-eabi", - "cflags": [ - "--target=armv6m-none-eabi" - ] + "llvm-target": "armv6m-unknown-unknown-eabi" } diff --git a/targets/cortex-m0plus.json b/targets/cortex-m0plus.json index f86945b8..221d1a44 100644 --- a/targets/cortex-m0plus.json +++ b/targets/cortex-m0plus.json @@ -1,7 +1,4 @@ { "inherits": ["cortex-m"], - "llvm-target": "armv6m-none-eabi", - "cflags": [ - "--target=armv6m-none-eabi" - ] + "llvm-target": "armv6m-unknown-unknown-eabi" } diff --git a/targets/cortex-m3.json b/targets/cortex-m3.json index 68ecb7fc..b77a7f97 100644 --- a/targets/cortex-m3.json +++ b/targets/cortex-m3.json @@ -1,7 +1,4 @@ { "inherits": ["cortex-m"], - "llvm-target": "armv7m-none-eabi", - "cflags": [ - "--target=armv7m-none-eabi" - ] + "llvm-target": "armv7m-unknown-unknown-eabi" } diff --git a/targets/cortex-m33.json b/targets/cortex-m33.json index db0f2516..0dc79a5f 100644 --- a/targets/cortex-m33.json +++ b/targets/cortex-m33.json @@ -1,8 +1,7 @@ { "inherits": ["cortex-m"], - "llvm-target": "armv7m-none-eabi", + "llvm-target": "armv7m-unknown-unknown-eabi", "cflags": [ - "--target=armv7m-none-eabi", "-mfloat-abi=soft" ] } diff --git a/targets/cortex-m4.json b/targets/cortex-m4.json index 1d5ce2b1..409a97d2 100644 --- a/targets/cortex-m4.json +++ b/targets/cortex-m4.json @@ -1,8 +1,7 @@ { "inherits": ["cortex-m"], - "llvm-target": "armv7em-none-eabi", + "llvm-target": "armv7em-unknown-unknown-eabi", "cflags": [ - "--target=armv7em-none-eabi", "-mfloat-abi=soft" ] } diff --git a/targets/cortex-m7.json b/targets/cortex-m7.json index f63490eb..efd1f302 100644 --- a/targets/cortex-m7.json +++ b/targets/cortex-m7.json @@ -1,9 +1,8 @@ { "inherits": ["cortex-m"], - "llvm-target": "armv7em-none-eabi", + "llvm-target": "armv7em-unknown-unknown-eabi", "cpu": "cortex-m7", "cflags": [ - "--target=armv7em-none-eabi", "-mcpu=cortex-m7", "-mfloat-abi=soft" ] diff --git a/targets/gameboy-advance.json b/targets/gameboy-advance.json index e2d58159..77046954 100644 --- a/targets/gameboy-advance.json +++ b/targets/gameboy-advance.json @@ -1,5 +1,5 @@ { - "llvm-target": "arm4-none-eabi", + "llvm-target": "arm4-unknown-unknown-eabi", "cpu": "arm7tdmi", "build-tags": ["gameboyadvance", "arm7tdmi", "baremetal", "linux", "arm"], "goos": "linux", @@ -8,7 +8,6 @@ "rtlib": "compiler-rt", "libc": "picolibc", "cflags": [ - "--target=arm4-none-eabi", "-mcpu=arm7tdmi", "-Werror", "-fshort-enums", diff --git a/targets/riscv32.json b/targets/riscv32.json index 24f5cee9..728fc3cc 100644 --- a/targets/riscv32.json +++ b/targets/riscv32.json @@ -3,7 +3,6 @@ "llvm-target": "riscv32--none", "build-tags": ["tinygo.riscv32"], "cflags": [ - "--target=riscv32--none", "-march=rv32imac", "-mabi=ilp32" ], diff --git a/targets/riscv64.json b/targets/riscv64.json index a2a0641f..58510f67 100644 --- a/targets/riscv64.json +++ b/targets/riscv64.json @@ -3,7 +3,6 @@ "llvm-target": "riscv64--none", "build-tags": ["tinygo.riscv64"], "cflags": [ - "--target=riscv64--none", "-march=rv64gc", "-mabi=lp64" ], diff --git a/targets/wasi.json b/targets/wasi.json index fd481b65..ab10cbda 100644 --- a/targets/wasi.json +++ b/targets/wasi.json @@ -1,12 +1,11 @@ { - "llvm-target": "wasm32--wasi", + "llvm-target": "wasm32-unknown-wasi", "build-tags": ["tinygo.wasm", "wasi"], "goos": "linux", "goarch": "arm", "linker": "wasm-ld", "libc": "wasi-libc", "cflags": [ - "--target=wasm32--wasi", "--sysroot={root}/lib/wasi-libc/sysroot" ], "ldflags": [ diff --git a/targets/wasm.json b/targets/wasm.json index 083b6230..f7606c69 100644 --- a/targets/wasm.json +++ b/targets/wasm.json @@ -1,12 +1,11 @@ { - "llvm-target": "wasm32--wasi", + "llvm-target": "wasm32-unknown-wasi", "build-tags": ["tinygo.wasm"], "goos": "js", "goarch": "wasm", "linker": "wasm-ld", "libc": "wasi-libc", "cflags": [ - "--target=wasm32--wasi", "--sysroot={root}/lib/wasi-libc/sysroot" ], "ldflags": [ diff --git a/targets/xtensa.json b/targets/xtensa.json index 7fa24f5b..32ac133f 100644 --- a/targets/xtensa.json +++ b/targets/xtensa.json @@ -6,7 +6,6 @@ "gc": "conservative", "scheduler": "none", "cflags": [ - "--target=xtensa", "-Werror", "-fshort-enums", "-Wno-macro-redefined",