As reported by Alexandru, ARM follows a different convention than x86 so it needs __aeabi_ldivmod and __aeabi_uldivmod. Because it does not use __divdi3 and __moddi3, it also needs __divmoddi4 to build the eabi function upon. Paolo Paolo Bonzini (2): libcflat: clean up and complete long division routines arm: add eabi version of 64-bit division functions arm/Makefile.arm | 1 + lib/arm/ldivmod.S | 32 ++++++++++++++++++++++++++++++++ lib/ldiv32.c | 28 +++++++++++++++++++++++++--- 3 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 lib/arm/ldivmod.S -- 2.31.1