Skip to content

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

@lLeRoYy

Description

@lLeRoYy

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions