Я пошел дальше и скомпилировал существующий код c через llvm-gcc -emit-llvm -c
в llvm bitcode. Программа c состояла из четырех модулей, которые я собрал в один большой битовый код каждый через llvm-ld
. Затем я попытался объединить эти 4 файла с битовым кодом в один через llvm-ld GE.bc GA.bc SD.bc SH.bc -o prog
, который работает без жалоб.
Попытка выполнить битовый код, хотя он жалуется:
ОШИБКА LLVM: Программа использовала внешнюю функцию myFunction, которая не может быть разрешена!
Дело в том, myFunction должен быть определен в SD.bc и использоваться также в GA.bc.
Но это не найти в SD.bc - llvm-ld пропускает все определения, которые не используются!?
Моя ОС Linux, и я использую llvm версии 2.6.