summaryrefslogtreecommitdiff
path: root/lib/utils/libquad/objects.mk
diff options
context:
space:
mode:
authorJessica Clarke <jrtc27@jrtc27.com>2021-07-11 05:28:24 +0300
committerAnup Patel <anup@brainfault.org>2021-07-11 18:31:44 +0300
commit17729d44daf879e015950b0e9636afceefea0a59 (patch)
treeb367007dadc7d1c2cf3de4250addec137dc5414a /lib/utils/libquad/objects.mk
parent2942777425516f7b31181fbaecc5485263dfcb01 (diff)
downloadopensbi-17729d44daf879e015950b0e9636afceefea0a59.tar.xz
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.mk14
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