diff options
author | Jessica Clarke <jrtc27@jrtc27.com> | 2021-07-11 03:28:24 +0100 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2021-07-11 21:01:44 +0530 |
commit | 17729d44daf879e015950b0e9636afceefea0a59 (patch) | |
tree | b367007dadc7d1c2cf3de4250addec137dc5414a /lib/utils/libquad/objects.mk | |
parent | 2942777425516f7b31181fbaecc5485263dfcb01 (diff) |
lib: utils: Drop dependency on libgcc by importing part of FreeBSD's libquad
We only need libgcc for 64-bit division on RV32. Whilst GCC toolchains
bundle libgcc, Clang toolchains tend not to ship libclang_rt.builtins
given every compiler is a cross-compiler for every target and so you
would need a silly number of builds of it, with only the native library
available; only vendor-provided Clang toolchains specifically for bare
metal cross-compiling are likely to provide it.
Thus, import part of FreeBSD's implementation of the division support
functions needed and stop linking against libgcc.
Signed-off-by: Jessica Clarke <jrtc27@jrtc27.com>
Reviewed-by: Anup Patel <anup.patel@wdc.com>
Tested-by: Anup Patel <anup.patel@wdc.com>
Diffstat (limited to 'lib/utils/libquad/objects.mk')
-rw-r--r-- | lib/utils/libquad/objects.mk | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/utils/libquad/objects.mk b/lib/utils/libquad/objects.mk new file mode 100644 index 0000000..5e53cd0 --- /dev/null +++ b/lib/utils/libquad/objects.mk @@ -0,0 +1,14 @@ +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2021 Jessica Clarke <jrtc27@jrtc27.com> +# + +ifeq ($(PLATFORM_RISCV_XLEN),32) +libsbiutils-objs-y += libquad/divdi3.o +libsbiutils-objs-y += libquad/moddi3.o +libsbiutils-objs-y += libquad/qdivrem.o +libsbiutils-objs-y += libquad/udivdi3.o +libsbiutils-objs-y += libquad/umoddi3.o +libsbiutils-genflags-y += -I$(libsbiutils_dir)/libquad/include +endif |