Skip to content

При запуске auto_build для создания оберток для Qemu-8.2.3 и libvirt-10.3.0 не собирается библиотека и не компилируются обертки #97

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
lLeRoYy opened this issue Sep 4, 2024 · 1 comment

Comments

@lLeRoYy
Copy link

lLeRoYy commented Sep 4, 2024

При запуске скрипта для анализа исходного кода QEMU версии 8.3.2 возникает ошибка.
image
Как я понял, скрипт сначала конфигурирует сборку, затем выполняет анализ, создает файлы в директории с результатами анализа и удаляет собранные файлы. После этого скрипт пытается снова конфигурировать сборку, но не может выполнить её повторно из-за ошибок.
image
При попытке запустить эти две команды которые запускает футаг и говорит забилдить в ручную

Configure command: /home/user/Futag/futag-llvm/bin/scan-build -disable-checker core -disable-checker security -disable-checker unix -disable-checker deadcode -disable-checker nullability -di-checker cplusplus /home/user/virt/qemu-8.2.3/configure --prefix=/home/user/virt/qemu-8.2.3/.futag-install -enable-fuzzing --enable-sanitizers

Analyzing command: /home/user/Futag/futag-llvm/bin/scan-build -disable-checker core -disable-checker security -disable-checker unix -disable-checker deadcode -disable-checker nullability -di-checker cplusplus -enable-checker futag.FutagAnalyzer -analyzer-config futag.FutagAnalyzer:report_dir=/home/user/virt/qemu-8.2.3/.futag-analysis make -j28

мне удается сохранить собранные файлы и выполнить анализ. Далее я успешно запускаю функцию анализа (analyze), которая создает JSON-файл с результатами.

После этого происходит генерация оберток (wrappers), их очень много. Однако после генерации происходит автоматическая компиляция, во время которой Futag удаляет сгенерированные файлы и сообщает, что ничего не было скомпилировано. Поэтому я запускал каждый этап вручную, но скомпилировать обертки для QEMU так и не удалось.

Также я пытался сгенерировать обертки для libvirt-10.3.0. Эта библиотека собирается через Meson вручную, и процесс происходит быстрее, так как libvirt меньше по размеру, чем QEMU. Однако при компиляции сгенерированных оберток возникает та же ошибка.
image

QEMU — большая библиотека, и генерация оберток занимает очень много времени. Например, для генерации оберток для отдельной структуры процессора QEMU уходит около 3 часов. Если собирать весь QEMU, процесс может занимать больше 24 часов (например, за это время было сгенерировано только 12 из 90 000 оберток). Это очень долго.

Libvirt генерирует обертки за 5 минут, но последующие запуски занимают часы, и результат остается таким же. Если запускать скрипт по частям (генерацию и компиляцию отдельно), вывод команды компиляции отсутствует.

Итог:

Обертки для QEMU не удалось скомпилировать, так как генерация занимает слишком много времени.
При компиляции оберток для libvirt возникает ошибка, которая останавливает процесс.

@lLeRoYy lLeRoYy changed the title При запуске auto_build для создания оберток для Qemu-8.2.3 не собирается библиотека и не компилруютя обертки для libvirt-10.3.0 и Qemu При запуске auto_build для создания оберток для Qemu-8.2.3 и libvirt-10.3.0 не собирается библиотека и не компилируются обертки Sep 4, 2024
@thientc
Copy link
Collaborator

thientc commented Sep 20, 2024

В данный момент модуль генерации работает одним потоком, поэтому процесс генерации занимает долгое время. Постараюсь улучшить данный модуль.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants