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:
Ayke van Laethem
2018-11-09 11:19:54 +01:00
parent b1cf69a523
commit 611bca39ab
10 changed files with 10 additions and 10 deletions
@@ -1,4 +1,4 @@
// +build arm
// +build tinygo.arm
package runtime
+1 -1
View File
@@ -1,4 +1,4 @@
// +build wasm,!arm,!avr
// +build wasm,!tinygo.arm,!avr
package runtime
+1 -1
View File
@@ -1,4 +1,4 @@
// +build js,arm avr
// +build js,tinygo.arm avr
package runtime
@@ -1,4 +1,4 @@
/// +build arm
// +build tinygo.arm
package runtime
+1 -1
View File
@@ -1,4 +1,4 @@
// +build wasm,!arm,!avr
// +build wasm,!tinygo.arm,!avr
package runtime