My last reply was flippant. Apologies for that.
Huhh I didn't realise clang used LLVM as a shard library. I guess my perspective is slightly skewed because I work on another LLVM based project that uses static libraries instead (the project uses an old version LLVM).
However, I don't see any mention of why static libraries should supposedly be better for LLVM at the above URL. Can you direct us to a specific section/sentence/whatever of that document?
There is the sentence "Once the set of optimizations is chosen (and similar decisions are made for the code generator) the image processing compiler is built into an executable or dynamic library. Since the only reference to the LLVM optimization passes is the simple create function defined in each .o file, and since the optimizers live in .a archive libraries, only the optimization passes that are actually used are linked into the end application, not the entire LLVM optimizer" But there isn't anything there that explicitly states a preference for static libraries over shared ones. So I guess this example was not as good as I thought it was. Regards.