Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | - | - | ||||
cmake/ | H | 25-Apr-2025 | - | 375 | 305 | |
doc/ | H | 25-Apr-2025 | - | 1,981 | 1,467 | |
fuzz/ | H | 25-Apr-2025 | - | 185 | 80 | |
test_cases/ | H | 25-Apr-2025 | - | 34,699 | 31,829 | |
testdata/ | H | 25-Apr-2025 | - | 2,058 | 1,874 | |
Android.bp | H A D | 25-Apr-2025 | 2.7 KiB | 122 | 114 | |
CMakeLists.txt | H A D | 25-Apr-2025 | 4.5 KiB | 170 | 140 | |
CONTRIBUTING.md | H A D | 25-Apr-2025 | 150 | 5 | 3 | |
Dockerfile | H A D | 25-Apr-2025 | 1.5 KiB | 55 | 53 | |
LICENSE | H A D | 25-Apr-2025 | 12 KiB | 220 | 182 | |
METADATA | H A D | 25-Apr-2025 | 692 | 20 | 18 | |
MODULE_LICENSE_LLVM | HD | 25-Apr-2025 | 0 | |||
OWNERS | H A D | 25-Apr-2025 | 40 | 3 | 2 | |
README.md | H A D | 25-Apr-2025 | 3.1 KiB | 110 | 74 | |
abigail_reader.cc | H A D | 25-Apr-2025 | 46.9 KiB | 1,430 | 1,058 | |
abigail_reader.h | H A D | 25-Apr-2025 | 1.5 KiB | 52 | 23 | |
abigail_reader_test.cc | H A D | 25-Apr-2025 | 7 KiB | 233 | 193 | |
btf_reader.cc | H A D | 25-Apr-2025 | 16.5 KiB | 473 | 377 | |
btf_reader.h | H A D | 25-Apr-2025 | 1.1 KiB | 40 | 13 | |
catch.cc | H A D | 25-Apr-2025 | 205 | 10 | 2 | |
comparison.cc | H A D | 25-Apr-2025 | 31.5 KiB | 981 | 712 | |
comparison.h | H A D | 25-Apr-2025 | 3.2 KiB | 129 | 82 | |
deduplication.cc | H A D | 25-Apr-2025 | 3.2 KiB | 113 | 79 | |
deduplication.h | H A D | 25-Apr-2025 | 1 KiB | 38 | 11 | |
dwarf_processor.cc | H A D | 25-Apr-2025 | 39.5 KiB | 1,085 | 804 | |
dwarf_processor.h | H A D | 25-Apr-2025 | 1.6 KiB | 61 | 28 | |
dwarf_wrappers.cc | H A D | 25-Apr-2025 | 13.6 KiB | 447 | 331 | |
dwarf_wrappers.h | H A D | 25-Apr-2025 | 3.6 KiB | 110 | 53 | |
elf_dwarf_handle.cc | H A D | 25-Apr-2025 | 3.2 KiB | 108 | 69 | |
elf_dwarf_handle.h | H A D | 25-Apr-2025 | 1.6 KiB | 62 | 30 | |
elf_loader.cc | H A D | 25-Apr-2025 | 17.8 KiB | 548 | 433 | |
elf_loader.h | H A D | 25-Apr-2025 | 2.4 KiB | 100 | 63 | |
elf_reader.cc | H A D | 25-Apr-2025 | 16.8 KiB | 468 | 338 | |
elf_reader.h | H A D | 25-Apr-2025 | 2.2 KiB | 69 | 39 | |
elf_reader_test.cc | H A D | 25-Apr-2025 | 1.6 KiB | 57 | 30 | |
equality.h | H A D | 25-Apr-2025 | 8 KiB | 252 | 181 | |
equality_cache.h | H A D | 25-Apr-2025 | 7.6 KiB | 270 | 211 | |
error.h | H A D | 25-Apr-2025 | 2.6 KiB | 126 | 82 | |
error_test.cc | H A D | 25-Apr-2025 | 970 | 36 | 11 | |
fidelity.cc | H A D | 25-Apr-2025 | 6.9 KiB | 262 | 203 | |
fidelity.h | H A D | 25-Apr-2025 | 2.3 KiB | 89 | 52 | |
file_descriptor.cc | H A D | 25-Apr-2025 | 1.4 KiB | 56 | 25 | |
file_descriptor.h | H A D | 25-Apr-2025 | 1.4 KiB | 52 | 22 | |
file_descriptor_test.cc | H A D | 25-Apr-2025 | 1.7 KiB | 69 | 36 | |
filter.cc | H A D | 25-Apr-2025 | 7.9 KiB | 295 | 224 | |
filter.h | H A D | 25-Apr-2025 | 1.2 KiB | 45 | 15 | |
filter_test.cc | H A D | 25-Apr-2025 | 3.3 KiB | 122 | 94 | |
fingerprint.cc | H A D | 25-Apr-2025 | 6.4 KiB | 256 | 184 | |
fingerprint.h | H A D | 25-Apr-2025 | 1.3 KiB | 42 | 11 | |
graph.cc | H A D | 25-Apr-2025 | 4.6 KiB | 162 | 120 | |
graph.h | H A D | 25-Apr-2025 | 24.2 KiB | 806 | 675 | |
hashing.h | H A D | 25-Apr-2025 | 3.4 KiB | 128 | 75 | |
hex.h | H A D | 25-Apr-2025 | 1.5 KiB | 58 | 29 | |
hex_test.cc | H A D | 25-Apr-2025 | 1.6 KiB | 70 | 41 | |
input.cc | H A D | 25-Apr-2025 | 2.2 KiB | 79 | 51 | |
input.h | H A D | 25-Apr-2025 | 1.1 KiB | 40 | 13 | |
naming.cc | H A D | 25-Apr-2025 | 8.8 KiB | 345 | 253 | |
naming.h | H A D | 25-Apr-2025 | 2.1 KiB | 80 | 44 | |
order.h | H A D | 25-Apr-2025 | 7.3 KiB | 225 | 81 | |
order_test.cc | H A D | 25-Apr-2025 | 9.3 KiB | 288 | 224 | |
post_processing.cc | H A D | 25-Apr-2025 | 7.9 KiB | 255 | 201 | |
post_processing.h | H A D | 25-Apr-2025 | 953 | 33 | 8 | |
proto_reader.cc | H A D | 25-Apr-2025 | 17.1 KiB | 531 | 453 | |
proto_reader.h | H A D | 25-Apr-2025 | 1 KiB | 39 | 13 | |
proto_writer.cc | H A D | 25-Apr-2025 | 20.2 KiB | 619 | 522 | |
proto_writer.h | H A D | 25-Apr-2025 | 1.1 KiB | 42 | 16 | |
reader_options.h | H A D | 25-Apr-2025 | 1.3 KiB | 56 | 26 | |
reporting.cc | H A D | 25-Apr-2025 | 14.9 KiB | 472 | 369 | |
reporting.h | H A D | 25-Apr-2025 | 1.5 KiB | 61 | 29 | |
reporting_test.cc | H A D | 25-Apr-2025 | 2.6 KiB | 78 | 50 | |
runtime.cc | H A D | 25-Apr-2025 | 2.2 KiB | 81 | 48 | |
runtime.h | H A D | 25-Apr-2025 | 2.4 KiB | 116 | 77 | |
runtime_test.cc | H A D | 25-Apr-2025 | 3 KiB | 125 | 97 | |
scc.h | H A D | 25-Apr-2025 | 4.7 KiB | 141 | 57 | |
scc_test.cc | H A D | 25-Apr-2025 | 5.4 KiB | 205 | 144 | |
scope.h | H A D | 25-Apr-2025 | 1.6 KiB | 67 | 38 | |
scope_test.cc | H A D | 25-Apr-2025 | 1.4 KiB | 59 | 33 | |
stable_hash.cc | H A D | 25-Apr-2025 | 6.3 KiB | 203 | 143 | |
stable_hash.h | H A D | 25-Apr-2025 | 1.1 KiB | 43 | 16 | |
stg.cc | H A D | 25-Apr-2025 | 7.5 KiB | 248 | 214 | |
stg.proto | H A D | 25-Apr-2025 | 6.5 KiB | 296 | 259 | |
stgdiff.cc | H A D | 25-Apr-2025 | 8.4 KiB | 268 | 226 | |
stgdiff_test.cc | H A D | 25-Apr-2025 | 11.4 KiB | 371 | 315 | |
substitution.h | H A D | 25-Apr-2025 | 3.6 KiB | 155 | 97 | |
type_normalisation.cc | H A D | 25-Apr-2025 | 5.8 KiB | 232 | 164 | |
type_normalisation.h | H A D | 25-Apr-2025 | 916 | 32 | 7 | |
type_resolution.cc | H A D | 25-Apr-2025 | 6.4 KiB | 250 | 188 | |
type_resolution.h | H A D | 25-Apr-2025 | 1 KiB | 37 | 11 | |
unification.cc | H A D | 25-Apr-2025 | 9 KiB | 298 | 219 | |
unification.h | H A D | 25-Apr-2025 | 3.2 KiB | 129 | 86 |
README.md
1# Symbol-Type Graph (STG) 2 3The STG (symbol-type graph) is an ABI representation and this 4project contains tools for the creation and comparison of such 5representations. 6 7The ABI extraction tool, `stg`, emits a native ABI format. Parsers exist for 8libabigail's XML format, BTF and ELF / DWARF. 9 10The ABI diff tool, `stgdiff`, supports multiple reporting options. 11 12STG has a versioned native file format. Older formats can be read and 13rewritten as the latest. 14 15NOTE: STG is under active developement. Tool arguments and behaviour are 16subject to change. 17 18## Getting STG 19 20### Distributions 21 22We intend to package STG for major distributions. Currently we have 23packages as follows: 24 25| *Distribution* | *Package* | 26| ---------------- | ----------------------------------------------------- | 27| Arch Linux (AUR) | [stg-git](https://aur.archlinux.org/packages/stg-git) | 28 29### Source Code 30 31This source code is available at 32https://android.googlesource.com/platform/external/stg/. 33 34## Building from Source 35 36Instructions are included for local and Docker builds. 37 38### Dependencies 39 40STG is written in C++20. It is known to compile with GCC 11, Clang 15 or 41later versions. Mininum requirements for a local build are: 42 43| *Dependency* | *Debian* | *RedHat* | *Version* | 44| ------------- | ----------------- | ----------------- | --------- | 45| build | cmake | cmake | 3.14 | 46| ELF, BTF | libelf-dev | elfutils-devel | 0.189 | 47| DWARF | libdw-dev | elfutils-devel | 0.189 | 48| XML | libxml2-dev | libxml2-devel | 2.9 | 49| BTF | linux-libc-dev | kernel-headers | 5.19 | 50| native format | libprotobuf-dev | protobuf-devel | 3.19 | 51| native format | protobuf-compiler | protobuf-compiler | 3.19 | 52| allocator[^1] | libjemalloc-dev | jemalloc-devel | 5 | 53| catch2[^2] | catch2 | catch2-devel | 2 (only) | 54 55[^1]: jemalloc is optional, but will likely improve performance. 56[^2]: catch2 is optional, but required to build the test suite. 57 58### Local Build 59 60Build STG using CMake as follows: 61 62```bash 63$ mkdir build && cd build 64$ cmake .. 65$ cmake --build . --parallel 66``` 67 68Run the STG unit test suite: 69 70```bash 71$ ctest 72``` 73 74### Docker Build 75 76A [Dockerfile](Dockerfile) is provided to build a container with the 77STG tools: 78 79```bash 80$ docker build -t stg . 81``` 82 83And then enter the container: 84 85```bash 86$ docker run -it stg 87``` 88 89Note that the Dockerfile provides only a production image. To use 90Docker as a development environment, you can comment out everything 91after the line `# second stage`. 92 93After that you may bind your development code to the container: 94 95```bash 96$ docker run -it $PWD:/src -it stg 97``` 98 99The source code is added to `/src`, so when your code is bound you can 100edit on your host and re-compile in the container. 101 102## Contributions 103 104See [CONTRIBUTING.md](CONTRIBUTING.md) for details. 105 106## Contact Information 107 108Please send feedback, questions and bug reports to 109[[email protected]](mailto:[email protected]). 110