The locks need to be implemented in a unique shared library to work correctly, so they shouldn't be part of libclang_rt.builtins.a, except in specialized scenarios without any dynamically linked code.
Not sure how this hasn't led to any bug reports yet.