I found I was getting the error regardless of what llvm I use (host or pre-built). It looks to me like there is a bug in the build system. I can't tell for sure, because even with "make V=sc world" the build system is still not displaying the command lines it is using in all cases. But looking at the error (shown in the log below) it looks like it is improperly using include files from the host system. I don't think it should be using /usr/include/linux/types.h.
make[4]: Entering directory '/home/kfitzner/devel/openwrt/build_dir/target-aarch64_cortex-a53_musl/xdp-tools-1.2.8'
lib
libxdp
CC staticobjs/libxdp.o
CC staticobjs/xsk.o
CLANG xdp-dispatcher.o
In file included from xdp-dispatcher.c:3:
In file included from ../../headers/linux/bpf.h:11:
/usr/include/linux/types.h:5:10: fatal error: 'asm/types.h' file not found
#include <asm/types.h>
^~~~~~~~~~~~~
1 error generated.
I temporarily fixed the issue by sudo ln -s x86_64-linux-gnu/asm /usr/include/asm
to give the openwrt build access to my system's asm/types.h, and the build succeeded. This is less than ideal, since it shouldn't be pulling in my x86_64 types.h.