This changes the CMake export_executable_symbols function to force all symbols pulled in from static libraries to be linked into the final executable, even if they weren't directly referenced by the executable. This is necessary for plugins that wish to link against the executable and use LLVM functionality that the executable itself doesn't use.
In my specific use case, I'm writing a Clang plugin that wishes to use LLVM's JSON libraries.