I'm not sure I follow your question, but in general, the idea is to be
compatible with ABIs, not with specific compilers. So, if compiler X is not
YABI compatible, the best thing to do is to make it be so, rather than make
LLVM follow X blindly.
The one exception is, of course, GCC. But in all cases, we should aim to be
compatible with both public ABIs and GCC extensions, and whenever possible,
implement one as alias to each other. This is the path taken by the
Compiler-RT project, for example, and how it is done for library calls in
However, if I'm not mistaken, EABI-GCC always produce EABI compatible
output on ARM. If not, it's probably a bug.