MbedTLS bignum module needs '__udivti3' which is a 128-bit division function provided by the compiler runtime, typically libgcc for GCC or clang_rt.builtins for Clang. Thus 'clang_rt.builtins' library is required when building using Clang.
Fixes: 13de8483388c ("mbedtls: add mbedtls into the build system") Signed-off-by: Raymond Mao <raymond....@linaro.org> --- Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f88684947ee..16506dcaec6 100644 --- a/Makefile +++ b/Makefile @@ -37,7 +37,6 @@ else ifeq ("riscv32", $(MK_ARCH)) else ifeq ("riscv64", $(MK_ARCH)) export HOST_ARCH=$(HOST_ARCH_RISCV64) endif -undefine MK_ARCH # Avoid funny character set dependencies unexport LC_ALL @@ -915,8 +914,13 @@ PLATFORM_LIBGCC = arch/$(ARCH)/lib/lib.a else ifndef CONFIG_CC_IS_CLANG PLATFORM_LIBGCC := -L $(shell dirname `$(CC) $(c_flags) -print-libgcc-file-name`) -lgcc +else ifeq ($(CONFIG_RSA_PUBLIC_KEY_PARSER_MBEDTLS),y) +# mbedtls bignum needs '__udivti3' - a 128-bit division function that's provided by clang-rt. +CLANG_RT_DIR := $(shell $(CC) --print-resource-dir)/lib/linux +PLATFORM_LIBGCC := -L$(CLANG_RT_DIR) -lclang_rt.builtins-$(MK_ARCH) endif endif +undefine MK_ARCH PLATFORM_LIBS += $(PLATFORM_LIBGCC) ifdef CONFIG_CC_COVERAGE -- 2.25.1