On Wed, May 28, 2025 at 10:25:06AM +0200, Jerome Forissier wrote: > Hi Rayond, > > On 5/27/25 23:05, Raymond Mao wrote: > > 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. > > How do you reproduce the problem? Can you give the config and build > command you are using? > > > > > 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) > > I'm afraid this won't work when cross-compiling because the compiler-rt > builtins libraries are usually not installed with the compiler. > For example on my Ubuntu 24.04 machine: > > $ clang --version > Ubuntu clang version 18.1.3 (1ubuntu1) > Target: x86_64-pc-linux-gnu > Thread model: posix > InstalledDir: /usr/bin
How about if you use the llvm.org packages? -- Tom
signature.asc
Description: PGP signature