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.
Этот коммит содержится в:
родитель
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() {
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче