
Hi,
-----Original Message----- From: Alexey Brodkin abrodkin@synopsys.com Sent: Monday, September 2, 2019 12:43 PM To: u-boot@lists.denx.de Cc: uboot-snps-arc@synopsys.com; linux-snps-arc@lists.infradead.org; Alexey Brodkin abrodkin@synopsys.com; Kever Yang kever.yang@rock-chips.com Subject: [PATCH] arc: libgcc: Import __udivdi3 & __udivmoddi4 to allow 64-bit division
As reported by Kever here [1] we were unable to compile 64-bit division code due to missing definition of __udivdi3().
Import its implementation and __udivmoddi4() as its direct dependency from today's libgcc [2].
[1] https://patchwork.ozlabs.org/patch/1146845/ [2] https://github.com/gcc-mirror/gcc/commit/5d8723600bc0eed41226b5a6785bc02a053...
Signed-off-by: Alexey Brodkin abrodkin@synopsys.com Cc: Kever Yang kever.yang@rock-chips.com
For the record for EM SDP (emsdp_defconfig) building still fails this way: ----------------------------->8------------------------- arc-linux-ld.bfd: arch/arc/lib/lib.a(libgcc2.o): in function `__udivmoddi4': .../arch/arc/lib/libgcc2.c:195: undefined reference to `__clzdi2' arc-linux-ld.bfd: .../arch/arc/lib/libgcc2.c:195: undefined reference to `__clzdi2' arc-linux-ld.bfd: .../arch/arc/lib/libgcc2.c:196: undefined reference to `__clzdi2' arc-linux-ld.bfd: .../arch/arc/lib/libgcc2.c:196: undefined reference to `__clzdi2' ----------------------------->8-------------------------
That happens because we use a very simple -mcpu=arcem which doesn't use HW normalizer unit. I'm preparing a patch that will improve EM SDP's compiler options.
-Alexey