mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-03 02:27:48 +00:00
builder: interpret linker error messages
This shows nicely formatted error messages for missing symbol names and for out-of-flash, out-of-RAM conditions (on microcontrollers with limited flash/RAM). Unfortunately the missing symbol name errors aren't available on Windows and WebAssembly because the linker doesn't report source locations yet. This is something that I could perhaps improve in LLD.
This commit is contained in:
committed by
Ron Evans
parent
2eb39785fe
commit
2e76cd3687
+21
@@ -0,0 +1,21 @@
|
||||
package main
|
||||
|
||||
import "unsafe"
|
||||
|
||||
const (
|
||||
a = "0123456789abcdef" // 16 bytes
|
||||
b = a + a + a + a + a + a + a + a // 128 bytes
|
||||
c = b + b + b + b + b + b + b + b // 1024 bytes
|
||||
d = c + c + c + c + c + c + c + c // 8192 bytes
|
||||
e = d + d + d + d + d + d + d + d // 65536 bytes
|
||||
f = e + e + e + e + e + e + e + e // 524288 bytes
|
||||
)
|
||||
|
||||
var s = f
|
||||
|
||||
func main() {
|
||||
println(unsafe.StringData(s))
|
||||
}
|
||||
|
||||
// ERROR: program too large for this chip (flash overflowed by {{[0-9]+}} bytes)
|
||||
// ERROR: optimization guide: https://tinygo.org/docs/guides/optimizing-binaries/
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package main
|
||||
|
||||
var b [64 << 10]byte // 64kB
|
||||
|
||||
func main() {
|
||||
println("ptr:", &b[0])
|
||||
}
|
||||
|
||||
// ERROR: program uses too much static RAM on this chip (RAM overflowed by {{[0-9]+}} bytes)
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
package main
|
||||
|
||||
func foo()
|
||||
|
||||
func main() {
|
||||
foo()
|
||||
foo()
|
||||
}
|
||||
|
||||
// ERROR: linker-undefined.go:6: linker could not find symbol {{_?}}main.foo
|
||||
// ERROR: linker-undefined.go:7: linker could not find symbol {{_?}}main.foo
|
||||
Reference in New Issue
Block a user