Hi, I've posted about this before, but I've been at this for a month now and I'm fresh out of ideas. I could be making things hard for myself with my approach, but I want to understand what I'm doing wrong. I'm trying to cross compile musl for armv7a-linux-eabihf and a cortex-a8 cpu. Here's what I'm doing cd /usr/src/musl \ && AR=/usr/lib/llvm-13/bin/llvm-ar \ RANLIB=/usr/lib/llvm-13/bin/llvm-ranlib \ CC=/usr/lib/llvm-13/bin/clang \ CFLAGS="-fuse-ld=/usr/lib/llvm-13/bin/ld.lld --rtlib=compiler-rt -mcpu=cortex-a8" \ LIBCC=-lcompiler_rt \ ./configure \ --prefix=$VECX/usr \ --syslibdir=$VECX/lib \ --target=armv7a-linux-eabihf \ && make \ && make install Here's the output/error from ./configure checking for C compiler... /usr/lib/llvm-13/bin/clang checking whether C compiler works... yes checking whether compiler accepts -Werror=unknown-warning-option... yes checking whether compiler accepts -Werror=unused-command-line-argument... yes checking whether compiler accepts -Werror=ignored-optimization-argument... yes checking whether linker accepts -Werror=unknown-warning-option... yes checking whether linker accepts -Werror=unused-command-line-argument... yes checking for C compiler family... clang checking for toolchain wrapper to build... clang checking target system type... armv7a-linux-eabihf checking whether compiler accepts -std=c99... yes checking whether compiler accepts -nostdinc... yes checking whether compiler accepts -ffreestanding... yes checking whether compiler accepts -fexcess-precision=standard... no checking whether compiler accepts -frounding-math... yes checking whether compiler needs attribute((may_alias)) suppression... no checking whether compiler accepts -Wa,--noexecstack... yes checking whether compiler accepts -fno-stack-protector... yes checking whether compiler accepts -fno-tree-loop-distribute-patterns... no checking whether we should preprocess assembly to add debugging information... no checking for optimization settings... using defaults checking whether compiler accepts -Os... yes components to be optimized for speed: internal malloc string checking whether compiler accepts -pipe... yes checking whether compiler accepts -fomit-frame-pointer... yes checking whether compiler accepts -fno-unwind-tables... yes checking whether compiler accepts -fno-asynchronous-unwind-tables... yes checking whether compiler accepts -ffunction-sections... yes checking whether compiler accepts -fdata-sections... yes checking whether compiler accepts -w... yes checking whether compiler accepts -Wno-pointer-to-int-cast... yes checking whether compiler accepts -Werror=implicit-function-declaration... yes checking whether compiler accepts -Werror=implicit-int... yes checking whether compiler accepts -Werror=pointer-sign... yes checking whether compiler accepts -Werror=pointer-arith... yes checking whether compiler accepts -Werror=int-conversion... yes checking whether compiler accepts -Werror=incompatible-pointer-types... yes checking whether compiler accepts -Werror=discarded-qualifiers... no checking whether compiler accepts -Werror=discarded-array-qualifiers... no checking whether compiler accepts -Qunused-arguments... yes checking whether compiler accepts -Waddress... yes checking whether compiler accepts -Warray-bounds... yes checking whether compiler accepts -Wchar-subscripts... yes checking whether compiler accepts -Wduplicate-decl-specifier... yes checking whether compiler accepts -Winit-self... yes checking whether compiler accepts -Wreturn-type... yes checking whether compiler accepts -Wsequence-point... yes checking whether compiler accepts -Wstrict-aliasing... yes checking whether compiler accepts -Wunused-function... yes checking whether compiler accepts -Wunused-label... yes checking whether compiler accepts -Wunused-variable... yes checking preprocessor condition __PIC__... false checking whether linker accepts -Wl,--sort-section,alignment... yes checking whether linker accepts -Wl,--sort-common... yes checking whether linker accepts -Wl,--gc-sections... yes checking whether linker accepts -Wl,--hash-style=both... yes checking whether linker accepts -Wl,--no-undefined... yes checking whether linker accepts -Wl,--exclude-libs=ALL... yes checking whether linker accepts -Wl,--dynamic-list=./dynamic.list... yes using compiler runtime libraries: -lcompiler_rt checking preprocessor condition __thumb2__... false checking preprocessor condition __ARMEB__... false checking preprocessor condition __ARM_PCS_VFP... false checking whether clang's vfp asm constraints work... yes checking whether compiler's long double definition matches float.h... no ./configure: error: unsupported long double type ------ executor failed running [/bin/sh -c cd /usr/src/musl && AR=/usr/lib/llvm-13/bin/llvm-ar RANLIB=/usr/lib/llvm-13/bin/llvm-ranlib CC=/usr/lib/llvm-13/bin/clang CFLAGS="-fuse-ld=/usr/lib/llvm-13/bin/ld.lld --rtlib=compiler-rt -mcpu=cortex-a8" LIBCC=-lcompiler_rt ./configure --prefix=$VECX/usr --syslibdir=$VECX/lib --target=armv7a-linux-eabihf && make && make install]: exit code: 1 I had a look at the configure script to see what causes that error and I think it's building a test program? Is the long double type something that is in compiler-rt? Does compiler-rt also have to be built for armv7a-linux-eabihf as well?