all: pretend to be linux/arm in baremetal targets

So far, we've pretended to be js/wasm in baremetal targets to make the
stdlib happy. Unfortunately, this has various problems because
syscall/js (a dependency of many stdlib packages) thinks it can do JS
calls, and emulating them gets quite hard with all changes to the
syscall/js packages in Go 1.12.

This commit does a few things:
  * It lets baremetal targets pretend to be linux/arm instead of
    js/wasm.
  * It lets the loader only select particular packages from the src
    overlay, instead of inserting them just before GOROOT. This makes it
    possible to pick which packages to overlay for a given target.
  * It adds a baremetal-only syscall package that stubs out almost all
    syscalls.
This commit is contained in:
Ayke van Laethem
2019-03-22 21:53:44 +01:00
committed by Ron Evans
parent 792274e86f
commit a2d0f79be3
17 changed files with 724 additions and 58 deletions
+3 -3
View File
@@ -1,7 +1,7 @@
{
"build-tags": ["avr", "js", "wasm"],
"goos": "js",
"goarch": "wasm",
"build-tags": ["avr", "linux", "arm"],
"goos": "linux",
"goarch": "arm",
"compiler": "avr-gcc",
"linker": "avr-gcc",
"ldflags": [
+3 -3
View File
@@ -1,7 +1,7 @@
{
"build-tags": ["tinygo.arm", "js", "wasm"],
"goos": "js",
"goarch": "wasm",
"build-tags": ["cortexm", "linux", "arm"],
"goos": "linux",
"goarch": "arm",
"compiler": "clang-8",
"gc": "marksweep",
"linker": "arm-none-eabi-ld",