For arc-elf32 target get undefined reference to `debug_lower_hex` when using alloc crate

I believe the undefined reference to core functions like debug_lower_hex was because I had --emit=obj for rustc (found from r/rust):
rustc src/ -o src/lib.o --crate-type=staticlib -O

However, when I attempt to compile with
arc-elf32-gcc example.c lib.o
I get an undefined reference to __ucmpti2 which is a compiler builtin from LLVM's compiler-rt that's only included for 128 bit targets (CRT_HAS_128BIT in ucmpti2.c).
It's not just __ucmpti2 but some other builtins like __negti2 from the unimplemented Rust compiler builtins which are built for the host processor (X86-64) then when I attempt to link with the object file I get the error: error adding symbols: file format not recognized