I'm still working on this, off and on. I want to assemble a C++ toolchain that depends on the Linux kernel but nothing else from the distribution. Otherwise I'd use alpine.
Most of the difficulty has been in working around assumptions made by the cmake scripts in LLVM. They are subtle to configure.
Combining libunwind, libcxxabi and libc++ into a single library makes linking significantly simpler. Also makes setting rpath simpler.
crti,crtn,crtbegin,crtend can be empty files. Don't use crtbegin from bsd.
Tools like clang, lld have dependencies on other libraries. zlib, curses etc. Disabling these in the cmake files broke apparently unrelated things. My next step is to debug that or start building the supporting libraries.
Musl itself has caused me no problems in any of the above.
Cheers