Повторное использование битового кода LLVM, созданного на Rustc
Я хочу повторно использовать бит-код LLVM, сгенерированный из rustc, в другом проекте Rust, оба нацелены на wasm32-wasi. Опишу факты:
- У меня есть библиотека (A), которая генерирует капчу. Когда я компилирую эту библиотеку непосредственно в wasm32-wasi, она компилируется без проблем и даже выполняется с wasmer или wasmtime.
- У меня есть другое приложение Rust (назовем его Harness), которое использует функцию генерации капчи как внешнюю зависимость.
- Я сохраняю промежуточный битовый код llvm для A, провожу анализ и хочу снова использовать его в Harness как внешнюю функцию.
- Когда я попытался связать сохраненный llvm из A с помощью
RUSTFLAGS="-C link-arg=A.bc"
, он создает приложение Harness как пакет Wasm, но кажется, что есть проблема с искажением. Некоторые функции, которые использует A, теперь вводятся как импорт. - Приложение Harness имеет те же зависимости, что и A, поэтому теоретически функции также могут быть внедрены, и нет необходимости импортировать некоторые функции, которые A использует в модуле Wasm.
Есть идеи, как избавиться от искажений? Или есть реальный способ получить промежуточные битовые коды llvm и снова связать их в другом приложении.
заранее спасибо