Building llvm with clang and lld on arm and libcxx abilist files


I am trying to build a completely GNU free linux toolchain for the raspberry pi.

I successfully managed to compile llvm and clang for armv7 hard float ( both as a cross compiler and as a native compiler ) together with the following:

Llvm with clang and lld
Clang builtins
Musl libc
libc++, libc++abi, libunwind

Then I tried to compile the toolchain using itself. When doing libcxx, I noticed that in the libcxx distribution, in there are abilist files for configuring it with x86 linux and darwin, but nothing for arm and linux.

On the other hand, when I built libcxx with clang+lld the arm abilist file was required but not found ( it was not needed when I built with gnu ld).

I just made a copy of the x86 linux and renamed it accordingly for arm on the basis that linux on x86 and linux on arm should not be too much different and it seemed to work so far.

However, in it clearly says that documentation about how to generate the abilists is required.

Is there anyone who can help with this so that I can get an abilist that is not that hacky? I am willing to write some basic initial documentation if someone explains to me about what the abilists are exactly, how to create them and stuff like that.