Linker error for atomic types

I'm building a bare metal project on an ARMv6, i.e. with #![no_std] and core only. Regarding documentation, core depends the unwind function and men*only. However, if I use an atomic type I get a linker error for missing __sync_lock_test_and_set_4 and other similar functions. I've learned that llvm calls these functions in case a platform does not have a cmpxchg-like instruction, see here. However, ARMv6 has such an instruction.

Is there any way I can trigger Rust to tell llvm not to issue such a call?
If not, is there any way to convince Rust to provide these functions? Maybe by means of the architecture JSON?

2 Likes