Skip to content

Commit 960ab3f

Browse files
aykevldeadprogram
authored andcommitted
runtime: fix external address declarations
This is the same problem as in #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.
1 parent 94fec09 commit 960ab3f

File tree

5 files changed

+21
-21
lines changed

5 files changed

+21
-21
lines changed

src/runtime/arch_wasm.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const GOARCH = "wasm"
1212
const TargetBits = 32
1313

1414
//go:extern __heap_base
15-
var heapStartSymbol unsafe.Pointer
15+
var heapStartSymbol [0]byte
1616

1717
//go:export llvm.wasm.memory.size.i32
1818
func wasm_memory_size(index int32) int32

src/runtime/baremetal.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,19 @@ import (
77
)
88

99
//go:extern _heap_start
10-
var heapStartSymbol unsafe.Pointer
10+
var heapStartSymbol [0]byte
1111

1212
//go:extern _heap_end
13-
var heapEndSymbol unsafe.Pointer
13+
var heapEndSymbol [0]byte
1414

1515
//go:extern _globals_start
16-
var globalsStartSymbol unsafe.Pointer
16+
var globalsStartSymbol [0]byte
1717

1818
//go:extern _globals_end
19-
var globalsEndSymbol unsafe.Pointer
19+
var globalsEndSymbol [0]byte
2020

2121
//go:extern _stack_top
22-
var stackTopSymbol unsafe.Pointer
22+
var stackTopSymbol [0]byte
2323

2424
var (
2525
heapStart = uintptr(unsafe.Pointer(&heapStartSymbol))

src/runtime/runtime_arm7tdmi.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@ func putchar(c byte) {
1515
}
1616

1717
//go:extern _sbss
18-
var _sbss unsafe.Pointer
18+
var _sbss [0]byte
1919

2020
//go:extern _ebss
21-
var _ebss unsafe.Pointer
21+
var _ebss [0]byte
2222

2323
//go:extern _sdata
24-
var _sdata unsafe.Pointer
24+
var _sdata [0]byte
2525

2626
//go:extern _sidata
27-
var _sidata unsafe.Pointer
27+
var _sidata [0]byte
2828

2929
//go:extern _edata
30-
var _edata unsafe.Pointer
30+
var _edata [0]byte
3131

3232
// Entry point for Go. Initialize all packages and call main.main().
3333
//go:export main

src/runtime/runtime_cortexm.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ import (
88
)
99

1010
//go:extern _sbss
11-
var _sbss unsafe.Pointer
11+
var _sbss [0]byte
1212

1313
//go:extern _ebss
14-
var _ebss unsafe.Pointer
14+
var _ebss [0]byte
1515

1616
//go:extern _sdata
17-
var _sdata unsafe.Pointer
17+
var _sdata [0]byte
1818

1919
//go:extern _sidata
20-
var _sidata unsafe.Pointer
20+
var _sidata [0]byte
2121

2222
//go:extern _edata
23-
var _edata unsafe.Pointer
23+
var _edata [0]byte
2424

2525
func preinit() {
2626
// Initialize .bss: zero-initialized global variables.

src/runtime/runtime_fe310.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,19 @@ import (
1717
type timeUnit int64
1818

1919
//go:extern _sbss
20-
var _sbss unsafe.Pointer
20+
var _sbss [0]byte
2121

2222
//go:extern _ebss
23-
var _ebss unsafe.Pointer
23+
var _ebss [0]byte
2424

2525
//go:extern _sdata
26-
var _sdata unsafe.Pointer
26+
var _sdata [0]byte
2727

2828
//go:extern _sidata
29-
var _sidata unsafe.Pointer
29+
var _sidata [0]byte
3030

3131
//go:extern _edata
32-
var _edata unsafe.Pointer
32+
var _edata [0]byte
3333

3434
//go:export main
3535
func main() {

0 commit comments

Comments
 (0)