Description
I was playing around with the latest version of Zig (https://ci.appveyor.com/project/andrewrk/zig-d3l86/build/0.2.0+95f45cfc) on ARM Cortex-M0 and I had a lot of issues with missing compiler_rt functions.
It was missing '__aeabi_memcpy'
It was complaining about missing '__aeabi_uldivmod', which I fixed by commenting out if (isArmArch()) {
in compiler_rt/index.zig .. later I found out that it also helped to use --target-arch armv6
instead of thumb
, or adding builtin.Arch.thumb
to isArmArch
(so that should probably be fixed)
After that it complained about __aeabi_h2f
, __aeabi_f2h
and __multi3
This is the command I used
zig build-exe --static --target-os freestanding --target-arch thumb --target-environ eabihf --libc-include-dir include --linker-script system\nrf51_xxaa.ld --verbose-link -isystem include --libc-include-dir include --library-path system --assembly system\gcc_startup_nrf51.S --object zig-cache/system_nrf51.o test.zig
Using fmt.bufPrint
is what is triggering these errors for me right now.
Is it possible to get a more permanent/robust solution to compiler_rt related problems? Some kind of automated testing that everything is there somehow?
(Btw, good news is that linking with Zig (rather than GCC or LLD) seems to work just fine for me now)