<div dir="ltr">I need to link several llvm object files (.bc) into a single such file (.ll or .bc). As I understand it, the tool for doing this is llvm-link. However, it seems to be failing in some cases depending on the order of files presented to it.<div><br></div><div>The simplest test case involves a pair of files.</div><div><br></div><div>blank.cpp contains nothing.</div><div><br></div><div>main.cpp contains:<br><div>#include <llvm/Support/raw_ostream.h><br></div><div>and may or may not contain a main function that just returns 0; it makes no difference to the results. (The include directive is, however, required in order to generate the error.)</div></div><div><br></div><div>llvm-link main.bc blank.bc works.</div><div><br></div><div>llvm-link blank.bc main.bc generates a linked object file that on attempting to convert to an executable, gives the following error message:</div><div><br></div><div><div>a1.ll:30:1: error: unknown selection kind</div><div>$"\01??_7_Iostream_error_category@std@@6B@" = comdat </div><div>^</div><div>1 error generated.</div></div><div><br></div><div>(A slightly more complex test case gives a different error message at earlier link time.)</div><div><br></div><div>Anyone have any idea about the cause of this and how to avoid it?</div></div>