mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-13 07:23:39 +00:00
all: rename 'arm' to 'tinygo.arm' for Cortex-M
Let the standard library think that it is compiling for js/wasm. The most correct way of supporting bare metal Cortex-M targets would be using the 'arm' build tag and specifying no OS or an 'undefined' OS (perhaps GOOS=noos?). However, there is no build tag for specifying no OS at all, the closest possible is GOOS=js which makes very few assumptions. Sadly GOOS=js also makes some assumptions: it assumes to be running with GOARCH=wasm. This would not be such a problem, just add js, wasm and arm as build tags. However, having two GOARCH build tags leads to an error in internal/cpu: it defines variables for both architectures which then conflict. To work around these problems, the 'arm' target has been renamed to 'tinygo.arm', which should work around these problems. In the future, a GOOS=noos (or similar) should be added which can work with any architecture and doesn't implement OS-specific stuff.
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
// +build tinygo.arm
|
||||
|
||||
package runtime
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
const GOARCH = "arm"
|
||||
|
||||
// The length type used inside strings and slices.
|
||||
type lenType uint32
|
||||
|
||||
// The bitness of the CPU (e.g. 8, 32, 64).
|
||||
const TargetBits = 32
|
||||
|
||||
//go:extern _heap_start
|
||||
var heapStart unsafe.Pointer
|
||||
Reference in New Issue
Block a user