Add debootstrap, rootfs, and model-db orchestra components#195
Open
revng-claudietto wants to merge 9 commits intorevng:developfrom
Open
Add debootstrap, rootfs, and model-db orchestra components#195revng-claudietto wants to merge 9 commits intorevng:developfrom
revng-claudietto wants to merge 9 commits intorevng:developfrom
Conversation
Add an orchestra component that builds and installs the debootstrap tool from Ubuntu's official repository. This is used as a build dependency for the rootfs components.
97a2bca to
38dd385
Compare
Add orchestra components that build minimal rootfs images using debootstrap for 9 Linux distributions across multiple architectures. Each rootfs component downloads .deb packages, extracts them, and retains only ELF binaries, symlinks, and ld.so.conf files. A companion debug-info component for each rootfs fetches debug symbols. Supported targets: - Ubuntu 20.04/22.04/24.04 x86-64 - Ubuntu 24.04 i386/arm/aarch64/s390x - Debian bookworm mipsel, buster mips
Add an orchestra component that imports binary models from rootfs ELF files into a SQLite database. It runs revng analyze import-binary on up to 5 ELFs per rootfs, then exports the resulting models into a shared db.sqlite using revng model export sqlite. Includes a round-trip test using revng model import sqlite.
Download and install the microsoft/win32metadata source tree, which provides Windows API definitions organized as partitions with .rsp compiler settings.
Add orchestra components that compile all win32metadata partitions into PDB files using clang with CodeView debug info. Each partition's main.cpp is compiled to an .obj, then linked into a dummy DLL to produce the PDB. A support script (compile-to-pdb.py) generates the ninja build file from the win32metadata .rsp settings.
38dd385 to
82713cb
Compare
configure should only set up the build directory, while install does the actual build and installation work.
The previous commit was no longer available from the remote.
Add debug-info sub-components for each PDB architecture (x86-64, i386, aarch64) that produce model files from PDB files. The actual tool invocation is a placeholder (touch) for now. Also move the ninja build step from configure to install, keeping only the build file generation in configure.
Add pdb/x86-64/debug-info as a dependency. Copy PDB model files into the models directory with a windows-<arch> platform prefix, then export them to SQLite alongside the rootfs models. Also move all build work from configure to install.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
debootstrapcomponent that builds the debootstrap tool from sourcerootfs/*components that create minimal Linux rootfs images using debootstrap across multiple architectures (Ubuntu 20.04/22.04/24.04 x86-64, Ubuntu 24.04 i386/arm/aarch64/s390x, Debian bookworm mipsel, Debian buster mips), with companiondebug-infocomponents that pre-fetch debug symbolsmodel-dbcomponent that runsrevng analyze import-binaryon rootfs ELFs and exports the resulting models into a shared SQLite database usingrevng model export sqlitewin32metadatacomponent that downloads the microsoft/win32metadata sourcepdb/x86-64,pdb/i386, andpdb/aarch64components that compile all win32metadata partitions into PDB files using clang with CodeView debug infoDepends on: revng/revng#559 for
revng model export sqlite,revng model import sqlite, andREVNG_NO_FETCH_DEBUG_INFO.Test plan
orc install debootstrapsucceedsorc install rootfs/ubuntu-24-04-x86-64produces a rootfs with ELF binariesorc install rootfs/ubuntu-24-04-x86-64/debug-infofetches debug symbolsorc install -b model-dbbuilds the SQLite database and passes the round-trip testorc install win32metadatadownloads and installs the source treeorc install pdb/x86-64builds PDB files for all partitionsorc install pdb/i386builds PDB files for all partitionsorc install pdb/aarch64builds PDB files for all partitions