commit | 16bb467cd7d343dd3a16782b151b56cf15509594 | [log] [tgz] |
---|---|---|
author | Andrey Ponomarenko <andrewponomarenko@yandex.ru> | Mon Sep 13 22:00:02 2021 +0300 |
committer | Andrey Ponomarenko <andrewponomarenko@yandex.ru> | Mon Sep 13 22:00:02 2021 +0300 |
tree | c9c2856d8c5d19cd41fde5c2416c23d4a2480359 | |
parent | 8c6550a67d64c45c5d9797d16c0ea7831818140d [diff] |
Initial support for Fedora 34
ABI Dumper — a tool to dump ABI of an ELF object containing DWARF debug info.
The tool is intended to be used with ABI Compliance Checker tool for tracking ABI changes of a C/C++ library or kernel module: https://github.com/lvc/abi-compliance-checker
The tool is developed by Andrey Ponomarenko.
sudo make install prefix=/usr
Input objects should be compiled with -g -Og
additional options to contain DWARF debug info.
abi-dumper libTest.so -o ABI.dump abi-dumper Module.ko.debug
abi-dumper lib/libssh.so.3 abi-dumper drm/nouveau/nouveau.ko.debug
You can try Docker image if the tool is not packaged for your Linux distribution (example for Harfbuzz):
FROM ebraminio/abi-dumper RUN apt update && \ apt install -y ragel cpanminus && \ git clone https://github.com/harfbuzz/harfbuzz && cd harfbuzz && \ CFLAGS="-Og -g" CXXFLAGS="-Og -g" ./autogen.sh && make && cd .. && \ abi-dumper `find . -name 'libharfbuzz.so.0.*'` && \ cpanm JSON && \ perl -le 'use JSON; print to_json(do shift, {canonical => 1, pretty => 1});' ./ABI.dump > ABI.json
For advanced usage, see output of --help
option.
abi-dumper libTest.so -public-headers PATH
PATH — path to the install tree of a library.
abi-dumper libTest.so.0 -o ABIv0.dump abi-dumper libTest.so.1 -o ABIv1.dump abi-compliance-checker -l libTest -old ABIv0.dump -new ABIv1.dump