Alessandro Di Federico
09dfccec91
Implement platform roots support
...
Refactor the binary import and dependency resolution infrastructure to
support multiple platforms (Linux, Windows, macOS) via a
configuration-driven root system.
Major changes:
* Overhaul PDB and DWARF importers for platform-aware debug info
loading.
* Refactor LDDTree into a template-based architecture with
platform-specific implementations (ELF, PE/COFF).
* Mostly rewrite the PDB importer, which had significant limitations.
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
4a51b67700
TypeCopier: improve performance
...
This commit refactors `TypeCopier`. Among other things, it ensures we
invoke `initializeReferences` only in `finalize`, as opposed to every
time we invoke `copyTypeInto`.
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
36a1295a8f
Introduce Binary.getIdentifierBinaryReference
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
51323c4707
Introduce revng model export sqlite
...
This tool exports into a SQLite DB the prototypes of the functions in a
given model, along with the closure of its type dependencies.
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
292da676e2
Introduce revng model merge
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
eb9e82477a
Introduce WindowsApiSetSchemaParser
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
f1ab2f7544
Introduce getConfigDirectory
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
0385e4c652
Introduce revng::Configuration
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
5417f8d880
model-schema.yml: move Type fields at the end
...
It's preferable to have one-line fields at the beginning in the YAML
representation.
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
5b43a23060
BinaryIdentifier: s/.Name/.CanonicalPath/g
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
7b3a80155e
Model: introduce OperatingSystem and PlatformName
...
These are going to be used to select the correct root.
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
e928664380
Introduce ImportLogger
...
`ImportLogger` is a simple support class to report on how many elements
have been imported in the model between the start and the end of its
lifetime.
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
675884b5c9
Introduce sqlite::Database
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
80657806da
Introduce findPathCaseInsensitive
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
63851e2f57
Introduce IndexedVector
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
6e5462b3c9
replaceAll: return true if changes are made
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
ee9c77b719
appendTo: move to STLExtras.h
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
0742699a81
s/OutputFilename/OutputPath/g
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
3a0bbb00c5
verify-abi-test-binaries.sh: limit --use-pdb usage
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
8bf4923b27
revng fetch debug-info: use lowercase PDB ID
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
456595551a
YAMLTraits: improve error reporting
...
Adopt the proper mechanism for reporting errors, which include line and
column number.
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
e352169420
check-conventions: ignore all raw C++ strings
...
Before, we were just ignoring `R"LLVM(`.
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
58ab09b107
findFileInPaths: do not abort on missing file
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
d977f26bce
import-from-c test: improve error reporting
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
15816c7559
TupleTree.h: drop DisableTracking
...
Not needed, no tracking takes place on a non-`const` object.
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
934e2a92f5
Make argv non-const char *
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
6a3a0489a7
Logger::unindent: fix assertion
2026-04-23 13:40:41 +02:00
Alessandro Di Federico
53c4c047d0
AArch64: adopt relocations with addend
...
This commit fixes a serious bug with AArch64 preventing us from detect
calls to dynamic functions.
2026-04-23 13:40:41 +02:00
Alessandro Di Federico
8bc37d9c8f
HelperArgumentsAnalysis: use specific Logger name
...
Using `Log` as a non-`static` global variable name lead to subtle
linking issues.
2026-04-23 13:40:41 +02:00
Alessandro Di Federico
fd16a6afc6
TupleTreeDiff: s/detail::/revng::detail::/g
2026-04-23 13:40:41 +02:00
Alessandro Di Federico
9cd2bffcb4
s/Endianess/Endianess/g
2026-04-23 13:40:41 +02:00
Alessandro Di Federico
7049f61baa
Minor changes
2026-04-23 13:40:41 +02:00
Pietro Fezzardi
bacd5e9a75
Merge branch 'feature/clift-based-headers-3'
2026-04-22 15:54:10 +02:00
Ivan Krysak
71845dcbbb
CliftEmitC: stop using mlir::clift namespace
2026-04-22 08:19:47 +00:00
Ivan Krysak
31b2609ca3
verifyCSemantics: add a TODO
2026-04-22 08:19:35 +00:00
Ivan Krysak
2a401ceb3f
DoxygenEmitter: prevent indentation highlighting
2026-04-22 08:19:35 +00:00
Ivan Krysak
490504604c
mlir-lit-tests: test forbidden attributes
2026-04-22 08:19:35 +00:00
Ivan Krysak
f13748583b
verifyAgainstModel: check forbidden attributes
2026-04-22 08:19:35 +00:00
Ivan Krysak
f83465eadb
mlir-lit-tests: test unknown attributes
2026-04-22 08:19:34 +00:00
Ivan Krysak
8387f8ce17
verifyAgainstModel: check for unknown attributes
2026-04-22 08:19:34 +00:00
Ivan Krysak
e1c4ad760f
mlir-lit-tests: test function type attributes
2026-04-22 08:19:34 +00:00
Ivan Krysak
e4770db1f1
verifyAgainstModel: function type attributes
2026-04-22 08:19:34 +00:00
Ivan Krysak
41c4dcd6ee
mlir-lit-tests: add missing _ABI attributes
2026-04-22 08:19:33 +00:00
Ivan Krysak
935208dc43
mlir-lit-tests: test struct attributes
2026-04-22 08:19:33 +00:00
Ivan Krysak
52f41c4c44
verifyAgainstModel: check struct attributes
2026-04-22 08:19:33 +00:00
Ivan Krysak
61c8a44870
mlir-lit-tests: test function attributes
2026-04-22 08:19:32 +00:00
Ivan Krysak
d66c54321c
verifyAgainstModel: check function attributes
2026-04-22 08:19:32 +00:00
Ivan Krysak
1b6c4c8f45
mlir-lit-tests: test raw function attributes
2026-04-22 08:19:32 +00:00
Ivan Krysak
9675b2d3c9
verifyAgainstModel: greatly improve RFT checks
2026-04-22 08:19:32 +00:00
Ivan Krysak
0a23d51da8
model-verify tests: separate a handles subset
2026-04-22 08:19:31 +00:00