You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When trying to use llvm-mos to port tinygo to the 6502 (tinygo-org/tinygo#4051) I started encountering the following issues. Could you please let us know why are these function called for a program that just prints a string?
package main
funcmain() {
println("hello world")
}
❯ ../tinygo/build/tinygo build -target=6502 main.go
tinygo:ld.lld: error: undefined symbol: __rc4
>>> referenced by atomics_critical.go:27 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:27)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_load_2)
>>> referenced by atomics_critical.go:27 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:27)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_load_2)
>>> referenced by atomics_critical.go:27 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:27)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_load_2)
>>> referenced 67 more times
tinygo:ld.lld: error: undefined symbol: __rc5
>>> referenced by atomics_critical.go:27 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:27)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_load_2)
>>> referenced by atomics_critical.go:27 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:27)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_load_2)
>>> referenced by atomics_critical.go:35 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:35)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_store_2)
>>> referenced 43 more times
tinygo:ld.lld: error: undefined symbol: __rc3
>>> referenced by atomics_critical.go:27 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:27)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_load_2)
>>> referenced by atomics_critical.go:35 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:35)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_store_2)
>>> referenced by atomics_critical.go:42 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:42)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS16)
>>> referenced 24 more times
tinygo:ld.lld: error: undefined symbol: __rc2
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_load_2)
>>> referenced by atomics_critical.go:27 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:27)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_load_2)
>>> referenced by atomics_critical.go:27 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:27)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_load_2)
>>> referenced 160 more times
tinygo:ld.lld: error: undefined symbol: __rc6
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_store_2)
>>> referenced by atomics_critical.go:35 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:35)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_store_2)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS16)
>>> referenced 46 more times
tinygo:ld.lld: error: undefined symbol: __rc7
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS16)
>>> referenced by atomics_critical.go:43 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:43)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS16)
>>> referenced by atomics_critical.go:57 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:57)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_compare_exchange_2)
>>> referenced 30 more times
tinygo:ld.lld: error: undefined symbol: __rc9
>>> referenced by atomics_critical.go:42 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:42)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS16)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS16)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS16)
>>> referenced 13 more times
tinygo:ld.lld: error: undefined symbol: __rc8
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS16)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS16)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_compare_exchange_2)
>>> referenced 24 more times
tinygo:ld.lld: error: undefined symbol: __rc10
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_compare_exchange_4)
>>> referenced 16 more times
tinygo:ld.lld: error: undefined symbol: __rc11
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced by atomics_critical.go:132 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:132)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(__atomic_compare_exchange_4)
>>> referenced 14 more times
tinygo:ld.lld: error: undefined symbol: __rc12
>>> referenced by atomics_critical.go:131 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:131)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced by atomics_critical.go:131 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:131)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced by atomics_critical.go:131 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:131)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced 20 more times
tinygo:ld.lld: error: undefined symbol: __rc13
>>> referenced by atomics_critical.go:131 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:131)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced by atomics_critical.go:131 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:131)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced 5 more times
tinygo:ld.lld: error: undefined symbol: __rc14
>>> referenced by atomics_critical.go:131 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:131)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced 4 more times
tinygo:ld.lld: error: undefined symbol: __rc15
>>> referenced by atomics_critical.go:131 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:131)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS32)
>>> referenced 4 more times
tinygo:ld.lld: error: undefined symbol: __rc16
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced 9 more times
tinygo:ld.lld: error: undefined symbol: __rc20
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced by atomics_critical.go:220 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:220)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced by atomics_critical.go:220 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:220)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced 19 more times
tinygo:ld.lld: error: undefined symbol: __rc21
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced by atomics_critical.go:220 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:220)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced by atomics_critical.go:220 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:220)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced 12 more times
tinygo:ld.lld: error: undefined symbol: __rc22
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced by atomics_critical.go:220 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:220)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced 2 more times
tinygo:ld.lld: error: undefined symbol: __rc23
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced by atomics_critical.go:220 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:220)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced 2 more times
tinygo:ld.lld: error: undefined symbol: __rc24
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced by atomics_critical.go:220 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:220)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced by atomics_critical.go:0 (/Users/danacristinii/Dev/tinygo/src/runtime/atomics_critical.go:0)
>>> /Users/danacristinii/Library/Caches/tinygo/thinlto/llvmcache-E8123ADB7ED4283A7ED80802A183CCC09DF85A56:(runtime.doAtomicCAS64)
>>> referenced 2 more times
tinygo:ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
failed to run tool: ld.lld
error: failed to link /var/folders/_j/3mkdqkjj3hscfyn2rvv6bss40000gn/T/tinygo3932693917/main: exit status 1
The text was updated successfully, but these errors were encountered:
The undefined symbol: __rc24 errors refer to the imaginary registers mechanism. They are necessary to run any code compiled with LLVM-MOS, and should be provided by the linker script for the specific platform you're targeting - https://github.com/llvm-mos/llvm-mos-sdk has the entire default apparatus for doing so.
Hello,
When trying to use
llvm-mos
to port tinygo to the 6502 (tinygo-org/tinygo#4051) I started encountering the following issues. Could you please let us know why are these function called for a program that just prints a string?The text was updated successfully, but these errors were encountered: