Повторное использование битового кода 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 и снова связать их в другом приложении.

заранее спасибо

0 ответов

Другие вопросы по тегам