runtime: fix external address declarations

This is the same problem as in
https://github.com/tinygo-org/tinygo/pull/605, but other targets also
suffer from it.

Discovered with the GBA target, but as pointed out in
https://bugs.llvm.org/show_bug.cgi?id=42881#c1 this appears to be a bug
in the way external globals are declared, not in LLVM. Therefore I
decided that fixing it everywhere would be the best thing to do.
Этот коммит содержится в:
Ayke van Laethem 2020-01-26 19:46:02 +01:00 коммит произвёл Ron Evans
родитель 94fec09b31
коммит 960ab3fca4
5 изменённых файлов: 21 добавлений и 21 удалений

Просмотреть файл

@ -12,7 +12,7 @@ const GOARCH = "wasm"
const TargetBits = 32 const TargetBits = 32
//go:extern __heap_base //go:extern __heap_base
var heapStartSymbol unsafe.Pointer var heapStartSymbol [0]byte
//go:export llvm.wasm.memory.size.i32 //go:export llvm.wasm.memory.size.i32
func wasm_memory_size(index int32) int32 func wasm_memory_size(index int32) int32

Просмотреть файл

@ -7,19 +7,19 @@ import (
) )
//go:extern _heap_start //go:extern _heap_start
var heapStartSymbol unsafe.Pointer var heapStartSymbol [0]byte
//go:extern _heap_end //go:extern _heap_end
var heapEndSymbol unsafe.Pointer var heapEndSymbol [0]byte
//go:extern _globals_start //go:extern _globals_start
var globalsStartSymbol unsafe.Pointer var globalsStartSymbol [0]byte
//go:extern _globals_end //go:extern _globals_end
var globalsEndSymbol unsafe.Pointer var globalsEndSymbol [0]byte
//go:extern _stack_top //go:extern _stack_top
var stackTopSymbol unsafe.Pointer var stackTopSymbol [0]byte
var ( var (
heapStart = uintptr(unsafe.Pointer(&heapStartSymbol)) heapStart = uintptr(unsafe.Pointer(&heapStartSymbol))

Просмотреть файл

@ -15,19 +15,19 @@ func putchar(c byte) {
} }
//go:extern _sbss //go:extern _sbss
var _sbss unsafe.Pointer var _sbss [0]byte
//go:extern _ebss //go:extern _ebss
var _ebss unsafe.Pointer var _ebss [0]byte
//go:extern _sdata //go:extern _sdata
var _sdata unsafe.Pointer var _sdata [0]byte
//go:extern _sidata //go:extern _sidata
var _sidata unsafe.Pointer var _sidata [0]byte
//go:extern _edata //go:extern _edata
var _edata unsafe.Pointer var _edata [0]byte
// Entry point for Go. Initialize all packages and call main.main(). // Entry point for Go. Initialize all packages and call main.main().
//go:export main //go:export main

Просмотреть файл

@ -8,19 +8,19 @@ import (
) )
//go:extern _sbss //go:extern _sbss
var _sbss unsafe.Pointer var _sbss [0]byte
//go:extern _ebss //go:extern _ebss
var _ebss unsafe.Pointer var _ebss [0]byte
//go:extern _sdata //go:extern _sdata
var _sdata unsafe.Pointer var _sdata [0]byte
//go:extern _sidata //go:extern _sidata
var _sidata unsafe.Pointer var _sidata [0]byte
//go:extern _edata //go:extern _edata
var _edata unsafe.Pointer var _edata [0]byte
func preinit() { func preinit() {
// Initialize .bss: zero-initialized global variables. // Initialize .bss: zero-initialized global variables.

Просмотреть файл

@ -17,19 +17,19 @@ import (
type timeUnit int64 type timeUnit int64
//go:extern _sbss //go:extern _sbss
var _sbss unsafe.Pointer var _sbss [0]byte
//go:extern _ebss //go:extern _ebss
var _ebss unsafe.Pointer var _ebss [0]byte
//go:extern _sdata //go:extern _sdata
var _sdata unsafe.Pointer var _sdata [0]byte
//go:extern _sidata //go:extern _sidata
var _sidata unsafe.Pointer var _sidata [0]byte
//go:extern _edata //go:extern _edata
var _edata unsafe.Pointer var _edata [0]byte
//go:export main //go:export main
func main() { func main() {